Вопрос Как действительно очистить терминал?


Я могу выпустить clear команду или нажмите Ctrl + L чтобы очистить текущий терминал Ubuntu, но это просто сдвигает предыдущий выход вверх, и если вы используете прокрутку мыши или PgUP а также PgDown клавиш трудно отличить, где начинается вывод предыдущей команды и выводится текущая команда.

Есть ли способ действительно очистите терминал, чтобы я не видел результаты предыдущей команды?


322
2018-02-06 21:51


происхождения


Нажмите Ctrl + L дважды и вы получите пустым! - Pandya


ответы:


Да, команда, которую вы ищете,

reset

В отличие от clear, или Ctrl+L, reset фактически полностью переинициализирует Терминал, а не просто очистка экрана. Однако он не будет повторно создавать экземпляр оболочки (bash). Это означает, что государство такая же, как и раньше, так же, как если бы вы просто очищали экран.

Как отмечает @Wallacoloo в комментариях, эта команда должна делать то же самое быстрее:

tput reset

Из других ответов:

  • Вы можете установить Сочетание клавиш в reset терминал, как объясняется towolf,

  • Если вы работаете Kubuntu, а ваш терминал - Konsole, вам нужно перейти к Изменить → Очистить историю, поскольку reset не работает так же, как там, как отмечает Дядя Лебедев,


392
2018-02-06 21:55



Вероятно, это не важно для большинства пользователей, но поведение reset зависит от терминала. - cthom06
Лично я не возражаю, что что-то осталось «вверх» вдоль скроллера, когда я ударил ^L, Я этого не вижу (это то, чего я хочу!), Я этого не чувствую, и если вдруг необходимость восстановить то, что там было - не проблема. reset в отличие от этого, гораздо сложнее - я буду использовать его, когда что-то пошло не так с терминалом - например, когда странные escape-последовательности случайно повредили дисплей. - ulidtko
@ulidtko: это имеет значение, когда вы запускаете последовательные сеансы программ с тоннами вывода. Если вы прокрутите назад, легко запутаться в том, какое исполнение что-то напечатало. Я прекрасно знаю, что в этих случаях можно использовать более сложные решения, но, тем не менее, это сценарий, который довольно часто встречается в быстрых и грязных сеансах отладки. - UncleZeiv
@UncleZeiv цветные подсказки якоря обычно помогают мне быстро найти нужное место. Хотя это все просто привычки. - ulidtko
Есть также tput reset который явно делает то же самое, но завершается мгновенно (тогда как reset может занять до 2 секунд до появления подсказки). - Ponkadoodle


Я искал это некоторое время, и я нашел гения, который опубликовал это:

clear && printf '\e[3J'

Очищает весь экранный буфер, очень чистый. Работает на OS X и полагает, что он отлично работает на большинстве терминалов * nix.

Любопытно, что эта часть '\e[3J' является управляющей командой терминала.


76
2018-05-29 05:51



Хмм, работает в xterm, Konsole и Linux VT, но не в gnome-terminal ... - Ruslan
Спасибо, это супер полезно! Что значит printf '\e[3J' имею в виду? Как очистить буфер? - Filip Spiridonov
Отличная находка! И для тех, кто хочет сбросить настройки стиля Bash на mac: nano ~/.bashrcи добавить alias reset="clear && printf '\e[3J'" - Michael Deal
будьте осторожны reset - он делает больше, чем просто очищает терминал. например, если вы случайно распечатываете двоичный файл со случайным мусором, который повреждает терминал (например, отключает эхо-символы типизированных символов) reset обычно может это исправить. Конечно, сглаживание прекрасное, пока вы знаете, как \override команда с псевдонимом. - RubyTuesdayDONO
Это единственный ответ, который помогает очистить прокрутку Putty при доступе к некоторым SSH через Winders. - dhaupin


Вы также можете назначить ярлык в терминале gnome, перейдя к Редактировать → Горячие клавиши, я используюсдвиг+Ctrl+Alt+С,

reset and clear shortcut


37
2018-02-08 22:46



+1. У меня всегда скрывается Мюбабар; поэтому даже после лет и лет использования гнома я никогда не думал искать это. Благодаря :-) - Stefano Palazzo♦
«Сброс» ничего не делает для меня, и «Сброс и очистка» очищает все, но не отображает подсказку повторно. Ни одна из этих записей меню не ведет себя как команда «reset» с терминала. - Hibou57
Как сказал @ Hibou57, моя комбинация клавиш для «Сброса», похоже, ничего не делает. Является ли эта функция нарушенной в 14.04? - Michael Martin-Smucker
«Разве эта функция сломана в 14.04?»: Это то же самое с 12.04. - Hibou57
@ Hibou57 «Сброс и очистка» не ожидается повторного отображения приглашения, но если вы нажмете Enter после этого, он должен повторно отобразить приглашение. Это работает для вас? - Don Hatch


