
Моя история 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
. Так что вы редактировали не тот файл.