Navigation
pwd
ls -lah
cd /etc
cd -
find . -maxdepth 2 -type f
Toujours inspecter avant d'agir. Utiliser ls et find pour cadrer le contexte avant des commandes destructives.
Commandes Linux
Du rappel des bases aux enchainements avances, avec un accent sur la lisibilite, la securite et la reproductibilite.
Fondations
pwd
ls -lah
cd /etc
cd -
find . -maxdepth 2 -type f
Toujours inspecter avant d'agir. Utiliser ls et find pour cadrer le contexte avant des commandes destructives.
stat fichier
chmod 640 fichier
chown user:group fichier
umask 027
Maitriser les droits est indispensable pour la securite et la cooperations entre services.
ps aux | head
pgrep -a nginx
kill -TERM 1234
nice -n 10 commande
Comprendre la priorite, les signaux et la hierarchie aide a stabiliser un service sous charge.
Pipes et redirections
commande > out.txt
commande >> out.txt
commande 2> err.txt
commande 2>&1 | tee log.txt
Toujours separer stdout/stderr pour analyser les erreurs sans polluer les pipelines.
grep -R "error" /var/log | sort | uniq -c | sort -nr
journalctl -u ssh | grep "Failed" | tail -n 20
ps aux | awk '{print $11}' | sort | uniq -c
Les pipelines sont puissants quand on limite chaque commande a une tache precise et previsible.
Traitement de texte
grep -R "timeout" /etc
rg -n "server" /etc/nginx
grep -E "^sshd" /etc/services
Utiliser les regex et un outil rapide comme rg pour chercher vite.
awk -F: '{print $1,$3}' /etc/passwd
df -h | awk 'NR>1 {print $1,$5}'
ss -tulpen | awk '{print $1,$5,$7}'
awk reste l'outil ideal pour des tableaux et des rapports rapides.
sed -n '1,120p' fichier
sed -E 's/ +/ /g' fichier
tr 'a-z' 'A-Z' < fichier
sed transforme un flux, tr normalise, et tout reste scriptable.
Gestion de fichiers
tar -czf backup.tgz /etc /home
rsync -av --delete /home/ /mnt/backup/home/
rsync -avz user@host:/var/log/ ./logs/
rsync est le meilleur choix pour les backups incrementaux.
sha256sum image.iso
sha256sum -c SHA256SUMS
md5sum -c checksum.txt
Toujours verifier l'integrite d'un fichier critique.
Scripts Bash
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
if [[ $# -lt 1 ]]; then
echo "Usage: $0 " >&2
exit 1
fi
set -euo pipefail protege contre les erreurs silencieuses.
set -x
exec > >(tee -a /var/log/backup.log) 2>&1
trap 'echo "Erreur ligne $LINENO"' ERR
Ajouter des traces pour diagnostiquer vite en production.
Shell avance
commande &
jobs
fg %1
bg %1
Le job control permet de garder la main sur des taches longues.
(cd /tmp && ls -lah)
VAR=$(commande)
Les subshells isolent l'environnement et evitent les effets de bord.
diff <(sort a.txt) <(sort b.txt)
tee >(wc -l) < fichier
Compare ou duplique des flux sans fichiers temporaires.
Outils pro
cat data.json | jq '.items[] | .name'
jq -r '.users[] | \"\\(.id) \\(.email)\"' data.json
jq est indispensable pour manipuler des API et des logs JSON.
find . -type f -name "*.log" | xargs -r wc -l
printf '%s\n' *.log | xargs -n 1 gzip
xargs permet de factoriser des commandes et de paralleliser.
Sessions
tmux new -s prod
tmux ls
tmux attach -t prod
tmux split-window -h
tmux garde vos sessions actives, meme apres une deconnexion SSH.
screen -S backup
screen -ls
screen -r backup
screen reste disponible partout, utile sur des environnements anciens.
Introspection
cat /proc/1234/cmdline
cat /proc/1234/limits
cat /proc/1234/status | head
/proc donne l'etat exact d'un process sans outil externe.
lsns
cat /proc/1234/cgroup
sudo nsenter -t 1234 -n ip a
systemd-cgls
Indispensable pour diagnostiquer des services conteneurises.
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
htop
sudo perf top
sudo strace -fp 1234
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
kind create cluster --name dev
kubectl get nodes
kubectl top pods -A
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
journalctl -p err -S "today"
systemctl --failed
df -hT
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null
Mise a jour quotidienne
Cette section est ajoutee automatiquement et vise un public confirme.
sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data