/. On apprend d’abord à lire cette arborescence, puis à savoir où l’on est, ce qu’il y a autour de nous et comment se déplacer.1.1 Un peu d’histoire de Linux
Dans les années 1980, Richard Stallman lance le projet GNU, avec l’objectif de créer un système d’exploitation libre inspiré d’Unix. Au début des années 1990, Linus Torvalds développe le noyau Linux. L’association du noyau Linux avec les outils GNU donne ce que l’on appelle GNU/Linux, couramment abrégé en Linux.
Linux existe sous différentes distributions. Debian et Red Hat en sont deux familles importantes. Ubuntu, utilisée dans le cours Liora, est une distribution dérivée de Debian.
1.2 Architecture du système
Les fichiers et dossiers Linux sont organisés sous forme d’un arbre. Tout commence à la racine, notée /.
/
├── etc
├── home
│ └── ubuntu
├── usr
│ └── bin
├── var
└── ...
Un dossier peut contenir des sous-dossiers, qui peuvent eux-mêmes contenir d’autres dossiers ou fichiers. Il n’existe donc pas de lettres de lecteur comme C: au cœur de l’organisation Linux : tous les chemins s’inscrivent dans cette même arborescence.
| Répertoire | Rôle principal |
|---|---|
/bin | Commandes/binaires essentiels. |
/boot | Fichiers nécessaires au démarrage. |
/dev | Fichiers représentant les périphériques et certains flux système. |
/etc | Configuration du système et des services. |
/home | Répertoires personnels des utilisateurs. |
/lib | Bibliothèques essentielles utilisées par des programmes. |
/media | Points de montage souvent utilisés pour les supports amovibles. |
/mnt | Point de montage générique. |
/opt | Logiciels additionnels installés hors de la hiérarchie habituelle. |
/proc | Interface virtuelle exposant des informations sur le noyau et les processus. |
/root | Répertoire personnel de l’utilisateur root. |
/run | Données d’exécution temporaires depuis le démarrage. |
/sbin | Commandes d’administration système essentielles. |
/srv | Données servies par certains services. |
/tmp | Fichiers temporaires. |
/usr | Grande partie des programmes, bibliothèques et données partagées. |
/var | Données variables : logs, caches, files d’attente, etc. |
/var comme « contient les fichiers de log ». Les logs se trouvent notamment dans /var/log, mais /var contient aussi d’autres données qui changent pendant le fonctionnement du système.1.3 Premières commandes
1.3.1 Comprendre le prompt
Après une connexion SSH, on rencontre souvent un prompt ressemblant à :
ubuntu@machine:~$
| Élément | Signification |
|---|---|
ubuntu | Utilisateur connecté. |
@ | Séparateur. |
machine | Nom de la machine. |
: | Sépare l’identité de l’emplacement courant. |
~ | Répertoire personnel de l’utilisateur. |
$ | Prompt d’un utilisateur normal. |
Avec le super-utilisateur root, le prompt se termine généralement par #.
1.3.2 Savoir où l’on est : pwd et ls
La commande pwd (print working directory) affiche le chemin complet du répertoire courant.
pwd
/home/ubuntu
La commande ls liste le contenu d’un répertoire.
ls
ls /
ls /usr/bin
Sans argument, ls regarde le répertoire courant. Avec un chemin en argument, elle regarde le répertoire indiqué.
| Option | Effet |
|---|---|
-a | Affiche aussi les entrées cachées, dont le nom commence par .. |
-l | Affichage détaillé : droits, propriétaire, taille, date… |
-R | Parcourt récursivement les sous-répertoires. |
-h | Affiche les tailles dans un format lisible ; utile avec une option qui affiche les tailles, par exemple ls -lh. |
Pour découvrir une commande :
ls --help
man lsDans man, utilisez les flèches pour naviguer et q pour quitter.
1.3.3 Chemin absolu et chemin relatif
Un chemin absolu part de la racine / : il désigne un emplacement indépendamment du répertoire courant.
/usr/bin
/home/ubuntu
Un chemin relatif part de l’endroit où l’on se trouve actuellement. Deux entrées spéciales sont fondamentales :
| Notation | Signification |
|---|---|
. | Répertoire courant. |
.. | Répertoire parent. |
Si l’on se trouve dans /home/ubuntu :
ls ..
ls ../../usr/bin
Dans le second exemple, .. mène à /home, le second .. mène à /, puis le chemin redescend vers usr/bin.
1.3.4 Se déplacer avec cd
cd signifie change directory. Cette commande change le répertoire courant.
cd /
pwd
cd /usr/bin
pwd
Pour revenir au répertoire personnel :
cd
# ou
cd ~
pwd répond à « où suis-je ? », ls à « qu’y a-t-il ici ? » et cd à « où veux-je aller ? ».1.4 Variables d’environnement
Une variable associe un nom à une valeur. Les variables d’environnement permettent aux programmes et au shell de récupérer des informations sur leur environnement d’exécution : utilisateur, langue, répertoire personnel, chemins où rechercher les commandes, etc.
1.4.1 Créer et lire une variable d’environnement
Pour créer une variable et l’exporter dans l’environnement des processus lancés depuis ce shell :
export DATASCIENTEST=prenom.nom
Pour lire sa valeur, Bash remplace $NOM par la valeur de la variable :
echo $DATASCIENTEST
Pour afficher les variables d’environnement :
printenv
.bashrc ; ce point sera traité plus tard.1.4.2 Variables importantes
| Variable | Rôle |
|---|---|
PATH | Liste des répertoires dans lesquels le shell recherche les commandes. |
USER | Nom de l’utilisateur courant. |
PWD | Répertoire de travail courant. |
HOME | Répertoire personnel de l’utilisateur. |
LANG | Paramètres de langue/localisation utilisés par de nombreux programmes. |
Exemple :
echo $USER
echo $HOME
echo $PWD
echo $PATH
1.4.3 Supprimer une variable
unset supprime une variable du shell courant :
unset DATASCIENTEST
1.5 Synthèse
| Besoin | Commande / notation |
|---|---|
| Connaître le répertoire courant | pwd |
| Lister un répertoire | ls |
| Changer de répertoire | cd |
| Racine Linux | / |
| Répertoire personnel | ~ |
| Répertoire courant / parent | . / .. |
| Créer/exporter une variable | export NOM=VALEUR |
| Lire une variable | echo $NOM |
| Lister l’environnement | printenv |
| Supprimer une variable | unset NOM |