Очистить экран терминала по-настоящему - PullRequest
345 голосов
/ 20 марта 2011

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

Различные решения (escape-код и т. Д.), Которые можно найти в Интернете, являются лишь вариациями того, что команда clear уже делает.

Так как же очистить содержимое терминала в Linux?на самом деле?

Ответы [ 11 ]

471 голосов
/ 20 марта 2011

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

printf "\033c"

да, это 'printf' в приглашении bash.

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

alias cls='printf "\033c"'

Пояснение

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

Таким образом, это становится <ESC>c, который является escape-кодом 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"'

Я получилкоманда очистки прокрутки от здесь .

195 голосов
/ 20 марта 2011

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

44 голосов
/ 20 июля 2014
tput reset

Это поможет!

7 голосов
/ 16 апреля 2014

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

В настройках вашего подключения в разделе "Окно-> Поведение" вы "найду настройку «Системное меню появляется только на ALT».Затем CTRL + L, ALT, l (это строчная буква L) прокрутит экран и затем очистит буфер прокрутки.

(относится к OP, потому что я подключаюсь к серверу Ubuntu, но, по-видимому, также важно, независимо от того, на каком сервере работает).

6 голосов
/ 29 января 2014

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

https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias

Эти шаги подробно описаны по этой ссылке.

  1. vim ~ / .bashrc или gedit ~ / .bashrc или любой другой текстовый редактор, который вам нравится
  2. поместите псевдоним cls = 'printf "\ 033c"' внизу файла
  3. сохранить и выйти
  4. .~ / .bashrc (и да, между. и ~ должен быть пробел)
  5. Теперь проверьте, все ли работает!

Я не беру в кредит эту информацию, просто передав ееа.

5 голосов
/ 13 февраля 2015

Моя любимая дружелюбная команда для этого:

reset

Проверено на xterm и VT100. Это также помогает после ненормального завершения программы. Сохраняет буфер команд, поэтому стрелка вверх будет переключаться между предыдущими командами.

ура: D

3 голосов
/ 13 декабря 2013

С KDE и Ubuntu 12.04 LTS и терминалом "Konsole" ни один из опубликованных ответов не работает.Однако нажатие сочетания клавиш по умолчанию CTRL + Shift + X работает!Источник:

https://bugs.kde.org/show_bug.cgi?id=288913

2 голосов
/ 31 августа 2018

Я знаю, что решение, использующее печать новых строк, не очень поддерживается, но если ничего не помогает, почему бы и нет? Особенно, когда вы работаете в среде, где кто-то еще может видеть экран, но не может вести журнал. Одним из возможных решений является следующий псевдоним:

alias c="printf '\r\n%.0s' {1..50}"

Затем, чтобы «очистить» текущее содержимое экрана (или, скорее, скрыть его), просто наберите c+Enter на терминале.

1 голос
/ 13 мая 2019

Просто добавьте, что буфер прокрутки tmux не очищается с clear, reset или printf. Вам нужно :clear-history. См ссылка .

0 голосов
/ 04 июля 2018
echo -e "\e[3J"

Это работает в Linux Machines

...