MaisTools
Développeur/

Aide-mémoire Linux

Référence rapide Linux: commandes du terminal, flags, exemples et combinaisons avec pipes, organisés par section avec recherche instantanée.

Aide-mémoire Linux

Commandes terminal, bash, pipes et one-liners

Navigation

ls

Liste le contenu d'un répertoire avec permissions, taille et date.

Flags-l-a-la-h-S-t-r-R
Exemple
ls -la /var/log
cd

Change le répertoire courant. Sans argument va au home.

Exemple
cd /etc/nginx
cd ~
cd -
cd ..
pwd

Affiche le chemin complet du répertoire courant.

Flags-P-L
Exemple
pwd
tree

Affiche l'arborescence du répertoire en format visuel.

Flags-L-d-a-I
Exemple
tree -L 2 ~/projects
file

Identifie le type d'un fichier (texte, binaire, image, script, etc).

Flags-i-b
Exemple
file image.png
file -i script.sh
stat

Affiche les métadonnées détaillées d'un fichier (taille, inode, dates, permissions).

Flags-c-f
Exemple
stat file.txt
stat -c "%n %s %y" file.txt

Fichiers

touch

Crée un fichier vide ou met à jour la date de modification.

Flags-a-m-c-t
Exemple
touch newfile.txt
touch -t 202601011200 file.txt
mkdir

Crée un répertoire. Avec -p crée toute la structure de parents manquants.

Flags-p-m-v
Exemple
mkdir -p projects/app/src
mkdir -m 700 secret
rmdir

Supprime un répertoire vide.

Flags-p
Exemple
rmdir empty_dir
rmdir -p a/b/c
rm

Supprime fichiers ou répertoires. Avec -rf supprime récursivement sans confirmer (dangereux).

Flags-r-f-i-v
Exemple
rm file.txt
rm -rf node_modules
cp

Copie fichiers ou répertoires.

Flags-r-v-i-p-a-u
Exemple
cp file.txt backup.txt
cp -r src/ dest/
mv

Déplace ou renomme fichiers et répertoires.

Flags-i-v-n-f
Exemple
mv old.txt new.txt
mv *.log archive/
ln

Crée des liens: -s pour symbolique, sans flag pour hard link.

Flags-s-f-v
Exemple
ln -s /usr/local/bin/node ~/node
ln file hardlink
cat

Imprime le contenu d'un ou plusieurs fichiers vers stdout.

Flags-n-A-b-s
Exemple
cat file.txt
cat -n script.sh
less

Visualise les fichiers page par page avec navigation. Recherche avec /. +F suit comme tail -f.

Flags-N-S-X+F
Exemple
less /var/log/syslog
less +F app.log
head

Affiche les premières N lignes d'un fichier (défaut: 10).

Flags-n-c
Exemple
head -n 20 file.txt
head -c 1024 binary
tail

Affiche les dernières N lignes. -f suit le fichier au fur et à mesure qu'il grandit.

Flags-n-f-F-c
Exemple
tail -n 50 access.log
tail -f /var/log/syslog
wc

Compte lignes (-l), mots (-w), octets (-c) ou caractères (-m).

Flags-l-w-c-m
Exemple
wc -l file.txt
wc *.md

Permissions

chmod

Modifie les permissions (rwx) des fichiers et répertoires.

Flags-R-v
Exemple
chmod 755 script.sh
chmod +x deploy.sh
chmod -R 644 docs/
chown

Modifie le propriétaire et/ou le groupe des fichiers.

Flags-R-v
Exemple
chown user file.txt
chown -R www-data:www-data /var/www
sudo

Exécute une commande en tant qu'un autre utilisateur (root par défaut).

Flags-i-u-k-l
Exemple
sudo apt update
sudo -u postgres psql
sudo -i
su

Bascule vers un autre utilisateur. - charge l'environnement de cet utilisateur.

Flags--c-l
Exemple
su - postgres
su -c 'whoami' root
useradd / userdel

Crée (useradd) ou supprime (userdel) des comptes utilisateur.

