Коли ми використовуємо 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 викликає скидання терміналу, що саме ви хочете, якщо на екрані все пошкоджено. Часто "ехо ^ V ^ O" буде робити тільки G0 поточним, але немає гарантії, що точки G0 в таблиці a). У деяких дистрибутивах є скидання програми (1), яке просто виконує "ехо ^ [с". Якщо ваш термінальний запис для консолі правильний (і має запис rs1 = \ Ec), також "tput reset" також буде працювати.
tput reset
швидше, ніж reset
в Ubuntu 16.04, принаймні
Я знаю, що ви перебуваєте на терміналі gnome, але я подумав, що відповім порадою для інших, хто може бути (як я) на Mac:
Якщо ви використовуєте Terminal.app
або iTerm.app
потім Control+L
буде прокручуватися вгору, так що термінал виглядає порожнім, але Cmd+K
фактично скине термінал / очистити прокрутку назад.
Або якщо ви можете встановити налаштування клавіатури для свого терміналу, можливо, ви зможете призначити щось на зразок Ctrl+K
введення, echo -e \\033c
як було зазначено вище.
Cmd+K
все, що я хотів. ty
Відповідь Антона працює у KDE Konsole, але не urxvt. У urxvt я кілька років використовував скидання, щоб очистити прокрутку (разом з усіма іншими речами, які вона робить), і не був впевнений, що це не працює в Консолі. Тому зараз для Linux у мене новий псевдонім:
alias allclear='clear; echo -e "\033c\e[3J"'
Але це не працює в OS X.
tput reset
не працює в жодному контексті AFAICT.
У KDE Konsole, ctrl- shift- kочищає прокрутку (включаючи поточну підказку оболонки, тому вона повністю порожня). В iTerm або терміналі Apple в ОС X, cmd- shift- kтакож очищає прокрутку. Щоб додати цю функцію до urxvt, додайте її до ~ / .Xresources:
urxvt*keysym.C-S-K: command:\033c
allclear(){
`echo" Очищення терміналу та прокрутки ... "` clear 1.5 '`clear; echo -e "\ 033c \ e [3J" ` }
` Редагувати: не вдається налагодити форматування. Якщо хтось зможе відредагувати це, щоб воно було читабельним, я би вдячний.
Я відобразив F12для очищення екрана в кожній з наступних оболонок: bash , csh та рибний панцир . Моя команда відрізняється від усіх попередніх тим, що вона зберігає все, що ви вже ввели у поточному рядку.
(Примітка: всі конфігурації нижче залежать від терміналу, але я сподіваюся, що вони працюватимуть практично скрізь)
Відкрийте файл ~/.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
файл, щоб завантажити прив'язку ключа до кожного нового терміналу.
(Так, це набагато простіше, ніж у баші)
Введіть команду внизу.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Ви можете редагувати та зберігати функцію fish_user_key_bindings
для завантаження прив'язки ключа до кожного нового терміналу.
(Так, це набагато простіше, ніж у баші)
[Ubuntu 16.04]
Файл .bash_history створюється в домашньому каталозі користувача після закриття терміналу
Це корисно, але ви можете видалити його, якщо хочете. Тим не менш, він створюватиметься кожного разу, коли ви закінчите користуватися терміналом.
Ви можете видалити її вручну з:
браузер ваших файлів.
термінал: пам’ятайте, що новий файл .bash_history буде створений при закритті терміналу (заснований на його конфігурації за замовчуванням).
Або ви можете зателефонувати на користувацьку функцію, якщо ви збережете потрібну вам функціональність у файлі, пов’язаному з 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", два екземпляри одночасно команди очищення, повністю очищає прокрутку і не залишає мені смуги прокрутки. Спробуйте це. Це дивне рішення, але жодне з них тут не очистило ефективність прокрутки, і це ефективно.
У Fedora 30 видалення історії відбувається шляхом видалення файлу $ HOME / .bash_history. Найпростіший спосіб очищення файлу історії терміналу за допомогою клавіатури:
nautilus
і натисніть Enterклавішу, щоб відкрити програму (GNOME) Файли (яка раніше називалася Nautilus)..bash_history
(який повинен з’явитися на панелі пошуку, якщо його ввести відразу після відкриття вікна; в іншому випадку до нього можна отримати доступ через Ctrl+ L).cat /dev/null > ~/.bash_history && history -c && exit
history -c
він був представлений у двох попередніх відповідях, і їх було видалено через те, що вони не відповідають правильності відповіді на питання. (2) Під час закриття вікна терміналу (ймовірно) буде видалено пам'ять терміналу попередніх команд, далеко не очевидно, що ОП хоче цього зробити. … І PS Однією exit
командою не гарантовано закрити вікно терміналу.