Je veux mettre de nouveaux alias à mes .bash_profile
mais je ne trouve pas ce fichier.
Où est-il censé être ?
Réponses
Trop de publicités?C'est un fichier caché, situé dans votre dossier personnel :
~/.bash_profile
(le ~
se développe dans votre répertoire personnel. Si votre nom d'utilisateur est user
le résultat serait : /home/user/.bash_profile
).
Comme c'est un fichier caché, vous devez le rendre visible. Pour le faire dans Nautilus, allez dans le menu "View" et cochez "Show hidden files" (ou appuyez sur le raccourci Ctrl + H ).
Si vous utilisez Kubuntu avec Dolphin, vous devez appuyer sur Ctrl + . pour basculer la visibilité des fichiers.
~/.bash_profile
n'est pas le bon endroit pour mettre les alias et les fonctions. Ils devraient aller dans ~/.bashrc
. Voir http://mywiki.wooledge.org/DotFiles pour une explication.
Vous n'avez généralement pas .bash_profile
sur Ubuntu, vous ne devriez pas non plus crée habituellement ce fichier. Comme jpezz dit il serait dans votre répertoire personnel sur votre système Ubuntu, qui est ce que ~
et vous pouvez le créer à cet endroit. Mais si vous le faites, vous devez être prudent, car cela empêchera bash
d'exécuter automatiquement les commandes dans .profile
-- ce que vous avez certainement do ont.
Lorsque bash
s'exécute en tant que login Shell dans la WSL ou ailleurs 1 il exécute le premier de .bash_profile
, .bash_login
o .profile
qui existe dans votre répertoire personnel. Si vous avez bash
- les commandes spécifiques que vous voulez exécuter lorsque vous vous connectez, mais seulement lorsque bash
est votre Shell--vous pourriez les mettre dans .bash_profile
. Mais la simple existence de .bash_profile
empêcherait .profile
d'être utilisé.
Donc, vous voudriez fuente .profile
からして .bash_profile
en supposant que vous souhaitiez que ces commandes soient également exécutées, ce qui est presque toujours le cas. Vous pouvez le faire en plaçant cette commande dans .bash_profile
:
. ~/.profile
(Certains lecteurs sont peut-être habitués à voir cela écrit comme . "$HOME/.profile"
quand il apparaît dans un script de démarrage. C'est toujours bien - et vous pouvez préférer l'utiliser pour les commandes qui doivent fonctionner sur des interpréteurs de commandes autres que bash
également, si vous avez besoin d'accommoder des shells extrêmement anciens qui ne supportent pas fonctions standard qui eh bien, vous n'avez pas besoin de ça. Dans tous les cas, bash
soutient toujours expansion du tilde et le point de .bash_profile
est que seul bash
exécute des commandes à partir de celui-ci, donc . ~/.profile
est bien).
Le site .
builtin source un fichier, c'est-à-dire qu'il exécute toutes les commandes du fichier dans le Shell courant. Ouvrir un programme interactif bash
Shell et exécuter help .
pour plus d'informations.
La raison pour laquelle vous n'avez pas l'habitude .bash_profile
sur Ubuntu même si vous avez bash
-Les commandes spécifiques que vous souhaitez exécuter lors de la connexion. c'est que, par défaut, les utilisateurs .profile
Les fichiers contiennent du code qui vérifie si le Shell actuel est bash
permet d'exécuter de telles commandes.
Il existe une autre réponse à la question de savoir où se trouvent les fichiers tels que .profile
o .bash_profile
sont. Les versions par défaut de ces fichiers existent dans le répertoire /etc/skel
répertoire. Les fichiers de ce répertoire sont copiés dans les répertoires personnels d'Ubuntu lorsque des comptes d'utilisateur sont créés sur un système Ubuntu - y compris le compte d'utilisateur que vous créez dans le cadre de l'installation d'Ubuntu. Si vous regardez dans ce répertoire, vous remarquerez qu'il y a un fichier appelé .profile
--ainsi que d'autres fichiers comme .bashrc
-- mais il n'y a pas de fichier appelé .bash_profile
. C'est pourquoi ou, vraiment, comment --non .bash_profile
existe dans votre répertoire personnel Ubuntu, à moins que vous ne l'ayez créé vous-même.
Enfin, vous devez no mettre les alias dans .profile
du tout, ni .bash_profile
un bon endroit pour eux, comme geirha rightly dit . En effet, vous souhaitez que vos alias fonctionnent dans les shells interactifs, qu'ils soient ou non des shells de connexion. Au lieu de cela, définissez vos alias dans .bashrc
ou, mieux, .bash_aliases
(comme L'invité Boeroe souligne ), que la valeur par défaut .bashrc
sources. Voir Comment créer un alias Bash permanent ?
La valeur par défaut .profile
vérifiera si vous exécutez un bash
Shell et source .bashrc
si vous l'êtes :
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Entre-temps, l'option par défaut .bashrc
quittera en haut de l'écran sans rien faire s'il est exécuté dans un Shell non interactif, de sorte que les commandes qu'il contient ne s'exécuteront pas s'il est sourcé par .profile
dans un non interactif login Shell et dans d'autres scénarios plus obscurs 2 :
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
Donc si vous mettre les alias dans .bashrc
ou dans .bash_aliases
vous les obtiendrez pour les shells de connexion interactifs (où .profile
est utilisé) ainsi que les shells interactifs sans login (où l'option .bashrc
est utilisé). C'est ce que vous voulez. Ne mettez rien au-dessus du contrôle de l'interactivité, sauf si vous le souhaitez vraiment, vraiment savoir ce que vous faites.
1 Cette réponse a été écrite à l'origine pour une question relative à la WSL mais cette question a été fermée en tant que doublon et cette réponse s'applique pleinement ici aussi, donc j'ai développé un peu et l'ai posté ici à la place.
2 Lorsque bash
détecte qu'il s'exécute probablement en tant que Shell initial d'une connexion à distance qui est no un login Shell--comme quand vous utilisez ssh
pour exécuter une seule commande sur une machine distante - il exécute les commandes à partir de .bashrc
. (Voir 6.2 Fichiers de démarrage de Bash en el Manuel de GNU Bash .)
Je voulais juste ajouter que même si les fichiers sont cachés dans la visionneuse, vous pouvez toujours les ouvrir tous si vous entrez simplement le nom du fichier. Par exemple, si vous écrivez dans la barre d'adresse de dolphin /home/<user>/.bashrc, il ouvrira le fichier avec l'éditeur par défaut sans avoir à afficher/cacher certains fichiers.
L'autre moyen est d'ouvrir votre éditeur préféré et de taper le nom du fichier.
Je considère que c'est la meilleure façon de gérer les fichiers cachés, car le fait de montrer et de ne pas montrer ne fait qu'ajouter du bruit qui peut être évité.
Et les alias doivent être placés dans le fichier .bashrc sous la forme suivante geirha écrit.