Как действительно очистить терминал?

Я могу выполнить команду clear или нажать Ctrl + L , чтобы очистить текущий терминал Ubuntu, но это просто смещает предыдущий вывод вверх, и если вы используете прокрутку мыши или с помощью клавиш PgUP и PgDown трудно различить, где заканчивается вывод предыдущей команды и начинается вывод текущей команды.

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

469
задан 5 September 2017 в 21:26

12 ответов

Да, команда, которую Вы ищете,

reset

В отличие от clear, или Ctrl+L, reset на самом деле полностью повторно инициализирует терминал, вместо того, чтобы просто очистить экран. Однако это не повторно инстанцирует оболочки (удар). Это означает, что состояние удара совпадает с прежде, так же, как если бы Вы просто очищали экран.

Как @Wallacoloo упоминания в комментариях, эта команда должна сделать то же самое более быстро:

tput reset

Из других ответов:

  • Можно установить Горячую клавишу к reset терминал, как объяснено towolf.

  • Если Вы выполняете Kubuntu, и Вашим терминалом является Konsole, необходимо пойти для Редактирования → Четкая история с тех пор reset не работает тот же путь там, как UncleZeiv отмечает.

463
ответ дан 5 September 2017 в 21:26

Я искал это какое-то время и нашел гения, который опубликовал это:

clear && printf '\e[3J'

Очищает весь экранный буфер, очень чистый. Работает на OS X и считает, что работает нормально на большинстве * nix терминалов.

Для любопытных, эта часть '\e[3J' является командой выхода из терминала.

0
ответ дан 5 September 2017 в 21:26

выполните эту команду:

reset

Это имеет тот же эффект, что и запуск нового терминала.

0
ответ дан 5 September 2017 в 21:26

Вы также можете назначить ярлык в gnome-терминал, перейдя в Правка → Сочетания клавиш . Я использую Shift + Ctrl + Alt + C .

reset and clear shortcut

0
ответ дан 5 September 2017 в 21:26

Ну, это действительно зависит, например, если вы используете Konsole, даже reset не мешает вам прокручивать первую строку. В этом случае вы должны использовать некоторые функции конкретного терминала, который вы используете. Для Konsole это Edit > Clear History.

0
ответ дан 5 September 2017 в 21:26

Мой любимый это printf "\ec". Это также может быть printf "\033c" или printf "\x1bc". Это escape-последовательность ANSI, которая чудесным образом очищает экран и буфер для вывода терминала (кажется, для большинства стандартных терминалов, с которыми я работал, - я знаю, что он работает в таких, как gnome-терминал, терминатор, xterm и т. Д. На Ubuntu-подобном Linux)

Я знаю, что это работает в Linux Mint и Ubuntu 14.04, поэтому я не знаю, почему люди добавляют и готовят такие вещи, как clear && echo -ne "\033c. printf "\ec" всегда работал для меня.

Кроме того, в моем .bashrc у меня есть такая привязка:

bind -x '"\C-t": printf "\ec"';

Теперь я постоянно нажимаю ctrl t . [ 1110]

0
ответ дан 5 September 2017 в 21:26

Я обнаружил, что с Kubuntu довольно успешно:

alias clc="echo -en '\033c\033[3J'"

Вы можете использовать cls, чтобы придерживаться традиции Windows, использовать версию Matlab clc или одну из своих собственных , Удачи!

0
ответ дан 5 September 2017 в 21:26

Если вы используете yakuake или Konsole, попробуйте Ctrl + Shift + K .

Источник: https://bugs.kde.org/show_bug.cgi?id=309008

0
ответ дан 5 September 2017 в 21:26

В качестве альтернативы reset, вы можете сделать echo -e "\033c" или иметь в своем .bashrc что-то вроде alias cls="echo -ne '\033c'"

В UNIX / Linux StackExchange есть тема на эту тему: Как очистить терминал полностью? (unix.stackexchange.com) , а также SuperUser: Очистить терминал с помощью сочетания клавиш (superuser.com) .

0
ответ дан 5 September 2017 в 21:26

Перекрестная публикация моего ответа из stackoverflow .

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

printf "\033c"

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

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

alias cls='printf "\033c"'

Объяснение

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

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

0
ответ дан 5 September 2017 в 21:26

Еще одна альтернатива ответу @ Hibou57:

# The Octal Way
alias clear="echo -e '\033c\c'"

ИЛИ

# The Hex Way
alias clear="echo -e '\x1b\c'"

В основном это будет иметь точно такой же эффект, он напечатает символ ^[ (который очищает ваш терминал) и не выводит завершающую новую строку.

0
ответ дан 5 September 2017 в 21:26

Вот все способы, которыми можно очистить терминальный экран в Unix:

clear               # only clear visible screen
clear && clear      # clear buffer as well
tput clear          # same as clear but by sending escape seq
reset               # clear + reset internal terminal state + 1sec delay
tput reset          # same as reset but without 1sec delay
stty sane           # don't clear screen but reset some terminal options
echo -e "\033c"     # same as tput reset but hardcoded escape seq
printf "\033c"      # same as tput reset but hardcoded escape seq
setterm -reset      # same as tput reset, setterm has friendlier commands
1
ответ дан 7 December 2019 в 12:27

Другие вопросы по тегам:

Похожие вопросы: