Как я очищаю историю терминала Gnome?

На Linux, управляет как ps,free и top реализованы, чтение информация из proc файловой системы.

   The proc file system is a pseudo-file system which is used as an inter-
   face to kernel data structures.  It is commonly mounted at /proc.  Most
   of  it  is  read-only,  but  some  files  allow  kernel variables to be
   changed.

Запустите в man 5 proc и не забывайте, что все эти утилиты являются открытым исходным кодом, таким образом, можно также посмотреть, они кодируют.

59
03.09.2018, 16:01
11 ответов

Можно использовать 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), который просто "повторяет ^ [c". Если Ваша terminfo запись для консоли будет корректна (и имеет запись rs1 =\Ec), то "tput сброс" будет также работать.

69
27.01.2020, 19:33
  • 1
    Каково различие между сбросом tput и сбросом? –  Toothrot 18.10.2016, 15:19
  • 2
    tput reset быстрее, чем reset в Ubuntu 16.04, по крайней мере –  Iván Rodríguez Torres 13.02.2017, 13:22
  • 3
    - 1, можно все еще видеть буфер, если бы Вы прокручиваете, –  João Pimentel Ferreira 18.06.2017, 13:31

Можно использовать reset команда, которая сбросит терминальные настройки.

15
27.01.2020, 19:33

Я знаю, что Вы находитесь на терминале гнома, но я думал, что отвечу подсказкой для других, которые могли бы быть (как я) на Mac:

Если Вы используете Terminal.app или iTerm.app затем Control+L прокрутит так терминальный пробел взглядов, но Cmd+K на самом деле сбросит терминал / ясная прокрутка назад.

Или, если Вы можете установить предпочтения клавиатуры своего терминала, Вы можете присваивать что-то как Ctrl+K вводить echo -e \\033c как был упомянут выше.

14
27.01.2020, 19:33
[116651] Я нашел это в сети много лет назад, и это хорошо работает на меня. Это полностью очищает терминал без истории прокрутки.

3
27.01.2020, 19:33

Ответ Антона работает в KDE Konsole, но не URXVT. В URXVT я использовал сброс в течение нескольких лет, чтобы очистить прокрутки (вместе со всеми другими вещами, которые он делает), и не был удовлетворен тем, что он не работает в Konsole. Так что теперь для Linux у меня есть новый псевдоним:

alias allclear='clear; echo -e "\033c\e[3J"'

, но он не работает на ОС X.

RESETPUT TPUT не работает в каком-либо контексте AFAICT.

В KDE Konsole Ctrl - - - - - k Очищает Scrollback (включая текущую строку оболочки, так что это полностью пусто). В терминале ITERM или Apple на OS X, CMD - - - k также очищает Scrollback. Чтобы добавить эту функцию в URXVT, добавьте это в ~ / .xresources:

urxvt*keysym.C-S-K: command:\033c
9
27.01.2020, 19:33

Добавлено в ~ / .inputrc для привязки полной очистки к F12 :

"\e[24~":'!echo -ne \047\\0033\\0143\047\r'
0
27.01.2020, 19:33

[Ubuntu 16.04]

The.файл 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 или вашего «пользовательского» файла.

2
27.01.2020, 19:33

Для меня, используя PuTTY против CentOS 7, при очистке в прокрутке остается только команда очистки, но запуск «clear && clear», два экземпляра команды очистки одновременно, полностью очищает прокрутка и оставляет меня без полосы прокрутки. Попробуй это. Это странное решение, но ни одно из них здесь не очистило прокрутку так эффективно, и это действительно так.

1
27.01.2020, 19:33

Я сопоставил F12 для очистки экрана в каждой из следующих оболочек: bash, csh и fish shell . Моя команда отличается от всех предыдущих тем, что сохраняет все, что вы уже набрали в текущей строке.
(Примечание: все приведенные ниже конфигурации зависят от терминала, но я надеюсь, что они будут работать практически везде)

bash

Откройте файл ~/.inputrc и вставьте следующую строку:

"\e[24~": "\Ck \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1 ))\n\Cy\C-?"

Чтобы получить новую привязку клавиш, откройте новый терминал или введите Ctrl+X, затем Ctrl+R, чтобы перезагрузите файл .inputrc в текущем терминале.

Пояснение
Файл ~/.inputrc управляет привязками клавиш терминала bash.

О строке:

  1. Первая часть строки, "\e[24~", отображает клавишу F12.
  2. C-k (Ctrl+X) очищает список уничтожений (память bash для копирования и вставки).
  3. Пробел позволяет избежать звукового сигнала в следующей команде.
  4. C-u (Ctrl+U) отправляет текущую строку в список уничтожений и стирает ее.
  5. The echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n отправляет на терминал две сгруппированные команды. Они разделены ; и заканчиваются \n.
    • echo -ne '\\ec\\e[3J' очищает экран.
    • history -d $((HISTCMD-1)) предотвращает попадание этих двух команд в историю.
  6. Команда C-y (Ctrl+Y) вставляет список уничтожений, сохраненный командой C-u.
  7. C-? (Ctrl+?) эквивалентно Backspace и удаляет пробел, вставленный на шаге 3 выше.

Ссылки:

csh

Введите команду ниже.
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
Его также можно вставить в ваш файл .cshrc для загрузки привязки клавиш к каждому новому терминалу.
(Да, это намного проще, чем в bash)

fish shell

Введите команду ниже.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Вы можете отредактировать и сохранить функцию fish_user_key_bindings для загрузки привязки клавиш к каждому новому Терминал.
(Да, это гораздо проще, чем в bash)

2
27.01.2020, 19:33
cat /dev/null > ~/.bash_history && history -c && exit
-2
27.01.2020, 19:33

В Fedora 30 удаление истории выполняется путем удаления файла истории $HOME/.bash _. Самый простой способ очистить файл истории терминала с помощью клавиатуры:

  • Нажмите Alt + F4 , чтобы закрыть каждое окно терминала GNOME, переключаясь между окнами с помощью Alt + Tab или Alt + Shift + Tab по необходимости. (Все окна терминала должны быть закрыты, поскольку файл истории.bash _создается или обновляется при их закрытии.)
  • Нажмите Alt + F2 .
  • Введите nautilusи нажмите клавишу Enter , чтобы открыть приложение (GNOME )Files (, ранее известное как Nautilus ).
  • Нажмите Ctrl + H , если необходимо, чтобы отобразить скрытые файлы.
  • Введите .bash_history(, который должен появиться в строке поиска, если вводится сразу после открытия окна; в противном случае к строке поиска можно получить доступ через Ctrl + L).
  • Нажмите клавишу со стрелкой вниз, чтобы выбрать файл, который должен быть единственным результатом поиска.
  • Нажмите Shift + Удалить для окончательного удаления файла. (Если вместо этого вы используете немодифицированную клавишу Удалить , файл истории.bash _по-прежнему будет доступен через папку «Корзина».)
0
27.01.2020, 19:33

Теги

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