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



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



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



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

703   10  

10 ответов:

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

printf "3c"

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

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

alias cls='printf "3c"'

объяснение

3 == \x1B == 27 == ESC

так что это становится <ESC>c который является VT100 escape-код для сброса терминала. здесь еще немного информации о терминале escape коды.

Edit

вот несколько других способов сделать это...

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

Это будет делать трюк!

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

в настройках вашего соединения, в разделе " Окно - > поведение "вы найдете настройку"системное меню появляется только на 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;
}

Comments

    Ничего не найдено.