Оболочка консольной очистки

8

Есть ли способ прояснить, что отображается на консоли оболочки (в Ubuntu Linux) всего одним или двумя ключами? Когда я получаю поток строк, grepкоторый превышает высоту окна, я хочу быстро вернуться к той позиции, где я набрал команду после приглашения. Я могу сделать это, если я открыл новый терминал до того, как набрал команду, и просто перешел в исходное положение. Но если продолжать использовать то же самое окно терминала, я должен вручную найти позицию. Ctrl+ lне является ответом, потому что он просто прокручивается, а содержимое терминала остается. Я не могу использовать, lessпотому что цветной вывод grep не отображается в цвете.

Савва
источник
Я слегка смущен. Вы ищете что-то похожее на clsDOS?
Изи
Я не знаком с DOS, но если это позволяет очистить окно и установить полосу прокрутки в верхнее положение, то это то, что я хочу.
Sawa
1
clsв DOS очищает содержимое консоли и возвращает вас на пустой экран с новой командной строкой.
Изи
@lszi я вижу. Это аналог «перезагрузки», который дал Фахим?
Sawa
1
Нет, clearэто аналог cls. resetделает больше Оба, вероятно, будут работать, но на основании вашего описания, resetэто излишне.
Микель

Ответы:

13

The

reset

Команда, которая является частью ncurses и находится в пакете ncurses-bin в Debian, полностью очистит консоль. Это то, что вы хотите?

Краткое резюме resetиз справочной страницы:

reset устанавливает режимы «cooked» и «echo», отключает режимы «cbreak» и «raw», включает перевод новой строки и сбрасывает любые неустановленные специальные символы в их значения по умолчанию, прежде чем выполнять инициализацию терминала так же, как tset.

Как обсуждено в /superuser/122911/bash-reset-and-clear-commands , и как указывалось Эриком при очистке консоли Shell , clearпросто очистит экран, resetбудет (как выразился bignose), msgstr "сбросить ваш терминал, когда он испорчен управляющими последовательностями". Лично я хорошо испортил свой терминал, и когда я его очищаю, я не собираюсь возвращать ничего, что было раньше, поэтому я просто использую reset. Но ммм.

Фахим Митха
источник
Чем это отличается Ctrl+Lдля целей этого вопроса? Пользователь не упомянул о повреждении терминала, а в остальном это эквивалентно, насколько я вижу.
Микель
@Mikel Я пытался, Ctrl+Lно он не очистил терминал.
Пила
8

Я обычно просто использую:

clear

Со clearстраницы руководства :

clear clears your screen if this is possible.  It looks in the environ-
ment for the terminal type and then in the terminfo database to  figure
out how to clear the screen.

clear ignores any command-line parameters that may be present.
Erik
источник
1
Я пробовал, но он не очищает терминал.
Пила
@sawa: Можете ли вы предоставить скриншот? Я до сих пор не могу понять из вашего вопроса, почему clearили Ctrl+Lне работают.
Микель
3
@Mikel Это просто не работает. Строка прокручивается вверх, и курсор находится на первой видимой строке, а полоса прокрутки расположена внизу.
Sawa
1
@sawa: Ах, я понимаю, что ты имеешь в виду! Я использовал PuTTY, и это было то же самое, но в Gnome Terminal есть разница. Спасибо за объяснение.
Микель
3

Вы можете попробовать эту команду:

tput reset
Евгений Коньков
источник