Flags-m-s-G-r
Exemple
sudo useradd -m -s /bin/bash john
sudo userdel -r john
passwd

Définit ou change le mot de passe d'un utilisateur.

Flags-l-u-d
Exemple
passwd
sudo passwd john
whoami / who

Affiche l'utilisateur courant (whoami) ou tous les utilisateurs connectés (who).

Exemple
whoami
who
who -a
id / groups

Affiche l'UID, le GID et les groupes de l'utilisateur courant.

Flags-u-g-G-n
Exemple
id
id -nG
groups

Processus

ps

Liste les processus. aux affiche tous les processus en détail.

Flagsaux-ef-u--sort
Exemple
ps aux
ps -ef
top

Affiche les processus en temps réel, triés par utilisation de CPU/mémoire.

Flags-u-p-d-n
Exemple
top
top -u www-data
top -p 1234
kill

Envoie un signal à un processus par PID. -9 force la terminaison (SIGKILL).

Flags-9-15-l-HUP
Exemple
kill 1234
kill -9 1234
kill -HUP $(pidof nginx)
killall / pkill

Tue les processus par nom (killall) ou motif (pkill).

Flags-9-u-i
Exemple
killall firefox
pkill -9 -f node
pkill -u john
jobs / fg / bg

Gère les jobs du shell: jobs liste, fg ramène au foreground, bg reprend en background.

Flags-l-r-s
Exemple
jobs
fg %1
bg %2
# Ctrl+Z to suspend the foreground job
nohup

Lance une commande qui continue même après la fermeture du terminal.

Exemple
nohup ./long-task.sh > out.log 2>&1 &
nohup python script.py &
nice / renice

Démarre un processus avec priorité ajustée (nice) ou change la priorité (renice).

Flags-n
Exemple
nice -n 19 ./heavy.sh
renice -n 5 -p 1234
& (background)

Ajouter & à la fin d'une commande la lance en background, libérant le terminal.

Exemple
./server.sh &
long-task &
disown %1

Réseau

ping

Teste la connectivité en envoyant des paquets ICMP. -c limite le nombre.

Flags-c-i-W-s
Exemple
ping google.com
ping -c 4 8.8.8.8
curl

Effectue des requêtes HTTP/HTTPS et télécharge des fichiers. Supporte GET, POST, headers, authentification.

Flags-X-H-d-o-O-L-I-s-u
Exemple
curl https://api.github.com
curl -X POST -H "Content-Type: application/json" -d '{"a":1}' url
curl -O https://example.com/file.zip
wget

Télécharge des fichiers via HTTP/FTP. Supporte la reprise avec -c et le mirror récursif.

Flags-c-r-O-q--mirror
Exemple
wget https://example.com/file.zip
wget -c <url>
wget -r -np https://site/docs/
ssh

Se connecte à un serveur distant via Secure Shell. -L crée des tunnels pour ports locaux.

Flags-p-i-L-R-D-N-T
Exemple
ssh user@host
ssh -p 2222 -i ~/.ssh/id_ed25519 user@host
ssh -L 8080:localhost:80 user@host
scp

Copie des fichiers entre machines via SSH.

Flags-r-P-i-p
Exemple
scp file.txt user@host:/tmp/
scp -r dir/ user@host:/var/www/
scp user@host:/etc/conf .
rsync

Synchronise fichiers et répertoires efficacement. -avz est la combinaison la plus utilisée.

Flags-a-v-z-P--delete--exclude
Exemple
rsync -avz src/ user@host:/dest/
rsync -av --delete --exclude='.git' a/ b/
ss / netstat

Affiche les ports en écoute et les connexions actives. -tulpn est l'usage typique.

Flags-t-u-l-n-p
Exemple
ss -tulpn
ss -t state established
dig / nslookup / host

Interroge le DNS. dig est plus détaillé, nslookup plus simple, host plus concis.

Flags+short-t@
Exemple
dig google.com
dig +short MX gmail.com
nslookup example.com 8.8.8.8

Compression

tar

