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

Если я запустил 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 .

  • Как остановить историю добавления Bash
  • Могу ли я удалить .bash_history без sudo?
  • Как получить запись истории для правильного отображения на нескольких строках
  • bash_history: комментировать опасные команды: `#`
  • Использовать файл истории bash из старой машины при настройке новой машины?
  • вернитесь к концу истории bash при использовании обратного поиска?
  • Как использовать быструю замену для замены всех строк предыдущей команды?
  • Как я могу программно добавлять записи в историю Bash и работать с метками времени?
  • Можно ли перенести историю команд из одной системы в другую?
  • Удаление паролей из журналов терминалов в CentOS 7
  • История многостраничных терминалов bash
  • Interesting Posts

    Переформатировать каждую двухстрочную последовательность на две колонки

    Невозможно установить python из-за конфликта zypper

    SSH в SSH в сценарии оболочки

    показать параметры запущенного ядра

    Regex соответствует началу и концу строки в Vim (цитата вокруг всей строки)

    Какие файлы, связанные с Windows, бесполезны для пользователей * nix?

    Почему изменение предельного размера ядра меняет местоположение coredump?

    Как восстановить физический том в LVM, который отображается как неизвестное устройство?

    Преобразовать однонаправленный пакет UDP в трансляцию?

    Эволюция-EWS (Exchange) Адресная книга не синхронизирует

    Найдите, где используются индексные дескрипторы

    Демон tgt не работает должным образом

    Изменить IP-адрес виртуальной машины с помощью linux ubuntu на Windows 8?

    Как передать результат предыдущей команды узлу в качестве переменной?

    Как заставить убийцу OOM регистрироваться в / var / log / messages, когда он убивает какой-либо процесс?

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