Il existe deux scénarios :
- Vous utilisez Linux
- Vous utilisez Mac Os X
Pour les deux, vous voulez vous approvisionner ~/.bashrc
dans votre profil qui est chargé, ou sourcé, lorsque votre shell pour votre terminal démarre.
LINUX
Dans Linux, ~/.profile
est automatiquement source dans votre shell lorsqu'il démarre. Ainsi, si vous allez dans votre terminal et tapez cd ~; ls -A
vous verrez tous vos fichiers et répertoires dans votre répertoire personnel ( /home/usrname/
). Vous devriez voir un fichier appelé .profile
. C'est le fichier qui est automatiquement "sourcé" lorsque vous démarrez le terminal.
Si vous souhaitez ajouter des alias et des fonctions à l'application ~/.bashrc
(c'est ce que je fais), alors vous devriez (à l'intérieur de l'élément ~/.profile
ajouter une instruction if qui vérifie si ~/.bashrc
est un fichier non vide, puis le source.
Pour vérifier si votre ~/.profile
fait déjà cette entrée nano ~/.profile
. Cela l'ouvrira dans un éditeur de texte (vous pouvez utiliser gedit si vous savez que vous l'avez ou même vim si vous savez l'utiliser). Vous obtiendrez peut-être un fichier texte vide (vous ne devriez pas), mais si c'est le cas, continuez simplement. Si vous ne voyez pas de ligne partout qui dit source ~/.bashrc
puis entrez les lignes suivantes quelque part (placez-les à un endroit raisonnable comme à la fin ou au début et non au milieu d'une instruction if) :
if [ -s ~/.bashrc ]; then
source ~/.bashrc;
fi
Cela permet de vérifier si ~/.bashrc
est un fichier non vide (avec si [ -s ~/.bashrc ]
), et s'il est tel, il le source. C'est très simple. Maintenant, vous pouvez ajouter n'importe quel alias valide, fonction, variable, etc à ~/.bashrc
.
MAC OS X
Par défaut (avant 2019 Catalina), les sources Mac OS X ~/.bash_profile
. Pour pouvoir ajouter des choses à ~/.bashrc
(ce qui est, encore une fois, ce que je fais dans OS X, aussi), alors vous suivez la même procédure que linux. Dans le terminal, entrez cd ~; nano .bash_profile
. Vérifiez si une ligne indique source ~/.bashrc
et s'il n'est pas là, ajoutez l'instruction if ci-dessus ( if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
).
NOTES
Lorsque vous écrivez une instruction if, veillez à laisser des espaces entre pratiquement tout (par exemple if [ -s ~/.bashrc]; then echo "found"; fi
ne fonctionne pas parce qu'il n'y a pas d'espace entre ~/.bashrc
y ]
- l'interprète pensera qu'il s'agit d'un seul mot).
Si vous voulez mieux comprendre comment vérifier des choses dans une instruction if, allez dans le terminal et entrez man \[
cela vous donne essentiellement le déroulement d'une instruction if. Par exemple, if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi
vérifie si /path/to/file
est un fichier et s'il l'est, il imprime sur stdout en conséquence. Je fais toujours référence à ceci pour une référence rapide et plus facile à voir : 7.2. Opérateurs de test de fichiers .
J'espère que cela vous aidera. Je me souviens à quel point j'étais confus lorsque j'ai commencé tout cela (il n'y a pas si longtemps) ; alors, bonne chance dans vos futurs projets UNIX !
0 votes
Je pense que c'est très proche de apple.stackexchange.com/questions/7984/ .
1 votes
Si vous utilisez plutôt l'option par défaut
zsh
shell (pas i.e :bash
) configuré dans OS X 2019+ (actuellement Catalina), voir apple.stackexchange.com/a/338622/1920050 votes
@mmmmmm j'ai annulé votre édition. La question porte clairement sur bash, et il y a même des réponses récentes indiquant que zsh fonctionne différemment.
0 votes
@nohillside ces réponses sont la raison pour laquelle j'ai édité. En effet, catalina rend les réponses votées élevées fausses mais seulement pour catalina. La réponse correcte dépend plutôt du système d'exploitation et nous demandons souvent quel système d'exploitation. En outre, nous pourrions voir que cela concerne bash, mais les nouvelles réponses montrent qu'il est vu sur le démarrage scripts et où définir les alias dans MacOS et ne pas regarder pour voir quel shell est utilisé.
0 votes
@mmmmmm La réponse dépend du shell utilisé, et non directement du système d'exploitation. Je suis d'accord sur le fait que tout le monde ne sera pas au courant de cela, mais IMHO une nouvelle question faisant un lien vers celle-ci et affirmant "ça n'a pas marché" serait mieux. Les nouvelles réponses ici disent essentiellement "peut-être que vous n'utilisez pas bash, essayez les trucs de zsh".
0 votes
@mmmmmm Ou bien vous posez une nouvelle question "quels profils sont utilisés par quels shells", vous répondez vous-même pour bash et zsh, et nous fermons celle-ci comme un doublon
0 votes
La réponse Quelles sont les différences fonctionnelles entre .profile, .bash_profile et .bashrc ? - Défaut du serveur a mentionné pourquoi MacOS se comporte différemment.