Empaquette et compresse des répertoires. -czf crée avec gzip, -xzf extrait.

Flags-c-x-z-j-J-v-f-t
Exemple
tar -czvf archive.tar.gz folder/
tar -xzvf archive.tar.gz
tar -tf archive.tar.gz
zip / unzip

Compression zip. unzip -l liste le contenu sans extraire.

Flags-r-q-l-d
Exemple
zip -r out.zip folder/
unzip archive.zip
unzip -l archive.zip
gzip / gunzip

Compresse/décompresse fichiers individuels avec gzip. -k garde l'original.

Flags-d-k-9-r
Exemple
gzip file.txt
gzip -d file.txt.gz
gzip -k file.txt
bzip2 / bunzip2

Compression bzip2, plus lente mais avec un meilleur ratio que gzip.

Flags-d-k-9
Exemple
bzip2 file.txt
bunzip2 file.txt.bz2
xz / unxz

Compression xz, ratio encore meilleur. -T0 utilise tous les coeurs.

Flags-d-k-9-T
Exemple
xz file.txt
unxz file.txt.xz
xz -T0 file
7z

Format 7z, ratio de compression élevé. Supporte mot de passe et split d'archives.

Sous-commandesaxl
Flags-p
Exemple
7z a out.7z folder/
7z x archive.7z
7z a -p out.7z secret.txt

Recherche

find

Cherche des fichiers par nom, type, taille, âge, et exécute des actions avec -exec.

Flags-name-type-size-mtime-exec-delete-empty
Exemple
find . -name "*.log"
find / -type f -size +100M
find . -mtime -7
find . -name "*.tmp" -delete
grep

Cherche des motifs dans des fichiers. -r récursif, -i ignore la casse, -E active regex.

Flags-r-i-n-v-l-E-c-A-B-C
Exemple
grep -rn "TODO" src/
grep -i error log
grep -E "warn|error" file
awk

Traite du texte colonne par colonne. Langage complet pour parser des fichiers structurés.

Exemple
awk '{print $1}' file.txt
awk -F',' '{print $2}' csv
awk '/error/ {count++} END {print count}' log
sed

Édite des streams de texte. -i édite le fichier sur place, surtout pour les substitutions.

Flags-i-e-n-E
Exemple
sed 's/old/new/g' file
sed -i 's/old/new/g' file
sed -n '10,20p' file
locate / which / whereis

Trouve binaires et fichiers: locate (cache), which (dans le PATH), whereis (binaire, source, manuel).

Flags-i-l
Exemple
locate nginx.conf
which python3
whereis bash

Redirection

> (rediriger stdout)

Redirige stdout vers un fichier, en écrasant le contenu existant.

Exemple
echo hello > out.txt
ls -la > files.txt
>> (ajouter à stdout)

Redirige stdout vers un fichier, en ajoutant au contenu existant.

Exemple
echo "line" >> log.txt
date >> events.log
| (pipe)

Connecte le stdout d'une commande au stdin de la suivante, enchaînant les processus.

Exemple
ls -la | grep .conf
cat file | sort | uniq
2> (rediriger stderr)

Redirige stderr (fd 2). 2>&1 fusionne stderr dans stdout. &> fait les deux en bash.

Exemple
cmd 2> errors.log
cmd > out.log 2>&1
cmd &> all.log
tee

Lit depuis stdin et écrit vers fichier ET vers stdout. -a ajoute au lieu d'écraser.

Flags-a
Exemple
ls | tee files.txt
echo 'data' | sudo tee /etc/conf
make | tee -a build.log
xargs

Construit des commandes à partir du stdin. Indispensable pour combiner find ou grep avec d'autres commandes.

Flags-n-I-P-0
Exemple
find . -name "*.log" | xargs rm
echo "a b c" | xargs -n 1
ls *.txt | xargs -I {} cp {} backup/

Environnement

export

Définit des variables d'environnement héritées par les processus enfants.

Exemple
export PATH="$PATH:/opt/bin"
export API_KEY="abc123"
export -p
env / printenv

