Очистить экран терминала для реального

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

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

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

334
20 марта '11 в 9:10
источник поделиться
11 ответов

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

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

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

466
20 марта '11 в 9:14
источник

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

190
20 марта '11 в 9:13
источник
tput reset

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

43
20 июля '14 в 14:19
источник

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

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

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

7
16 апр. '14 в 17:08
источник

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

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

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

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

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

6
29 янв. '14 в 20:55
источник

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

reset

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

приветствия: D

5
13 февр. '15 в 10:54
источник

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

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

3
12 дек. '13 в 23:47
источник

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

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

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

1
31 авг. '18 в 20:11
источник

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

0
13 мая '19 в 5:16
источник
echo -e "\e[3J"

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

-1
04 июля '18 в 15:05
источник

Скомпилируйте это приложение.

#include <iostream>
#include <cstring>

int main()
{
  char str[1000];
  memset(str, '\n', 999);
  str[999] = 0;
  std::cout << str << std::endl;
  return 0;
}
-50
09 дек. '11 в 9:10
источник

Посмотрите другие вопросы по меткам или Задайте вопрос