Как полностью очистить терминал?

Когда мы используем команду clear или Ctrl + L в терминале, она очищает терминал, но мы все равно можем прокрутить назад, чтобы просмотреть последние использованные команды. Есть ли способ полностью очистить терминал?

9 Solutions collect form web for “Как полностью очистить терминал?”

Вы можете использовать tput reset .

Помимо reset и reset tput reset вы можете использовать следующий сценарий оболочки.

 #!/bin/sh echo -e \\033c 

Это отправляет управляющие символы Esc-C на консоль, которая сбрасывает терминал.

Ключевые слова Google: последовательности управления консолью Linux

man console_codes говорит:

Последовательность ESC c вызывает сброс терминала, который вы хотите, если экран искажен. Часто заданный «echo ^ V ^ O» будет делать только ток G0, но нет гарантии, что G0 указывает на таблицу a). В некоторых дистрибутивах есть программный сброс (1), который просто выполняет «echo ^ [c». Если ваша запись terminfo для консоли верна (и имеет запись rs1 = \ Ec), тогда также будет выполняться «tput reset».

Вы можете использовать команду reset , которая сбросит настройки терминала.

Я знаю, что вы на терминале gnome, но я думал, что отвечу с подсказкой для других, которые могут быть (как я) на Mac:

Если вы используете Terminal.app или iTerm.app тогда Control+L будет прокручиваться, поэтому терминал выглядит пустым, но Cmd+K фактически сбросит терминал / очистить прокрутку.

Или, если вы можете установить настройки клавиатуры для своего терминала, вы можете назначить что-то вроде Ctrl+K для ввода echo -e \\033c как было упомянуто выше.

Ответ Anthon работает в KDE Konsole, но не urxvt. В urxvt я использовал сброс в течение нескольких лет, чтобы очистить прокрутку (вместе со всеми остальными), и не был удовлетворен тем, что он не работал в Konsole. Итак, теперь для Linux у меня есть новый псевдоним:

 alias allclear='clear; echo -e "\033c\e[3J"' 

Но OS X не работает.

tput reset не работает в любом контексте AFAICT.

В KDE Konsole ctrl- shift- k очищает прокрутку (включая текущую приглашение оболочки, поэтому она полностью пуста). В iTerm или терминале Apple на OS X cmd- shift- k также очищает прокрутку. Чтобы добавить эту функцию в urxvt, добавьте ее в ~ / .Xresources:

 urxvt*keysym.CSK: command:\033c 

Я нашел это в сети несколько лет назад и хорошо работает для меня. Он полностью очищает терминал без истории прокрутки.

 echo -e "\e[3J" 

Я отобразил F12 для очистки экрана в каждой из следующих оболочек: bash , csh и fish shell . Моя команда отличается от всех предыдущих, поскольку она сохраняет все, что вы уже ввели в текущей строке.
(Примечание: все конфигурации ниже зависят от терминалов, но я надеюсь, что они будут работать практически везде)

удар

Откройте файл ~/.inputrc и вставьте следующую строку:

"\e[24~": "\Ck \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\Cy\C-?"

Чтобы получить новое связывание ключей, либо откройте новый терминал, либо введите Ctrl + X, затем Ctrl + R, чтобы перезагрузить файл .inputrc в текущем терминале.

объяснение
Файл ~ / .inputrc управляет привязкой клавиш терминала bash.

О линии:

  1. Первая часть линии "\e[24~" отображает ключ F12 .
  2. Ck ( Ctrl + X ) очищает kill-ring (копия и прошлая память Баша).
  3. Это пространство позволяет избежать звукового сигнала в следующей команде.
  4. Cu ( Ctrl + U ) отправляет текущую строку в kill-ring и стирает ее.
  5. echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n посылает на терминал две сгруппированные команды. Они разделены ; и завершается \n .
    • echo -ne '\\ec\\e[3J' очищает экран.
    • history -d $((HISTCMD-1)) позволяет избежать ввода этих двух команд в историю.
  6. Cy ( Ctrl + Y ) вставляет кольцо уничтожения, сохраненное командой Cu .
  7. C-? ( Ctrl + ? ) Эквивалентно Backspace и удаляет пространство, вставленное на шаге 3 выше.

Рекомендации:

CSH

Введите команду ниже.
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
Он также может быть вставлен в ваш .cshrc файл, чтобы загрузить привязку клавиш к каждому новому терминалу.
(Да, это намного проще, чем в bash)

раковина

Введите команду ниже.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Вы можете отредактировать и сохранить функцию fish_user_key_bindings чтобы загрузить привязку клавиш к каждому новому терминалу.
(Да, это намного проще, чем в bash)

[Ubuntu 16.04]

Файл .bash_history создается в домашнем каталоге пользователя после закрытия терминала.

Это полезно, но вы можете удалить его, если хотите .. Тем не менее он будет создан каждый раз, когда вы закончите использовать терминал.

Вы можете удалить его вручную:

  • ваш браузер файлов.

  • терминал: помните, что при закрытии терминала (основанный на конфигурации по умолчанию) будет создан новый файл .bash_history.

Или вы можете вызвать пользовательскую функцию, если вы сохраните необходимые функции в файле, связанном с bashrc .. вы можете отредактировать сам bashrc, если вам нравится размещать свой код там, но следующие примеры находятся в отдельном файле

Честно говоря, это не полезно для меня, но если вы хотите удалить историю команд перед выходом, вы можете сделать это:

.bash_custom # это мой пользовательский файл

 blotout() { HISTSIZE=0 rm $HOME/.bash_history exit } 

затем в нижней части добавить имя и путь к файлу
.bashrc # это файл конфигурации для bash (я думаю)

 # existent code #... #.. # import user customizations source $HOME/.bash_custom 

и это все.

НО, чтобы сделать именно то, что вам нужно, вам просто нужна эта функция в вашем пользовательском файле и связать ее:

 refresh() { tput reset H=HISTSIZE HISTSIZE=0 HISTSIZE=H } 

Или просто поместите функцию в .bashrc, если хотите, но таким образом вам, вероятно, понадобится инструкция экспорта после того, как функция я не уверен, и если файл обновлен, возможно, потеряли ваши функции. Я тоже не уверен в этом: D.
Помните, что вам нужно перезапустить терминал при редактировании .bashrc или вашего «пользовательского» файла.

Добавлен в ~/.inputrc для привязки полной очистки к F12 :

 "\e[24~":'!echo -ne \047\\0033\\0143\047\r' 

Для меня, используя PuTTY против CentOS 7, ясный оставляет только четкую команду в прокрутке, но запустив «clear && clear», два экземпляра команды clear в то же время полностью очищает прокрутку и оставляет меня без полосы прокрутки. Попробуй это. Это странное решение, но ни один из них здесь не очистил прокрутку, и это действительно так.

  • Konsole работает, gnome-terminal нет?
  • Как сделать загрузочный вывод подробным?
  • Копирование текста с одного терминала на другой
  • Ошибка при добавлении пользователя в группу колес в CentOS 7
  • Перенаправление сообщений об ошибках syslogd в журнал ошибок или в нулевой файл?
  • Доступ к Windows Box из терминала Linux SSH
  • Ошибка при импорте профиля Compiz из терминала
  • Почему команда `users` возвращает разных пользователей в зависимости от того, ssh я или открываю новый терминал?
  • Терминал Ubuntu закрывается после запуска скрипта
  • Сценарий интерпретатора сценариев CentOS 7
  • Заголовок вкладки терминала не работает корректно с помощью MacPorts bash
  • Interesting Posts

    удаление пробелов и номеров

    Как настроить маску подсети сети с помощью systemd-networkd?

    Принуждение emacs для запуска с помощью `-nw` при вызове из терминала

    Как отображать команды, выполняемые через ssh и их IP-адрес пользователя?

    Linux buffer (1) программа – замена? полезно?

    Есть ли способ сбросить информацию CPUID CPU?

    Как автоматически проверить файл значков gpg без открытого ключа (с загрузкой открытого ключа), подтвердить и запустить следующий шаг

    Предупреждение о том, что addgroup пытается создать уже существующую группу пользователей

    Keychain SSH Key Manager предотвращает регистрацию SFTP на CentOS

    Как изменить суффикс файлов

    максимум столбца с совпадающим идентификатором

    Дефрагментация сбоя RAM / OOM

    Пробуждение от спящего режима спящего режима (Linux Mint 18 Cinnamon)?

    Как ключи передаются на emacs и терминал gnome?

    Обрезка одной части, если она равна другой части?

    Linux и Unix - лучшая ОС в мире.