Informations de base sur le système GNU/Linux

CETTE page rassemble le minimum qu'un débutant doit savoir pour comprendre les pages GNU/Linux ou Debian de ce site et qu'il n'est pas possible de répéter sans cesse sous peine d'alourdir la documentation.

Révision 2020.02.16

Attention: contrairement à d'autres système, un système Unix (et GNU/Linux) ne confond pas les majuscules et les minuscules dans les commandes et noms de fichiers.

1. GNU/Linux

2. Console / Terminal

2.1 Simple utilisateur
2.2 Super-utilisateur / root

3. Système de fichier

3.1 Fichiers
3.2 Répertoires
3.3 Droits

4. Documentation

1. GNU/Linux

GNU/Linux est un système d'exploitation (comme par exemple Windows ou MacOSX), c'est-à-dire un système complet permettant l'utilisation d'un ordinateur à des fins les plus diverses.

Le nom Linux est une contraction de «Linus's UNIX», Linus Thorvald étant l'initiateur du noyau (chef d'orchestre du système) de type UNIX.

GNU (GNU's Not UNIX) permet l'utilisation du noyau (un chef d'orchestre tout seul ne produit pas beaucoup de musique) grâce à des outils fondamentaux: une multitude de commandes de base et un compilateur, qui permet de réaliser un logiciel à partir de sources écrites par des humains.

GNU/Linux est un ensemble de logiciels satisfaisant aux propriétés des logiciels libres définies par la FSF (Free Software Fondation): libertés d'utilisation sans restriction, de copier le logiciel, de l'étudier, de le modifier et de le redistribuer avec les sources modifiées.

À partir du milieu des années 80, les systèmes d'exploitation se sont dotés d'environnements graphiques (McIntosh, AtariST et Amiga d'origine, le PC/Windows et GNU/Linux un peu plus tard... avec fenêtres, menus et souris, favorisant l'informatique intuitive. Les «bureaux» (Cinnamon, Enlightment, GNOME, KDE, LXDE, Mate-Desktop, Xfce...) sont également un ensemble de logiciels libres.

2. La console / le terminal     

Loin d'être le reliquat d'une période révolue, la console (ou terminal) est un outil puissant pourvu qu'on dispose de la documentation précise. Même en mode graphique, il est toujours possible d'ouvrir une application qui donne accès à la ligne de commande, repérable par son icone représentant le plus souvent un écran noir. Les bureaux possèdent tous un terminal (appelé Terminal, Konsole ou dérivé), généralement dans le menu Accessoires ou Outils système. [Ctrl-Alt-T] lance en général directement un terminal. [Alt-F2] permet souvent l'apparition d'une ligne de commande permettant de choisir une application.

2.1 Simple utilisateur

La fenêtre de l'application montre une invite («prompt») et un curseur (le fond peut être clair ou foncé, des couleurs peuvent être utilisées; le curseur, qui peut clignoter, est ici représenté par un souligné _). La séquence de l'invite qui suit est classique, mais pas universelle:

tom@villon:~$ _

Les commandes les plus classiques se trouvent sur la page concernant les fichiers  voir également la page sur les commandes usuelles.

2.2 Super-utilisateur / root

Il est possible de passer en mode super-utilisateur, aussi appelé root, le seul qui permette:

Mais pour cela, il faut connaître le mot de passe du super-utilisateur, déterminé lors de l'installation du système. En fait, dans la majorité des cas, l'installateur de GNU/Linux est le super-utilisateur, sauf s'il transmet le mot de passe «root». Toute personne connaissant ce mot de passe peut d'ailleurs le modifier: c'est une question de confiance.

Attention: avant de poster une demande d'aide sur un forum, apprenez à distinguer su de su -

Pour administrer le système en tant que super-utilisateur, il existe deux types de connexion:

tom@villon:~$ su
Mot de passe :
root@villon:/home/tom# _

Après la commande su [Enter] et la saisie du mot de passe [Enter], plusieurs choses ont changé:

La connexion par su ne permet pas l'utilisation des outils systèmes, comme addusr

La seconde est su - (avec espace et trait d'union)

tom@villon:~$ su -
Mot de passe :
root@villon:/root# _

Pour quitter le mode super-utilisateur (ou root), il suffit de saisir exit [Enter] ou de fermer la console.

Remarques

3. Le système de fichiers

Un système de fichier contient les informations nécessaires au système et produites ou stockées par l'utilisateur. Comme cela fait quelques centaines de milliers de fichiers, il est nécessaire de les organiser.

3.1 Les fichiers

Un fichier est un ensemble de données écrites sous forme chiffrée. Il peut s'agir de nombres, ou encore de chaînes de caractères, mais dans ce cas chaque caractère est transcrit en nombre. Si l'unité d'information est le bit (chiffre binaire valant 0 ou 1), c'est l'octet (byte) un ensemble de huit bits, à savoir 256 valeurs de 0 à 255, qui constitue généralement la plus petite valeur consistante pour une application.

Chaque fichier est donc un ensemble variable d'octets, que chaque application sait comment organiser pour y stocker ses informations. En UNIX, c'est le plus souvent l'extension du nom de fichier qui importe:

Note: il est préférable de ne pas utiliser de caractères accentués ou exotiques dans les noms de fichiers. En effet, les clés USB ne les supportent pas toujours ou les encodent de diverses façons, ce qui peut provoquer des problèmes lors de transferts.

Lorsque vous ouvrez une console (aussi appelée «terminal»), vous êtes nécessairement quelque part dans votre système de fichier, le plus probablement à la racine de votre espace «utilisateur», noté ~. Pour savoir ce que cet espace contient, saisir (suivi de la touche [Enter]):

tom@villon:~$ ls -l
-rw-r-----  1 jc jc    577200 sep 14  2012  A440.mp3
drwxr-x--- 22 jc jc     12288 fév 16 13:20  Bureau
drwxr-x--- 42 jc jc     20480 fév  8 16:01  images
 ...

L'ensemble de la première colone sera expliquée plus loin, mais sachez déjà que ce qui commence par d est un répertoire (directory), ce qui commence par - est un fichier.

Il est possible de créer un petit fichier avec echo et la redirection de données (>) vers un fichier-texte:

tom@villon:~$ echo "Les vieux fous sont plus fous que les jeunes fous (François de La Rochefoucault)" > flr.txt

Un nouveau ls -l fait apparaître le nouveau fichier:

tom@villon:~$ ls -l
-rw-r-----  1 jc jc    577200 sep 14  2012  A440.mp3
drwxr-x--- 22 jc jc     12288 fév 16 13:20  Bureau
-rw-r--r--  1 jc jc        82 fév 16 13:43  flr.txt
drwxr-x--- 42 jc jc     20480 fév  8 16:01  images
 ...

Pour visualiser le contenu du fichier, on peut utiliser la commande cat:

tom@villon:~$ cat flr.txt
Les vieux fous sont plus fous que les jeunes fous (François de La Rochefoucault)

La commande mv («move») permet de changer le nom d'un fichier, en l'occurrence: flr.txt en flr0.txt (cette commande permet également de déplacer un fichier):

tom@villon:~$ mv flr.txt flr0.txt

La commande cp («copy») permet de dupliquer un fichier, ici flr0.txt sous le nom flr2.txt:

tom@villon:~$ cp flr0.txt flr.txt flr2.txt

Pour détruire le fichier flr0.txt (mais pas sa copie flr2.txt)

tom@villon:~$ rm flr0.txt

Vous trouverez plus de commandes sur la page consacrée aux fichiers et répertoires, et notamment comment les éditer.

3.2 Les répertoires

Les répertoires permettent d'organiser les fichiers, ce qui se fait un peu comme dans une maison: il y a des pièces, dans ces pièces des armoires, dans les armoires des tiroirs, dans les tiroirs des boîtes, qui peuvent encore contenir de plus petites boîtes...

En UNIX, et donc en GNU/Linux, la maison (l'ordinateur) est le répertoire-racine symbolisé par la barre oblique /.

À cette racine se rattache tout le système: les commandes, les applications, les périphériques, les fichiers des utilisateurs, les processus (application en cours)... Dans les répertoires suivants, nous trouverons (entre autres):

La plupart de ces répertoires de premier niveau ne sont accessibles qu'en lecture pour les utilisateurs (le super-utilisateur fait ce qu'il veut). Le répertoire pour les données /home. UNIX ayant été conçu pour héberger plusieurs utilisateurs, ce répertoire peut contenir plusieurs sous-répertoires, chacun contenant les données de chaque utilisateur.

La commande pwd permet de connaître le répertoire «courant», celui que la console considère en premier lieu:

tom@villon:~$ pwd
/home/tom

Pour y créer un nouveau répertoire, uniquement dans son propre espace (/home/tom ou un de ses sous-répertoires, pour l'utilisateur tom):

tom@villon:~$ mkdir oeuvres

Nous avons vu plus haut que la commande ls -l listait de façon détaillée le contenu du répertoire courant, qu'il s'agisse de fichiers ou de sous-répertoires. Nous devrions y retrouver le nouveau sous-répertoire:

tom@villon:~$ ls -l

La commande cd oeuvres permet d'entrer dans le répertoire oeuvres si ce répertoire est contenu dans le répertoire «courant». oeuvres devient alors le répertoire courant. On en ressort avec la commande cd .. (contrairement au DOS, cd.. ne fonctionne pas):

tom@villon:~$ cd oeuvres
tom@villon:~$ pwd
tom@villon:~$ ls -l
tom@villon:~$ cd ..
tom@villon:~$ pwd

La commande rmdir détruit un répertoire existant seulement s'il est vide:

tom@villon:~$ rmdir oeuvres

Nous avons déjà vu la commande mv capable de renommer un fichier. Elle est également capable de modifier le chemin d'accès d'un fichier, et donc de le déplacer, à condition que le premier élément soit un fichier, et le second un répertoire accessible du (sous-)répertoire courant.

tom@villon:~$ mv fichier repertoire

Il est possible de définir le nouveau chemin en utilisant une chaîne complexe. Si le répertoire courant est /home/tom, le fichier chanson.txt en /home/tom/musique et la destination existante /home/tom/oeuvres:

tom@villon:~$ mv musique/chanson.txt oeuvres

Si le répertoire courant est /home/tom/musique (../ remonte d'un niveau de répertoire):

tom@villon:~$ mv chanson.txt ../oeuvres

Vous trouverez plus de commandes sur la page consacrée aux fichiers et répertoires.

3.3 Les droits

Est-ce que chaque utilisateur a le droit d'accéder aux données de tous les fichiers et répertoires les voir/écouter et éventuellement les modifier? Cela dépend.

Les différents utilisateurs disposent de différents droits sur les fichiers et répertoires UNIX:

Rappelons que ces propriétés, cruciales en UNIX, sont visualisables avec la commande ls -l:

tom@villon:~$ ls -l
drwxr-xr-x  2 tom  tom   352256 jui 15 18:45 Bureau
-rw-r--r--  1 tom  tom     1187 oct 16  2017 camarades.txt
-rw-r--r--  1 tom  tom    28557 sep 30 14:07 essai.html
-rwxr-xr--  1 tom  script    20 sep 30 16:01 essai.py
drwxr-xr-x 42 tom  tom    20480 oct  2 23:15 images
drwxr-xr-x 31 tom  tom    20480 sep 30 15:15 informatique
-rw-r--r--  1 tom  tom       91 jan 23  2018 intelligences-gardner.txt

Le résultat montre, pour chaque fichier, entre autres choses les droits, le propriétaire et le groupe du fichier, la taille, la date et l'heure de modification et enfin le nom. Par exemple,

-rwxr-xr--  1 tom  script    20 sep 30 16:01 essai.py

signifie:

Le fichier suivant est un répertoire (d pour directory), et les droits sont un peu différents:

drwxr-xr-x 42 tom  tom    20480 oct  2 23:15 images

Avec la commande chmod, un propriétaire a le droit de fixer les propriétés pour chacun de ses fichiers en composant les droits avec les nombres 4 (lire), 2 (écrire) et 1 (exécuter):

tom@villon:~$ chmod 754 essai.py

Avec la commande chown, un utilisateur peut modifier le propriétaire et le groupe de ses propres fichiers:

tom@villon:~$ chown tom:sam images

...signifie que le propriétaire tom permet aux affiliés du groupe sam (et a fortiori à sam) d'avoir accès au répertoire image selon les modalité du second chiffre des droits d'un fichier

Un possesseur peut même céder un fichier à un autre.

Le super-utilisateur a tous les droits, dont ceux de décider du propriétaire d'un fichier:

root@villon:~# chown sam:sam fichier.py

...ou d'affilier un utilisateur à un groupe avec addgroup:

root@villon:~# addgroup sam tom

...affilie sam au groupe tom. tom peut ainsi décider de définir les droits de certains de ses fichiers pour qu'ils puissent être lus, modifiés ou lancés par sam et tout autre affilié·e au groupe tom.