Где хранится история Баша?

Если я запустил history , я могу увидеть мои последние выполненные команды.

Но если я делаю tail -f $HISTFILE или tail -f ~/.bash_history , они не попадают в список.

Заблокирован ли файл, есть ли временное местоположение или что-то подобное?

4 Solutions collect form web for “Где хранится история Баша?”

Bash поддерживает список команд внутри памяти во время работы. Они записываются в .bash_history при выходе :

Когда выходит интерактивная оболочка, последние строки $ HISTSIZE копируются из списка истории в файл с именем $ HISTFILE

Если вы хотите принудительно записать history -a команд, вы можете использовать команду history -a , которая будет:

Добавьте в историю файлы новые строки истории (строки истории, введенные с начала текущего сеанса Bash).

Существует также опция -w :

Запишите текущую историю в файл истории.

который может подойти вам больше в зависимости от того, как вы используете свою историю.

Если вы хотите убедиться, что они всегда записываются немедленно, вы можете поместить эту команду в переменную PROMPT_COMMAND :

 export PROMPT_COMMAND='history -a' 

bash сохраняет его в рабочей памяти, bash может быть сконфигурирован для сохранения, когда bash закрывается или после каждой команды и загружается при запуске bash или по запросу.

Если вы настроите сохранение после каждой команды, рассмотрите последствия одновременного использования нескольких bash. (командные строки будут чередоваться)

(Не ответ, но я не могу добавлять комментарии)

Если вы проверяете .bash_history потому что хотите просто удалить определенную команду (например, с указанием пароля в ящике), вы можете напрямую удалить запись в памяти по history -d <entry_id> .

Например, предположим, что вывод такой:

 $ history 926 ll 927 cd .. 928 export --password=super_secret 929 ll 

и вы хотите очистить линию export , вы можете просто добиться этого путем:

 history -d 928 

Команды сохраняются в памяти (ОЗУ), пока ваш сеанс активен. Как только вы закроете оболочку, список команд будет записан в .bash_history перед завершением работы.

Таким образом, вы не увидите историю текущего сеанса в .bash_history .

  • Не теряйте текущую команду, когда вверх нажата кнопка в терминале
  • Что находится в истории команд нового окна терминала?
  • Как использовать последнюю команду в цикле while?
  • как сохранить команду в истории bash, не выполняя ее программно?
  • Удаление межсезонного дубликата в истории команд bash
  • Сохранять только успешные команды в истории BASH
  • Добавить BASHPID в историю?
  • эхо-символы в терминале / bash
  • Как вы получите всю историю пользователей
  • Как я могу вспомнить пронумерованную команду истории для редактирования?
  • Есть ли способ отменить модификацию истории bash?
  • Interesting Posts

    Файл, доступный только с правами root

    Как запустить набор программ внутри tmux или gnome-terminal в сценарии?

    Выполнение нескольких команд sed в одних и тех же файлах одновременно

    Как получить запись истории для правильного отображения на нескольких строках

    Использовать / видеть всю флэш-память

    Отображение имени сеанса экрана GNU и заголовка окна в командной строке

    Совпадение простого регулярного выражения

    Восстановить PDF из извлеченных изображений

    Как я могу создать DEB из установленного пакета?

    Сервер SVN с удаленным администрированием графического интерфейса

    Невозможно добавить serialport (nodejs module) при создании файловой системы и кросс-компиляции инструментов для ARM-процессора

    Неверная контрольная сумма Rpmdb. Попытка установить gcc в файле док-станции CentOS 7.2.

    Debian – новейшая версия Eclipse

    Как изменить / удалить пасту при среднем нажатии?

    Проблемы с загрузкой и установкой. Windows 8 и Ubuntu 16.04

    Linux и Unix - лучшая ОС в мире.