Le système d'exploitation GNU-Linux/Les répertoires importants



Une des premières difficultés pour les débutants Unix est de se repérer dans l'arborescence. Contrairement à un environnement Windows qui regroupe toutes les ressources nécessaires à un programme dans un même répertoire, les ressources dans un système unix (et dans une moindre mesure MacOS) sont réparties dans une hiérarchie générale. Ainsi si le code exécutable d'un programme se trouve dans le répertoire /bin, ses libraries se trouveront dans le répertoire /lib et ses fichiers de configuration dans le répertoire /etc.

La hiérarchie des systèmes unix est normalisée, la spécification étant accessible sur http://www.pathname.com/fhs/

Voici une liste des répertoires à connaître.

Les programmes exécutables

modifier
  • /bin : les commandes indispensables
  • /usr/bin : les autres commandes
  • /usr/local/bin : les commandes installées à la main

Les programmes exécutables du super-utilisateur root

modifier
  • /sbin : les programmes indispensables d'administration
  • /usr/sbin : les autres programmes d'administration
  • /usr/local/sbin : les programmes d'administration installées à la main

Les fichiers de configuration

modifier
  • /etc

En particulier, /etc contient les fichiers:

/etc/passwd               liste des comptes utilisateurs et leurs répertoires associés.
/etc/shadow               liste des comptes utilisateurs et leurs mots de passe chiffrés.
/etc/X11/xorg.conf        fichier de configuration du serveur graphique.

Le(s) noyau(x) Linux

modifier
  • /boot

Les répertoires de travail des utilisateurs

modifier
  • /home

Chaque utilisateur du système aura un répertoire dans /home portant son nom.

Par exemple le bureau de l'utilisateur "wiki" se trouve dans :

/home/wiki/Bureau

NB : si le bureau montre des icônes qui ne figure pas dans "/home/wiki/Bureau", on peut les retirer par exemple sur Gnome avec :

gsettings set org.gnome.shell.extensions.ding show-home false
gsettings set org.gnome.shell.extensions.ding show-trash false

Le répertoire de travail du super-utilisateur root

modifier
  • /root

Les librairies partagées

modifier
  • /lib : les librairies indispensables
  • /usr/lib : les autres librairies
  • /usr/local/lib : les librairies des programmes installés à la main

Les points de montage

modifier
  • /mnt : Répertoire dans lequel on pourra créer des points de montage pour des systèmes de fichiers temporaires, destiné à un usage d'appoint. Les composants vitaux du système ne doivent pas dépendre de ce répertoire.
  • /media : Répertoire dans lequel des points de montage seront créés automatiquement pour accéder aux supports de stockage amovibles (cdrom, clé usb...)

Les périphériques

modifier
  • /dev

En particulier, on trouve les fichiers :

/dev/hda  ou hdb ou sda etc. qui correspondent aux disques dur. Les disques durs IDE sont notés hd et les SATA ou SCSI sont notés sd
/dev/hda1 ou hda2 etc. qui correspondent aux partitions des disques. hda1 est la 1ere partition du premier disque IDE (hda).
/dev/eth0 qui correspond à la première carte réseau. Pour plus d'une carte réseau, on verra apparaître d'autres fichiers /dev/eth.
/dev/audio qui correspond au périphérique son.

Les autres programmes et leurs fichiers annexes

modifier
  • /usr

Ce répertoire est en lecture-seule et est destiné à être partagé. Les programmes installés par le système d'exploitation se trouvent dans /usr/bin. Les programmes installés manuellement par les utilisateurs se trouvent dans /usr/local.

« usr » veut dire Unix System Ressources et non pas user. Les fichiers relatifs aux utilisateurs du système se trouvent dans le répertoire « /home ».

Le système de fichier virtuel

modifier

Donne les infos de la machine

  • /proc
sur le processeur
modifier

Ex:/proc/cpuinfo

sur la mémoire
modifier

Ex:/proc/meminfo

sur les modules
modifier

Ex:/proc/modules

sur les montages du systeme
modifier

Ex:/proc/mount

sur la swaps
modifier

Ex:/proc/swaps

Les fichiers temporaires

modifier
  • /tmp
  • /var/tmp

Les données variables

modifier
  • /var

Ce répertoire contient les données variables. En particulier:

les logs sont stockés dans /var/log
les mails en attente de livraison sont stockées dans /var/mail
les travaux d'impression seront dans /var/spool ou /var/mail selon le serveur d'impression utilisé.
  • /var/log, ce répertoire contient les journaux (fichiers détaillant les historiques de programmes).
  • /var/mail, ce répertoire contient les emails des utilisateurs du système. Un utilisateur du système peut voir ses emails via la commande « mail ».
  • /var/spool, ce répertoire contient les données en attente de traitement (par un programme), et sont en générale supprimé après avoir été traité.
  • /var/lib, ce répertoire contient les données des bases de données (Mysql, Postgresql) et les bases de données dpkg (rpm sur RedHat)
  • /var/www : les sites Web

Les programmes et ressources installés à la main

modifier
  • /usr/local

Ce répertoire contient des données mis en place par l'administrateur du système, comme « /usr » mais dans un contexte plus « isolé » car ces ressources sont géré par ce même administrateur système, et contient des sous-répertoire tel que:

/usr/local
├── bin/                   : où se trouvent les programmes.
│   ├── monprogramme       : exemple de programme nommé « monprogramme ».
├── etc/                   : où se trouvent les fichiers de configurations des programmes, comme « /etc ».
│   ├── monprogramme.conf  : exemple de configuration de « monprogramme ».
├── lib/                   : où se trouvent les bibliothèques logiciel.
├── lib64/                 : où se trouvent les bibliothèques logiciel, compilé pour les processeurs à architecture 64 bits.
├── sbin/                  : où se trouvent les programmes utilisable par "root".