Support de cours commandes UNIX et redirection, tutoriel & guide de travaux pratiques UNIX en pdf.
Principes de base UNIX
Les processus ou process
Tout logiciel est à la base un programme constitué d’un ensemble de lignes de commandes écrites dans un langage particulier appelé langage de programmation. C’est uniquement quand on exécute le logiciel que le programme va réaliser la tâche pour laquelle il a été écrit, dans ce cas là on dira qu’on a affaire à un processus ou process. En d’autres termes le programme est résolument statique, c’est des lignes de code, alors que le process est dynamique, c’est le programme qui s’exécute.
Par exemple le logiciel Winword sous Windows est en fait un bête programme écrit dans un langage abscons qui a été ensuite compilé pour le rendre compréhensible par la machine, ce n’est uniquement que quand vous le lancez, que vous avez alors affaire au process Winword.
Définition d’un système d’exploitation
Un système d’exploitation est un ensemble de programmes chargé de faire l’interface entre l’utilisateur et le matériel. C’est à dire que quand un utilisateur tape une commande au niveau d’un logiciel (ou application), le logiciel interprète la commande, la transmet au système d’exploitation qui la transmet au matériel dans un format compréhensible.
Un exemple vaut mieux qu’un grand discours, quand vous ouvrez un fichier dans votre traitement de texte favori, vous avez appuyé sur l’icône qui va bien, votre traitement de texte interprète l’action d’ouverture de fichier et transmet l’ordre au système d’exploitation, ce dernier va alors commander au contrôleur du disque dur de chercher les pistes correspondantes sur le disque qui correspondent au fichier en question. Normalement un logiciel ne devrait jamais » discuter » avec le matériel, le système d’exploitation se place entre les deux pour transmettre et éventuellement rejeter des commandes illicites.
Environnement
Un environnement est dit fenêtré quand il y a possibilité de pouvoir faire apparaître plusieurs fenêtres, il va de pair avec l’utilisation d’une souris, Windows est par exemple un exemple d’environnement fenêtré. On parle aussi d’environnement graphique.
A l’opposé on trouve aussi des environnements textuels non graphiques, DOS en est un bel exemple.
Présentation du système UNIX 4.1 Les utilisateurs UNIX
Sur un système UNIX, on trouve deux types de personnes, celle qui va utiliser le système dans le but de produire quelque chose, le système UNIX est pour elle un moyen, un outil. Cette personne est l’utilisateur UNIX, on peut trouver dans cette catégorie, le programmeur, l’utilisateur de base de données, etc. La deuxième catégorie de personnes est chargé de l’installation, de la configuration et de la bonne marche du système UNIX, ce sont les administrateurs systèmes UNIX.
Sur un système UNIX, les utilisateurs UNIX ont des droits limités, c’est à dire que certaines commandes leurs sont interdites et ils n’ont pas accès à certaines parties du système. Les administrateurs systèmes ont par contre tous les droits sur le système.
Généralement sur un système UNIX, on limite volontairement le nombre d’administrateur (appelé ROOT ou super utilisateur).
Les fonctions principales
UNIX est un système d’exploitation dont voici les tâches principales :
Partage des ressources équitables
UNIX veille à ce que toutes les ressources de l’ordinateur (imprimante, mémoire, …) soient partagées équitablement entre tous les processus.
Par exemple si vous travaillez sur une appli du genre base de données, vous lancez une requête (commande dans le langage base de données) coûteuse en temps, pour patienter rien ne vous empêche de vous lancer un Doom de derrière les fagots. Vous vous retrouvez donc avec deux process lancés en même temps, c’est le système d’exploitation qui est chargé de faire en sorte que les deux process puissent utiliser les ressources de manière équitable et que le deuxième process lancé n’attende pas la terminaison du premier pour se lancer.
Le fait de pouvoir exécuter plusieurs process ou tâches en même temps, en parallèle, est appelé multitâches. UNIX est multitâches.
Interface avec le matériel
UNIX par définition des systèmes d’exploitation fait en sorte qu’aucun process accède directement à une ressource matériel (disque dur, lecteur de disquette,…). Pour accéder à ces ressources on passe par l’intermédiaire de fichiers spéciaux, un fichier spécial est vu pour un utilisateur comme un fichier classique, pour écrire sur une disquette dans le lecteur de disquette, on n’a qu’à écrire dans le fichier spécial du lecteur de disquette. De même pour lire dans un disque dur, on va lire le fichier spécial du disque dur.
Gestion de la mémoire
Il existe deux types de mémoire, la mémoire volatile et la mémoire statique, quand on éteint et rallume l’ordinateur, toutes les données présentes dans la première ont disparu, et les données dans la seconde sont toujours présentes. Concrètement la mémoire volatile se trouve dans la RAM, la mémoire statique dans le disque dur. Dans le vocabulaire Unix, quand on parle de mémoire on sous entend mémoire volatile ou RAM, c’est la convention qui sera adoptée pour la suite du cours.
Tout programme qui s’exécute, ou process, a besoin de mémoire pour y stocker notamment les données qui manipulent. Malheureusement l’ordinateur dispose généralement d’une quantité de mémoire limitée et non extensible. UNIX doit donc faire en sorte que la mémoire soit bien partagée entre tous les process, un process ne doit pas s’accaparer toute la mémoire, sans quoi les autres process ne pourraient plus fonctionner.
La mémoire est vue comme une ressource matérielle, UNIX doit donc vérifier qu’aucun process accède à la mémoire directement ou ne se réserve une zone de la mémoire.
Gestion des fichiers
UNIX fournit les outils nécessaires pour stocker les données et pour pouvoir les récupérer rapidement et facilement. Il fournit les outils pour pouvoir visualiser l’ensemble des fichiers de manière simple. Ces fichiers se trouvent sur le disque dur, on nomme cela un système de fichiers ou File System en anglais.
UNIX fournit, en outre, un mécanisme de protection des fichiers. Plusieurs utilisateurs peuvent travailler en même temps sur la même machine, c’est la notion de multi-utilisateurs. Chaque utilisateur du système dispose de ses fichiers, UNIX lui donne le moyen de protéger ses fichiers, et d’accorder le droit ou non à d’autres utilisateurs d’accéder à ses fichiers.
Structure du système UNIX
Concrètement le système d’exploitation est lui aussi un ensemble de programme et de sous programmes regroupés dans ce qu’on appelle un noyau (kernel en anglais).
On a vu auparavant que les process ne pouvaient pas accéder directement aux ressources matériels, en fait les process passent par le noyau pour y accéder, pour cela ils disposent d’un ensemble de commandes appelées » appels système » UNIX .
Ces appels systèmes commandent deux composantes principales du noyau, le gestionnaire de processus et le système de gestion de fichiers. Le premier a pour rôle de faire en sorte que les process s’exécutent et accèdent à la mémoire de manière équitable, on le nomme aussi scheduler. Le deuxième a pour rôle la gestion du système de fichiers, notamment pour ce qui concerne les droits d’accès.
Ce sont ces deux derniers composants du noyau qui accèdent directement au matériel.
Le shell
Pour faire marcher l’ordinateur, l’utilisateur dispose des logiciels ou d’un utilitaire qui lui permet la saisie directe de commandes. On appelle cet utilitaire le shell (coquille en français). Son rôle est d’interpréter les commandes de l’utilisateur avant transmission au noyau, c’est pourquoi on parle aussi d’interpréteur de commandes. On trouve l’équivalent sous DOS qui peut être considéré comme un shell.
Il existe plusieurs types de shell, ils se différencient par la syntaxe et la richesse des commandes. Le plus commun est le Bourne-Shell, on trouve aussi le C-Shell qui s’apparente au langage de programmation C, le Korn Shell, le Posix Shell, et sous Linux le bash-shell.
Ouverture et fermeture de session 5.1 Ouverture de session
Avant de tenter une connexion, il faut d’abord vous assurer que vous ayez été déclaré sur la machine, c’est à dire que vous possédiez un compte utilisateur caractérisé par un nom ou login et un mot de passe associé.
A la mise sous tension, apparaissent à l’écran toute une liste de termes plus ou moins barbares, vous pouvez ignorer tout ça. Au bout d’un certain temps apparaît enfin le message login: avec un curseur qui clignote. Le système attend que vous rentriez votre login. Rentrez votre login. Puis tapez Enter, apparaît alors le message Password, tapez votre mot de passe, vous pouvez vous rendre compte que votre mot de passe n’apparaît pas en clair à l’écran, il est remplacé pour des raisons de sécurité évidente par des *.
A la mise sous tension, vous pouvez aussi disposer d’une interface graphique de connexion, au lieu d’avoir un simple login: avec le curseur qui clignote, vous avez une fenêtre ou bannière qui vous invite à saisir votre login et votre mot de passe. C’est notamment le cas pour la configuration par défaut de la Mandrake 6.0, mais aussi pour les versions récentes de HP-UX et de Solaris.
Une fois le login et le mot de passe saisi, deux possiblités peuvent s’offrir à vous, vous pouvez retrouver un écran noir, avec tout simplement un caractère du genre $ ou > (appelé prompt) suivi du curseur qui clignote apparaît. Vous êtes dans un shell prêt à taper des commandes. Par exemple, sous Linux le prompt par défaut est le suivant: [login@localhost login]$
Ou alors vous pouvez trouver un environnement fenêtré avec utilisation de la souris, où il vous sera possible de lancer un shell pour pouvoir taper des commandes UNIX.
Changement de password
En vous déclarant sur la machine, on vous a imposé un mot de passe, vous pouvez le changer, pour cela vous disposez de la commande passwd. Certains UNIX font en sorte que vous ne puissiez pas saisir un mot de passe simple, il faudra mettre au moins 6 caractères, avec au moins un, voie deux, caractère non alphabétique.
Rappelons que quand vous saisissez votre mot de passe, il ne paraît pas en clair, aussi par précaution, le système vous demande de le saisir deux fois.
ATTENTION : Evitez de vous servir du pavé numérique, car d’un poste à un autre, il peut y avoir des grosses différences à ce niveau là.
Si vous avez oublié votre mot de passe, vous devez vous adresserà l’administrateur du système (root) qui est le seul habilité à vous débloquer.
>passwd
Old passwd :******
Setting password for user : olivier
New password :******
Reenter password :******
>
ATTENTION : Sur certains systèmes, on ne doit pas taper passwd mais yppasswd, demandez le à votre administrateur. Pour informations, on utilise yppasswd pour les client NIS.
Fermeture de session
Quand on a fini d’utiliser le système, on doit se déconnecter ou fermer la session. Si vous êtes dans un environnement non graphique, il vous suffit au prompt de taper logout. Vous vous retrouvez alors avec le prompt de login, un autre utilisateur pourra alors utiliser la machine.
Dans un environnement graphique, vous avec une commande Exit, ou Logout, qui a strictement le même effet.
Vous devez veiller à vous déconnecter quand vous n’utilisez plus le système, pour des raisons de sécurité, mais aussi tout simplement pour libérer le poste de travail.
1. Historique du document
2. Préambule
3. Principes de base UNIX
l 3.1 Les processus ou process
l 3.2 Définition d’un système d’exploitation
l 3.3 Environnement
4. Présentation du système UNIX
l 4.1 Les utilisateurs UNIX
l 4.2 Les fonctions principales
l 4.3 Structure du système UNIX
l 4.4 Le shell
5. Ouverture et fermeture de session
l 5.1 Ouverture de session
l 5.2 Changement de password
l 5.3 Fermeture de session
6. Commandes UNIX et redirection
l 6.1 Syntaxe d’une commande
l 6.2 Les entrées sorties
l 6.3 Redirection des entrées sorties
l 6.4 Redirection des erreurs
l 6.5 Les pipes
7. Le système de fichiers
l 7.1 Les types de fichier
l 7.2 Atteindre un fichier
l 7.3 Visualiser les fichiers
l 7.4 Commandes de gestion des répertoires
l 7.5 Commandes de gestion des fichiers
l 7.6 Les liens
l 7.7 Les inodes
l 7.8 Les métacaractères
8. Les droits d’accès
l 8.1 Identification de l’utilisateur
l 8.2 Définition des droits d’utilisateur
l 8.3 Commandes associées
9. Gestion des processus
l 9.1 Les caractéristiques d’un processus
l 9.2 Visualiser les processus
l 9.3 Commandes de gestion des processus
l 9.4 Lancer en processus en tâche de fond
10. Les titres UNIX
l 10.1 Modifier les données d’un fichier
l 10.2 Edition de fichiers avec critères
l 10.3 Comparaison de fichiers
11. Les commandes grep et find
l 11.1 Les expressions régulières
l 11.2 La commande grep
l 11.3 La commande find
12. Expressions régulières et sed
l 12.1 Les expressions régulières
l 12.2 La commande sed
13. La commande awk
l 13.1 Présentation
l 13.2 Critères de sélection
l 13.3 Les actions
l 13.4 Les variables et opérations sur les variables
l 13.5 Les structures de contrôle
l 13.6 Les tableaux
…….