На первый взгляд новая функция в OS X El Capitan (10.11 Beta) is Bash sessions (Terminal sessions). Теперь у меня есть каталог ~/.bash_sessions
с файлами истории, а мои HISTFILE
и HISTIGNORE
envars переопределяются. Как отключить все эти функции?Как отключить сеансы Bash в OS X El Capitan
ответ
Если вы запускаете новую сессию Bash вручную (то есть bash -xl
), вы можете увидеть, что запускается при входе в систему.
Вы увидите следующую строку на выходе:
....
+++ '[' '!' -e /Users/username/.bash_sessions_disable ']'
Вы можете создать .bash_sessions_disable
файл в вашем домашнем каталоге, чтобы отключить эту функцию.
Мне нравится иметь доступ к немного больше истории, чем раньше, но налагает ли она какие-либо ограничения на себя? Похоже, у меня есть два или три файла для каждого вызова терминала с момента установки 10.11. Только два мегабайта в месяц, но все же .... – WGroleau
@WGroleau: эта функция не относится к количеству истории, а относится к хранению отдельных командных историй для каждого сеанса терминала, чтобы при восстановлении терминалов с помощью Возобновить истории останутся отдельными Как они были, когда вы изначально создали их. Обычные переменные оболочки HISTSIZE и 'HISTFILESIZE' по-прежнему применяются. На самом деле рекомендуется увеличить один или оба из них, поскольку каждый сеанс также добавляет свою историю в глобальный файл '~/.bash_history', поэтому вся ваша история доступна в новых терминалах. Подробнее см. Комментарии в '/ etc/bashrc_Apple_Terminal'. –
@WGroleau: он также автоматически удаляет файлы сеанса старше двух недель, один раз в день. –
Данное поведение определено в /etc/bashrc_Apple_Terminal
. Он содержит комментарии к документации, описывающие, что он делает и как его настроить.
Вы можете отключить функцию истории команд в-терминал-сессии, установив SHELL_SESSION_HISTORY=0
в вашем ~/.bashrc
сценария, как описано здесь:
Вы можете отключить это поведение и совместно использовать одну историю, установив SHELL_SESSION_HISTORY до 0 Существуют некоторые общие пользовательские настройки , которые позволяют обмениваться новыми командами между запущенными командами на , манипулируя историей в каждом приглашении, и они обычно включают 'shopt -s histappend'; поэтому, если опция оболочки histappend равна , по умолчанию история сеанса отключена. Вы можете явно включить его, установив SHELL_SESSION_HISTORY к 1.
Обратите внимание, что, хотя вы можете отключить всю сессию-государственный механизм восстановления путем создания ~/.bash_sessions_disable
, это не нужно просто отключить эту функцию на сессионной истории команд, и не рекомендуется.
Приятная находка! Рассмотрение '/ etc/bashrc_Apple_Terminal', хотя приводит меня к мысли, что единственным способом предотвратить эту функцию в целом является установка« $ HOME/.bash_sessions_disable »' (то есть без этого файла она все равно будет создавать каталог сеансов). – Whymarrh
@Whymarrh Вы пропустили часть моего ответа? Я сказал, что этот файл отключает механизм состояния сеанса, но это слишком много, если все, что вы хотите сделать, - отключить историю команд оболочки для каждого сеанса. –
Похоже, я неправильно понял, что последняя строка, да. Извини за это. – Whymarrh
Подводя итог, это связано с функцией Apple Resume. Когда эта функция включена, когда вы покидаете приложение или перезагружаетесь, при следующем открытии приложения он откроет открытые ранее окна.
Что касается терминала, три вещи, которые должны быть на месте, чтобы это произошло:
$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
, он восстановит текст на каждом экране.
Наконец, и это относится, в частности на вопрос ФП, он будет восстановить историю в каждом окне/вкладке, если выполняются следующие условия:
SHELL_SESSION_HISTORY
не установлен или установлен в 1shopt histappend
не наборHISTTIMEFORMAT
не установлен
Если SHELL_SESSION_HISTORY
явно установлен в 1 .bashrc
, последние два требования переопределены, то есть shopt histappend
или HISTTIMEFORMAT
.
Кроме того, следует обратить внимание на переменные HISTSIZE
и HISTFILESIZE
. Они не должны быть слишком большими или слишком маленькими, а некоторые советуют оставлять их неустановленными, поэтому они принимают значения Apple по умолчанию.
- 1. Как отключить Vsync на Mac OS X 10,11 El Capitan
- 2. Как отключить анимацию рабочего пространства на OS X El-capitan
- 3. Отключить SIP El Capitan
- 4. Python 3.5 для OS X El Capitan
- 5. file_put_contents на OS X El Capitan
- 6. Import.io Crashes на OS X El Capitan
- 7. Установить Scrapy на OS X El Capitan
- 8. Установка Appcelerator Studio OS X El Capitan
- 9. OS X 10,11 (El Capitan) Macport вопросы
- 10. Как включить маршрутизацию в OS X El Capitan
- 11. Как установить плагин авторизации в OS X El Capitan?
- 12. Как правильно удалить io.js в Mac OS X El Capitan?
- 13. Как исправить Ruby On Rails в OS X El Capitan
- 14. Unsupported версия major.minor на Mac OS X El Capitan
- 15. Cocoapods «стручок установить» застрял на OS X El Capitan
- 16. Mac OS X (El Capitan) Terminal Command History Search Выпуск
- 17. Проблемы с установкой композитора на OS X El Capitan
- 18. Установка Cocoapods на OS X Ошибка El Capitan
- 19. Как установить последнюю версию OpenSSL Mac OS X El Capitan
- 20. El Capitan - Как читать Mac Os X Mail Accounts Information
- 21. Как установить CocoaPods на OS X El Capitan 10.11.4?
- 22. Невозможно запустить mongodb в Mac OS X El Capitan
- 23. OS X El Capitan VoiceOver не читает содержимое в свитке
- 24. CGLayerRef оказывается пустым только в OS X 10,11 (El Capitan)
- 25. «ограниченная» папка/файлы в OS X El Capitan
- 26. OS X El Capitan deny копирует файл в каталог Safari
- 27. LispWorks не может открыть в OS X El Capitan
- 28. Intel HAXM/Android Studio в OS X 10.11/El Capitan
- 29. Ошибка с MySQLdb в OS X El Capitan
- 30. Update OS X в El Capitan и ядро земли падает :(
«... мои ... HISTIGNORE envars переопределены». Вы уверены? '/ etc/bashrc_Apple_Terminal' не изменяет' HISTIGNORE' (на него вообще не ссылаются). –
* Если включена опция оболочки 'histappend', история по каждому сеансу отключена по умолчанию * – yckart