Aller au contenu
English
Administration Linux medium

Prise en main de Bash

20 min de lecture

Bash est très répandu sur Linux et reste le shell de référence dans la plupart des guides d'administration. Ce guide vous fait passer de « je vois un écran noir » à « je tape des commandes, je me corrige vite et je comprends ce que le terminal me répond ». Aucune connaissance préalable n'est requise, seulement un accès à une machine Linux (physique, VM ou WSL).

  • Ouvrir un terminal et lire le prompt
  • Taper, corriger et rappeler des commandes
  • Utiliser les raccourcis clavier essentiels de Bash
  • Comprendre les codes de retour et les messages d'erreur
  • Savoir où se trouve une commande et consulter son aide

Le terminal est l'application graphique qui héberge votre shell. Le shell est le programme qui interprète vos commandes.

Raccourci clavier : Ctrl + Alt + T. Vous pouvez aussi chercher « Terminal » dans les applications.

Une fois le terminal ouvert, vous voyez le prompt : c'est la ligne qui attend que vous tapiez quelque chose.

Le prompt par défaut de Bash ressemble à ceci :

bob@serveur:~$

Chaque partie a une signification :

ÉlémentSignification
bobNom de l'utilisateur connecté
@Séparateur
serveurNom de la machine (hostname)
:Séparateur
~Répertoire courant (~ = répertoire personnel, /home/bob)
$Vous êtes un utilisateur normal (# si vous êtes root)

Le dernier signe du prompt mérite un coup d'oeil avant chaque commande. Un # final signale une session root, donc administrateur : à ce niveau, aucune commande ne demande de confirmation et rien n'empêche une suppression définitive. Travaillez en utilisateur normal sauf besoin explicite, et repassez en root le temps d'une commande avec sudo.

La variable $SHELL indique le shell de login configuré pour votre compte, mais pas forcément celui en cours d'exécution. Pour vérifier le shell réellement actif :

Fenêtre de terminal
echo "$0"

Ou de façon plus détaillée :

Fenêtre de terminal
ps -p $$ -o comm=

Si le résultat est bash, vous êtes bien dans Bash.

Une commande est un mot que vous tapez, suivi éventuellement d'options et d'arguments, puis validé avec Entrée.

  1. Tapez whoami puis appuyez sur Entrée :

    Fenêtre de terminal
    whoami

    Le shell affiche votre nom d'utilisateur.

  2. Tapez pwd (print working directory) :

    Fenêtre de terminal
    pwd

    Le shell affiche le chemin complet du répertoire dans lequel vous vous trouvez.

  3. Tapez date :

    Fenêtre de terminal
    date

    Le shell affiche la date et l'heure du système.

Chaque commande suit la même logique :

commande [options] [arguments]

Par exemple, ls -l /etc appelle la commande ls, avec l'option -l (format détaillé) et l'argument /etc (le répertoire à lister).

Un piège se présente dès la première commande : Linux distingue les majuscules des minuscules, partout. ls fonctionne, LS non, et le message obtenu ne parle jamais de casse, il dit seulement que la commande est introuvable. La règle vaut aussi pour les noms de fichiers et de répertoires.

Bash conserve les commandes que vous avez tapées. Vous n'avez pas besoin de tout retaper à chaque fois.

ActionTouche
Commande précédenteFlèche Haut
Commande suivanteFlèche Bas
Rechercher une commandeCtrl + R puis taper un mot
Afficher tout l'historiquehistory
Relancer la commande n° 42!42
Relancer la dernière commande!!

Essayez : tapez quelques commandes (whoami, date, pwd), puis appuyez plusieurs fois sur Flèche Haut pour les retrouver.

Les flèches conviennent pour remonter de quelques commandes, pas pour retrouver une ligne tapée la semaine dernière. La recherche incrémentale parcourt tout l'historique à partir d'un fragment : quelques lettres suffisent, et Bash affiche la correspondance la plus récente au fur et à mesure de la frappe.

  1. Appuyez sur Ctrl + R. Le prompt change :

    (reverse-i-search)`':
  2. Tapez les premières lettres de la commande recherchée, par exemple who. Bash affiche la correspondance la plus récente.

  3. Appuyez sur Entrée pour exécuter, ou Ctrl + R encore pour remonter plus loin dans l'historique.

  4. Pour annuler la recherche, appuyez sur Ctrl + C.

Par défaut, Bash s'appuie sur Readline avec des raccourcis de type Emacs. Ce comportement peut être personnalisé via ~/.inputrc, mais les raccourcis ci-dessous fonctionnent dans la grande majorité des cas.

Ces 4 raccourcis évitent de maintenir une flèche enfoncée pour revenir au début d'une longue commande. Retenez d'abord les 2 premiers, qui couvrent l'essentiel : Ctrl + A pour le début de ligne, Ctrl + E pour la fin. Les déplacements mot à mot viennent ensuite, quand ces deux-là sont devenus automatiques.

RaccourciAction
Ctrl + AAller au début de la ligne
Ctrl + EAller à la fin de la ligne
Alt + FAvancer d'un mot
Alt + BReculer d'un mot

Corriger une commande coûte presque toujours moins cher que la retaper, et c'est tout l'objet de ces 5 raccourcis. Le dernier mérite d'être connu avant les autres : Ctrl + Y recolle le texte que vous venez de supprimer, ce qui rattrape un Ctrl + U lancé trop vite.

RaccourciAction
Ctrl + USupprimer du curseur jusqu'au début de la ligne
Ctrl + KSupprimer du curseur jusqu'à la fin de la ligne
Ctrl + WSupprimer le mot avant le curseur
Alt + DSupprimer le mot après le curseur
Ctrl + YColler le texte supprimé (yank)
RaccourciAction
Ctrl + CInterrompre la commande en cours
Ctrl + DSur une ligne vide, envoie EOF et peut fermer le shell
Ctrl + LEffacer l'écran (équivaut à clear)
Ctrl + ZSuspendre la commande en cours (reprendre avec fg)

Un cas particulier mérite d'être connu : si la variable IGNOREEOF est définie, Ctrl + D ne ferme pas le shell, contrairement à ce que tous les mémentos annoncent. C'est précisément pour cela que exit reste la méthode fiable pour quitter une session, quelle que soit la configuration de la machine.

Le meilleur moyen d'installer ces réflexes est de les essayer à vide. Tapez une longue commande fictive, déplacez-vous avec Ctrl + A et Ctrl + E, supprimez un mot avec Ctrl + W. Quelques minutes suffisent, et le gain se mesure ensuite à chaque ligne tapée.

La touche Tab est le raccourci le plus important de Bash.

  1. Tapez cat /etc/host puis appuyez sur Tab :

    Bash complète en cat /etc/hostname (ou vous propose hosts et hostname si plusieurs fichiers correspondent).

  2. Appuyez deux fois sur Tab si rien ne se passe : Bash affiche toutes les possibilités.

  3. L'autocomplétion fonctionne aussi sur les commandes : tapez sys puis Tab Tab pour voir systemctl, sysctl, etc.

La complétion ne s'arrête pas aux chemins et aux commandes. Sur les distributions récentes, elle couvre aussi les noms de services, où systemctl restart ng suivi de Tab propose nginx, et les noms de paquets. Si rien ne se produit, le paquet bash-completion est probablement absent de l'installation.

Chaque commande se termine par un code de retour (exit code). C'est un nombre que le shell conserve et qui indique si la commande a réussi ou échoué.

CodeSignification
0Succès
1Erreur générique
2Mauvais usage de la commande
126Commande trouvée mais non exécutable (permissions)
127Commande introuvable
130Interrompue par Ctrl + C

Pour consulter le code de retour de la dernière commande :

Fenêtre de terminal
echo $?

Exemple concret :

Fenêtre de terminal
ls /etc/hostname
echo $?
# 0 → le fichier existe, la commande a réussi
ls /fichier-inexistant
echo $?
# 2 → erreur, le fichier n'existe pas

Pour comprendre ce que Bash exécute quand vous tapez un mot, utilisez le builtin type :

Fenêtre de terminal
type ls
# ls est un alias pour « ls --color=auto »
type cd
# cd est une primitive du shell
type -a grep
# grep est /usr/bin/grep

type vous dit si un mot est un alias, une primitive du shell (builtin), une fonction ou un exécutable sur le disque. L'option -a liste toutes les résolutions possibles.

Pour un exécutable, utilisez man :

Fenêtre de terminal
man ls

Pour une primitive du shell (builtin), man n'a pas toujours de page. Utilisez plutôt help :

Fenêtre de terminal
help cd
help history
help type

help documente les commandes que Bash exécute directement, sans lancer de programme externe.

Maintenant que vous connaissez le prompt, l'historique et les raccourcis, voici quelques commandes pour vos premières explorations :

CommandeCe qu'elle fait
lsListe les fichiers du répertoire courant
ls -laListe avec fichiers cachés et détails
cd /var/logChange de répertoire
cdRetourne au répertoire personnel
cat /etc/os-releaseAffiche le contenu d'un fichier
head -5 /etc/passwdAffiche les 5 premières lignes
echo "Bonjour"Affiche un texte
uname -aInformations sur le noyau
uptimeDepuis combien de temps le système tourne
free -hMémoire disponible (format lisible)
df -hEspace disque par partition

Quand vous vous trompez, Bash affiche un message. Voici les erreurs les plus courantes au tout début :

Ce que vous tapezMessageCe qui s'est passé
Whoamicommand not foundLa casse est mauvaise
ls /dossier-inexistantNo such file or directoryLe chemin n'existe pas
cat /root/secretPermission deniedVous n'avez pas les droits
cd /etc/passwdNot a directoryC'est un fichier, pas un dossier
LScommand not foundLa casse est sensible sous Linux

Le réflexe à prendre tout de suite est de lire le message avant de retaper. Il désigne presque toujours la cause exacte parmi les cas du tableau ci-dessus : nom incorrect, chemin absent, ou droits insuffisants. Retaper au hasard coûte bien plus de temps que de lire une ligne.

Le terminal n'utilise pas les mêmes raccourcis que le reste du bureau.

ActionRaccourci
CopierCtrl + Shift + C
CollerCtrl + Shift + V

Mettez en pratique ce que vous venez de lire :

  1. Ouvrez un terminal.

  2. Vérifiez votre nom avec whoami.

  3. Affichez le répertoire courant avec pwd.

  4. Listez les fichiers avec ls.

  5. Consultez votre historique avec history.

  6. Rappeler une commande précédente avec Flèche Haut, puis validez.

  7. Interrompez une commande longue avec Ctrl + C (essayez sleep 60 puis Ctrl + C).

  8. Quittez le shell avec exit.

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

  • Le prompt vous indique qui vous êtes, où vous êtes et si vous êtes root.
  • Toute commande suit la forme commande [options] [arguments] puis Entrée.
  • Tab complète les commandes et les chemins : utilisez-la systématiquement.
  • Ctrl + R retrouve une commande passée en quelques frappes.
  • Ctrl + C interrompt, Ctrl + L nettoie l'écran, Ctrl + A/E se déplace dans la ligne.
  • echo $? donne le code de retour : 0 = succès, autre chose = erreur.
  • type identifie ce que Bash exécute ; help documente les builtins.
  • exit ferme proprement la session shell.

Ce site vous est utile ?

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

Je maintiens ce site gratuitement, sans publicité, sans profilage et sans compte à créer. 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