Liste toutes les variables d'environnement actives. printenv peut afficher une spécifique.

Exemple
env
printenv PATH
env VAR=value command
alias / unalias

Crée des raccourcis pour commandes. À définir dans ~/.bashrc ou ~/.zshrc pour être permanent.

Exemple
alias ll='ls -la'
alias gs='git status'
unalias ll
echo

Imprime du texte ou des variables vers stdout. -e active les escapes comme \n et \t.

Flags-n-e
Exemple
echo "Hello $USER"
echo -e "line1\nline2"
echo $PATH
source / .

Charge un script dans le shell courant (pas un sous-shell). Utile pour .bashrc et venv.

Exemple
source ~/.bashrc
. ~/.zshrc
source venv/bin/activate
history

Affiche l'historique des commandes. !! répète la dernière, !N exécute la commande N.

Flags-c-d!
Exemple
history
history | grep ssh
!!
!42

Paquets

apt / apt-get

Gestionnaire de paquets Debian/Ubuntu. apt est plus moderne et convivial qu'apt-get.

Sous-commandesupdateupgradeinstallremovepurgesearchshow
Exemple
sudo apt update && sudo apt upgrade
sudo apt install nginx
sudo apt remove --purge package
apt search keyword
yum / dnf

Gestionnaire de paquets Red Hat/Fedora/CentOS. dnf est le successeur moderne de yum.

Sous-commandesinstallremoveupdatesearchinfolist
Exemple
sudo dnf install nginx
sudo yum update
dnf search keyword
brew

Gestionnaire de paquets pour macOS et Linux avec des formules maintenues par la communauté.

Sous-commandesinstalluninstallupdateupgradesearchlist
Exemple
brew install wget
brew update && brew upgrade
brew list
brew search node
pacman

Gestionnaire de paquets Arch Linux. -Syu met tout à jour, -S installe, -R supprime.

Flags-S-R-Syu-Ss-Q
Exemple
sudo pacman -S nginx
sudo pacman -Syu
pacman -Ss keyword
snap / flatpak

Paquets universels avec sandboxing. S'installent sur n'importe quelle distribution moderne.

Sous-commandesinstallremovelistfind
Exemple
sudo snap install code
flatpak install flathub org.gimp.GIMP
snap list

SSH

ssh-keygen

Génère des paires de clés SSH. ed25519 est la recommandation actuelle (plus rapide et sûr que RSA).

Flags-t-b-C-f-N
Exemple
ssh-keygen -t ed25519 -C "john.doe@example.com"
ssh-keygen -t rsa -b 4096
ssh-copy-id

Copie la clé publique vers ~/.ssh/authorized_keys du serveur distant.

Flags-i-p
Exemple
ssh-copy-id user@host
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 user@host
ssh-agent / ssh-add

L'agent SSH garde les clés déchiffrées en mémoire pour ne pas redemander la passphrase à chaque connexion.

Flags-l-d-D
Exemple
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ssh-add -l
sftp

Client SFTP interactif pour transférer des fichiers via SSH.

Exemple
sftp user@host
put file.txt
get remote.zip
ls
bye
~/.ssh/config

Fichier de configuration SSH par hôte. Permet alias, identité, port, jump host.

Exemple
Host myserver
  HostName 1.2.3.4
  User john
  Port 2222
  IdentityFile ~/.ssh/id_ed25519

Disque

df

Affiche l'espace utilisé et disponible par système de fichiers. -h en format lisible.

Flags-h-T-i
Exemple
df -h
df -h /
df -i
du

Affiche l'espace occupé par fichiers et répertoires. -sh résumé en format lisible.

Flags-h-s-a-c--max-depth
Exemple
du -sh *
du -h --max-depth=1
du -ah . | sort -rh | head -20
mount / umount

Monte un système de fichiers à un point de montage. umount démonte.

Flags-a-t-o
Exemple
mount
sudo mount /dev/sdb1 /mnt/data
sudo umount /mnt/data
lsblk / fdisk

