LINUX
Chapitre 1 : Introduction.But du cours.Ce cours est destiné à expliquer les principes de base ainsi que quelques commandes de Linux. Il s'adresse à des personnes ayant déjà une certaine expérience de l'informatique.
Après ce cours, vous ne devriez plus être démuni face à un système Linux. En aucun cas, il de vous permettra d'effectuer une administration en profondeur sans informations supplémentaires.
Qu'est-ce que Linux ?Linux est un système d'exploitation basé sur Unix. Il a été créé par l'étudiant finlandais Linus Torvalds. Pour être plus précis, Linus Torvald a créé le noyau du système d'exploitation auquel viennent s'ajouter toute une série de logiciels libres de la "Free Software Foundation".
Il existe différentes distributions de Linux. Si chacune de ces distributions possède ses particularités propres, ils fonctionnent dans l'ensemble de la même manière et avec le même noyau. La version utilisée lors du cours est la slakeware 8.1
Remarque.La plupart des informations contenues dans ce cours s'appliquent tant aux systèmes Unix en général et qu'à Linux
Chapitre 2 : Concepts de base.Architecture du système.Vu le grand nombre de personnes travaillant sur le noyau Linux, il est d'une très grande fiabilité. Il peut ainsi tourner de nombreux mois, voir des années, sans devoir être redémarré. Sa stabilité vient également de l'indépendance de ses différents composants qui peuvent être redémarrés séparément sans perturber l'ensemble du système.
Le noyau gère tout (mémoire, disques, systèmes de fichier, réseau, clavier, permission, etc.). Pour communiquer avec le noyau, il existe des "shell", ou interpréteurs de commandes, comme le "sh", "bash", "csh", "ksh", etc. C'est l'interpréteur de commande qui permet d'interagir avec le noyau grâce à un nombre limité de commandes et un très grande variété de programmes utilitaires.
Les commandes en lignes sont souvent rébarbatives et des interfaces graphiques ont été développées. Ces interfaces reposent sur un serveur graphique (XWindow) commun à tous, le plus couramment utilisé étant le XFree86. Les interfaces graphiques sont des gestionnaires de fenêtres reposant sur le serveur graphique. Nous pouvons citer KDE, Gnome, etc.
Grâce aux interfaces graphiques, nous pouvons utiliser des applications graphiques spécialement développées pour ces dernières comme des suites bureautiques, ou simplement des applications faisant le même travail que les commandes en lignes, mais de manière graphique.
En résumé, un système Linux est structuré de la manière suivante :
<LI class=button>Le noyau.
<LI class=button>L'interpréteur de commande (shell).
<LI class=button>Les commandes en ligne, dont le serveur XWindow.
<LI class=button>Le gestionnaire de fenêtre.
<LI class=button>Le gestionnaire de bureau.
- Les applications XWindow.
Conclusion.Les systèmes Unix, dont Linux, sont très structurés, plus simple à utiliser, à configurer, à maintenir et à développer. Ils sont très stables car les composants de haut niveau n'interfèrent pas sur les composants de bas niveau. Ils sont faciles à personnaliser puisque l'utilisateur a le choix des outils à chaque niveau. Linux est parfaitement modifiable puisque les sources sont distribuées. Il n'est pas propriétaire et l'on ne dépend pas d'une société éditrice pour résoudre un problème donné.
Sécurité des utilisateurs.Linux est un système multi-utilisateurs. Les différents utilisateurs peuvent se connecter au même terminal sous différentes sessions, via différents terminaux sur la même machine ou via des connexions à distance.
Pour être multi-utilisateurs, un système doit être multitâche, fiable et sûr. Le noyau s'occupe du multitâche et de la fiabilité. Chaque application fonctionne dans un espace mémoire distinct sans perturber les autres.
La sécurité est assurée par le noyau et le système de fichier. Le noyau va attribuer un identifiant à chaque utilisateur. Les utilisateurs vont être regroupés en groupes qui recevront également un identifiant. Le système de fichier va permettre de gérer des droits sur l'ensemble des fichiers. Lorsqu'un utilisateur va lancer un programme, ce dernier s'exécutera au nom de cet utilisateur et possèdera les mêmes droits.
Fonctionnalités du système de fichiers.Linux permet d'accéder à un grand nombre de systèmes de fichiers. Nous pouvons notamment citer EXT2 (système natif de Linux), FAT et FAT32 (système DOS et Windows), NTFS (système de Windows NT et 2000), ISO9660 (système des CD-ROM), NFS (système permettant de partager les fichiers sur le réseau), ReiserFS, etc.
Les droits d'accès.La première fonctionnalité intéressante est le support des droits d'accès aux fichiers.
Les droits appliqués aux fichiers sont de trois sortes : r (lecture), w (écriture) et x (exécution). Ces droits sont classés en 3 groupes : les droits pour le propriétaire du fichier, les droits pour les utilisateurs membre du même groupe que le propriétaire et les droits pour les autres utilisateurs. La notation utilisée est la suivante :
-rwxrwxrwx
Le premier groupe "rwx" représente les droits du propriétaire, le deuxième groupe ceux des utilisateurs faisant partie du groupe du propriétaire et le troisième groupe ceux des autres utilisateurs.
Notons qu'il existe un utilisateur particulier : le super-utilisateur appelé "root". Il s'agit de l'administrateur et il peut tout faire. Les droits d'accès ne s'appliquent pas à lui.
Les liens.Un lien est une référence à un fichier ou à un répertoire et peut être manipulé comme ce dernier. Il existe deux types de liens : les liens physiques (uniquement pour les fichiers) et les liens symboliques.
Les liens physiques sont une référence sur les données du fichier au niveau même du système de fichier. Nous aurons ainsi plusieurs entrées dans la table des fichiers du système de fichiers pointant sur le même espace physique. Pour pouvoir effacer les données du fichier, il faudra effacer tous les liens physiques pointant sur l'espace mémoire. Ce type de lien ne fonctionne que pour des systèmes de fichiers UNIX et ne peut se faire que sur des systèmes de fichiers identiques.
Les liens symboliques sont un fichier additionnel contenant les informations permettant de retrouver le fichier pointé, un peu comme un raccourci en Windows. Si le fichier pointé est déplacé ou renommé, le lien le sera plus opérationnel.
Structure du système de fichier.Comme la plupart des systèmes de fichiers, les systèmes UNIX sont structurés hiérarchiquement. Les fichiers sont regroupés dans des répertoires et les répertoires peuvent avoir des sous-répertoires.
Contrairement à Windows, la notion de lecteur n'existe pas. Tout est organisé à partir de la racine ('/') et chaque système de fichiers est "monté" dans un répertoire. Ainsi, les différents disques seront accédés comme n'importe quel répertoire. Cette technique est un peu lourde à gérer pour les médias amovibles. En effet, avant de pouvoir accéder à une disquette par exemple, il faut la "monter" et avant de pouvoir la retirer, il faut la "démonter".
Les noms de répertoires et de fichiers sont séparés par le caractère '/', contrairement aux systèmes Microsoft qui utilise le caractère '\''.
Les systèmes de fichiers UNIX ne reconnaissent pas les extensions. Ainsi, un point dans le nom d'un fichier sera interprété comme n'importe quel autre caractère. Une exception cependant si le nom du fichier commence par un point. Il sera alors considéré comme caché et ne sera affiché que s'il est demandé explicitement.
UNIX est sensible aux majuscules et aux minuscules. Ainsi deux fichiers différents peuvent avoir un même nom s'il y a une différence au niveau de la case. En général, on utilise les minuscules pour nommer les fichiers.
Notions de chemin sous UNIX.Comme nous l'avons vu, toute l'arborescence commence à partir du répertoire racine "/". Dans un chemin, les différents répertoires sont séparés par le caractère '/'. Un chemin absolu commence à la racine et donc par le caractère '/'. Un chemin de relatif commencera à partir du répertoire courant. Exemple :
/repertoire/sous_rep/sous_sous_rep/fichier (chemin absolu)
repertoire/sous_rep/sous_sous_rep/fichier (chemin relatif)
Dans chaque répertoire, il existe deux sous-répertoires spéciaux : "." et "..". "." représente le répertoire courant et ".." le répertoire parent. Ils sont notamment utilisés dans les chemins de recherche pour indiquer qu'il faut partir du répertoire courant ou pour remonter dans les répertoires.
Les chemins peuvent contenir des "jokers" ("wildcard"). '*' représente n'importe quel caractère répété un nombre indéterminé de fois (0, 1 ou plusieurs fois). '?' représente un et un seul caractère quelconque.
Hiérarchie standard du système de fichiers Linux.Une hiérarchie standard a été définie pour tous les systèmes UNIX. Elle a pour but de ne pas dépayser un utilisateur qui passe d'un système à l'autre. Chaque système suit cette recommandation avec plus ou moins de précision.
RépertoireSignification
/ | Répertoire racine (root). Point de départ de tout le système de fichiers. |
/bin | Répertoire contenant les commandes générales nécessaires à l'amorçage. |
/sbin | Répertoire contenant les commandes systèmes nécessaires à l'amorçage. |
/boot | Répertoire contenant les programmes, dont le noyau, et les fichiers de configuration nécessaire au démarrage. |
/dev | Répertoire contenant les fichiers spéciaux permettant d'accéder aux périphériques. |
/etc | Répertoire contenant les fichiers de configuration du système. |
/etc/opt | Répertoire contenant les fichiers de configuration des applications. |
/etc/X11 | Répertoire contenant les fichiers de configuration du serveur graphique. |
/home | Répertoire contenant les répertoires personnels des utilisateurs. |
/lib | Répertoire contenant les librairies partagées (DLL). |
/lib/modules | Répertorie contenant les modules additionnels du noyau. |
/mnt | Répertoire réservé au montages des systèmes de fichiers non-permanents (CD-ROM, disquettes, ...). |
/opt | Répertoire contenant les applications. |
/proc | Répertoire contenant le pseudo-système de fichier du noyau. |
/root | Répertoire personnel de l'administrateur. |
/srv | Données spécifiques qui sont servies par le système (ftp, www, etc.). |
/tmp | Répertoire temporaire (obsolète), préférez plutôt /var/tmp/ |
/usr | Répertoire contenant la majorité des applications des utilitaires. |
/usr/bin | Répertoire contenant la plupart des commandes utilisateur. |
/usr/sbin | Répertoire contenant la plupart des commandes systèmes non nécessaires au démarrage. |
/usr/include | Répertoire contenant la plupart des fichiers d'entêtes du système pour le compilateur C/C++. |
/usr/lib | Répertoire contenant la plupart des librairies partagées. |
/usr/local | Répertoire contenant les programmes d'extension du système indépendant de la distribution. |
/usr/src | Répertoire contenant les fichiers sources du noyau et des applications de la distribution. |
/usr/X11R6 | Répertoire contenant l'interface graphique et ses applications. |
/var | Répertoire contenant les données variables du système (journaux, ...). |
/var/locks | Répertoire contenant les verrous sur les ressources systèmes. |
/var/log | Répertoire contenant les fichiers journaux. |
/var/opt | Répertoire contenant les données variables des applications. |
/var/spool | Répertoire contenant les données en attente de traitement. |
/var/tmp | Répertoire temporaire, à utiliser plutôt que /tmp/.
|
le cour est tres long;attendez le reste de ce cours................;