# Linux essentielles

| N° | Commande | Utilité | Exemples et variantes |
|----|----------|---------|----------------------|
| 1 | ls | Afficher les fichiers et dossiers | `ls` (simple), `ls -l` (détails), `ls -a` (fichiers cachés), `ls -la` (tout avec détails) |
| 2 | cd | Changer de dossier | `cd Documents` (aller dans Documents), `cd ..` (dossier parent), `cd ~` (dossier personnel), `cd /` (racine) |
| 3 | pwd | Afficher le dossier actuel | `pwd` |
| 4 | mkdir | Créer un nouveau dossier | `mkdir dossier` (créer un), `mkdir -p dossier/sous-dossier` (créer plusieurs niveaux) |
| 5 | rm | Supprimer un fichier | `rm fichier.txt`, `rm -f fichier.txt` (forcer sans confirmation), `rm -i fichier.txt` (demander confirmation) |
| 6 | rm -r | Supprimer un dossier | `rm -r dossier`, `rm -rf dossier` (forcer tout supprimer - DANGER!) |
| 7 | cp | Copier un fichier | `cp fichier.txt copie.txt`, `cp -r dossier/ copie/` (copier un dossier), `cp -i` (demander avant écrasement) |
| 8 | mv | Déplacer ou renommer | `mv ancien.txt nouveau.txt` (renommer), `mv fichier.txt /autre/dossier/` (déplacer) |
| 9 | touch | Créer un fichier vide | `touch fichier.txt`, `touch fichier1.txt fichier2.txt` (plusieurs fichiers) |
| 10 | cat | Afficher le contenu | `cat fichier.txt`, `cat fichier1.txt fichier2.txt` (afficher plusieurs), `cat > nouveau.txt` (créer avec contenu) |
| 11 | nano | Éditeur de texte simple | `nano fichier.txt`, `nano +10 fichier.txt` (ouvrir à la ligne 10) |
| 12 | vi | Éditeur de texte avancé | `vi fichier.txt`, `vim fichier.txt` (version améliorée) |
| 13 | head | Afficher le début | `head fichier.txt` (10 premières lignes), `head -n 5 fichier.txt` (5 premières lignes) |
| 14 | tail | Afficher la fin | `tail fichier.txt` (10 dernières lignes), `tail -n 20 fichier.txt` (20 dernières), `tail -f log.txt` (suivre en temps réel) |
| 15 | less | Lire page par page | `less fichier.txt` (navigation avec flèches), `less +F fichier.txt` (mode suivi) |
| 16 | grep | Chercher du texte | `grep 'mot' fichier.txt`, `grep -i 'mot' fichier.txt` (ignorer majuscules), `grep -r 'mot' dossier/` (chercher dans dossier) |
| 17 | find | Chercher des fichiers | `find . -name 'fichier.txt'`, `find . -name '*.txt'` (tous les .txt), `find . -type d` (seulement dossiers) |
| 18 | chmod | Modifier permissions | `chmod 755 script.sh`, `chmod +x script.sh` (rendre exécutable), `chmod -R 755 dossier/` (récursif) |
| 19 | chown | Changer propriétaire | `chown user fichier.txt`, `chown user:group fichier.txt`, `chown -R user dossier/` (récursif) |
| 20 | sudo | Exécuter en admin | `sudo commande`, `sudo -u user commande` (en tant qu'autre user), `sudo -i` (devenir root) |
| 21 | apt-get | Gérer programmes (Debian) | `sudo apt-get update` (màj liste), `sudo apt-get install firefox`, `sudo apt-get remove firefox`, `sudo apt-get upgrade` (màj tout) |
| 22 | yum | Gérer programmes (RedHat) | `sudo yum install httpd`, `sudo yum remove httpd`, `sudo yum update` |
| 23 | df | Espace disque disponible | `df` (simple), `df -h` (format lisible), `df -T` (voir types de système) |
| 24 | du | Taille des dossiers | `du -sh dossier/` (taille totale), `du -h` (toutes tailles), `du -sh *` (taille de chaque élément) |
| 25 | ps | Programmes en cours | `ps`, `ps aux` (tous les processus détaillés), `ps -ef` (format complet) |
| 26 | top | Utilisation système | `top` (temps réel), `htop` (version améliorée - à installer) |
| 27 | kill | Arrêter un programme | `kill 1234` (gentil), `kill -9 1234` (forcer), `killall firefox` (tuer par nom) |
| 28 | tar | Compresser/décompresser | `tar -czf archive.tar.gz dossier/` (créer), `tar -xzf archive.tar.gz` (extraire), `tar -tzf archive.tar.gz` (lister) |
| 29 | zip | Créer archive zip | `zip archive.zip fichier.txt`, `zip -r archive.zip dossier/` (avec dossier) |
| 30 | unzip | Extraire archive zip | `unzip archive.zip`, `unzip -l archive.zip` (lister contenu), `unzip archive.zip -d /destination/` |
| 31 | wget | Télécharger depuis internet | `wget http://site.com/file.zip`, `wget -c url` (reprendre téléchargement), `wget -O nom.zip url` (renommer) |
| 32 | curl | Télécharger/envoyer données | `curl http://site.com`, `curl -O url` (télécharger fichier), `curl -I url` (voir en-têtes) |
| 33 | ssh | Connexion à distance | `ssh user@192.168.1.10`, `ssh -p 2222 user@server` (port différent), `ssh -i key.pem user@server` (avec clé) |
| 34 | scp | Copier fichiers à distance | `scp fichier.txt user@server:~/`, `scp -r dossier/ user@server:~/` (copier dossier), `scp user@server:~/file.txt .` (ramener) |
| 35 | ping | Tester connexion | `ping google.com`, `ping -c 4 google.com` (4 paquets seulement) |
| 36 | ifconfig | Configuration réseau | `ifconfig` (tout voir), `ifconfig eth0` (interface spécifique), `ip addr` (commande moderne) |
| 37 | netstat | Connexions réseau | `netstat -tulpn` (ports ouverts), `netstat -r` (table routage), `ss -tulpn` (version moderne) |
| 38 | history | Historique commandes | `history`, `history 20` (20 dernières), `!123` (réexécuter commande 123), `!!` (dernière commande) |
| 39 | man | Manuel d'une commande | `man ls`, `man -k mot` (chercher dans manuels) |
| 40 | echo | Afficher du texte | `echo 'Bonjour'`, `echo $HOME` (afficher variable), `echo 'texte' > fichier.txt` (écrire dans fichier) |
| 41 | date | Date et heure | `date`, `date +%Y-%m-%d` (format personnalisé), `date -d "tomorrow"` (date de demain) |
| 42 | whoami | Nom d'utilisateur actuel | `whoami` |
| 43 | passwd | Changer mot de passe | `passwd` (votre mot de passe), `sudo passwd user` (mot de passe d'un autre) |
| 44 | clear | Effacer l'écran | `clear`, ou raccourci `Ctrl+L` |
| 45 | exit | Fermer le terminal | `exit`, ou raccourci `Ctrl+D` |
| 46 | reboot | Redémarrer | `sudo reboot`, `sudo reboot now` (immédiat) |
| 47 | shutdown | Éteindre | `sudo shutdown -h now` (immédiat), `sudo shutdown -h +10` (dans 10 min), `sudo shutdown -r now` (redémarrer) |
| 48 | ln | Créer un lien | `ln -s /chemin/source lien` (lien symbolique), `ln source lien` (lien dur) |
| 49 | diff | Comparer fichiers | `diff fichier1.txt fichier2.txt`, `diff -u fichier1.txt fichier2.txt` (format unifié) |
| 50 | wc | Compter lignes/mots | `wc fichier.txt` (tout), `wc -l fichier.txt` (lignes), `wc -w fichier.txt` (mots), `wc -c fichier.txt` (caractères) |