выполните следующую команду:

reset

Это имеет тот же эффект, что и запуск нового терминала.


15
2018-02-06 21:55



При использовании шпатлевки, после запуска reset, Я все еще могу прокручивать вверх и видеть предыдущие вещи. Это проблема с PuTTY, а не reset? - Svish
@svish - это просто проблема внедрения или решения проблемы шпатлевки. - belacqua
@jgbelacqua, Сделка :) - Svish


Перекрестная отправка моего ответа из переполнение стека,

Используйте следующую команду, чтобы сделать чистый экран вместо простого добавления новых строк ...

printf "\033c"

да, это «printf» в командной строке bash.

Вы, вероятно, захотите определить псевдоним, хотя ...

alias cls='printf "\033c"'

объяснение

\033 == \x1B == 27 == ESC

Таким образом, это становится <ESC>c который является кодом выхода VT100 для сброса терминала. Вот это еще одна информация о кодах выхода терминала.

редактировать

Вот несколько других способов сделать это ...

printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

KDE

Вышеупомянутое не работает на консоли KDE (называемой Konsole), но есть надежда! Используйте следующую последовательность команд, чтобы очистить экран и буфер прокрутки назад ...

clear && echo -en "\e[3J"

Или, возможно, используйте следующий псевдоним KDE ...

alias cls='clear && echo -en "\e[3J"'

Я получил команду очистки прокрутки назад Вот,


8
2017-10-13 08:08





Ну, это действительно зависит, если вы используете Konsole например, даже reset не мешает вам прокручивать предыдущую строку. В этом случае вам нужно использовать некоторую функцию конкретного терминала, который вы используете. Для Konsole, его Edit > Clear History,


5
2018-02-07 16:27





Мой любимый printf "\ec", Это также может быть printf "\033c" или printf "\x1bc", Это ansi escape-последовательность, которая чудесным образом очищает экран и буфер для вывода терминала (для большинства стандартных терминалов, с которыми я работал, кажется, что я знаю, что он работает как gnome-terminal, terminator, xterm и т. Д. На Ubuntu-like ) версия Linux

Я знаю, что это работает в Linux Mint и Ubuntu 14.04, поэтому я не знаю, почему люди добавляют и преподают такие вещи, как clear && echo -ne "\033c, printf "\ec" всегда работал для меня.

Кроме того, в моем .bashrc У меня есть привязка вроде этого:

bind -x '"\C-t": printf "\ec"';

Теперь я нажимаю CtrlT все время.


5
2018-05-01 09:32



Вы знаете, как можно создать сопоставление с помощью ключа Windows? Этот фрагмент действительно замечательный, работает точно так же, как Command-K на Mac. Спасибо. - Niloct
@Niloct вы можете видеть, поддерживает ли терминал его с помощью xev (просто введите xev в терминале внутри x-сессии). Из того, что я мог сказать, urxvt не поддерживает его; в то время как я не пытался в tty, я уверен, что он не будет поддержан. Я также сомневаюсь, что xterm или гном-терминал поддержат это. Это сложно с анси-побегами. Приветствия и извините за поздний ответ. - dylnmc
Хорошо @dylnmc, я ценю это. Спасибо за комментарий. - Niloct


Я нашел следующее, чтобы быть успешным с Kubuntu:

alias clc="echo -en '\033c\033[3J'"

Вы можете использовать cls чтобы поддерживать традицию Windows, используйте версию Matlab clc, или один из ваших собственных. Удачи!


3
2018-04-29 22:26





В качестве альтернативы reset, ты можешь сделать echo -e "\033c", или .bashrc, что-то вроде alias cls="echo -ne '\033c'"

В UNIX / Linux StackExchange есть поток: Как полностью очистить терминал? (Unix.stackexchange.com), а также SuperUser: Очистить терминал с помощью сочетания клавиш (superuser.com),


2
2017-07-09 08:55





Другая альтернатива ответу @ Hibou57:

# The Octal Way
alias clear="echo -e '\033c\c'"

ИЛИ

# The Hex Way
alias clear="echo -e '\x1b\c'"

В основном это будет иметь точно такой же эффект, он будет печатать ^[ символ (который очищает ваш терминал) и не выводит завершающую новую строку.


2
2017-10-30 21:26



Небольшая коррекция: он печатает ^[ символ (ESC) с последующим  c характер, а не только ^[ характер. Комбинированные, эти суммы относятся к терминальному коду «RIS», который вызывает сброс. Больше информации: xfree86.org/4.8.0/ctlseqs.html - jwd


Если вы используете yakuake или Konsole, попробуйте Ctrl+сдвиг+К,

Источник: https://bugs.kde.org/show_bug.cgi?id=309008


1
2017-10-06 16:21