Я всегда использовал bash для работы, и у меня никогда не было проблем с этим. Теперь он не сохраняет ни одной команды в истории. Если я открываю оконный терминал, пробую некоторые команды, он действует так, как будто все работает нормально, и показывает мне историю с помощью клавиш со стрелками. Но если я закрою окно (и это время, которое оно должно быть сохранено в файле .bash_history) и открою другое, никаких признаков последних команд не будет.
Как я могу узнать, что идет не так? Или переустановить все с пустого.
.bash_sessions_disable
и знаю, что это вернулось к поведению по умолчаниюОтветы:
Я сделал это:
Добавить переменную в
.bash_profile
файлSHELL_SESSION_HISTORY=0
перезапустите терминал и после этого он будет работать так, как я хотел бы. (Он сохранил команды после того, как я закрыл терминал)
PS я также использую
HISTFILESIZE
иHISTSIZE
переменныеHISTSIZE - это количество строк или команд, которые хранятся в памяти в списке истории, пока ваша сессия bash продолжается.
HISTFILESIZE - это количество строк или команд, которые (a) разрешены в файле истории во время запуска сеанса, и (b) сохранены в файле истории в конце сеанса bash для использования в будущих сеансах.
источник
Начиная с OS X 10.11 El Capitan , установленный системой сценарий
/etc/bashrc_Apple_Terminal
координируется с Терминалом, чтобы сохранить / восстановить отдельные истории команд для каждого терминала, восстановленного для Возобновления .Прочитайте комментарии,
/etc/bashrc_Apple_Terminal
чтобы узнать, как они управляют историями команд для каждого терминала и как их настраивать.Если вы настраиваете
PROMPT_COMMAND
, убедитесь, что конкатенация к предыдущему значению, чтобы вы не уничтожили предоставленную системой команду:Если вы устанавливаете
EXIT
обработчик сигнала сtrap
тем, чтобы сделать что-то подобное (или вызовите shell_session_update из вашего обработчика, если вы не можете понять, как объединить предыдущее значение - это немного сложнее).При выходе из оболочки этот код будет сохранять новые команды в истории терминала в
~/.bash_sessions
. Чтобы увидеть, не возникло ли каких-либо проблем, вместо закрытия терминала выйдите из оболочки вручную с помощьюexit
(или Control-D). Он регистрирует сообщения о прогрессе. Обратите внимание, если он не завершен или отображаются какие-либо предупреждения или сообщения об ошибках.В общем,
bashrc_Apple_Terminal
попытки обнаружить и отключить историю сеансов, если похоже, что пользователь выполнил любые настройки, которые не совместимы с ним. Похоже, вы нашли тот, с которым не справитесь. Пожалуйста, рассмотрите возможность отправки отчета об ошибке в Apple: https://developer.apple.com/bug-reporting/источник
/etc/bashrc_Apple_Terminal
используется PROMPT_COMMAND?»? Если последнее, я отсылаю вас к коду, который подробно документирован. Или вы должны начать еще один вопрос и ответ на этот вопрос.Только в случае , если есть другие, что там есть РВМ (Ruby Version Manager) установлена: Проверьте , чтобы увидеть , если у вас есть следующие строки в ваших
~/.profile
,~/.bashrc
или~/.bash_profile
файлах.[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Это было проблемой для меня. Попробуйте это закомментировать.
Источник: Reddit
источник
При новой установке Mac OS X (обновлена до 10.13.6) история команд bash не сохранялась. Также не было файлов .bashrc или .bash_profile. В этом случае просто добавление пустого файла .bashrc исправило это для меня.
Кажется, это все, что тебе нужно ...
источник
У меня была такая же проблема с недавно установленным OSX Mojave. Я проверил свой
~/.bash_history
файл и увидел это:$ ls -l ~/.bash_history -rw------- 1 root staff 599 Jan 4 20:50 /Users/gilm/.bash_history
Простое покушение на Гилма решило проблему. Я использовал:
sudo chown gilm /Users/gilm/.bash_history
и это решило мою проблему.
источник
Вы также можете создать
.bash_logout
файл со следующим:Получено из комментария GitHub
источник
trap shell_session_update EXIT
один раз вручную и выйдите из системы. В/etc/bashrc_Apple_Terminal
сценарии есть подсказки , которые слишком скучны, чтобы включать их здесь.