Navigation et fichiers
| Commande | Rôle | Exemple |
pwd | Afficher le dossier courant. | pwd |
ls -lah | Lister avec droits, fichiers cachés et tailles lisibles. | ls -lah /var/log |
cd | Changer de dossier. | cd /etc |
mkdir -p | Créer une arborescence complète. | mkdir -p /srv/partage/equipe |
cp -a | Copier en conservant attributs et arborescence. | cp -a source/ sauvegarde/ |
mv | Déplacer ou renommer. | mv ancien.conf nouveau.conf |
rm -r | Supprimer récursivement. À utiliser avec prudence. | rm -r dossier-test |
touch | Créer un fichier vide ou actualiser sa date. | touch test.txt |
stat | Afficher les métadonnées détaillées. | stat fichier.txt |
Lire, filtrer et rechercher
| Commande | Rôle | Exemple |
cat | Afficher un petit fichier. | cat /etc/hostname |
less | Lire un long fichier page par page. | less /var/log/syslog |
head / tail | Afficher le début ou la fin. | tail -f /var/log/auth.log |
grep -Rin | Rechercher récursivement, sans tenir compte de la casse, avec numéros de ligne. | grep -Rin "erreur" /var/log |
find | Rechercher des fichiers selon plusieurs critères. | find /home -type f -name "*.txt" |
wc -l | Compter les lignes. | wc -l serveurs.txt |
sort | uniq -c | Trier puis compter les occurrences. | sort fichier.txt | uniq -c |
cut | Extraire des colonnes. | cut -d: -f1 /etc/passwd |
awk | Filtrer et traiter des colonnes. | awk '{print $1}' fichier.txt |
sed | Remplacer 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.