Liste disques et partitions en format arbre (lsblk) ou tableau (fdisk).

Flags-f-l-p
Exemple
lsblk
lsblk -f
sudo fdisk -l
free

Affiche la mémoire RAM totale, utilisée, libre et cache. -h en format lisible.

Flags-h-m-g-s
Exemple
free -h
free -m
free -h -s 2

Monitoring

htop

Version améliorée de top avec couleurs, scroll et tue les processus avec F9.

Flags-u-p
Exemple
htop
htop -u www-data
htop -p 1234,5678
vmstat

Statistiques de mémoire virtuelle, CPU, IO. Utile pour diagnostiquer les goulots.

Exemple
vmstat
vmstat 2 5
iostat

Statistiques d'IO disque. Identifie les disques saturés.

Flags-x-c-d
Exemple
iostat
iostat -xz 2
dmesg

Affiche les messages du noyau. Utile pour diagnostiquer matériel ou drivers.

Flags-T-w-l
Exemple
sudo dmesg | tail
sudo dmesg -T
sudo dmesg -w
systemctl

Contrôle les services systemd: démarrer, arrêter, voir l'état, activer au boot.

Sous-commandesstartstoprestartstatusenabledisablereload
Exemple
sudo systemctl start nginx
sudo systemctl status sshd
sudo systemctl enable docker
journalctl

Logs systemd. -f suit en direct, -u filtre par service, --since par temps.

Flags-u-f-n--since-p
Exemple
journalctl -u nginx
journalctl -f
journalctl --since "1 hour ago"
journalctl -p err
uptime / w

uptime affiche depuis quand le système tourne et la load average. w liste les utilisateurs et leurs activités.

Exemple
uptime
w

Avancé

watch

Répète une commande périodiquement. -d met en évidence les changements entre exécutions.

Flags-n-d-t
Exemple
watch -n 2 "df -h"
watch -d "ls -l"
watch "ps aux | grep node"
screen

Crée des sessions de terminal persistantes qui survivent aux logouts. Version classique.

Flags-S-r-ls-d
Exemple
screen -S work
screen -r work
screen -ls
# Ctrl+A D to detach
tmux

Multiplexeur de terminal moderne: plusieurs fenêtres, panneaux et sessions persistantes.

Sous-commandesnewattachlskill-session
Exemple
tmux new -s work
tmux attach -t work
tmux ls
# Ctrl+B D to detach
cron / crontab

Planificateur de tâches périodiques. crontab -e édite les jobs de l'utilisateur courant.

Flags-e-l-r
Exemple
crontab -e
crontab -l
0 3 * * * /script.sh    # daily at 3am
*/15 * * * * /poll.sh   # every 15 minutes
at

Programme une commande pour s'exécuter une seule fois dans le futur.

Flags-l-r-c
Exemple
echo "/script.sh" | at now + 1 hour
at 14:30 tomorrow
atq
at -r 5

Référence

stdin, stdout, stderr

Chaque processus a trois streams par défaut identifiées par des file descriptors. Comprendre ces streams est la clé pour combiner des commandes avec pipes et redirections.

stdinfd 0

Entrée standard. Par défaut vient du clavier, mais peut être remplacée par un fichier avec < ou par le stdout d'une autre commande via pipe.

stdoutfd 1

Sortie standard. Par défaut va au terminal. Se redirige avec > (écraser) ou >> (ajouter).

stderrfd 2

Erreurs et avertissements. Stream séparée pour que les erreurs ne se mélangent pas avec la sortie normale. Se redirige avec 2>.

Exemple
cmd > out.txt          # stdout → file
cmd 2> err.txt         # stderr → file
cmd > out 2>&1         # stdout + stderr → file
cmd &> all.txt         # bash shorthand
cmd < input.txt        # stdin ← file
cmd1 | cmd2            # stdout cmd1 → stdin cmd2
Permissions rwx

Chaque fichier a trois groupes de permissions (utilisateur, groupe, autres) avec trois bits chacun (read, write, execute). En format numérique chaque groupe est la somme de ses bits.

