Actualiser les alias et les fonctions après avoir défini de nouveaux alias et fonctions?

Quand je définis un nouvel alias dans le file .bash_aliases ou une nouvelle fonction dans le file .bashrc , y a-t-il une command de rafraîchissement pour pouvoir utiliser immédiatement les nouveaux alias ou fonctions sans fermer le terminal (dans mon cas terminal xfce4 avec quelques tabs ouverts , de nombreux files ouverts et au milieu du travail)?

L'approvisionnement du file modifié donnera access au nouvel alias ou à la nouvelle fonction du terminal actuel, par exemple:

 source ~/.bashrc 

Une syntaxe alternative:

 . ~/.bashrc 

Notez que si vous avez plusieurs instances de bash dans votre terminal (vous avez mentionné plusieurs tabs), vous devrez l'exécuter dans chaque instance.

Dactylographie . ~/.bashrc . ~/.bashrc à la command line exécutera .bashrc et donc toutes les fonctions définies dans ce file seront créées.

.bashrc lui-même appellera et exécutera aussi .bash_aliases ( s'il existe) si .bashrc a ce code dedans:

 if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi 

tandis que l'utilisation . ~/.bash_aliases . ~/.bash_aliases seul (à la command line par exemple) essaiera juste d'exécuter .bash_aliases sans impliquer .bashrc et donnera une erreur si le file n'existe pas (d'où le test de vérification de file dans .bashrc ).

Parfois, vous voudrez transformer un alias en une fonction, mais quand vous générez le file bashrc, une erreur bizarre peut se produire, quelque chose comme ceci:

 . ~/.bashrc bash: /home/username/.bashrc: line 38: syntax error near unexpected token `(' bash: /home/username/.bashrc: line 38: `hello_world() {' 

Cela se produit parce que le nom d'alias est en conflit avec le nom de la fonction nouvellement définie. Pour autant que je sache, pour éviter celui-ci a deux options:

La première méthode consiste à utiliser exec bash , l'inconvénient est que vous perdez votre environnement:

 bash-4.3 $ [1]: env_var="a value" ----------------------------------------------------------------------- bash-4.3 $ [2]: echo $env_var a value ----------------------------------------------------------------------- bash-4.3 $ [3]: exec bash ----------------------------------------------------------------------- bash-4.3 $ [1]: echo $env_var ----------------------------------------------------------------------- 

Donc, cela nous laisse avec la deuxième méthode, qui est de tout unalias, puis la source du file bashrc. Cela préserve notre environnement (à l'exception notable des alias):

 bash-4.3 $ [1]: unalias -a && . $HOME/.bashrc 

Normalement, je l'ai comme un alias dans mon bashrc par le nom de rechargement.