Aller au contenu
Administration Linux medium

Personnaliser son shell

30 min de lecture

Chaque fois que vous ouvrez un terminal, Bash lit un fichier de configuration pour charger vos réglages. En ajoutant quelques lignes dans ce fichier, vous pouvez créer des raccourcis, modifier l'apparence du prompt et ajouter des variables utiles. Ce guide vous montre comment adapter votre environnement de travail sans risque.

  • Comprendre la différence entre .bashrc et .bash_profile
  • Créer des aliases pour raccourcir des commandes fréquentes
  • Personnaliser le prompt PS1 avec des informations utiles
  • Appliquer les modifications sans fermer le terminal
  • Ajouter des exports permanents

Bash lit des fichiers différents selon le type de session. Cette distinction explique la panne la plus courante quand on personnalise son shell : un réglage qui fonctionne dans le terminal graphique mais disparaît en SSH, ou l'inverse. Regardez la colonne du milieu, c'est elle qui détermine si votre modification sera prise en compte dans le contexte où vous travaillez.

FichierQuand il est luUsage principal
~/.bash_profileConnexion (login shell : SSH, console)Variables d'environnement, PATH
~/.bashrcChaque nouveau terminal interactifAliases, prompt, fonctions
~/.profileConnexion (si .bash_profile n'existe pas)Alternative à .bash_profile

Avant d'ajouter quoi que ce soit, lisez ce qui existe déjà. Sur Debian et Ubuntu, ~/.bashrc fait plus de cent lignes, avec souvent une section d'aliases commentée en fin de fichier : décommenter suffit parfois à obtenir ce que vous cherchez.

Fenêtre de terminal
cat ~/.bashrc

Vous y trouverez probablement des lignes de configuration par défaut ajoutées par votre distribution.

Un alias est un raccourci pour une commande longue. Par exemple, au lieu de taper ls -la --color=auto, vous pouvez créer un alias ll :

Fenêtre de terminal
alias ll='ls -la --color=auto'

Tapez maintenant ll, le shell exécute la commande longue à votre place.

Voici cinq aliases qui couvrent la majorité des frappes répétitives d'une journée d'administration. Notez le dernier : redéfinir grep par un alias du même nom est une pratique courante, le shell n'entre pas en boucle infinie car il n'étend pas un alias à l'intérieur de sa propre définition.

Fenêtre de terminal
alias ll='ls -la --color=auto'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --color=auto'

Un alias créé dans le terminal disparaît à la fermeture. Pour le conserver, ajoutez-le dans ~/.bashrc :

  1. Ouvrez le fichier avec un éditeur :

    Fenêtre de terminal
    nano ~/.bashrc
  2. Ajoutez vos aliases à la fin du fichier :

    Fenêtre de terminal
    # Mes aliases personnels
    alias ll='ls -la --color=auto'
    alias ..='cd ..'
  3. Enregistrez et quittez (Ctrl+O, Entrée, Ctrl+X dans nano).

  4. Appliquez les changements :

    Fenêtre de terminal
    source ~/.bashrc

Pour voir tous les aliases actifs :

Fenêtre de terminal
alias

Pour supprimer un alias temporairement :

Fenêtre de terminal
unalias ll

Pour le supprimer définitivement, retirez la ligne de ~/.bashrc et relancez source ~/.bashrc.

La variable PS1 contrôle l'apparence du prompt. Pour voir la valeur actuelle :

Fenêtre de terminal
echo "$PS1"

Ces sept séquences suffisent à construire n'importe quel prompt utile. Deux méritent une attention particulière : \w remplace votre dossier personnel par un tilde (~/projets et non /home/bob/projets), et \$ affiche # quand l'utilisateur effectif est root, ce qui est le signal visuel le plus efficace pour éviter une commande destructrice lancée par mégarde.

CodeAffiche
\uNom de l'utilisateur
\hNom de la machine (court)
\wRépertoire courant (chemin complet)
\WRépertoire courant (nom seul)
\dDate
\tHeure (HH:MM:SS)
\$$ (utilisateur normal) ou # (root)

Un prompt simple avec utilisateur, machine et répertoire :

Fenêtre de terminal
PS1='\u@\h:\w\$ '
Résultat
bob@serveur:~/projets$

Un prompt minimaliste avec seulement le dossier courant :

Fenêtre de terminal
PS1='\W \$ '
Résultat
projets $

Les codes couleur s'encadrent entre \[\033[CODEm\] et \[\033[0m\]. Les délimiteurs \[ et \] ne sont pas décoratifs : ils indiquent à Bash que les caractères qu'ils entourent n'occupent aucune colonne à l'écran. Les oublier produit le symptôme décrit dans le tableau de dépannage plus bas, un prompt qui s'efface ou se duplique dès que vous rappelez une commande avec la flèche du haut.

Fenêtre de terminal
PS1='\[\033[32m\]\u@\h\[\033[0m\]:\[\033[34m\]\w\[\033[0m\]\$ '

Le tableau ci-dessous ne liste que les quatre couleurs les plus lisibles sur fond sombre comme sur fond clair. Le code 0 est indispensable en fin de prompt : sans lui, la couleur déborde sur tout ce que vous tapez.

CodeCouleur
32Vert
34Bleu
31Rouge
33Jaune
0Réinitialiser

Ajoutez la ligne PS1=... dans ~/.bashrc, en fin de fichier pour qu'elle prenne le pas sur celle que la distribution a déjà posée, puis rechargez :

Fenêtre de terminal
source ~/.bashrc

Si le prompt ne change pas, c'est presque toujours qu'une définition ultérieure de PS1 existe plus bas dans le fichier. grep -n 'PS1=' ~/.bashrc liste toutes les affectations et leur numéro de ligne : la dernière gagne.

Pour qu'une variable d'environnement soit toujours disponible, ajoutez un export dans ~/.bashrc :

Fenêtre de terminal
# Ajouter ~/scripts au PATH
export PATH="$HOME/scripts:$PATH"
# Éditeur par défaut
export EDITOR="nano"

Après modification, n'oubliez pas :

Fenêtre de terminal
source ~/.bashrc

source relit un fichier et applique ses commandes dans le shell courant :

Fenêtre de terminal
source ~/.bashrc

C'est la façon standard de recharger sa configuration sans fermer le terminal. Le raccourci équivalent est . (point) :

Fenêtre de terminal
. ~/.bashrc

Les cinq symptômes ci-dessous couvrent la quasi-totalité des blocages sur ce sujet. Trois d'entre eux ont la même racine : une modification faite dans le terminal courant plutôt que dans le fichier, ou l'inverse. Avant de chercher plus loin, vérifiez toujours ces deux points, le fichier contient bien la ligne, et source ~/.bashrc a bien été relancé après l'avoir écrite.

SymptômeCause probableSolution
Alias non reconnu après redémarrageAlias non ajouté dans ~/.bashrcAjouter la ligne dans le fichier
source ~/.bashrc affiche une erreurErreur de syntaxe dans le fichierVérifier la ligne indiquée dans le message
Prompt bizarre après modification de PS1Codes couleur mal fermés (\[...\] manquants)Vérifier les balises \[ et \]
Variable perdue en SSHVariable dans .bashrc mais session login lit .bash_profileAjouter source ~/.bashrc dans .bash_profile
nano ~/.bashrc crée un nouveau fichier videFichier inexistant (rare sur les distributions récentes)Normal, le fichier sera créé

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • ~/.bashrc est le fichier principal de personnalisation pour les terminaux interactifs.
  • Un alias (alias nom='commande') crée un raccourci vers une commande longue.
  • PS1 contrôle l'apparence du prompt, les codes \u, \h, \w insèrent des informations utiles.
  • source ~/.bashrc applique les modifications sans fermer le terminal.
  • Ajoutez vos exports dans ~/.bashrc pour les rendre permanents.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn