Linux : les fondamentaux de la ligne de commande
Quitter

Leçon 2 sur 18 · Utilisateur

Se déplacer : pwd, ls, cd et les chemins

25 min Debian 12

Objectif

Savoir à tout moment où vous êtes dans les dossiers de la machine, ce qu'il y a autour de vous, et comment aller ailleurs, avec des chemins absolus ou relatifs.

L'essentiel

  • Linux range tout dans un seul arbre qui part de la racine /. Il n'y a pas de C: ou de D:.
  • pwd affiche le dossier courant, ls liste son contenu, cd change de dossier.
  • Un chemin absolu commence par / et marche de partout : /srv/ecole/notes.
  • Un chemin relatif part du dossier courant : notes, ../notes.
  • . = le dossier courant, .. = le dossier parent, ~ = votre dossier personnel.

1. Un seul arbre, une seule racine

Sous Windows, chaque disque a sa lettre. Sous Linux, tout part d'un dossier unique appelé la racine, noté /. Les disques, les clés USB et les partages réseau viennent se « greffer » quelque part dans cet arbre.

/
├── etc/           configuration
├── home/          dossiers des utilisateurs
│   ├── karim/
│   └── salma/
├── root/          dossier personnel de root
└── srv/           données servies par la machine
    └── ecole/
        ├── classes/
        │   ├── 6A/
        │   └── 6B/
        └── notes/

Remarquez que sous Linux, le séparateur est la barre /, pas la barre inversée \ de Windows.

2. pwd : où suis-je ?

pwd (print working directory) affiche le chemin complet du dossier où vous vous trouvez.

pwd                # → /home/karim  (juste après la connexion, vous êtes chez vous)

Quand vous vous connectez, vous arrivez dans votre dossier personnel : /home/karim pour Karim, /root pour root.

3. ls : qu'y a-t-il ici ?

ls                 # le contenu du dossier courant
ls /etc            # le contenu d'un autre dossier, sans y aller
ls -l              # format long : droits, propriétaire, taille, date
ls -a              # TOUT, y compris les fichiers cachés (qui commencent par un point)
ls -A              # comme -a, mais sans les entrées . et ..
ls -lh             # tailles lisibles : 4,0K, 12M, 1,5G
ls -lt             # trié par date, le plus récent en premier
ls -ltr            # trié par date, le plus récent en DERNIER (pratique pour les journaux)
ls -R              # récursif : le dossier et tous ses sous-dossiers
ls -ld /srv        # les informations du dossier lui-même, pas de son contenu

Lisons une ligne de ls -l :

drwxr-xr-x 4 root root 4096 Oct 18 10:12 classes
-rw-r--r-- 1 root root  812 Oct 18 10:15 eleves.csv
│└───┬───┘ │ └┬─┘ └┬─┘ └┬─┘ └─────┬────┘ └─ nom
│    │     │  │    │    │        └────── date de dernière modification
│    │     │  │    │    └─────────────── taille en octets
│    │     │  │    └──────────────────── groupe propriétaire
│    │     │  └───────────────────────── utilisateur propriétaire
│    │     └──────────────────────────── nombre de liens
│    └────────────────────────────────── droits (leçon dédiée plus tard)
└─────────────────────────────────────── type : d = dossier, - = fichier, l = lien

Les fichiers cachés. Tout nom qui commence par un point (.bashrc, .ssh) est caché : ls seul ne le montre pas. Ce n'est pas une protection, juste une façon de ne pas encombrer l'affichage avec des fichiers de réglages.

Sur la plupart des distributions, ls est un alias de ls --color=auto : les dossiers apparaissent en bleu, les programmes en vert.

4. cd : changer de dossier

cd /srv/ecole      # aller dans /srv/ecole (chemin absolu)
cd classes         # descendre dans le sous-dossier classes (chemin relatif)
cd ..              # remonter d'un niveau → /srv/ecole
cd ../..           # remonter de deux niveaux → /
cd                 # sans argument : retour au dossier personnel
cd ~               # pareil
cd -               # revenir au dossier précédent (très pratique pour alterner)

cd ne dit rien quand tout va bien. En cas d'erreur, il répond par exemple No such file or directory (le dossier n'existe pas) ou Not a directory (vous avez donné un fichier).

5. Chemins absolus et chemins relatifs

C'est la notion importante de la leçon.

Prenons une école : le directeur est dans le bureau /srv/ecole/classes/6A et veut atteindre le dossier des notes.

Type Exemple Part de… Marche…
Absolu /srv/ecole/notes la racine / de n'importe où
Relatif ../../notes le dossier courant seulement depuis ce dossier

Comment lire ../../notes depuis /srv/ecole/classes/6A :

/srv/ecole/classes/6A
        ..   → /srv/ecole/classes
     ../..   → /srv/ecole
../../notes  → /srv/ecole/notes

Les raccourcis à connaître :

Symbole Signification
/ au début la racine
. le dossier courant (./script.sh = « le script qui est ici »)
.. le dossier parent
~ votre dossier personnel (/home/karim)
~salma le dossier personnel de Salma (/home/salma)

Quand utiliser lequel ? Dans un script ou une tâche planifiée, utilisez toujours des chemins absolus : le script ne sait pas dans quel dossier il sera lancé. Au clavier, les chemins relatifs font gagner du temps.

6. La touche Tab, votre meilleure amie

Tapez cd /sr puis Tab : bash complète en cd /srv/. Tapez cd /srv/ecole/c puis Tab : classes/. S'il y a plusieurs possibilités, un double Tab les affiche. Vous évitez ainsi les fautes de frappe… et vous vérifiez au passage que le chemin existe.

7. Exemple complet

Mme Benali, secrétaire de l'école, explore le serveur :

pwd                       # /root
cd /srv/ecole             # elle va dans le dossier de l'école
ls                        # classes  notes
ls -a                     # .  ..  .secret  classes  notes   ← un fichier caché !
cd classes/6A             # chemin relatif
pwd                       # /srv/ecole/classes/6A
ls ../../notes            # trimestre1.txt   ← elle regarde ailleurs sans bouger
cd -                      # retour à /srv/ecole
cd                        # retour à son dossier personnel

Pièges fréquents

  • Oublier le / du début : cd srv/ecole cherche un dossier srv dans le dossier courant, pas à la racine.
  • Coller cd et .. : cd.. ne marche pas sous bash, il faut une espace : cd ...
  • Croire qu'un dossier est vide parce que ls n'affiche rien : il peut contenir des fichiers cachés, vérifiez avec ls -a.
  • Les espaces dans les noms : cd Mes documents échoue ; écrivez cd "Mes documents" ou cd Mes\ documents.

Lab

Sur ce lab Debian 12, un petit arbre d'école a été préparé dans /srv/ecole. Vous allez :

  1. vous rendre dans le dossier de la classe 6B et enregistrer son chemin absolu ;
  2. découvrir le fichier caché de /srv/ecole ;
  3. afficher les informations détaillées du dossier lui-même ;
  4. trouver le chemin relatif qui mène de la 6A au dossier des notes.

Astuce : testez chaque cd avant d'écrire votre réponse, et utilisez pwd pour vérifier où vous êtes arrivé.

Quiz

  1. Que fait cd tapé seul, sans argument ?
  2. Vous êtes dans /var/log/nginx. Où vous mène cd ../.. ?
  3. /home/karim/factures est-il un chemin absolu ou relatif ? Et factures/2026 ?
  4. Quelle option de ls affiche les fichiers cachés ?
  5. Pourquoi faut-il préférer les chemins absolus dans un script ?
Réponses
  1. Il ramène dans votre dossier personnel (~).
  2. Dans /var.
  3. Le premier est absolu (il commence par /) ; le second est relatif.
  4. -a (ou -A, qui n'affiche pas . et ..).
  5. Parce qu'on ne sait pas depuis quel dossier le script sera lancé : un chemin relatif pourrait pointer au mauvais endroit.

Sources de référence : Debian Reference et Cahier de l'admin Debian (licences libres), Ubuntu Server Guide (CC BY-SA 3.0). Texte original MasterLinux.

Exercices pratiques

À réaliser sur Debian 12

Le terminal en ligne ouvre bientôt. En attendant, réalisez ces tâches sur votre machine Linux, une machine virtuelle ou WSL.

  1. Allez dans le dossier de la classe 6B, puis enregistrez le chemin absolu du dossier courant dans /root/chemin.txt.
    Afficher un indicecd /srv/ecole/classes/6B, puis pwd > /root/chemin.txt
    Voir la solution
    cd /srv/ecole/classes/6B && pwd > /root/chemin.txt

    Vérification : grep -qx /srv/ecole/classes/6B /root/chemin.txt

  2. Le dossier /srv/ecole contient un fichier caché. Enregistrez la liste COMPLÈTE de ce dossier (fichiers cachés compris) dans /root/liste.txt.
    Afficher un indiceLes fichiers cachés commencent par un point. L'option -a de ls les affiche : ls -a /srv/ecole > /root/liste.txt
    Voir la solution
    ls -a /srv/ecole > /root/liste.txt

    Vérification : grep -qx .secret /root/liste.txt

  3. Enregistrez dans /root/details.txt les informations détaillées du dossier /srv/ecole LUI-MÊME (pas de son contenu).
    Afficher un indiceFormat long (-l) + option -d pour parler du dossier lui-même : ls -ld /srv/ecole
    Voir la solution
    ls -ld /srv/ecole > /root/details.txt

    Vérification : grep -q '^d.* /srv/ecole$' /root/details.txt

  4. Vous êtes dans /srv/ecole/classes/6A. Quel chemin RELATIF mène au dossier /srv/ecole/notes ? Écrivez-le (et seulement lui) dans /root/relatif.txt.
    Afficher un indiceChaque .. remonte d'un niveau : 6A → classes → ecole, puis on descend dans notes. Testez avec cd avant de l'écrire avec echo.
    Voir la solution
    echo ../../notes > /root/relatif.txt

    Vérification : grep -qx '../../notes' /root/relatif.txt

Références officielles consultées : Debian Reference — chapitre 1, système de fichiers et commandes de base ; Cahier de l'admin Debian — l'interpréteur de commandes. Texte original MasterLinux.