Как действительно очистить терминал?
Я могу выполнить команду clear
или нажать Ctrl + L , чтобы очистить текущий терминал Ubuntu, но это просто сдвигает предыдущий вывод вверх и если вы используете клавиши прокрутки мыши или PgUP и PgDown , трудно отличить, где заканчивается вывод предыдущей команды и выводится текущая команда.
Есть ли способ действительно очистить терминал, чтобы я не видел предыдущие результаты команды?
11 ответов
Да, команда, которую вы ищете,
Сброс
В отличие от clear
или Ctrl + L , reset
фактически полностью повторно инициализирует < href = "https://askubuntu.com/questions/14866/what-are-shells/14870#14870"> вместо того, чтобы просто очищать экран. Однако он не будет повторно создавать экземпляр оболочки (bash). Это означает, что состояние bash совпадает с предыдущим, как если бы вы просто очищали экран.
Как отмечает @Wallacoloo в комментариях, эта команда должна делать то же самое быстрее:
сброс tput
Из других ответов:
-
Вы можете установить Клавиатурный ярлык на
сбросить
терминал, как объясняется towolf . -
Если вы используете Kubuntu , а ваш терминал - Konsole, вам нужно перейти в Изменить â † 'Очистить историю , так как
reset
работает не так, как отмечает UncleZeiv .
Я искал это некоторое время, и я нашел гения, который опубликовал это:
clear & & & & & printf '\ e [3J'
Очищает весь буфер экрана, очень чистый. Работает на OS X и полагает, что он отлично работает на большинстве терминалов * nix.
Любопытно, что эта часть '\ e [3J'
является командой вывода терминала.
Вы также можете назначить ярлык в gnome-терминале, перейдя в Изменить â † «Ярлыки клавиш . Я использую Shift + Ctrl + Alt + C .
выполните следующую команду:
Сброс
Это имеет тот же эффект, что и запуск нового терминала.
Переадресовать мой ответ из stackoverflow .
Используйте следующую команду, чтобы сделать чистый экран вместо простого добавления новых строк ...
printf "\ 033c"
да, это «printf» в приглашении bash.
Вы, вероятно, захотите определить псевдоним, хотя ...
alias cls = 'printf "\ 033c"'
Объяснение
\ 033 == \ x1B == 27 == ESC
Таким образом, это становится <ESC> c
, который является кодом возврата VT100 для сброса терминала. Здесь - это дополнительная информация о кодах выхода терминала.
Изменить
Вот несколько других способов сделать это ...
printf "\ ec" # \ e является ESC в bash
echo -en "\ ec" #thanks @Jonathon Reinhart.
# -e Включить интерпретацию обратных слэшей
# -n Не выводить новую строку
KDE
Вышеописанное не работает на консоли KDE (так называется Konsole), но есть надежда! Используйте следующую последовательность команд, чтобы очистить экран и буфер прокрутки ...
clear & & & echo -en "\ e [3J"
Или, возможно, используйте следующий псевдоним в KDE ...
alias cls = 'clear & & & & echo -en "\ e [3J" '
Я получил команду очистки прокрутки назад от здесь .
Ну, это действительно зависит, если вы используете Konsole
, например, даже reset
не мешает вам прокручивать предыдущую строку. В этом случае вам нужно использовать некоторую функцию конкретного терминала, который вы используете. Для Konsole
это Edit> Очистить историю
.
Моим любимым является printf "\ ec"
. Это также может быть printf "\ 033c"
или printf "\ x1bc"
. Это ansi escape-последовательность, которая чудесным образом очищает экран и буфер для вывода терминала (для большинства стандартных терминалов, с которыми я работал, кажется, что я знаю, что он работает как gnome-terminal, terminator, xterm и т. Д. На Ubuntu-like версии Linux)
Я знаю, что это работает в Linux Mint и Ubuntu 14.04, поэтому я не знаю, почему люди добавляют и преподают такие вещи, как clear & & echo -ne "\ 033c
. printf" \ ec "
всегда работал для меня.
Кроме того, в моем .bashrc
у меня есть привязка вроде этого:
bind -x '"\ C-t": printf "\ ec"';
Теперь я нажимаю ctrl t все время.
Я нашел следующее, чтобы быть успешным с Kubuntu:
alias clc = "echo -en '\ 033c \ 033 [3J'"
Вы можете использовать cls
, чтобы поддерживать традицию Windows, использовать версию Matlab clc
или одну из ваших собственных. Удачи!
В качестве альтернативы reset
вы можете выполнить echo -e "\ 033c"
или иметь в своем .bashrc
, что-то вроде alias cls = "echo -ne '\ 033c'"
В UNIX /Linux StackExchange есть поток: Как полностью очистить терминал ? (Unix.stackexchange.com) , а также SuperUser: Очистить терминал, используя сочетание клавиш (superuser.com) .
Другая альтернатива ответу @ Hibou57:
# Октальный путь
alias clear = "echo -e '\ 033c \ c'"
ИЛИ
# Шестигранный путь
alias clear = "echo -e '\ x1b \ c'"
В основном это будет иметь точно такой же эффект, он выведет символ ^ [
(который очистит ваш терминал) и не выводит завершающую новую строку.
Если вы используете yakuake или Konsole, попробуйте CTRL + Сдвиг + K .