Como posso ter meu shell sempre iniciado em um determinado diretório que não é meu diretório inicial


20

Eu tentei colocar

cd /Users/my_name/my_directory/structure

em ambos .bashrce .bash_loginmas não funciona, ou seja, quando abro uma nova janela do terminal, estou no diretório home (/ Users / my_name /).

Nenhuma mensagem de erro, apenas não cd'd no diretório como esperado ao iniciar uma nova janela do terminal.

Respostas:


5

Como Gerry mencionou, .bashrcnão é lido pelos shells de login. Novas guias são shells de login por padrão no Terminal e o iTerm 2. .bash_loginsó é lido se não houver .bash_profile.

Você também pode adicionar um cdcomando para .bash_profile.


38

Primeiro de tudo, se você ainda não estiver usando o iTerm2, sugiro que você baixe este software gratuito como um substituto do Terminal.app.

Entre muitos outros recursos extras, nas Preferências do iTerm, você pode configurar o diretório de trabalho padrão para novos shells. Você encontrará essas configurações em Perfis - Geral.

Diretório de trabalho padrão do iTerm

A vantagem aqui é que você pode definir comportamentos diferentes para abrir uma nova janela ou abrir uma nova guia ou até mesmo criar um novo painel de divisão. Pessoalmente, gosto de permanecer no diretório de trabalho atual ao adicionar um painel dividido, por exemplo.

Você também pode fazer isso no seu script de inicialização (embora eu ache a solução iTerm mais limpa ou pelo menos mais flexível), mas aconselho você a usar ~/.bash_profile.

~/.bashrcnão é originado automaticamente ao abrir uma nova janela do shell e ~/.bash_loginé originado apenas se não houver nenhum ~/.bash_profilepresente.


11
Eu sempre fonte meu .bashrc do meu .bash_profile, para não precisar lembrar qual é chamado de onde.
Cajunluke

@CajunLuke eu faço algo bastante semelhante: github.com/gerryvdm/dotfiles
Gerry

Se a modificação do campo "Diretório" do Diretório de Trabalho não tiver efeito, você provavelmente precisará alternar Comando de "Comando" para "Shell de login" ( origem ).
10246 Duozmo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.