Как отключить сеансы 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.