Skip to content

Cheatsheet Commandes Linux

Référence rapide des commandes Linux essentielles.


# Navigation
pwd                     # Répertoire courant
cd /path/to/dir         # Changer de répertoire
cd ~                    # Home directory
cd -                    # Répertoire précédent
ls -la                  # Liste détaillée avec fichiers cachés
ls -lh                  # Tailles lisibles (human readable)
tree -L 2               # Arborescence (2 niveaux)

# Manipulation de fichiers
cp source dest          # Copier
cp -r src/ dest/        # Copier récursif
mv source dest          # Déplacer/renommer
rm fichier              # Supprimer
rm -rf dossier/         # Supprimer récursif (ATTENTION!)
mkdir -p a/b/c          # Créer répertoires imbriqués
touch fichier           # Créer fichier vide

# Liens
ln -s target linkname   # Lien symbolique
ln target linkname      # Lien physique

# Recherche
find / -name "*.log"                    # Par nom
find / -type f -size +100M              # Fichiers > 100MB
find / -mtime -7                        # Modifiés < 7 jours
find / -user root -perm 777             # Par user et perms
locate fichier                          # Recherche rapide (base de données)
which commande                          # Chemin d'une commande
whereis commande                        # Binaire, sources, man

Permissions

# Lecture des permissions
# -rwxr-xr-x = user(rwx) group(r-x) other(r-x)

# chmod - Modifier les permissions
chmod 755 fichier       # rwxr-xr-x
chmod 644 fichier       # rw-r--r--
chmod u+x fichier       # Ajouter exec pour user
chmod go-w fichier      # Retirer write pour group/other
chmod -R 755 dossier/   # Récursif

# chown - Modifier propriétaire
chown user fichier
chown user:group fichier
chown -R user:group /path/

# Permissions spéciales
chmod u+s fichier       # SUID
chmod g+s dossier       # SGID
chmod +t dossier        # Sticky bit

# umask
umask                   # Voir le masque actuel
umask 022              # Définir (fichiers=644, dossiers=755)

# ACL
getfacl fichier
setfacl -m u:user:rwx fichier
setfacl -m g:group:rx fichier
setfacl -x u:user fichier  # Supprimer

Texte & Filtres

# Affichage
cat fichier             # Tout le contenu
head -20 fichier        # 20 premières lignes
tail -50 fichier        # 50 dernières lignes
tail -f fichier         # Suivre en temps réel
less fichier            # Pagination

# Recherche dans fichiers
grep "pattern" fichier
grep -r "pattern" /path/         # Récursif
grep -i "pattern" fichier        # Insensible à la casse
grep -v "pattern" fichier        # Inverser (exclure)
grep -E "regex" fichier          # Extended regex
grep -c "pattern" fichier        # Compter les matches
grep -l "pattern" *.txt          # Fichiers contenant

# Manipulation de texte
sed 's/old/new/g' fichier        # Remplacer
sed -i 's/old/new/g' fichier     # Remplacer in-place
sed -n '10,20p' fichier          # Lignes 10-20
awk '{print $1, $3}' fichier     # Colonnes 1 et 3
awk -F: '{print $1}' /etc/passwd # Delimiter :
cut -d: -f1 /etc/passwd          # Couper par delimiter
sort fichier                     # Trier
sort -n fichier                  # Tri numérique
sort -r fichier                  # Tri inverse
uniq                             # Supprimer doublons consécutifs
sort | uniq -c                   # Compter occurrences
wc -l fichier                    # Compter lignes
tr 'a-z' 'A-Z'                   # Transformer

Processus

# Affichage
ps aux                  # Tous les processus
ps aux --sort=-%cpu     # Trié par CPU
ps aux --sort=-%mem     # Trié par mémoire
ps -ef --forest         # Arborescence
pstree -p               # Arbre avec PIDs
top                     # Moniteur interactif
htop                    # Moniteur amélioré

# Gestion
kill PID                # Terminer (SIGTERM)
kill -9 PID             # Forcer (SIGKILL)
killall nom             # Par nom
pkill -f "pattern"      # Par pattern
pgrep -f "pattern"      # Trouver PID

