У меня есть группа окон, сохраненная с 3 терминалами, настроенными так, как они мне нравятся, и у меня есть ярлык, который открывает эту группу окон на моем рабочем столе. Теперь я хочу добавить команду запуска (возможно, разные команды для каждого окна), когда каждый терминал открыт, но я не хочу устанавливать команду по умолчанию для каждого терминала, который я запускаю, как я знаю, что вы можете. Какой самый простой способ сделать это?
3 ответа
То есть у вас уже есть отдельная настройка для каждого терминала? Вам нужно отредактировать каждый из этих параметров, чтобы указать команду для запуска.
В "Terminal > Preferences > Settings"
измените настройки для каждого терминала, указав команду для каждого из них с помощью "Shell > Startup > Run command"
.
При открытии терминала из этих настроек (по отдельности или в составе группы окон) он запускает команду, указанную в командах запуска параметров. Вы можете открыть группы окон из "Window > Open Window Group"
или настроить одну из них для автоматического запуска в "Preferences > Startup"
.
Начиная с Mac OS X Lion 10.7, вы можете сделать это без создания отдельных профилей настроек для каждого терминала. Если вы создаете терминал с помощью Shell> New Command…, Terminal может запомнить команду, когда вы сохраните ее в группе окон. Когда вы открываете группу, все сохраненные команды запускаются в соответствующем терминале (ах).
При сохранении группы окон Терминал автоматически сохраняет "безопасные" команды †, и вы можете сохранить все команды, установив флажок « Восстановить все команды» .
† "Безопасные" команды - это команды, которые целесообразно запускать без подтверждения пользователя, и автоматически восстанавливаются при возобновлении работы терминала. Они также автоматически сохраняются в группах окон. "Безопасные" команды включают в себя любую команду, введенную через Новое удаленное соединение, все, что перечислено в /etc/shells
, и краткий список общих команд: screen
, tmux
, emacs
, vi
, vim
, nano
, pico
, top
.
Этот список можно настроить с помощью команды defaults(1) (x-man-page://1/defaults
). Предпочтение RestorableCommands
- это список строк, каждая из которых называет команду. В каждой строке вы можете указать имя команды или абсолютный путь (если вы хотите разрешить команду только из определенного каталога). По умолчанию команды являются "безопасными", только если они не содержат аргументов командной строки (потому что аргументы могут указывать деструктивные операции); чтобы указать, что аргументы разрешены, добавьте звездочку после имени команды, например, «top *» находится в списке по умолчанию.
Например, чтобы автоматически разрешить emacs с аргументами:
defaults write com.apple.Terminal RestorableCommands -array screen tmux 'emacs *' vi vim nano pico 'top *'
Для удобства, после того, как вы создали настройку параметров, вы можете добавить дополнительные элементы с помощью -array-add
:
defaults write com.apple.Terminal RestorableCommands -array-add nethack
Ответ @Matt G хороший, но альтернативой может быть использование iTerm с открытым исходным кодом, который имеет функцию закладок, которая делает это намного проще, чем настройка отдельного профиля терминала для каждого. Так как я начал использовать его вместо Terminal.app, я не оглядывался назад. Стоит проверить ...