Как сделать так, чтобы моя оболочка всегда запускалась в определенном каталоге, который не является моим домашним каталогом?

20

Я пытался положить

cd /Users/my_name/my_directory/structure

в обоих .bashrcи , .bash_loginно ни работы, то есть , когда я открываю новое окно терминала , я нахожусь в моем доме (/ Users / my_name /) каталога.

Нет сообщений об ошибках, просто не попал в каталог, как надеялись при запуске нового окна терминала.

Майкл Даррант
источник

Ответы:

5

Как упоминал Джерри, .bashrcне читается при входе в систему оболочек. Новые вкладки по умолчанию являются оболочками входа в терминал и iTerm 2..bash_login читается только в том случае, если их нет .bash_profile.

Вы также можете добавить cdкоманду .bash_profile.

LRI
источник
38

Прежде всего, если вы еще не используете iTerm2, я предлагаю вам загрузить это бесплатное программное обеспечение в качестве замены для Terminal.app.

Среди многих других дополнительных функций в настройках iTerm вы можете настроить рабочий каталог по умолчанию для новых оболочек. Эти настройки вы найдете в разделе «Профили» - «Общие».

Рабочий каталог iTerm по умолчанию

Преимущество здесь в том, что вы можете установить различные режимы для открытия нового окна по сравнению с открытием новой вкладки или даже создания новой разделенной панели. Лично мне нравится оставаться в текущем рабочем каталоге, например, при добавлении разделенной панели.

Вы также можете сделать это в своем скрипте запуска (хотя я считаю, что решение iTerm более чистое или, по крайней мере, более гибкое), но тогда я советую вам использовать ~/.bash_profileвместо этого.

~/.bashrcэто не автоматически получены при открытии нового окна оболочки, и ~/.bash_loginне поступает , только если не ~/.bash_profileприсутствует.

Gerry
источник
1
Я всегда получаю исходный код .bashrc из моего .bash_profile, поэтому мне не нужно помнить, откуда он вызывается.
Cajunluke
@CajunLuke Я делаю что-то очень похожее: github.com/gerryvdm/dotfiles
Джерри
Если изменение поля «Каталог» в рабочем каталоге не имеет никакого эффекта, вам, вероятно, нужно переключить команду с «Команда» на «Оболочка входа» ( источник ).
duozmo