🐧 Mémo Linux — Les commandes essentielles pour administrer Linux
Bienvenue dans le petit coin Linux de Nawre-tech 👋
Quand on commence Linux, on peut rapidement avoir l’impression qu’il faut apprendre 500 commandes par cœur.
Bonne nouvelle : ce n’est absolument pas nécessaire.
L’objectif ici est plutôt de comprendre les commandes que l’on utilise tout le temps, et surtout de comprendre ce qu’elles nous racontent sur le système.
Ce mémo est donc pensé comme un petit parcours :
Je suis qui ? → Où suis-je ? → Qu’y a-t-il ici ? → Quels sont les droits ? → Quels processus tournent ? → Quels services écoutent ? → Comment fonctionne le réseau ? → Où sont les logs ? → Comment administrer la machine ?
Pas besoin de tout retenir immédiatement.
Le plus important est de comprendre la logique. Les commandes viendront avec la pratique. 😉
🐧 1. Avant de commencer : le terminal
Le terminal est l’un des outils les plus puissants de Linux.
On peut pratiquement tout y faire : naviguer dans les fichiers, installer des logiciels, gérer les utilisateurs, contrôler les services, analyser le réseau, consulter les logs…
Et contrairement à ce qu’on pourrait penser, le terminal n’est pas réservé aux « experts Linux ».
Au contraire, c’est un excellent moyen de comprendre ce que fait réellement le système.
Quelques commandes sont particulièrement importantes au début.
👤 2. Qui suis-je ?
Avant de faire quoi que ce soit, on peut commencer par demander à Linux :
whoami
Linux répond avec le nom de l’utilisateur actuellement connecté.
On peut ensuite regarder plus précisément notre identité :
id
Exemple :
uid=1000(nawre) gid=1000(nawre) groups=1000(nawre),10(wheel)
Quelques notions importantes :
uid→ identifiant numérique de l’utilisateurgid→ identifiant du groupe principalgroups→ groupes auxquels appartient l’utilisateur
Pour afficher uniquement les groupes :
groups
Pourquoi c’est important ?
Parce que Linux fonctionne énormément avec les utilisateurs et les groupes.
Les permissions d’un fichier vont notamment déterminer :
Qui peut lire ?
Qui peut modifier ?
Qui peut exécuter ?
On y revient un peu plus bas. 🔐
📍 3. Où suis-je ?
La commande :
pwd
signifie :
Print Working Directory
Elle indique le répertoire dans lequel on se trouve actuellement.
Exemple :
/home/nawre
On peut ensuite regarder ce qu’il contient :
ls
Pour avoir davantage d’informations :
ls -l
Et pour afficher également les fichiers cachés :
ls -la
Une variante pratique :
ls -lah
Le h permet d’afficher les tailles dans un format plus lisible :
4.0K
12M
1.5G
Petit réflexe sympa
Quand on est perdu dans le terminal :
pwd
ls -la
Ces deux commandes permettent déjà de savoir où l’on est et ce qu’il y a autour de nous.
📂 4. Se déplacer dans Linux
La commande principale est :
cd
Exemples :
cd /var/log
Aller dans /var/log.
cd ..
Remonter d’un niveau.
cd ~
Retourner dans son dossier personnel.
On peut également simplement faire :
cd
pour revenir dans son home.
🗂️ 5. Comprendre les principaux répertoires Linux
L’arborescence Linux peut sembler étrange au début.
Contrairement à Windows, on ne retrouve pas forcément une logique C:\, D:\, etc.
Tout part de :
/
C’est la racine du système.
Voici quelques répertoires importants :
| Répertoire | À quoi ça sert ? |
|---|---|
/home |
Fichiers personnels des utilisateurs |
/etc |
Configuration du système |
/var |
Données variables, notamment les logs |
/usr |
Programmes, bibliothèques et ressources |
/tmp |
Fichiers temporaires |
/boot |
Éléments nécessaires au démarrage |
/dev |
Périphériques représentés comme des fichiers |
/proc |
Informations sur le noyau et les processus |
/sys |
Informations sur le matériel et le noyau |
/root |
Dossier personnel de l’utilisateur root |
Quelques exemples :
cd /etc
Pour aller voir la configuration.
cd /var/log
Pour consulter les logs.
cd /home
Pour voir les utilisateurs ayant un dossier personnel.
📁 6. Créer et manipuler des fichiers
Créer un répertoire :
mkdir test
Créer plusieurs niveaux de répertoires :
mkdir -p projet/scripts/linux
Créer un fichier vide :
touch fichier.txt
Afficher son contenu :
cat fichier.txt
Pour lire un gros fichier tranquillement :
less fichier.txt
Dans less :
↑/↓→ se déplacerPageUp/PageDown→ avancer/reculer/mot→ rechercherq→ quitter
📋 Copier
Copier un fichier :
cp fichier.txt copie.txt
Copier un dossier :
cp -r dossier/ sauvegarde/
🚚 Déplacer ou renommer
mv fichier.txt archive.txt
mv sert à la fois à déplacer et à renommer.
🗑️ Supprimer
rm fichier.txt
Supprimer un dossier et son contenu :
rm -r dossier/
⚠️ Attention avec rm.
Contrairement à une corbeille graphique, une suppression avec rm n’est généralement pas récupérable facilement.
Et surtout :
rm -rf
est une commande à manipuler avec énormément de prudence.
Avant de supprimer quelque chose, mieux vaut savoir exactement où l’on se trouve :
pwd
🔐 7. Les permissions Linux
Voilà une des notions les plus importantes à comprendre.
Quand on fait :
ls -l
on peut obtenir quelque chose comme :
-rwxr-x---
On peut découper cela ainsi :
-rwx r-x ---
│ │ │
│ │ └── autres
│ └────── groupe
└─────────── propriétaire
Le premier caractère indique le type :
- fichier normal
d répertoire
l lien symbolique
Puis viennent trois groupes de permissions :
rwx
r-x
---
Les trois catégories
u = user → propriétaire
g = group → groupe
o = others → autres
Les permissions
r = read → lecture
w = write → écriture
x = execute → exécution
🔢 8. Comprendre les chiffres de chmod
Linux permet également d’écrire les permissions avec des chiffres.
r = 4
w = 2
x = 1
On additionne :
7 = 4 + 2 + 1 = rwx
6 = 4 + 2 = rw-
5 = 4 + 1 = r-x
4 = 4 = r--
0 = rien
Ainsi :
chmod 600 secret.txt
donne :
rw-------
Le propriétaire peut lire et écrire.
Le groupe et les autres n’ont aucun droit.
Exemple avec 644
chmod 644 fichier.txt
donne :
rw-r--r--
Donc :
- propriétaire → lecture + écriture
- groupe → lecture
- autres → lecture
Exemple avec 755
chmod 755 script.sh
donne :
rwxr-xr-x
Le propriétaire peut lire, modifier et exécuter.
Le groupe et les autres peuvent lire et exécuter.
🚀 9. Rendre un script exécutable
Très classique sous Linux :
chmod +x script.sh
Puis :
./script.sh
On peut vérifier :
ls -l script.sh
👥 10. Propriétaires et groupes
Afficher le propriétaire et le groupe :
ls -l
On peut obtenir par exemple :
-rw-r--r-- 1 nawre users 1234 fichier.txt
Ici :
nawre
est le propriétaire.
users
est le groupe.
Pour modifier le propriétaire :
sudo chown user1 fichier.txt
Pour modifier propriétaire et groupe :
sudo chown user1:devs fichier.txt
Pour appliquer à un dossier et son contenu :
sudo chown -R user1:devs projet/
👨👩👧👦 11. Utilisateurs et groupes
Créer un utilisateur :
sudo useradd -m user1
Définir son mot de passe :
sudo passwd user1
Supprimer un utilisateur :
sudo userdel -r user1
Créer un groupe :
sudo groupadd devs
Ajouter un utilisateur à un groupe :
sudo usermod -aG devs user1
⚠️ Le -aG est important.
Le a signifie append : on ajoute le groupe sans supprimer les appartenances existantes.
🤝 12. Les dossiers partagés
Pour un dossier de travail partagé entre plusieurs utilisateurs, on peut par exemple utiliser :
sudo chown -R user1:devs projet/
sudo chmod -R 2775 projet/
Le 2 devant 775 active le setgid sur le répertoire.
Cela permet notamment aux nouveaux fichiers et répertoires créés à l’intérieur d’hériter du groupe du répertoire.
Très pratique pour les dossiers collaboratifs.
🚫 13. Le fameux chmod 777
On voit parfois cette commande :
chmod 777 fichier
Elle donne pratiquement tous les droits à tout le monde.
C’est souvent utilisé comme :
« Ça ne marche pas, mets 777. » 😅
Mauvaise habitude.
Il vaut mieux comprendre pourquoi l’accès est refusé et corriger le propriétaire, le groupe ou les permissions correctement.
À retenir :
777 n’est pas une solution de dépannage à utiliser automatiquement.
📂 14. Le sticky bit et les dossiers partagés
On peut rencontrer :
chmod 1777 /shared
Le 1 active le sticky bit.
Le dossier peut alors être accessible à plusieurs utilisateurs, tout en empêchant normalement un utilisateur de supprimer les fichiers appartenant aux autres utilisateurs.
C’est notamment le principe utilisé pour certains répertoires temporaires comme /tmp.
🧠 15. Les processus
Un programme en cours d’exécution devient un processus.
Pour voir les processus :
ps
Une vue plus complète :
ps aux
On peut aussi utiliser :
top
ou, si installé :
htop
Chaque processus possède notamment un PID :
PID
C’est son identifiant.
☠️ 16. Arrêter un processus
Pour demander proprement à un processus de s’arrêter :
kill PID
Exemple :
kill 1951
Si le processus refuse réellement de s’arrêter, on peut utiliser :
kill -9 1951
⚠️ kill -9 est beaucoup plus brutal.
Il ne faut donc pas en faire le premier réflexe.
En administration Linux :
On essaie d’abord une terminaison propre, puis on force seulement si nécessaire.
⚙️ 17. Les services Linux et systemd
Sur beaucoup de distributions modernes, les services sont gérés par :
systemd
L’outil principal est :
systemctl
Voir les services :
systemctl --type=service
Voir uniquement ceux qui fonctionnent :
systemctl --type=service --state=running
🔧 18. Gérer un service
La syntaxe classique :
sudo systemctl start SERVICE
sudo systemctl stop SERVICE
sudo systemctl restart SERVICE
sudo systemctl status SERVICE
Exemple :
sudo systemctl status sshd
Activer un service au démarrage :
sudo systemctl enable SERVICE
Désactiver son démarrage automatique :
sudo systemctl disable SERVICE
Faire les deux en même temps :
sudo systemctl enable --now SERVICE
Par exemple :
sudo systemctl enable --now firewalld
🔍 19. Les logs avec journalctl
Sous les systèmes utilisant systemd, une commande extrêmement utile est :
journalctl
Voir les derniers événements :
journalctl -n 50
Suivre les logs en direct :
journalctl -f
Voir les logs d’un service :
journalctl -u sshd
Voir les logs depuis le dernier démarrage :
journalctl -b
C’est une commande à connaître absolument en administration.
Quand un service ne fonctionne pas :
systemctl status SERVICE
journalctl -u SERVICE
est souvent un très bon point de départ.
💾 20. Surveiller le stockage
Voir les systèmes de fichiers et leur occupation :
df -h
Voir la taille des fichiers et dossiers :
du -sh *
Pour comprendre les disques et partitions :
lsblk
Et pour avoir davantage d’informations :
lsblk -f
Ces commandes sont particulièrement pratiques lorsqu’on cherche à comprendre :
« Pourquoi mon disque est plein ? » 😅
🧠 21. Surveiller la mémoire
free -h
Pour avoir une vue globale de la machine :
top
On peut également consulter les informations générales du système :
uname -a
Et sur les distributions utilisant systemd :
hostnamectl
🌐 22. Comprendre le réseau
Le réseau est évidemment un gros morceau de l’administration Linux.
La commande moderne de référence est :
ip
Afficher les adresses IPv4 :
ip -4 addr
Afficher les routes :
ip route
🏠 23. Adresse IP privée
Les principales plages IPv4 privées sont :
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Elles sont utilisées dans les réseaux locaux.
Par exemple :
192.168.1.25
peut être l’adresse privée d’un ordinateur sur un réseau domestique.
L’adresse publique est différente : c’est généralement celle visible depuis Internet.
🚪 24. La passerelle par défaut
Avec :
ip route
on peut obtenir quelque chose comme :
default via 192.168.1.1 dev wlp3s0
Le :
default via
indique la route par défaut.
Sur un réseau domestique, il s’agit généralement du routeur/box.
En simplifiant :
PC Linux
│
│ réseau local
▼
Routeur / Box
│
│ Internet
▼
Internet
🔌 25. Les ports et sockets
Pour voir les ports en écoute :
ss -tuln
Signification :
-t TCP
-u UDP
-l listening
-n affichage numérique
Pour avoir également les processus concernés :
sudo ss -tulpn
C’est une commande très intéressante en cybersécurité.
Elle permet notamment de se demander :
Quels programmes écoutent actuellement sur ma machine ?
🔎 26. Comprendre une adresse d’écoute
On peut voir par exemple :
127.0.0.1:8080
Cela signifie que le service écoute uniquement sur la machine locale.
Il n’est donc pas directement accessible depuis les autres machines du réseau via cette adresse.
À l’inverse :
0.0.0.0:8080
signifie que le service écoute sur toutes les interfaces IPv4 disponibles.
⚠️ Cela ne signifie pas automatiquement que le port est accessible depuis Internet.
L’accessibilité dépend également :
- du routage ;
- du firewall ;
- de la configuration réseau ;
- d’éventuels NAT ;
- et de la manière dont le service est exposé.
🧩 27. Retrouver le programme derrière un port
Supposons que :
sudo ss -tulpn
nous indique :
127.0.0.54:53
avec un PID.
On peut ensuite interroger le processus :
ps -p 1951 -f
On peut également rechercher directement quel programme possède un socket avec :
sudo ss -lntup
C’est un très bon réflexe d’administration :
Un port ouvert → quel service ? → quel processus ? → pourquoi écoute-t-il ?
📡 28. Tester le réseau
Tester une connexion :
ping google.com
Mais attention : ping ne teste pas directement si un site web fonctionne.
Il utilise ICMP.
Pour tester une connexion HTTP/HTTPS, on peut utiliser :
curl -I https://example.com
🌍 29. DNS
Le DNS permet notamment de traduire :
google.com
en adresse IP.
Sur les systèmes utilisant systemd-resolved, on peut consulter l’état DNS avec :
resolvectl status
Afficher les DNS utilisés :
resolvectl dns
Faire une requête :
resolvectl query google.com
On peut donc voir le chemin logique :
google.com
│
▼
DNS
│
▼
adresse IP
│
▼
connexion réseau
🔄 30. TCP et UDP
Deux protocoles que l’on rencontre partout.
TCP
TCP établit une connexion entre les deux machines.
Le début d’une connexion TCP utilise notamment :
Machine A Machine B
SYN ───────────────────────►
◄──────────────── SYN/ACK
ACK ───────────────────────►
connexion établie
TCP fournit notamment :
- une communication orientée connexion ;
- de la fiabilité ;
- le contrôle de l’ordre des données ;
- la retransmission de données perdues.
UDP
UDP est plus simple et n’établit pas de connexion TCP classique.
Il est souvent utilisé lorsque la rapidité et la faible surcharge sont importantes.
On le retrouve notamment dans :
- DNS ;
- DHCP ;
- certains protocoles de streaming ;
- la téléphonie/visioconférence ;
- HTTP/3 via QUIC.
À retenir simplement :
TCP = connexion et fiabilité
UDP = plus léger, sans connexion TCP classique
🔎 31. Rechercher des fichiers et du texte
Pour rechercher un fichier :
find / -name "config.php"
⚠️ Chercher à partir de / peut produire beaucoup de résultats et demander des permissions élevées.
On peut limiter la recherche :
find /etc -name "*.conf"
Pour rechercher du texte dans un fichier :
grep "error" fichier.log
Et récursivement dans un dossier :
grep -R "error" /etc
Une combinaison très pratique :
grep -Rni "error" /var/log
avec :
R→ récursifn→ numéro de lignei→ insensible à la casse
📜 32. Lire les logs en direct
Pour suivre un fichier qui évolue :
tail -f fichier.log
Très pratique pour surveiller un log pendant qu’un service fonctionne.
Avec systemd, on peut également faire :
journalctl -f
📦 33. Installer des logiciels
La commande dépend de la distribution.
Fedora
Fedora utilise principalement :
dnf
Exemples :
sudo dnf install nginx
Mettre à jour :
sudo dnf upgrade
Rechercher un paquet :
dnf search nginx
Debian / Ubuntu
On utilise généralement :
apt
Exemples :
sudo apt update
sudo apt upgrade
sudo apt install nginx
Rechercher :
apt search nginx
À retenir
Fedora → dnf
Debian / Ubuntu → apt
Les commandes sont différentes, mais le principe reste le même :
rechercher → installer → mettre à jour → supprimer.
📥 34. Télécharger depuis le terminal
Avec wget :
wget https://example.com/fichier.zip
Avec curl :
curl -O https://example.com/fichier.zip
curl est particulièrement intéressant parce qu’il permet également de tester des services web et des API.
🔐 35. sudo et root
Linux possède un compte administrateur appelé :
root
Plutôt que de travailler constamment en root, on utilise généralement :
sudo commande
Par exemple :
sudo systemctl restart nginx
ou :
sudo dnf upgrade
C’est une bonne habitude de limiter les commandes exécutées avec les privilèges administrateur.
Pourquoi ?
Parce qu’une commande exécutée en root peut modifier quasiment tout le système.
🌍 36. Administration distante avec SSH
SSH permet d’administrer une autre machine à distance :
ssh user@serveur
Par exemple :
ssh admin@192.168.1.20
Une fois connecté, on travaille alors sur la machine distante.
On peut également copier un fichier :
scp fichier.txt user@serveur:/home/user/
SSH est une technologie incontournable pour l’administration Linux.
🧰 37. Quelques commandes à connaître aussi
Il existe quelques commandes très simples qui deviennent vite indispensables.
Afficher le manuel
man commande
Exemple :
man chmod
C’est probablement l’une des meilleures habitudes à prendre.
Trouver le chemin d’une commande
which python
ou :
command -v python
Historique
history
On peut retrouver les anciennes commandes avec :
↑
dans le terminal.
Effacer l’écran
clear
📦 38. Archiver des fichiers
Créer une archive :
tar -czf sauvegarde.tar.gz dossier/
Extraire :
tar -xzf sauvegarde.tar.gz
Lister le contenu :
tar -tzf sauvegarde.tar.gz
tar est extrêmement courant dans le monde Linux.
🛡️ 39. Quelques réflexes de sécurité
Administrer Linux, ce n’est pas seulement savoir lancer des commandes.
C’est aussi apprendre à se poser les bonnes questions.
Par exemple :
Quels services tournent ?
systemctl --type=service --state=running
Quels ports écoutent ?
sudo ss -tulpn
Quels utilisateurs existent ?
getent passwd
Quels groupes existent ?
getent group
Qui suis-je ?
whoami
id
Quels sont les droits d’un fichier ?
ls -l fichier
Que s’est-il passé sur la machine ?
journalctl
🔥 40. Le firewall
Sur Fedora, on rencontre notamment :
firewalld
Vérifier son état :
sudo firewall-cmd --state
Voir les zones actives :
sudo firewall-cmd --get-active-zones
Voir la configuration d’une zone :
sudo firewall-cmd --list-all
Le firewall ajoute une couche de protection réseau.
Mais attention :
Un firewall ne remplace pas une bonne configuration des services.
Si un service inutile écoute sur une interface, le meilleur réflexe est souvent de se demander :
« Pourquoi ce service tourne-t-il ? »
avant de simplement essayer de cacher le port.
🔒 41. SELinux / AppArmor
Linux dispose également de mécanismes de sécurité supplémentaires.
Selon la distribution, on peut notamment rencontrer :
- SELinux
- AppArmor
Fedora utilise notamment SELinux.
Pour vérifier son état :
sestatus
SELinux ajoute une couche de contrôle d’accès supplémentaire aux permissions Unix classiques.
On peut donc avoir :
Permissions Linux
+
SELinux
+
Firewall
+
Configuration du service
La sécurité d’un système repose sur plusieurs couches.
🧠 42. Le petit raisonnement d’admin Linux
Avec le temps, l’objectif n’est plus de connaître une commande pour chaque problème.
On apprend plutôt à raisonner.
Par exemple :
« Mon serveur web ne fonctionne pas. »
On peut commencer par :
systemctl status nginx
Puis :
journalctl -u nginx
Ensuite :
sudo ss -lntp
Puis vérifier le firewall.
Puis vérifier la configuration du service.
Puis tester le réseau :
curl -I http://127.0.0.1
On passe donc progressivement de :
Le serveur ne marche pas 😭
à :
Le service est-il démarré ?
↓
Le processus existe-t-il ?
↓
Le service écoute-t-il ?
↓
Sur quelle adresse ?
↓
Le firewall autorise-t-il ?
↓
La configuration est-elle correcte ?
↓
Les logs disent quoi ?
Et ça, c’est déjà une vraie démarche d’administrateur système. 😉
🧪 43. Petit parcours pour s’entraîner
Si tu veux réellement apprendre, plutôt que simplement lire ce mémo, ouvre un terminal et essaye :
Étape 1 — identité
whoami
id
groups
Étape 2 — navigation
pwd
ls -la
cd /tmp
pwd
Étape 3 — fichiers
mkdir linux-test
cd linux-test
touch fichier.txt
ls -l
Étape 4 — permissions
chmod 600 fichier.txt
ls -l
Puis :
chmod 644 fichier.txt
ls -l
Observe ce qui change.
Étape 5 — réseau
ip -4 addr
ip route
ss -tuln
Étape 6 — processus
ps aux
Puis :
top
Étape 7 — services
systemctl --type=service --state=running
Étape 8 — logs
journalctl -n 30
🧠 44. Les commandes à retenir en priorité
Si tu débutes, inutile d’apprendre tout le mémo d’un coup.
Commence par celles-ci :
| Commande | À retenir comme… |
|---|---|
whoami |
Qui suis-je ? |
id |
Quelle est mon identité Linux ? |
pwd |
Où suis-je ? |
ls -la |
Qu’y a-t-il ici ? |
cd |
Je me déplace |
mkdir |
Je crée un dossier |
touch |
Je crée un fichier |
cp |
Je copie |
mv |
Je déplace / renomme |
rm |
Je supprime |
cat / less |
Je lis |
chmod |
Je change les permissions |
chown |
Je change le propriétaire |
ps / top |
Je regarde les processus |
systemctl |
Je gère les services |
journalctl |
Je regarde les logs |
ip |
Je regarde le réseau |
ss |
Je regarde les connexions et ports |
df / du |
Je surveille le stockage |
free |
Je regarde la mémoire |
grep |
Je recherche du texte |
find |
Je recherche des fichiers |
sudo |
J’exécute avec des privilèges |
ssh |
Je me connecte à distance |
man |
Je consulte la documentation |
🐧 45. Et après ?
Une fois ces bases acquises, on peut commencer à attaquer des sujets beaucoup plus intéressants :
- 🐧 fonctionnement de Linux et du noyau ;
- ⚙️ systemd en profondeur ;
- 👤 utilisateurs, groupes et PAM ;
- 🔐 permissions avancées, ACL et capabilities ;
- 🌐 réseau Linux ;
- 📡 DNS, DHCP, routage et NAT ;
- 🔥 firewalls ;
- 🛡️ SELinux ;
- 🔑 SSH et authentification par clés ;
- 💾 partitions, LVM et systèmes de fichiers ;
- 📜 logs et journalisation ;
- 🐳 conteneurs ;
- 🖥️ virtualisation avec KVM/QEMU ;
- 🐚 scripting Bash ;
- 🕵️ analyse système ;
- 🔎 outils réseau comme
nmapet Wireshark ; - 🛡️ hardening ;
- 🚨 détection et analyse d’incidents.
Le but n’est donc pas de devenir un dictionnaire de commandes Linux.
Le vrai objectif est de comprendre ce qui se passe sur une machine et de savoir où chercher quand quelque chose ne fonctionne pas.
Et finalement, c’est probablement ça le plus important en administration Linux :
Comprendre avant de taper. 🐧💻