Bash — récapitulatif des commandes

Les commandes Linux et structures Bash à connaître pour les exercices et le dépannage TSSR.

Navigation et fichiers

CommandeRôleExemple
pwdAfficher le dossier courant.pwd
ls -lahLister avec droits, fichiers cachés et tailles lisibles.ls -lah /var/log
cdChanger de dossier.cd /etc
mkdir -pCréer une arborescence complète.mkdir -p /srv/partage/equipe
cp -aCopier en conservant attributs et arborescence.cp -a source/ sauvegarde/
mvDéplacer ou renommer.mv ancien.conf nouveau.conf
rm -rSupprimer récursivement. À utiliser avec prudence.rm -r dossier-test
touchCréer un fichier vide ou actualiser sa date.touch test.txt
statAfficher les métadonnées détaillées.stat fichier.txt

Lire, filtrer et rechercher

CommandeRôleExemple
catAfficher un petit fichier.cat /etc/hostname
lessLire un long fichier page par page.less /var/log/syslog
head / tailAfficher le début ou la fin.tail -f /var/log/auth.log
grep -RinRechercher récursivement, sans tenir compte de la casse, avec numéros de ligne.grep -Rin "erreur" /var/log
findRechercher des fichiers selon plusieurs critères.find /home -type f -name "*.txt"
wc -lCompter les lignes.wc -l serveurs.txt
sort | uniq -cTrier puis compter les occurrences.sort fichier.txt | uniq -c
cutExtraire des colonnes.cut -d: -f1 /etc/passwd
awkFiltrer et traiter des colonnes.awk '{print $1}' fichier.txt
sedRemplacer ou transformer du texte.sed 's/ancien/nouveau/g' fichier.txt

Droits, utilisateurs et processus

chmod 640 fichier.conf
chown root:administrateurs fichier.conf
getfacl dossier
setfacl -m g:support:rwx dossier
id utilisateur
getent passwd utilisateur
ps aux
pgrep -a apache2
kill PID
systemctl status ssh
journalctl -u ssh --since today

Réseau et stockage

ip -br addr
ip route
ip neigh
ss -lntup
ping -c 4 192.168.1.1
traceroute 8.8.8.8
dig A serveur.exemple.local
df -hT
du -sh /var/*
lsblk -f
mount | column -t

Variables, conditions et boucles

#!/bin/bash
set -euo pipefail

fichier="serveurs.txt"

while IFS= read -r serveur; do
    [[ -z "$serveur" ]] && continue
    if ping -c 1 -W 1 "$serveur" >/dev/null 2>&1; then
        echo "$serveur : OK"
    else
        echo "$serveur : KO"
    fi
done < "$fichier"

Redirections utiles

commande > sortie.txt          # remplace le fichier
commande >> sortie.txt         # ajoute à la fin
commande 2> erreurs.txt        # erreurs uniquement
commande > tout.txt 2>&1      # sortie et erreurs
commande | grep motif          # tube vers une autre commande
commande >/dev/null 2>&1      # ne rien afficher

🚨 Réflexe TSSR

  • Tester d’abord la commande sans suppression ni modification.
  • Mettre les variables entre guillemets : "$variable".
  • Lire les journaux avec journalctl et vérifier le code retour avec echo $?.
  • Utiliser shellcheck script.sh si disponible.

⚠ Pièges fréquents

  • rm -rf exécuté dans le mauvais dossier.
  • Oublier les guillemets autour d’un chemin contenant des espaces.
  • Confondre > et >>.
  • Utiliser for x in $(cat fichier), qui découpe mal les lignes ; préférer while read.