Wyczyść ekran terminala

Użycie komendy clear Na terminalu tylko zmyli użytkownika do myślenia, że ekran został wyczyszczony...podczas przewijania za pomocą myszy nadal można zobaczyć wyniki z poprzednich poleceń. To utrudnia życie, gdy toniesz w tsunami tekstu.

Różne rozwiązania (escape code itp.), które można znaleźć w Internecie są tylko odmianami tego, co już robi polecenie clear.

Więc jak wyczyścić zawartość terminala w Linuksie na serio?

Author: jww, 2011-03-20

10 answers

Użyj poniższego polecenia, aby wyczyścić ekran zamiast tylko dodawać nowe linie...

printf "\033c"

Tak, to 'printf' w wierszu polecenia bash.

Prawdopodobnie będziesz chciał zdefiniować alias...

alias cls='printf "\033c"'

Wyjaśnienie

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

Więc to staje się <ESC>c, który jest kodem wyjścia VT100 do zresetowania terminala. tutaj jest trochę więcej informacji na temat kodów ewakuacyjnych terminala.

Edit

Oto kilka innych sposobów to...

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

Powyższe nie działa na konsoli KDE (zwanej konsolą), ale jest nadzieja! Użyj następującej sekwencji poleceń, aby wyczyścić ekran i bufor przewijania wstecz...

clear && echo -en "\e[3J"

Lub użyj następującego aliasu w KDE...

alias cls='clear && echo -en "\e[3J"'

Dostałem polecenie przewijania wstecz z tutaj .

 434
Author: Sandeep Datta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:18:25

Spróbuj reset. Czyści ekran terminala, ale do poprzednich poleceń można uzyskać dostęp za pomocą strzałki lub dowolnego powiązanego klawisza.

 178
Author: vpit3833,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-20 06:13:42
tput reset
To wystarczy!
 34
Author: Community,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-06 14:37:06

Żadna z przeczytanych odpowiedzi nie zadziałała w PuTTY, więc znalazłem komentarz do tego artykułu :

W ustawieniach Twojego połączenia, pod "Window- > Behavior" znajdziesz ustawienie "System menu Appears on ALT alone". Następnie CTRL + L, ALT, l (to małe litery L) przewinie ekran, a następnie wyczyści bufor przewijania.

(dotyczy OP, ponieważ łączę się z serwerem Ubuntu, ale również widocznie istotne bez względu na to, co działa twój serwer.)

 6
Author: TecBrat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-14 08:24:14

Poniższy link wyjaśni, jak sprawić, by alias stał się trwały, abyś nie musiał go wpisywać.

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

Są to kroki opisane pod tym linkiem.

  1. vim ~/.bashrc lub gedit ~/.bashrc lub jaki edytor tekstu Lubisz
  2. Umieść alias cls= 'printf" \033c" ' na dole pliku
  3. Zapisz i zakończ
  4. . ~/.bashrc (i tak powinno być miejsce pomiędzy . i ~)
  5. Teraz sprawdź, czy wszystko działa!

Nie przypisuję sobie tej informacji po prostu przekazując ją.

 6
Author: N1mr0d,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-12 17:14:43

Moje ulubione ludzkie polecenie to:

reset
Testowane na xterm i VT100. Pomaga również po nieprawidłowym zakończeniu programu. Zachowuje bufor poleceń, więc strzałka w górę będzie przełączać poprzednie polecenia. Pozdrawiam :D [2]}
 5
Author: elbedoit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-13 07:54:51

Z KDE i Ubuntu 12.04 LTS i terminalem "Konsole", żadna z zamieszczonych odpowiedzi nie działa. Jednak naciśnięcie domyślnego skrótu klawiaturowego CTRL + Shift+X działa! Źródło:

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

 3
Author: The111,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-12 20:47:23

Wiem, że rozwiązanie wykorzystujące drukowanie nowych linii nie jest zbytnio obsługiwane, ale jeśli Wszystko inne zawiedzie, dlaczego nie? Zwłaszcza, gdy ktoś działa w środowisku, w którym ktoś inny może być w stanie zobaczyć ekran, ale nie jest w stanie keylog. Jednym z możliwych rozwiązań jest wtedy następujący alias:

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

Następnie, aby" wyczyścić " bieżącą zawartość ekranu (a raczej je ukryć), po prostu wpisz c+Enter w terminalu.

 0
Author: nemesisfixx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-31 17:11:51
echo -e "\e[3J"

To działa na maszynach Linuksowych

 -1
Author: nithin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 12:05:13

Skompiluj tę aplikację.

#include <iostream>
#include <cstring>

int main()
{
  char str[1000];
  memset(str, '\n', 999);
  str[999] = 0;
  std::cout << str << std::endl;
  return 0;
}
 -50
Author: Max,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-09 06:10:25