Cibles
  • upropriétaire du fichier
  • ggroupe du fichier
  • otous les autres
  • atous (u+g+o)
Bits et valeurs
  • r = 4 — lire
  • w = 2 — écrire
  • x = 1 — exécuter (ou entrer dans un répertoire)
Exemples courants
chmod 755 file       # rwx r-x r-x   (typical script)
chmod 644 file       # rw- r-- r--   (regular file)
chmod 600 file       # rw- --- ---   (private, e.g. SSH key)
chmod 700 dir        # rwx --- ---   (private dir)
chmod +x script.sh   # add execute for everyone
chmod u+w,g-w file   # add write to owner, remove from group
chmod -R 755 dir/    # recursive
Foreground vs Background

Le shell peut avoir plusieurs jobs en même temps. Seul le job en foreground occupe le terminal; les jobs en background continuent de tourner pendant que tu tapes d'autres commandes.

Foreground

Job utilisant le terminal. Reçoit les entrées du clavier et affiche la sortie. Bloque le prompt jusqu'à la fin.

Background

Job tournant en parallèle, sans occuper le terminal. Libère le prompt pour d'autres commandes. À terminer avec kill ou en le ramenant en fg.

Commandes utiles
./long-task.sh &     # start in background
Ctrl+Z               # suspend the foreground job
jobs                 # list jobs of the current shell
fg %1                # bring job 1 to foreground
bg %1                # resume job 1 in background
disown %1            # detach from shell (survives logout)
nohup ./task.sh &    # ignore HUP, redirect to nohup.out
ps -ef               # list all system processes
20 one-liners essentiels

Combinaisons de commandes fréquentes au quotidien. Chacune résout une tâche spécifique en un seul pipeline.

  • 01.Trouve les fichiers de plus de 100MB sur tout le système.
    find / -type f -size +100M 2>/dev/null
  • 02.Liste les 10 plus gros fichiers du répertoire courant.
    du -ah . | sort -rh | head -10
  • 03.Cherche et remplace du texte dans tous les fichiers qui le contiennent.
    grep -rl 'old' . | xargs sed -i 's/old/new/g'
  • 04.Compte le nombre total de fichiers récursivement.
    find . -type f | wc -l
  • 05.Affiche tous les utilisateurs actuellement connectés au système.
    who
  • 06.Rend tous les scripts .sh exécutables récursivement.
    find . -name '*.sh' -exec chmod +x {} +
  • 07.Répète une commande toutes les 2 secondes pour voir les changements en direct.
    watch -n 2 "df -h"
  • 08.Obtient l'IP publique externe de la machine actuelle.
    curl -s ifconfig.me
  • 09.Liste tous les ports ouverts et les processus qui les utilisent.
    ss -tulpn
  • 10.Affiche les 10 processus consommant le plus de mémoire.
    ps aux --sort=-%mem | head -10
  • 11.Affiche les 10 processus consommant le plus de CPU.
    ps aux --sort=-%cpu | head -10
  • 12.Trouve les symlinks cassés (pointant vers des fichiers inexistants).
    find . -xtype l
  • 13.Supprime tous les fichiers .DS_Store générés par macOS.
    find . -name '.DS_Store' -delete
  • 14.Crée un backup tar.gz avec la date dans le nom du fichier.
    tar czf backup-$(date +%F).tar.gz folder/
  • 15.Démarre un serveur HTTP simple sur le port 8000 pour partager des fichiers.
    python3 -m http.server 8000
  • 16.Formate et imprime du JSON de manière lisible.
    cat data.json | python3 -m json.tool
  • 17.Suit un log en temps réel en commençant par les 100 dernières lignes.
    tail -f -n 100 logfile
  • 18.Trouve tous les fichiers et répertoires vides.
    find . -empty
  • 19.Compte les lignes de code en additionnant tous les fichiers .py du projet.
    find . -name '*.py' | xargs wc -l
  • 20.Affiche la taille de chaque sous-répertoire trié du plus petit au plus grand.
    du -h --max-depth=1 | sort -h