Когда мы используем clear
команду или Ctrl+ Lв терминале, он очищает терминал, но мы все еще можем прокрутить назад, чтобы просмотреть последние использованные команды. Есть ли способ полностью очистить терминал?
Когда мы используем clear
команду или Ctrl+ Lв терминале, он очищает терминал, но мы все еще можем прокрутить назад, чтобы просмотреть последние использованные команды. Есть ли способ полностью очистить терминал?
Ответы:
Вы можете использовать tput reset
.
Кроме того, reset
и tput reset
вы можете использовать следующий скрипт оболочки.
#!/bin/sh
echo -e \\033c
Это отправляет управляющие символы Esc-C
на консоль, которая сбрасывает терминал.
Ключевые слова Google: последовательности управления консоли Linux
man console_codes
говорит:
Последовательность ESC c вызывает сброс терминала, что и требуется, если весь экран искажен. Часто рекомендуемый "echo ^ V ^ O" только делает G0 текущим, но нет никакой гарантии, что G0 указывает на таблицу a). В некоторых дистрибутивах есть программа reset (1), которая просто выполняет «echo ^ [c» ». Если ваша запись terminfo для консоли правильная (и имеет запись rs1 = \ Ec), то также будет работать «сброс tput».
tput reset
быстрее, чем reset
в Ubuntu 16.04, по крайней мере
Я знаю, что вы находитесь на терминале gnome, но я подумал, что отвечу советом для тех, кто может быть (как я) на Mac:
Если вы используете Terminal.app
или, iTerm.app
то Control+L
прокрутите вверх, чтобы терминал выглядел пустым, но на Cmd+K
самом деле сбросит терминал / сбросит прокрутку назад.
Или, если вы можете установить настройки клавиатуры для своего терминала, вы можете назначить что-то вроде Ctrl+K
ввода, echo -e \\033c
как было упомянуто выше.
Cmd+K
это все, что я хотел. ты
Ответ Anthon работает в KDE Konsole, но не urxvt. В urxvt я использовал сброс в течение нескольких лет, чтобы очистить прокрутку (вместе со всеми другими вещами, которые он делает), и не был удовлетворен тем, что он не работал в Konsole. Так что теперь для Linux у меня есть новый псевдоним:
alias allclear='clear; echo -e "\033c\e[3J"'
Но это не работает на OS X.
tput reset
не работает ни в каком контексте AFAICT.
В KDE Konsole ctrl- shift- kочищает прокрутку (включая текущую подсказку оболочки, поэтому она полностью пуста). В терминале iTerm или Apple на OS X cmd- shift- kтакже очищает прокрутку. Чтобы добавить эту функцию в urxvt, добавьте ее в ~ / .Xresources:
urxvt*keysym.C-S-K: command:\033c
allclear(){
`echo" Очистка терминала и прокрутка ... "` `sleep 1.5`` clear; echo -e "\ 033c \ e [3J" ` }
` Edit: Не удается заставить работать форматирование. Если кто-нибудь сможет отредактировать это так, чтобы оно было читабельным, я был бы признателен.
Я сопоставил F12очистить экран в каждой из следующих оболочек: bash , csh и fish shell . Моя команда отличается от всех предыдущих, потому что она сохраняет все, что вы уже набрали в текущей строке.
(Примечание: все конфигурации ниже зависят от терминала, но я надеюсь, что они будут работать практически везде)
Откройте файл ~/.inputrc
и вставьте следующую строку:
"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"
Чтобы получить новую привязку ключей, откройте новый терминал или введите Ctrl+ Xзатем Ctrl+, Rчтобы перезагрузить файл .inputrc в текущем терминале.
Пояснение
Файл ~ / .inputrc контролирует привязки клавиш терминала bash.
О линии:
"\e[24~"
, отображает ключ F12.C-k
( Ctrl+ X) Очищает уничтожения кольца (скопировать и прошлое памяти в Bash).C-u
( Ctrl+ U) Посылает текущую строку в глушения кольцо, и удалить его.echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n
Посылает два сгруппированных команд на терминал. Они разделены ;
и завершены \n
.
echo -ne '\\ec\\e[3J'
Очищает экран.history -d $((HISTCMD-1))
избегает этих двух команд от входа в историю.C-y
( Ctrl+ Y) Вставляет убить кольцо , хранящееся в C-u
команде.C-?
( Ctrl+ ?) Эквивалентно Backspaceи удаляет пространство , вставленный в шаге 3 выше.Рекомендации:
Введите команду ниже.
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
Он также может быть вставлен в ваш .cshrc
файл для загрузки привязки ключа к каждому новому терминалу.
(Да, это намного проще, чем в bash)
Введите команду ниже.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Вы можете редактировать и сохранять функцию fish_user_key_bindings
для загрузки привязки клавиш к каждому новому терминалу.
(Да, это намного проще, чем в bash)
[Ubuntu 16.04]
.Bash_history файл создается в домашнем каталоге пользователя , как только терминал закрыт
Это полезно, но вы можете удалить его, если хотите. Тем не менее, он будет создаваться каждый раз, когда вы закончите пользоваться терминалом.
Вы можете удалить его вручную из:
браузер ваших файлов.
терминал: помните, что новый файл .bash_history будет создан при закрытии терминала (в соответствии с его конфигурацией по умолчанию).
Или вы можете вызвать пользовательскую функцию, если сохраните нужные вам функции в файле, связанном с bashrc. Вы можете отредактировать сам bashrc, если хотите поместить свой код туда, но следующие примеры находятся в отдельном файле.
Честно говоря, это не полезно для меня, но если вы хотите удалить историю команд перед выходом, вы можете сделать это:
.bash_custom # Это мой пользовательский файл
blotout() {
HISTSIZE=0
rm $HOME/.bash_history
exit
}
затем в нижней части добавить имя и путь к моему файлу
.bashrc # это файл конфигурации для bash (я думаю)
# existent code
#...
#..
# import user customizations
source $HOME/.bash_custom
и это все.
НО, чтобы сделать именно то, что вы хотите, вам просто нужна эта функция в вашем пользовательском файле и связать ее:
refresh() {
tput reset
H=HISTSIZE
HISTSIZE=0
HISTSIZE=H
}
Или просто поместите функцию в .bashrc, если хотите, но таким образом вам, вероятно, понадобится оператор экспорта после функции, я не уверен, и если файл обновлен, вероятно, потерял ваши функции ... Я тоже не уверен в этом: D
Помните, что вы должны перезапустить терминал, когда редактируете .bashrc или ваш «пользовательский» файл.
Для меня, используя PuTTY против CentOS 7, команда clear оставляет в прокрутке только команду clear, но при запуске «clear && clear», два экземпляра команды clear одновременно, полностью очищает прокрутку и оставляет меня без полосы прокрутки. Попробуй это. Это странное решение, но ни один из них не прояснил прокрутку, которая эффективно, и это делает.
В Fedora 30 удаление истории выполняется путем удаления файла $ HOME / .bash_history. Самый простой способ очистить файл истории терминала с помощью клавиатуры:
nautilus
и нажмите Enterклавишу, чтобы открыть приложение (GNOME) Files (которое ранее называлось Nautilus)..bash_history
(который должен появиться в строке поиска, если набран сразу после открытия окна; в противном случае к панели поиска можно получить доступ через Ctrl+ L).cat /dev/null > ~/.bash_history && history -c && exit
history -c
был представлен в двух предыдущих ответах, и они были удалены за неправильные ответы на вопрос. (2) Хотя закрытие окна терминала (возможно) сотрет память терминала о предыдущих командах, далеко не очевидно, что ОП хочет это сделать. ... И PS Одна exit
команда не гарантирует закрытия окна терминала.