it-swarm.com.ru

Очистить экран терминала по-настоящему

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

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

Так как же очистить содержимое терминала в Linux по-настоящему?

341
Autodidact

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

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"'

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

469
Autodidact

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

194
vpit3833
tput reset

Это сделает свое дело!

44
user1348669

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

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

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

7
TecBrat

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

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. теперь проверьте, все ли работает!

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

6
N1mr0d

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

reset

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

ура: D

5
elbedoit

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

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

3
The111

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

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

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

2
nemesisfixx

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

1
Dai