ESC
Commandes Bash / Terminal

Navigation

Commande Options Exemple Sortie Description
ls -la, -lh, -R ls -la /etc liste fichiers Lister le contenu d'un répertoire ; -l format long, -a fichiers cachés, -h tailles lisibles
cd -, ~, .. cd ~/projects change rép. Changer de répertoire ; cd - revient en arrière, cd ~ va au dossier personnel
pwd pwd /home/user Afficher le répertoire courant (chemin complet)
tree -L n, -a tree -L 2 arborescence Afficher l'arborescence des répertoires ; -L limite la profondeur (installation requise)
find -name -type -mtime find . -name '*.log' chemins fichiers Rechercher des fichiers ou répertoires selon des critères
locate -i locate nginx.conf chemins fichiers Recherche rapide via une base de données indexée ; exécuter updatedb au préalable

Opérations sur Fichiers

Commande Options Exemple Sortie Description
cp -r, -i, -u cp -r src/ dst/ copie fichier Copier des fichiers ; -r pour les répertoires, -i demande confirmation avant écrasement
mv -i, -n mv old.txt new.txt déplace/renomme Déplacer ou renommer des fichiers ; -i demande confirmation avant écrasement
rm -r, -f, -i rm -rf dist/ supprimé Supprimer fichiers ou répertoires ; -r récursif, -f forcer — à utiliser avec précaution
mkdir -p mkdir -p a/b/c nouveau rép. Créer un répertoire ; -p crée les répertoires parents si nécessaire
touch touch index.html fichier vide Créer un fichier vide ou mettre à jour l'horodatage d'un fichier
ln -s ln -s /etc/nginx nginx lien symbolique Créer un lien physique ; -s pour un symlink

Afficher les Fichiers

Commande Options Exemple Sortie Description
cat -n, -A cat -n file.txt contenu fichier Afficher un fichier ; -n numérote les lignes, -A montre les caractères non imprimables
head -n N head -n 20 log.txt N premières lignes Afficher les premières lignes d'un fichier (10 par défaut)
tail -n N, -f tail -f app.log N dernières lignes Afficher les dernières lignes ; -f suit le contenu en temps réel
less /search, q less large.log vue paginée Parcourir un fichier page par page ; / pour chercher, q pour quitter, espace pour avancer
wc -l, -w, -c wc -l file.txt compteur Compter le contenu ; -l lignes, -w mots, -c octets/caractères

Recherche & Traitement Texte

Commande Options Exemple Sortie Description
grep -r -i -n -v -E grep -rn 'error' logs/ lignes trouvées Rechercher des motifs textuels ; -r récursif, -i insensible à la casse, -n numéros de ligne
grep -v grep -v 'debug' app.log non-correspondants Inverser la recherche — afficher les lignes NE contenant PAS le motif
grep -E grep -E 'warn|error' log lignes trouvées Regex étendu — utiliser | pour OU, + pour un ou plusieurs
awk '{print $N}' awk '{print $1}' f valeur colonne Traitement de texte par motif-action ; $1 premier champ, $NF dernier champ
sed -i 's/a/b/g' sed -i 's/foo/bar/g' f texte modifié Éditeur en flux ; s/chercher/remplacer/g effectue un remplacement global
sort -n -r -k N sort -n numbers.txt sortie triée Trier les lignes ; -n numérique, -r inverse, -k trier par colonne N
uniq -c, -d sort f | uniq -c lignes uniques Supprimer les lignes adjacentes en double ; généralement utilisé après sort

Permissions

Commande Options Exemple Sortie Description
chmod 755, 644, +x chmod +x script.sh droits modifiés Modifier les permissions d'un fichier ; 755=rwxr-xr-x, 644=rw-r--r--
chown -R user:group chown -R www-data:www-data /var/www propriétaire modifié Changer le propriétaire et le groupe d'un fichier ; -R récursif
ls -la ls -la /var/www liste des droits Afficher les permissions, propriétaire, groupe et taille pour tous les fichiers
umask 022, 027 umask 022 droits par défaut Définir le masque de permissions par défaut pour les nouveaux fichiers (022 → 644 pour les fichiers)
sudo -u user sudo systemctl restart nginx cmd élevée Exécuter une commande en superutilisateur ; -u pour un autre utilisateur

Gestion des Processus

Commande Options Exemple Sortie Description
ps aux, -ef ps aux | grep nginx liste processus Lister les processus ; aux=tous les utilisateurs, -ef=format complet
top q, k, M top vue en direct Moniteur de processus interactif ; q quitter, k tuer, M trier par mémoire
htop F3, F9 htop vue en direct Version améliorée de top avec couleurs ; F3 recherche, F9 tuer (installation requise)
kill -9, -15 kill -9 1234 signal envoyé Envoyer un signal à un PID ; -15 SIGTERM (arrêt gracieux), -9 SIGKILL (force)
killall -9, -u killall node signal envoyé Tuer tous les processus portant un nom donné
jobs -l jobs -l liste tâches Lister les tâches en arrière-plan ou suspendues dans le shell courant
bg / fg %N fg %1 repris bg envoie une tâche en arrière-plan, fg la ramène au premier plan

Réseau

