Відповіді:
Коли ви починаєте це так ...
top && clear
... екран очищається після виходу з вершини q.
Це діє як less
:
tput smcup ; top ; tput rmcup
( smcup
перемикається на вторинний екран, де top
виконується команда, і коли ви виходите з top
rmcup
перемикається назад на звичайний екран)
Ви можете створити псевдонім верхній команді для цього ( Як створити постійний псевдонім Bash? )
clear
Здається, також видаляється все, крім останнього екрана буфера прокрутки (тому просто залиште останній екран верху в цьому випадку) - принаймні в xfce4-терміналі та QTerminal. tput
Відповідь відмінно працює, особливо в якості псевдоніма дляtop
less
останній вихід повністю зник із буфера.
htop
, але 2. псевдоніми команд разом, так що вам не доведеться щоразу вручну їх ланцюжок.
Як не дивно 1 , це було коротко поведінку top
. У 3.3.8 top
зробив очищення екрана, але не у версіях минулих чи з тих пір. Дивіться про помилку Red Hat # 977561 :
Очищення екрану є опосередкованим результатом змін в термінальних маніпуляціях, які були введені Джимом Уорнером (автором інструмента "верхній"), щоб придушити затоплення інструменту "верх" сигналами SIGWINCH, генерованими деякими широко використовуваними термінальними додатками. Саме я повідомив про проблему затоплення, і він намагався зробити все можливе, щоб вирішити його, і випустив виправлення проблеми у формі 8 окремих комісій. Послідовність введення очищення екрана має такий хеш: 'dedaf6e1a81738ff08ee8e8523871e12f555ad6d'.
Завдяки звіту про помилки, Джим потім виправив його, щоб знову не очистити вихід у 3.3.9 .
top
не має жодних параметрів чи налаштувань конфігурації для керування цим, AFAICT, це абсолютно жорстко кодована поведінка. Ви можете подати запит на функцію за адресою https://gitlab.com/procps-ng/procps/isissue/ .
До цього часу ви могли clear
вручну подобатися, як пропонував Rinzwind , або використовувати, tput
як пропонує стілдрівер.
Цікаво, що згаданий вище коміт також має приємне пояснення запропонованої команди 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. Він також має цілий ряд інших удосконалень над версією операційних систем. Після його встановлення ви можете просто запустити його як звичайний користувач:
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
у window1 та введіть clear
window2. Тепер прокрутіть назад в обох вікнах (колесо миші). У вікні CTRL+L
ви побачите всі рядки (залежно від буфера прокрутки), тоді як у вікні clear
ви можете прокручувати лише один екран назад . Тобто: clear
очищає буфер прокрутки, одночасно CTRL+L
схожий на $ window_height разів натискання 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
?