Как отключить сеансы Bash в OS X El Capitan
казалось бы, новая функция в OS X El Capitan (10.11 Beta) это сеансы Bash (терминальные сессии). Теперь у меня есть ~/.bash_sessions
каталог с файлами истории и my HISTFILE
и HISTIGNORE
переменные окружения переопределяются. Как отключить все эти функции?
3 ответов
Если вы запускаете новый сеанс Bash вручную (т. е. bash -xl
), вы можете посмотреть, что запускается при входе в систему.
вы увидите следующую строку на выходе:
....
+++ '[' '!' -e /Users/username/.bash_sessions_disable ']'
вы можете создать .bash_sessions_disable
файл в вашем домашнем каталоге, чтобы отключить эту функцию.
это поведение определяется в /etc/bashrc_Apple_Terminal
. Он содержит комментарии к документации, описывающие, что он делает и как его настроить.
вы можете отключить функцию истории команд для каждого терминала сеанса, установив SHELL_SESSION_HISTORY=0
в своем ~/.bashrc
сценарий, как описано здесь:
вы можете отключить это поведение и поделиться одной историей, установив SHELL_SESSION_HISTORY до 0. Существуют некоторые общие пользовательские настройки которые организуют обмен новыми командами между запущенными снаряды Управление историей в каждом приглашении, и они обычно включают 'shopt-s histappend'; поэтому, если опция оболочки histappend включено, журнал сеансов по умолчанию отключен. Вы можете явно включите его, установив SHELL_SESSION_HISTORY в 1.
обратите внимание, что, хотя вы можете отключить весь механизм восстановления состояния сеанса, создав ~/.bash_sessions_disable
, это не нужно просто отключить функцию истории команд за сеанс, и это не рекомендуемый.
подводя итог, это связано с Apple резюме характеристика. Когда эта функция включена, когда вы выходите из приложения или перезагружаетесь, в следующий раз приложение открывает окна, которые были открыты ранее.
что касается терминала, для этого должны быть три вещи:
-
$HOME/.bash_sessions_disable
должны не присутствует -
System Preferences/General/Close Windows when quitting an app
должны не быть проверены. - когда перезагрузка, выберите
Reopen windows
.
при повторном открытии терминала он откроет те же окна и вкладки, что и раньше, в тех же положениях экрана. Кроме того, если вы проверили Terminal/Preferences/your-window-type/Windows/Resume/Restore-text-when-reopening-windows
, он восстановит текст на каждом экране.
наконец, и это относится конкретно к вопросу OP, он восстановит историю в каждом окне / вкладке, если выполняются следующие условия:
-
SHELL_SESSION_HISTORY
не установлено или установлено в 1 -
shopt histappend
не установлено -
HISTTIMEFORMAT
не установлено
если SHELL_SESSION_HISTORY
явно установлено значение 1 в .bashrc
, последние два требования переопределены, то есть shopt histappend
или HISTTIMEFORMAT
может быть установлен.
кроме того, необходимо обратить внимание на HISTSIZE
и HISTFILESIZE
переменные. Они не должны быть слишком большими или слишком маленькими, и некоторые советуют оставить их неустановленными, чтобы они принимали значения по умолчанию Apple.