Commande Options Exemple Sortie Description
curl -o -L -X -H -d curl -O https://example.com/f réponse Transférer des données via HTTP/FTP ; -L suivre les redirections, -o sauvegarder dans un fichier
wget -O -r -q wget -q https://example.com fichier sauvegardé Télécharger des fichiers ; -O renommer la sortie, -r récursif, -q silencieux
ping -c N ping -c 4 google.com RTT ms Tester la connectivité réseau ; -c limite le nombre de paquets
ssh -i -p -L ssh user@host -p 2222 shell Shell sécurisé ; -i fichier de clé, -p port, -L redirection de port local
scp -r -P -i scp file user@host:~/ copié Copie sécurisée via SSH ; -r récursif, -P port (majuscule)
netstat -tuln netstat -tuln liste ports Afficher les connexions réseau ; -t TCP, -u UDP, -l en écoute, -n numérique
ss -tuln ss -tuln liste ports Remplaçant moderne de netstat ; plus rapide et plus détaillé

Archives & Compression

Commande Options Exemple Sortie Description
tar -czf -czf out.tar.gz tar -czf arc.tar.gz dir/ archive Créer un tarball compressé en gzip ; c=créer, z=gzip, f=nom du fichier
tar -xzf -xzf file.tar.gz tar -xzf arc.tar.gz -C /tmp extrait Extraire un tarball gzip ; x=extraire, -C répertoire de destination
tar -tf tar -tf archive.tar.gz liste fichiers Lister le contenu d'un tarball sans l'extraire
zip -r, -9 zip -r out.zip dir/ fichier zip Créer une archive zip ; -r récursif, -9 compression maximale
unzip -d, -l unzip archive.zip -d out/ extrait Extraire un fichier zip ; -d destination, -l lister sans extraire
gzip / gunzip -k, -d gzip -k file.txt compressé Compresser un fichier avec gzip ; -k conserver l'original, gunzip pour décompresser

Environnement & Shell

Commande Options Exemple Sortie Description
env env | grep PATH var=valeur Afficher toutes les variables d'environnement ; combiner avec grep pour filtrer
export export NODE_ENV=production var définie Définir une variable d'environnement pour la session courante et les processus enfants
echo $VAR echo $HOME valeur Afficher la valeur d'une variable ; utiliser ${VAR} pour lever l'ambiguïté dans les chaînes
which which node chemin Afficher le chemin complet de l'exécutable d'une commande
alias alias ll='ls -la' raccourci Créer un raccourci de commande ; ajouter dans ~/.bashrc pour le rendre permanent
source source ~/.bashrc rechargé Exécuter un fichier dans le contexte du shell courant (aussi : . ~/.bashrc)
history !N, !! history | tail -20 liste cmds Afficher l'historique des commandes ; !! répète la dernière, !N exécute la Nième commande

Référence Git Rapide

Commande Options Exemple Sortie Description
git init git init my-project dépôt créé Initialiser un nouveau dépôt Git dans le répertoire
git clone --depth 1 git clone url dépôt cloné Cloner un dépôt distant ; --depth 1 pour un clone superficiel
git status -s git status -s modifications Afficher l'état de l'arbre de travail ; -s format court
git add -A, -p git add -p indexé Indexer des modifications ; -A tout, -p mode patch interactif
git commit -m, --amend git commit -m 'msg' commité Valider les modifications indexées ; --amend modifie le dernier commit
git push -u origin git push -u origin main poussé Pousser vers le dépôt distant ; -u définit la branche de suivi amont
git pull --rebase git pull --rebase synchronisé Récupérer et intégrer les modifications distantes ; --rebase au lieu de merge
git log --oneline --graph git log --oneline -10 historique Afficher l'historique des commits ; --oneline compact, --graph branches visuelles
git stash pop, list git stash pop restauré Sauvegarder temporairement le travail non commité ; pop pour restaurer
git diff --staged git diff --staged diff Afficher les modifications ; --staged montre les changements indexés mais non commités

Questions Fréquemment Posées

sh (Bourne Shell) est le shell Unix original, standardisé par POSIX. bash (Bourne Again Shell) est son successeur et surensemble, ajoutant des tableaux, la syntaxe de test étendue [[]], l'expansion arithmétique $(( )), l'historique, la complétion par tabulation et plus. Sur la plupart des systèmes Linux, /bin/sh est un lien symbolique vers bash ou dash (un shell léger POSIX uniquement).

Trois étapes : (1) Ajoutez une ligne shebang comme toute première ligne : #!/bin/bash. (2) Rendez-le exécutable avec chmod +x script.sh. (3) Exécutez-le avec ./script.sh (le ./ est nécessaire car le répertoire courant n'est pas dans $PATH par défaut). Pour l'exécuter de n'importe où, déplacez-le dans un répertoire de votre PATH.

Bash a trois flux standards : stdin (0), stdout (1), stderr (2). Rediriger stdout vers fichier : command > file.txt (écraser) ou command >> file.txt (ajouter). Rediriger stderr : command 2> errors.txt. Rediriger les deux : command > output.txt 2>&1. Ignorer la sortie : command > /dev/null 2>&1. Pipe stdout : command1 | command2.