# Background/Foreground
commande &              # Lancer en background
jobs                    # Lister les jobs
fg %1                   # Ramener au premier plan
bg %1                   # Envoyer en background
nohup commande &        # Persist après déconnexion
disown                  # Détacher du shell

# Priorité
nice -n 10 commande     # Lancer avec priorité basse
renice 10 -p PID        # Modifier priorité

Système

# Informations système
uname -a                # Info kernel
hostnamectl             # Hostname et OS
cat /etc/os-release     # Distribution
uptime                  # Temps depuis boot
date                    # Date/heure

# Ressources
free -h                 # Mémoire
df -h                   # Espace disque
du -sh /path/           # Taille d'un dossier
du -h --max-depth=1     # Taille par sous-dossier
lscpu                   # Info CPU
lsblk                   # Périphériques bloc
lspci                   # Périphériques PCI
lsusb                   # Périphériques USB

# Logs
journalctl              # Tous les logs
journalctl -u service   # Logs d'un service
journalctl -f           # Suivre en temps réel
journalctl -p err       # Erreurs seulement
journalctl --since "1 hour ago"
dmesg                   # Messages kernel

Services (systemd)

# Gestion des services
systemctl status service
systemctl start service
systemctl stop service
systemctl restart service
systemctl reload service
systemctl enable service
systemctl disable service
systemctl enable --now service  # Enable + start

# Informations
systemctl list-units --type=service
systemctl list-units --failed
systemctl is-active service
systemctl is-enabled service
systemctl cat service           # Afficher le fichier unit

# Logs
journalctl -u service -f

Réseau

# Configuration
ip addr                 # Interfaces et IPs
ip -4 addr              # IPv4 seulement
ip route                # Table de routage
ip link set eth0 up/down
nmcli device status     # NetworkManager
nmcli con show          # Connexions

# Diagnostic
ping -c 4 host          # Test connectivité
traceroute host         # Chemin réseau
tracepath host          # Alternative sans root
mtr host                # Traceroute interactif
dig domain              # Résolution DNS
nslookup domain         # DNS lookup
host domain             # DNS simple

# Ports et connexions
ss -tuln                # Ports en écoute
ss -tulnp               # Avec PIDs
ss -tn state established # Connexions établies
netstat -tulnp          # Alternative (deprecated)
lsof -i :80             # Qui utilise le port 80

# Transfert
curl -O url             # Télécharger fichier
curl -I url             # Headers seulement
wget url                # Télécharger
scp file user@host:/path/ # Copie SSH
rsync -avz src/ dest/   # Synchronisation

Paquets

APT (Debian/Ubuntu)

apt update              # Mettre à jour la liste
apt upgrade             # Mettre à jour les paquets
apt install package
apt remove package
apt purge package       # Remove + config
apt search keyword
apt show package
apt list --installed
apt autoremove          # Supprimer orphelins

DNF (RHEL/Rocky/Fedora)

dnf update              # Mettre à jour
dnf install package
dnf remove package
dnf search keyword
dnf info package
dnf list installed
dnf provides /path/file # Qui fournit ce fichier
dnf history             # Historique transactions
dnf clean all           # Nettoyer cache

Stockage & LVM

# Partitions
fdisk -l                # Lister les disques
fdisk /dev/sdb          # Partitionner
parted /dev/sdb         # Alternative moderne
mkfs.ext4 /dev/sdb1     # Formater
mkfs.xfs /dev/sdb1

# Montage
mount /dev/sdb1 /mnt
umount /mnt
mount -a                # Monter tout /etc/fstab

# LVM
pvs                     # Physical Volumes
vgs                     # Volume Groups
lvs                     # Logical Volumes
pvcreate /dev/sdb
vgcreate vg_data /dev/sdb
lvcreate -L 10G -n lv_data vg_data
lvextend -L +5G /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data  # ext4
xfs_growfs /mount/point         # xfs

Utilisateurs & Groupes

# Utilisateurs
useradd -m -s /bin/bash user    # Créer avec home
useradd -r -s /sbin/nologin svc # Service account
usermod -aG group user          # Ajouter au groupe
userdel -r user                 # Supprimer avec home
passwd user                     # Changer mot de passe
chsh -s /bin/zsh user           # Changer shell

