Mémo Linux

🐧 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’utilisateur
  • gid → identifiant du groupe principal
  • groups → 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éplacer
  • PageUp / PageDown → avancer/reculer
  • /mot → rechercher
  • q → 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écursif
  • n → numéro de ligne
  • i → 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 nmap et 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. 🐧💻