Моя история bash загадочным образом перестала работать, и я понятия не имею, как это исправить. Вот как выглядит мой .bashrc:
HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history
Тем не менее, когда я бегу, echo $HISTFILE
он печатает /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew
.
Я владелец файла .bash_history, поэтому я не очень уверен, как бы я решил эту проблему.
Благодарность!
$HISTFILE
, из интереса? У меня нет.bashrc
OSX, иecho $HISTFILE
я сообщаю о месте, которое я ожидал - комментирование обсуждаемых строк имеет какой-либо эффект?HISTFILE="$HOME/.bash_history”
. Без кавычек ваша версия будет недействительной, если путь к вашей домашней директории содержит пробелы (или, возможно, другие специальные символы).Ответы:
Терминал назначает каждому сеансу терминала уникальный идентификатор и передает его через переменную среды TERM_SESSION_ID, чтобы программы, работающие в терминале, могли сохранять / восстанавливать специфическое для приложения состояние при выходе и перезапуске Терминала с включенным Возобновлением.
Новая папка (~ / .bash_sessions /) используется для хранения файлов HISTFILE и .session, которые являются уникальными для сессий.
Во время запуска оболочки файл сеанса выполняется. Старые файлы периодически удаляются.
Поведение по умолчанию позволяет сохранять и восстанавливать историю команд bash независимо для каждого восстановленного сеанса терминала. Он также объединяет команды в глобальную историю для новых сессий.
Вы можете отключить это поведение и поделиться одной историей, установив
Если определен HISTTIMEFORMAT, история отдельных сеансов по умолчанию отключена (подробнее читайте в / private / etc / bashrc_Apple_Terminal)
Механизм сохранения / восстановления отключен, если существует следующий файл:
Apple уже изменила свое поведение после релиза El Capitan, так что лучше узнать об этом здесь
less /private/etc/bashrc_Apple_Terminal
источник
~/.bash_sessions_disable
Файл предназначен в качестве последнего средства в случае , если есть проблема , которая не может быть решена конкретно. Он отключает не только историю команд для каждой сессии, и вы можете отключить только историю команд для каждой сессии. Смотрите комментарии в/etc/bashrc_Apple_Terminal
деталях.export SHELL_SESSION_HISTORY=0
.bashrc
и.bash_profile
unix.stackexchange.com/a/310150/15362Я заметил нечто подобное после обновления El Capitan. Простое добавление
.bash_sessions_disable
файла в ваш домашний каталог отключает новые сеансы bash и.bash_history
снова используется.Эта ветка Reddit имеет больше информации и дальнейших ссылок.
источник
~/.bash_sessions_disable
Файл предназначен в качестве последнего средства в случае , если есть проблема , которая не может быть решена конкретно. Он отключает не только историю команд для каждой сессии, и вы можете отключить только историю команд для каждой сессии. Смотрите комментарии в/etc/bashrc_Apple_Terminal
деталях.SHELL_SESSION_HISTORY=0
в начало~/.bash_profile
.Вы можете решить проблему RVM, обновившись до последней версии RVM или выполнив это:
См. Https://github.com/rvm/rvm/issues/3540 для получения дополнительной информации.
источник
Этот ответ из ветки Reddit спас меня:
источник
Если это Mac, я предполагаю, что это оболочка входа по умолчанию,
bash
и она работает.profile
вместо.bashrc
. Итак, вы редактировали не тот файл.источник
$HISTFILE
в разных частяхprofile
? Может быть, вы используете другой скрипт, который меняет переменную? Я проверил обаTerminal
иiTerm
,bash
3
и4
оба имеют свои значения по умолчанию$HOME/.bash_history
.$HISTFILE
меняется. Таким образом, просто сделайте дваecho $HISTFILE
окружения вашего кода. Что вам нужно сделать, так это найти фрагмент кода, в котором происходят$HISTFILE
изменения, перемещая обеecho $HISTFILE
строки ближе и ближе друг к другу, построчно, пока что-то не откроется. Вот и все.echo $HISTFILE
каждой строке, просто чтобы увидеть, есть ли различия. Тем не менее, это просто напечатано/Users/username/.bash_history
несметное количество раз. Затем я побежалecho $HISTFILE
в оболочку, и он вывел/Users/nelsonliu/.bash_sessions/CD275A29-1DF1-4ED8-B8CE-F706B11B812F.historynew
.Я видел эту проблему на Высокой Сьерре. Каким-то образом мой собственный .bash_history стал владельцем root и даже не имел разрешений на чтение для других пользователей (когда содержимое домашнего каталога просматривалось с помощью ls -al)
В этом файле .bash_history не было никаких последствий, поэтому я сделал sudo rm .bash_history, а затем коснулся .bash_history, чтобы создать новый.
Сейчас все вроде хорошо
источник
~/.bash_profile
файл:export HISTTIMEFORMAT='%F %T '