Будучи заядлым пользователем Linux до покупки MacBook Pro, у меня обычно одновременно открыто несколько вкладок терминала.
В прошлом сбои и перезагрузки обычно приводили к потере моего рабочего процесса и большинства моих историй вкладок. Я искал способы решить эту проблему, но всегда оказывался пустым; в стороне от различных методов , которые использованы комбинации инструментов , таких как ssh
, screen
, tmux
, и требуется виртуальный частный сервер (или аналогичный).
Одна из моих любимых вещей - использование моего MacBook Pro для написания скриптов, использование инструментов CLI и т. Д .; в том, что мои терминальные сессии сохраняются после сбоев и перезагружаются по умолчанию. Фактически, я только что восстановил резервную копию почти 2 года назад, и когда я вошел в систему в первый раз, мне представили мой старый рабочий стол и три bash
оболочки, которые составляли проект, над которым я работал все это время назад.
Я хотел бы знать, как OS X делает эту функцию возможной. Кто-нибудь здесь имеет представление о том, как это работает?
/etc/bashrc_Apple_Terminal
? Особенно мне это нравится.# The default behavior arranges to save and restore the bash command history independently for each restored terminal session. It also # merges commands into the global history for new sessions.
Это то, что я пытался реализовать раньше, но безрезультатно.trap
для того, чтобы перехватить конец сеанса и сохранить его историю в отдельном файле вкладки / сеанса.Насколько я могу судить, он просто сохраняет текст в буфере прокрутки каждого окна. Это на самом деле не сохраняет состояние того, что было запущено в терминалах; он просто запускает новую оболочку после перезагрузки.
В качестве эксперимента определите переменную в вашей оболочке и проверьте ее значение:
Затем перезагрузите компьютер и снова проверьте значение переменной. Вы увидите, что это больше не определено.
источник