Comment puis-je avoir mon shell toujours démarrer dans un certain répertoire qui n'est pas mon répertoire personnel

20

J'ai essayé de mettre

cd /Users/my_name/my_directory/structure

dans les deux .bashrcet .bash_loginmais aucun ne fonctionne, c'est-à-dire lorsque j'ouvre une nouvelle fenêtre de terminal, je suis dans mon répertoire personnel (/ Users / mon_nom /).

Aucun message d'erreur, juste pas cd'd dans le répertoire comme espéré lors du démarrage d'une nouvelle fenêtre de terminal.

Michael Durrant
la source

Réponses:

5

Comme Gerry l'a mentionné, il .bashrcn'est pas lu par les shells de connexion. Les nouveaux onglets sont des shells de connexion par défaut dans Terminal et iTerm 2. .bash_loginn'est lu que s'il n'y en a pas .bash_profile.

Vous pouvez également ajouter une cdcommande à .bash_profile.

Lri
la source
38

Tout d'abord, si vous n'utilisez pas déjà iTerm2, je vous suggère de télécharger ce logiciel gratuit en remplacement de Terminal.app.

Parmi de nombreuses autres fonctionnalités supplémentaires, dans les préférences iTerm, vous pouvez configurer le répertoire de travail par défaut pour les nouveaux shells. Vous trouverez ces paramètres dans Profils - Général.

Répertoire de travail par défaut iTerm

L'avantage ici est que vous pouvez définir des comportements différents pour ouvrir une nouvelle fenêtre ou ouvrir un nouvel onglet ou même créer un nouveau volet divisé. Personnellement, j'aime rester dans le répertoire de travail actuel lors de l'ajout d'un volet divisé, par exemple.

Vous pouvez également le faire dans votre script de démarrage (bien que je trouve la solution iTerm plus propre, ou au moins plus flexible), mais je vous conseille de l'utiliser à la ~/.bash_profileplace.

~/.bashrcn'est pas automatiquement généré lors de l'ouverture d'une nouvelle fenêtre de shell, et ~/.bash_loginn'est généré que si aucun ~/.bash_profilen'est présent.

Gerry
la source
1
Je source toujours mon .bashrc à partir de mon .bash_profile donc je n'ai pas à me rappeler qui est appelé d'où.
Cajunluke
@CajunLuke Je fais quelque chose d'assez similaire: github.com/gerryvdm/dotfiles
Gerry
Si la modification du champ «Répertoire» de Working Directory n'a aucun effet, vous devrez probablement basculer la commande de «Commande» vers «Login shell» ( source ).
duozmo