Ответы:
Когда вы начинаете это так ...
top && clear
... экран очищается после выхода из верхней части с q.
Это действует больше как less
:
tput smcup ; top ; tput rmcup
( smcup
переключается на дополнительный экран, где выполняется top
команда, а когда вы выходите, top
rmcup
возвращается к обычному экрану)
Для этого вы можете создать псевдоним команды top ( Как создать постоянный псевдоним Bash? )
clear
Кажется, что стирает все, кроме последнего экрана буфера прокрутки (так что просто оставляем последний экран сверху в этом случае) - по крайней мере, в xfce4-терминал и QTerminal. tput
Ответ отлично работает, особенно в качестве псевдонима дляtop
less
последний вывод полностью исчез из буфера.
htop
, и 2. объединять команды вместе, чтобы вам не приходилось каждый раз вручную их объединять.
По иронии судьбы 1 , это было кратко поведение top
. В 3.3.8, top
действительно, очистить экран, но не в версиях прошлого или с тех пор. Смотрите Red Hat ошибка # 977561 :
Очистка экрана является косвенным результатом изменений в манипуляциях с терминалами, которые были внесены Джимом Уорнером (автором инструмента «top»), чтобы подавить заполнение «top» инструмента сигналами SIGWINCH, генерируемыми некоторыми из широко используемых терминальных приложений. Именно я сообщил о проблеме затопления, и он попытался сделать все возможное, чтобы решить ее, и выпустил исправление для этой проблемы в форме 8 отдельных коммитов. Фиксация, вводящая очистку экрана, имеет следующий хеш: 'dedaf6e1a81738ff08ee8e8523871e12f555ad6d'.
Из-за сообщения об ошибке Джим затем исправил его, чтобы снова не очистить вывод в 3.3.9 .
top
не имеет опций или настроек конфигурации для управления этим, AFAICT, это полностью жестко запрограммированное поведение. Возможно, вы захотите подать запрос на функцию по адресу https://gitlab.com/procps-ng/procps/issues/ .
А до тех пор вы могли clear
вручную предлагать Rinzwind или использовать, tput
как предлагает Steeldriver.
Интересно, что упомянутый выше коммит также имеет хорошее объяснение предложенной команды steeldriver, потому что на самом деле он такой же, как и в коде:
Буфер обратной прокрутки, используемый в нескольких терминальных эмуляторах, может быть реальным неудобством для пользователя после некоторых операций изменения размера. Для правильной визуализации отображения верхней части часто требуется дополнительное нажатие клавиш.
После долгой работы мы обнаружили две строки terminfo, которые отключают / восстанавливают этот проклятый буфер прокрутки. Они были хорошо спрятаны под заголовком строк «запуск / завершение программ с использованием cup». В свою очередь, «cup» имеет дело с возможностью адресации курсора tty.
Нам все равно, как вы их называете или к чему они относятся, если они выполняют свою работу. И это действительно так! Имейте в виду, однако, что есть некоторые побочные эффекты, некоторые из которых можно даже считать полезными:
enter_ca_mode / smcup / ti отключает буферизацию с прокруткой (и это хорошо, это то, на что мы всегда надеялись)
exit_ca_mode / rmcup / te восстанавливает буфер прокрутки (но также восстанавливает содержимое экрана, существующее до начала) (что отличается от предыдущих конечных результатов программы) (где последний отображенный экран был оставлен без изменений)
... что соответствует tput smcup
и tput rmcup
командам.
Поведение, которое вы ищете из меньшего, встроено в альтернативу htop. Вы можете установить его с помощью:
sudo apt-get install htop
В частности, он переключается в режим альтернативного экрана перед началом сохранения исходного содержимого экрана при закрытии htop. У этого также есть множество других улучшений по сравнению с вершиной procps. После установки вы можете просто запустить его как обычный пользователь:
htop
htop
очень красочный, добавляет поддержку мыши и т. Д.
Вы можете использовать watch
:
watch top -b
Обновление по умолчанию происходит каждые две секунды, например, -n1
на одну секунду, если вы хотите изменить это поведение. Чтобы выйти watch
, нажмите Ctrl+ Cвместо обычного Q.
Другой подход заключается в открытии нового окна терминала, например, с помощью xterm
:
xterm -e top
Это ведет себя точно так же, как top
обычно, окно закрывается, когда вы выходите top
с, Qи, конечно, оно не оставляет вывода в терминале, с которого вы его запустили. Добавьте &
в конец этой команды, чтобы запустить ее в фоновом режиме и сразу же снова отпустите терминал.
Как указывает ответ Ринзвинда, clear
команда очищает top
вывод с экрана.
После выхода top
вы также можете использовать Ctrl+, Lчтобы очистить top
вывод с экрана. После любой команды вы все равно можете прокрутить экран вверх, чтобы увидеть старый top
вывод.
Чтобы действительно очистить экран, так что top
вывод не может быть прокручен обратно, используйте reset
команду:
top && reset
Другой вариант, чтобы придать этому «свежему виду» совершенно новый сеанс, - запустить «заставку ASCII» (если она у вас есть). В моем случае я бы запустил:
top && reset && now && screenfetch
now
скрипт вызывает погоду, календарь ( cal
) и toilet
с прикольным временем.screenfetch
рисует логотип Ubuntu и характеристики машины..bashrc
регулярно , без необходимости , потому что , как правило , есть такие строки export PATH=...:$PATH
в этом файле и запустить его несколько раз будет излишне продлить PATH
. Кроме того , вызов neofetch
в .bashrc
не стандартное поведение (хотя это выглядит фантазии). Например, когда я снова запускаю, .bashrc
ничего не происходит.
clear
вести себя не одинаково: попробуйте for i in {1..200}; do echo "line $i"; done
в двух разных, свежих окнах. Затем нажмите CTRL+L
в окно 1 и введите clear
в окно 2. Теперь прокрутите назад в обоих окнах (колесико мыши). В CTRL+L
-window вы можете увидеть все строки (в зависимости от буфера прокрутки), а в clear
-window вы можете прокрутить только один экран назад . То есть: clear
очищает буфер прокрутки, пока CTRL+L
он аналогичен нажатию $ window_height times ENTER
(aka newline).
neofetch
- хороший улов, но я думаю, что это производная screenfetch
. Я использую его, чтобы напомнить себе, что я нахожусь в Ubuntu, потому что у меня двойная загрузка, а Windows Bash имеет другой экран-заставку. Я возьму .bashrc
ссылку. Что касается clear
и Ctrl
+L
я хочу сказать, что они похожи в том, что они оба оставляют top
вывод в буфере обратной прокрутки.
.bashrc
. Попробуй curl wttr.in/Edmonton?0
, это круто. Используйте, curl wttr.in/:help
чтобы получить помощь. У меня похожий вызов в /etc/update-motd.d/
скриптлете, поэтому я получаю информацию при входе в систему с консоли или ssh (не для каждого окна терминала). Если вам это нравится, добавьте --silent --max-time 3
вызов curl, чтобы интернет не работал вечно.
curl wttr.in/Edmonton?0
УДИВИТЕЛЬНЫЙ! Огромное спасибо. Я постараюсь сжать это после toilet
отображения времени на моем заставке :)
htop
?