Lorsque je définis un nouvel alias dans .bash_aliases
fichier ou une nouvelle fonction dans .bashrc
fichier, existe-t-il une commande de rafraîchissement pour pouvoir utiliser immédiatement les nouveaux alias ou fonctions sans fermer le terminal (dans mon cas xfce4-terminal avec quelques onglets ouverts, beaucoup de fichiers ouverts et au milieu du travail)?
La recherche du fichier modifié donnera accès à l'alias ou à la fonction nouvellement écrite dans le terminal actuel, par exemple:
source ~/.bashrc
Une syntaxe alternative:
. ~/.bashrc
Notez que si vous avez plusieurs instances de bash en cours d'exécution dans votre terminal (vous avez mentionné plusieurs onglets), vous devrez l'exécuter dans chaque instance.
Taper . ~/.bashrc
sur la ligne de commande s'exécutera .bashrc
et ainsi toutes les fonctions définies dans ce fichier seront créées.
.bashrc
lui-même appellera et exécutera également .bash_aliases
(si il existe) si .bashrc
contient ce code:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
alors qu'en utilisant . ~/.bash_aliases
seul (sur la ligne de commande par exemple) essaiera simplement d'exécuter .bash_aliases
sans impliquer .bashrc et donnera une erreur si le fichier n'existe pas (d'où le test de vérification de fichier en .bashrc
).
Parfois, vous souhaiterez transformer un alias en fonction, mais lorsque vous sourcez le fichier bashrc, une erreur étrange peut se produire:
. ~/.bashrc
bash: /home/username/.bashrc: line 38: syntax error near unexpected token `('
bash: /home/username/.bashrc: line 38: `hello_world() {'
Cela peut se produire car le nom d'alias est en conflit avec le nom de la fonction nouvellement définie. Pour autant que je sache, pour éviter cela, il faut tout désaliaser, puis sourcez le fichier bashrc:
bash-4.3 $
unalias -a && . $HOME/.bashrc