Come posso avere la mia shell sempre avviata in una determinata directory che non è la mia home directory


20

Ho provato a mettere

cd /Users/my_name/my_directory/structure

in entrambi .bashrce .bash_loginma nessuno dei due funziona, vale a dire quando apro una nuova finestra del terminale mi trovo nella mia directory home (/ Users / my_name /).

Nessun messaggio di errore, semplicemente non inserito nella directory come sperato quando si avvia una nuova finestra del terminale.

Risposte:


5

Come menzionato da Gerry, .bashrcnon viene letto dalle shell di login. Le nuove schede sono shell di login per impostazione predefinita in Terminal e iTerm 2. .bash_loginviene letto solo se non è presente .bash_profile.

È inoltre possibile aggiungere un cdcomando a .bash_profile.


38

Prima di tutto, se non stai già utilizzando iTerm2, ti suggerisco di scaricare questo software gratuito in sostituzione di Terminal.app.

Tra le molte altre funzionalità extra, nelle Preferenze di iTerm, puoi configurare la directory di lavoro predefinita per le nuove shell. Queste impostazioni sono disponibili in Profili - Generale.

Directory di lavoro predefinita iTerm

Il vantaggio qui è che puoi impostare comportamenti diversi per l'apertura di una nuova finestra rispetto all'apertura di una nuova scheda o persino alla creazione di un nuovo riquadro diviso. Personalmente mi piace rimanere nella directory di lavoro corrente quando si aggiunge un riquadro diviso, per esempio.

Potresti farlo anche nel tuo script di avvio (anche se trovo la soluzione iTerm più pulita, o almeno più flessibile), ma poi ti consiglio di usare ~/.bash_profileinvece.

~/.bashrcè non provenienti automaticamente quando si apre una nuova finestra di shell, ed ~/.bash_loginè originata solo se non ~/.bash_profileè presente.


1
Ricevo sempre il mio .bashrc dal mio .bash_profile, quindi non devo ricordare quale viene chiamato da dove.
Cajunluke,

@CajunLuke Faccio qualcosa di abbastanza simile: github.com/gerryvdm/dotfiles
Gerry

Se la modifica del campo "Directory" della directory di lavoro non ha alcun effetto, probabilmente è necessario passare dal comando "Command" a "Login shell" ( origine ).
duozmo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.