Очистить экран терминала для реального
Использование команды clear
на терминале только вводит пользователя в заблуждение, что экран очищен... вы все равно можете видеть результаты предыдущих команд при прокрутке с помощью мыши. Это усложняет жизнь, когда вы тонете в цунами текста.
Различные решения (escape-код и т.д.), Которые можно найти в Интернете, являются лишь вариациями того, что команда clear уже делает.
Так как же очистить содержимое терминала в Linux по-настоящему?
Ответы
Ответ 1
Используйте следующую команду, чтобы сделать чистый экран вместо простого добавления новых строк...
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"'
Я получил команду очистки прокрутки назад здесь.
Ответ 2
Попробуйте reset
. Он очищает экран терминала, но к предыдущим командам можно получить доступ по стрелке или любому ключу, которое у вас есть.
Ответ 3
tput reset
Это сделает свое дело!
Ответ 4
Ни один из ответов, которые я читал, не работал в PuTTY, поэтому я нашел комментарий к этой статье:
В настройках вашего подключения в разделе "Окно- > Поведение" вы найдете параметр "Системное меню появляется только на ALT". Затем CTRL + L, ALT, l (нижний регистр L) прокрутит экран, а затем очистит буфер прокрутки.
(относится к OP, потому что я подключаюсь к серверу Ubuntu, но также, по-видимому, имеет значение независимо от того, что работает ваш сервер.)
Ответ 5
В следующей ссылке объясняется, как сделать этот псевдоним постоянным, поэтому вам не нужно набирать его.
https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias
Это шаги, подробно описанные в этой ссылке.
- vim ~/.bashrc или gedit ~/.bashrc или какой текстовый редактор вам нравится
- введите псевдоним cls = 'printf'\033c "'в нижней части файла
- сохранить и выйти
- . ~/.bashrc(и да должно быть пробел между. и ~)
- Теперь проверьте, все ли работает!
Я не беру на себя ответственность за эту информацию, просто передавая ее.
Ответ 6
Моя любимая дружеская команда для этого:
reset
Проверено на xterm и VT100. Это также помогает после ненормального завершения программы.
Сохраняет буфер команд, поэтому стрелка вверх будет выполнять предыдущие команды.
приветствия: D
Ответ 7
С KDE и Ubuntu 12.04 LTS и терминалом "Konsole" ни один из опубликованных ответов не работает. Тем не менее, нажатие сочетания клавиш CTRL + Shift + X действительно работает! Источник:
https://bugs.kde.org/show_bug.cgi?id=288913
Ответ 8
Я знаю, что решение, использующее печать новых строк, не очень поддерживается, но если ничего не помогает, почему бы и нет? Особенно, когда вы работаете в среде, где кто-то еще может видеть экран, но не может вести журнал. Одно из возможных решений - следующий псевдоним:
alias c="printf '\r\n%.0s' {1..50}"
Затем, чтобы "убрать" текущее содержимое экрана (или, скорее, скрыть его), просто наберите c+Enter
в терминале.
Ответ 9
Просто добавить, что буфер прокрутки tmux
не очищается с помощью clear
, reset
или printf
. Вам необходимо :clear-history
. Смотрите ссылку.
Ответ 10
echo -e "\e[3J"
Это работает в Linux Machines
Ответ 11
Скомпилируйте это приложение.
#include <iostream>
#include <cstring>
int main()
{
char str[1000];
memset(str, '\n', 999);
str[999] = 0;
std::cout << str << std::endl;
return 0;
}