История Bash не сохраняется между сеансами терминала на Mac

История Bash не сохраняется между сеансами терминала на Mac

Моя история bash загадочным образом перестала работать, и я понятия не имею, как это исправить. Вот как выглядит мой .bashrc:

HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history

Однако, когда я запускаю echo $HISTFILEего, он печатает /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew.

Я являюсь владельцем файла .bash_history, поэтому не совсем уверен, как исправить эту проблему.

Спасибо!

решение1

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

Новая папка (~/.bash_sessions/) используется для хранения файлов HISTFILE и .session, которые являются уникальными для сеансов.

Во время запуска оболочки выполняется файл сеанса. Старые файлы периодически удаляются.

Поведение по умолчанию позволяет сохранять и восстанавливать историю команд bash независимо для каждого восстановленного сеанса терминала. Оно также объединяет команды в глобальную историю для новых сеансов.

Вы можете отключить это поведение и поделиться единой историей, установив

export SHELL_SESSION_HISTORY=0

Если определен HISTTIMEFORMAT, история сеанса отключена по умолчанию (подробнее в /private/etc/bashrc_Apple_Terminal)

Механизм сохранения/восстановления отключается, если существует следующий файл:

~/.bash_sessions_disable

Apple уже изменила некоторые правила поведения с момента выпуска El Capitan, поэтому лучше прочитать об этом подробнее здесь.less /private/etc/bashrc_Apple_Terminal

решение2

Я заметил нечто подобное после обновления El Capitan. Простое добавление файла file .bash_sessions_disableв ваш домашний каталог отключает новые сеансы bash, и он .bash_historyснова используется.

ЭтотТема Redditсодержит дополнительную информацию и дополнительные ссылки.

решение3

Проблему RVM можно решить, обновив RVM до последней версии или выполнив следующее:

  echo 'shell_session_update' > $HOME/.bash_logout

Видетьhttps://github.com/rvm/rvm/issues/3540для получения дополнительной информации.

решение4

Если это Mac, я полагаю, что его оболочка входа по умолчанию — , bashи она запускается .profileвместо .bashrc. Так что вы редактировали не тот файл.

Связанный контент