Очистить вывод терминала только последней команды


13

Вместо того, чтобы пролистывать сотни строк вывода, чтобы увидеть историю предыдущих команд, можно ли очистить вывод последней команды? Например, после выполнения lsочистите его вывод, потому что он вам больше не нужен.

РЕДАКТИРОВАТЬ:

Это не ваша обычная clearили ctrl+Lоперация. Идея состоит в том, чтобы прокрутить историю назад в поисках выходных данных предыдущей команды, но без необходимости прокручивать после загрузки ls, или cat, или sudo apt-get installвывода, если я действительно не хочу. Это может выглядеть примерно так:

cat fileIWantToRemember
ls directoryIWantToForget
# some command that wipes the output of ls
# scroll back to see the output of cat immediately

Вы хотите очистить вывод или удалить команду из истории команд? Если вы хотите изменить историю команд, возможно, этот поток адресован тому, что вы ищете?
Эрни

Терминал просто отображает поток текста и сохраняет его в своем собственном внутреннем буфере. Он не может знать или различать вывод команды. Терминал rxvt-unicode имеет интерпретатор perl, который может реализовать нечто подобное. Но, насколько я знаю, это не сделано.
Кит

Давным-давно я использовал эмулятор терминала в Mac OS X, у которого была эта функция, но я не могу вспомнить, как он назывался. Это было не бесплатно, хотя. Однако, делая быстрый поиск в Google, я наткнулся на finalterm.org , который, похоже, пытается реализовать эту функцию. Тем не менее, «Окончательный срок находится в тяжелой разработке и не является ни стабильным, ни полным функционалом!», Поэтому я не пробовал его. Выглядит интересно, хотя. Поиск Google, для чего это стоит, былterminal emulator output folding
rici

Final Term достаточно развита, чтобы сворачивать команды (и много других удивительных вещей), и как только есть комбинация клавиш для этого, проблема решается. Я начинал думать, что я сошел с ума ...
nacnudus

1
это не ваш точный ответ, но в таких случаях для просмотра содержимого больших файлов я использую команду «меньше» вместо «кошка». Другое дело, что если какая-либо команда выдает на консоль огромное количество строк, вы можете избежать этого, написав «$ the-command | less».
Девашиш

Ответы:


4

Благодаря @rici это поведение можно назвать «сворачиванием». Вывод команд не забыт, но вы можете скрыть его, пока он вам не понадобится снова. Фальцовка обычна в текстовых редакторах, но, кажется, редко встречается в эмуляторах терминала.

Final Term - это новый эмулятор терминала, который включает в себя складывание среди множества других хитростей. Осторожно: «Окончательный срок находится в тяжелой разработке и не является ни стабильным, ни полным функционалом!» Он был достаточно интенсивно разработан, чтобы свернуть мои команды при тестировании, но слишком нестабилен, чтобы не вылететь. Один смотреть.


0

Я думаю, что вы ищете четкую команду ...

clear

«Очистить» очищает вашу последнюю команду от просмотра. Вы можете прокрутить вверх в терминале, чтобы увидеть его снова, если это будет необходимо.


Дело в том, что вам не нужно прокручивать его, просматривая историю, чтобы найти что-то еще.
Накнудус

Вы хотите подавить вывод команды? Если да, это может помочь вам: stackoverflow.com/questions/617182/…
phe0113

2
Это здорово, если я никогда не хочу видеть результат. Я хочу увидеть результат в первый раз, а потом забыть об этом. Итак, в примере, который я привел, я хочу по lsкакой-то причине проверить вывод , но затем я хочу избавиться от него, чтобы мне не приходилось прокручивать его, чтобы найти вывод cat. Очевидно, я мог бы просто повторить команду cat, но я могу представить, что хочу сохранить последовательность команд, и было бы неплохо не повторять их все.
Накнуд

0

В bash вы можете нажать ярлык, Ctrl + Lчтобы очистить экран, аналогично clearкоманде. ( http://ss64.com/bash/syntax-keyboard.html )

Или вы можете использовать, history | tail -3чтобы увидеть последние три команды. ( http://www.howtogeek.com/howto/44997/how-to-use-bash-history-to-improve-your-command-line-productivity/ )


Смотрите мой комментарий к @Justin ниже, смысл не в том, чтобы прокручивать его, просматривая историю для чего-то другого. Что-то вроде HISTCONTROL=ignorespaceвашей второй ссылки, которую вы можете использовать после факта, будет хорошо.
Накнудус

Я немного растерялся от того, чего ты хочешь достичь. Еще одна мысль: во многих консолях, которые я использовал, вы обычно можете использовать клавиши со стрелками для просмотра истории команд в bash, относится ли это к вашей ситуации?
phe0113

Мое редактирование проясняет вопрос?
Накнудус

@nacnudus, да, теперь я
понял

0

Звучит так, как будто вы хотите удалить элементы из своей истории. Для этого вам сначала нужно включить запись истории на лету, а не при выходе, отредактировав файл ~ / .bashrc и добавив:

shopt -s histappend; export PROMPT_COMMAND='history -a';'

Затем, чтобы удалить элементы, вы можете сделать:

history -d offsetгде смещение - это запись истории, которую вы хотите удалить

Основано на этой ветке форума .


Кажется, это удаляет его из файла истории, что является почти правильной идеей, но может ли он стереть его с текущего терминала?
Накнудус
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.