# Groupes
groupadd group
groupdel group
groups user             # Groupes d'un user

# Informations
id user                 # UID, GID, groupes
whoami                  # User courant
who                     # Users connectés
last                    # Historique connexions

# Sudo
visudo                  # Éditer sudoers
sudo -l                 # Lister ses droits sudo
sudo -u user commande   # Exécuter en tant que

Archives & Compression

# tar
tar -cvf archive.tar /path/     # Créer
tar -czvf archive.tar.gz /path/ # Créer compressé gzip
tar -cjvf archive.tar.bz2 /path/ # Créer compressé bzip2
tar -xvf archive.tar            # Extraire
tar -xzvf archive.tar.gz        # Extraire gzip
tar -xvf archive.tar -C /dest/  # Extraire vers
tar -tvf archive.tar            # Lister contenu

# Compression
gzip fichier            # → fichier.gz
gunzip fichier.gz       # Décompresser
bzip2 fichier           # → fichier.bz2
bunzip2 fichier.bz2
xz fichier              # → fichier.xz
unxz fichier.xz
zip -r archive.zip dossier/
unzip archive.zip

SSH

# Connexion
ssh user@host
ssh -p 2222 user@host           # Port custom
ssh -i key.pem user@host        # Clé spécifique

# Clés
ssh-keygen -t ed25519           # Générer clé
ssh-copy-id user@host           # Copier clé publique
ssh-agent bash                  # Démarrer agent
ssh-add ~/.ssh/id_ed25519       # Ajouter clé

# Tunnel
ssh -L 8080:localhost:80 user@host  # Local forward
ssh -R 8080:localhost:80 user@host  # Remote forward
ssh -D 1080 user@host               # SOCKS proxy

# Transfert
scp file user@host:/path/
scp -r dir/ user@host:/path/
rsync -avz -e ssh src/ user@host:/dest/

Scripting Bash

#!/bin/bash
set -euo pipefail       # Mode strict

# Variables
VAR="value"
VAR=${VAR:-default}     # Valeur par défaut
readonly CONST="value"  # Constante

# Conditions
if [[ $VAR == "value" ]]; then
    echo "match"
elif [[ $VAR =~ ^[0-9]+$ ]]; then
    echo "number"
else
    echo "other"
fi

# Boucles
for item in a b c; do
    echo "$item"
done

for i in {1..10}; do
    echo "$i"
done

while read -r line; do
    echo "$line"
done < fichier

# Fonctions
my_function() {
    local var=$1
    echo "Arg: $var"
    return 0
}

# Tableaux
arr=("a" "b" "c")
echo "${arr[0]}"        # Premier élément
echo "${arr[@]}"        # Tous
echo "${#arr[@]}"       # Longueur

# Substitutions
$(commande)             # Command substitution
${VAR%suffix}           # Remove suffix
${VAR#prefix}           # Remove prefix
${VAR/old/new}          # Replace first
${VAR//old/new}         # Replace all

Docker

# Images
docker pull image:tag
docker images
docker rmi image
docker build -t name:tag .

# Conteneurs
docker run -d --name c1 -p 8080:80 image
docker ps
docker ps -a
docker logs -f container
docker exec -it container /bin/sh
docker stop container
docker rm container

# Volumes & Réseaux
docker volume create vol
docker network create net
docker run -v vol:/data -v /host:/container image
docker run --network net image

# Compose
docker compose up -d
docker compose down
docker compose logs -f
docker compose ps

# Nettoyage
docker system prune -a

Kubernetes (kubectl)

# Ressources
kubectl get pods
kubectl get pods -o wide
kubectl get all
kubectl get svc,deploy,pods

# Détails
kubectl describe pod name
kubectl logs -f pod
kubectl exec -it pod -- /bin/sh

# CRUD
kubectl apply -f manifest.yaml
kubectl delete -f manifest.yaml
kubectl create deployment name --image=image

# Scaling & Updates
kubectl scale deploy/name --replicas=3
kubectl set image deploy/name container=image:tag
kubectl rollout status deploy/name
kubectl rollout undo deploy/name

# Debug
kubectl get events --sort-by='.lastTimestamp'
kubectl top pods
kubectl port-forward pod 8080:80

Retour au : Programme de la Formation