Vous retapez la même commande plusieurs fois par jour, mais vous ne voulez pas transformer votre terminal en collection de raccourcis impossibles à comprendre. Un alias Bash peut faire gagner du temps pour un affichage, un dossier ou une commande longue. Il peut aussi masquer une option importante et vous faire croire qu’une commande se comporte partout de la même façon.
Je réserve les alias aux raccourcis simples et explicites. Avant de les rendre permanents, je les teste dans le terminal courant, je contrôle leur définition avec type, puis je garde une méthode pour exécuter la vraie commande. Voici une configuration propre pour Bash.

Vérifier le shell avant de créer un alias
Un alias appartient au shell, pas à Linux lui-même. Une ligne ajoutée dans ~/.bashrc ne sera pas chargée de la même manière par Zsh, Fish ou un script non interactif. Vérifiez d’abord le shell réellement utilisé dans le terminal :
ps -p $$ -o comm=
echo "$BASH_VERSION"
Si la seconde commande affiche une version, vous êtes bien dans Bash. La variable $SHELL indique souvent le shell de connexion configuré pour le compte, mais pas forcément celui qui exécute la session actuelle.
Créez ensuite un alias temporaire. Il disparaîtra à la fermeture du terminal :
alias ll='ls -lah --color=auto'
alias cproj='cd "$HOME/projets"'
type ll
alias ll
Les apostrophes conservent la commande telle quelle jusqu’à son exécution. C’est utile pour que $HOME soit évalué au moment où vous lancez cproj, et non au moment où vous définissez l’alias. Testez le résultat dans un dossier sans risque avant de l’enregistrer.
Rendre les alias permanents dans .bash_aliases
Sur Debian et Ubuntu, ~/.bashrc charge souvent un fichier ~/.bash_aliases. Vérifiez-le au lieu de supposer que ce mécanisme existe sur votre distribution :
grep -n 'bash_aliases' ~/.bashrc
Si le fichier est déjà chargé, créez-le sans écraser son contenu, limitez ses droits, puis ouvrez-le dans votre éditeur :
touch ~/.bash_aliases
chmod 600 ~/.bash_aliases
nano ~/.bash_aliases
Ajoutez uniquement les définitions validées :
alias ll='ls -lah --color=auto'
alias cproj='cd "$HOME/projets"'
alias ports='ss -ltnp'
Si ~/.bashrc ne mentionne pas ce fichier, sauvegardez-le avant modification :
cp -a ~/.bashrc ~/.bashrc.bak-$(date +%F-%H%M)
nano ~/.bashrc
Ajoutez alors ce bloc une seule fois à la fin de ~/.bashrc :
if [ -f "$HOME/.bash_aliases" ]; then
. "$HOME/.bash_aliases"
fi
Contrôlez la syntaxe avant de recharger quoi que ce soit. Une erreur dans ~/.bashrc peut gêner l’ouverture des prochains terminaux :
bash -n ~/.bashrc
bash -n ~/.bash_aliases
source ~/.bash_aliases
type ll
La commande source ~/.bash_aliases recharge seulement les alias. C’est plus prévisible que de rejouer tout ~/.bashrc dans une session d’administration déjà ouverte. La documentation GNU explique aussi l’ordre de lecture dans les fichiers de démarrage de Bash.
Lister, contourner et supprimer un alias
Quand une commande ne réagit pas comme prévu, vérifiez si un alias ou une fonction la masque. C’est un contrôle rapide à faire avant d’accuser le paquet ou la distribution :
alias
alias ll
type ll
type -a ls
type indique ce que Bash exécutera réellement. type -a affiche aussi les autres versions disponibles dans le PATH. Si vous avez remplacé ls par un alias, ces deux formes appellent la vraie commande pour ce lancement :
command ls -lah
\ls -lah
Pour retirer un alias du terminal courant, utilisez unalias :
unalias ll
type ll
S’il revient dans un nouveau terminal, supprimez aussi sa ligne de ~/.bash_aliases, vérifiez la syntaxe, puis rechargez le fichier. Vous pouvez retrouver une ancienne définition avec le guide sur l’historique Bash, mais évitez de copier une commande contenant un secret.
Utiliser une fonction quand la commande attend un argument
Un alias remplace du texte au début d’une commande. Il n’est pas adapté à une logique qui doit recevoir et valider des arguments. Pour créer un dossier puis y entrer, utilisez plutôt une fonction Bash :
mkcd() {
if [ "$#" -ne 1 ]; then
echo "Usage: mkcd dossier" >&2
return 2
fi
mkdir -p -- "$1" && cd -- "$1"
}
Les guillemets autour de "$1" permettent de gérer un chemin contenant des espaces. Le séparateur -- évite qu’un nom commençant par un tiret soit interprété comme une option. Ajoutez cette fonction dans ~/.bashrc, lancez bash -n ~/.bashrc, puis testez-la avec un dossier temporaire.
Pour une automatisation réutilisable ou partagée, un script placé dans un répertoire du PATH Linux reste plus clair. Bash n’étend pas les alias par défaut dans les scripts non interactifs. Activer expand_aliases pour contourner cette règle rend le script dépendant de la configuration du compte.
Éviter les alias qui cachent une commande dangereuse
Je déconseille de redéfinir rm, mv, cp, sudo ou systemctl avec des options qui changent silencieusement leur comportement. Un alias rm='rm -i' peut sembler rassurant, mais il ne protège ni les scripts, ni un autre compte, ni une session où l’alias n’est pas chargé. À l’inverse, un alias qui ajoute -f ou -r peut rendre une erreur beaucoup plus coûteuse.
Préférez des noms distincts comme ll, ports ou cproj. Sur un serveur partagé, documentez-les dans le dépôt d’administration ou dans un fichier commun relu par l’équipe. Les alias de votre compte ne deviennent pas des commandes système et ne s’appliquent pas automatiquement à root avec sudo.
Le manuel GNU consacré aux alias Bash recommande lui aussi les fonctions pour presque tous les usages qui dépassent un simple remplacement. Avant de fermer la session, ouvrez un second terminal et contrôlez type ll, la commande développée et le fichier qui la charge. Vous saurez ainsi exactement quel raccourci sera disponible lors de la prochaine connexion.