Я могу выполнить команду clear
или нажать Ctrl kbd> + L kbd>, чтобы очистить текущий терминал Ubuntu, но это просто смещает предыдущий вывод вверх, и если вы используете прокрутку мыши или с помощью клавиш PgUP kbd> и PgDown kbd> трудно различить, где заканчивается вывод предыдущей команды и начинается вывод текущей команды.
Есть ли способ действительно очистить терминал, чтобы я не видел результаты предыдущих команд?
Да, команда, которую Вы ищете,
reset
В отличие от clear
, или Ctrl+L, reset
на самом деле полностью повторно инициализирует терминал, вместо того, чтобы просто очистить экран. Однако это не повторно инстанцирует оболочки (удар). Это означает, что состояние удара совпадает с прежде, так же, как если бы Вы просто очищали экран.
Как @Wallacoloo упоминания в комментариях, эта команда должна сделать то же самое более быстро:
tput reset
Из других ответов:
Можно установить Горячую клавишу к reset
терминал, как объяснено towolf.
Если Вы выполняете Kubuntu, и Вашим терминалом является Konsole, необходимо пойти для Редактирования → Четкая история с тех пор reset
не работает тот же путь там, как UncleZeiv отмечает.
Я искал это какое-то время и нашел гения, который опубликовал это:
clear && printf '\e[3J'
Очищает весь экранный буфер, очень чистый. Работает на OS X и считает, что работает нормально на большинстве * nix терминалов.
Для любопытных, эта часть '\e[3J'
является командой выхода из терминала.
выполните эту команду:
reset
Это имеет тот же эффект, что и запуск нового терминала.
Вы также можете назначить ярлык в gnome-терминал, перейдя в Правка → Сочетания клавиш . Я использую Shift kbd> + Ctrl kbd> + Alt kbd> + C kbd>.
Ну, это действительно зависит, например, если вы используете Konsole
, даже reset
не мешает вам прокручивать первую строку. В этом случае вы должны использовать некоторые функции конкретного терминала, который вы используете. Для Konsole
это Edit > Clear History
.
Мой любимый это 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 kbd> t kbd>. [ 1110]
Я обнаружил, что с Kubuntu довольно успешно:
alias clc="echo -en '\033c\033[3J'"
Вы можете использовать cls
, чтобы придерживаться традиции Windows, использовать версию Matlab clc
или одну из своих собственных , Удачи!
Если вы используете yakuake или Konsole, попробуйте Ctrl kbd> + Shift kbd> + K kbd>.
В качестве альтернативы reset
, вы можете сделать echo -e "\033c"
или иметь в своем .bashrc
что-то вроде alias cls="echo -ne '\033c'"
В UNIX / Linux StackExchange есть тема на эту тему: Как очистить терминал полностью? (unix.stackexchange.com) , а также SuperUser: Очистить терминал с помощью сочетания клавиш (superuser.com) .
Перекрестная публикация моего ответа из 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 (называемой Konsole), но есть надежда! Используйте следующую последовательность команд для очистки экрана и буфера обратной прокрутки ...
clear && echo -en "\e[3J"
Или, возможно, использовать следующий псевдоним в KDE ...
alias cls='clear && echo -en "\e[3J"'
Я получил команду очистки прокрутки из здесь .
Еще одна альтернатива ответу @ Hibou57:
# The Octal Way
alias clear="echo -e '\033c\c'"
ИЛИ
# The Hex Way
alias clear="echo -e '\x1b\c'"
В основном это будет иметь точно такой же эффект, он напечатает символ ^[
(который очищает ваш терминал) и не выводит завершающую новую строку.
Вот все способы, которыми можно очистить терминальный экран в 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