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

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

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

Итак, как вы очищаете содержимое терминала в Linux для реального?

10 ответов


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

printf "3c"

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

вы, вероятно,захотите определить псевдоним...

alias cls='printf "3c"'

объяснение

3 == \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"'

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


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


tput reset

это сделает трюк!


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

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

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


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

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

Я не считаю эту информацию просто передаю.


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

reset

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

ура: D


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

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


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

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

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


echo -e "\e[3J"

это работает в машинах Linux


скомпилировать это приложение.

#include <iostream>
#include <cstring>

int main()
{
  char str[1000];
  memset(str, '\n', 999);
  str[999] = 0;
  std::cout << str << std::endl;
  return 0;
}