Pour créer un alias pour le terminal sous OS X, vous pouvez insérer les alias dans .bash_profile
ou .bashrc
. Quelle est la différence entre les deux et pourquoi devrais-je choisir de mettre des pseudonymes dans l'un et pas dans l'autre?
terminal
command-line
bash
Daviesgeek
la source
la source
brew install bash
et utilisez iTerm2, vous pouvez définirprofile -> command
sur/usr/local/bin/bash
lequel sera chargé.bashrc
par défaut après.bash_profile
. Cela vous donne également 4 friandises Bash ...Réponses:
.bash_profile
est exécuté pour les shells de connexion, tandis que.bashrc
est exécuté pour les shells interactifs sans login.Lorsque vous vous connectez (tapez le nom d'utilisateur et le mot de passe) via la console, assis devant la machine ou à distance via ssh:
.bash_profile
est exécuté pour configurer votre shell avant l'invite de commande initiale.Toutefois, si vous êtes déjà connecté à votre ordinateur et ouvrez une nouvelle fenêtre de terminal (xterm), celui-ci
.bashrc
est exécuté avant l'invite de commande de la fenêtre..bashrc
est également exécuté lorsque vous démarrez une nouvelle instance bash en tapant/bin/bash
un terminal.Sous OS X, Terminal exécute par défaut un shell de connexion à chaque fois. C'est donc un peu différent de la plupart des autres systèmes, mais vous pouvez le configurer dans les préférences.
la source
On OS X, Terminal by default runs a login shell every time
- J'ai toujours été si confus de ne pas m'en rendre compte. Super info!.zprofile
s'exécute à chaque fois.X11 examinera votre
.bashrc
temps tandis qu'un terminal "normal" examinera.bash_profile
Toutefois, si vous ajoutez ce qui suit à votre
.bash_profile
, vous pouvez alors tout déplacer dans votre.bashrc
fichier afin de tout regrouper au même endroit au lieu de deux:la source
cd ~ ; ln -s .bashrc .bash_profile
.~/.bash_profile
). Il est également souvent nécessaire de définir incrémentalement des éléments à chaque niveau de shell (~/.bashrc
). Ce n'est pas la meilleure idée de suggérer de supprimer cette liberté.~/.bash_profile
pour chaque nouvelle fenêtre / onglet, il n'y a donc pas vraiment de moyen de séparer les deux en ce qui concerne Terminal..bash_profile
ne peut plus jamais être recherché dans un processus enfant. Chaque niveau de sources Bash imbriquées.bashrc
, donc si vous mettez quelque chose commeexport A=a:$A
dans.bashrc
, vous$A
deviendrez plus long dans Bash imbriqué. Je laisse généralement la variable d'environnement dans le profil et les alias dans RC.Pour macOS, le code à intégrer
.bash_profile
pour tout consolider.bashrc
est le suivant:Ceci est plus spécifique pour les utilisateurs de terminaux Mac.
la source
TLDR; utiliser
.bash_profile
pour vos alias.La façon dont les différents fichiers d’initialisation fonctionnent ensemble est un peu plus compliquée et il existe quelques cas particuliers importants sous OSX. Voici les faits saillants:
.bash_profile
dire appelé. Ainsi, le conseil TLDR ci-dessus..bashrc
est aussi une option, mais cela sera appelé à chaque fois que vous créez un sous-shell (c'est-à-dire, appelez-lebash
), ce qui peut créer une inefficacité si vous mettez à jour une variable qu'il contient (par exemple,PATH=/bin/foo:$PATH
).bashrc
partir.bash_profile
sont assez communs. Je ne le recommande pas, mais c'est une préférence.la source
.bash_profile
des alias est-elle compliquée? Les éléments que vous avez énumérés ne traitent que partiellement d'alias. Par conséquent, au lieu de simplement énumérer certains points qui pourraient expliquer pourquoi cela semble compliqué, pouvez-vous proposer un moyen de simplifier ces tâches?