Bacho's Design - Your best online school - E learning Lebanon  (Liban)     
  Bachir Jean EL HAGE - E-Learning Math Lebanon (Liban)  


Cours sur l'UNIX


D'apres la reference: Olivier Hoarau

Prambule

UNIX est un systme d'exploitation d'une richesse incroyable, il serait bien prtentieux d'essayer en quelques pages d'en faire le tour. C'est pourquoi je me suis fix comme objectif de ne prsenter que les commandes les plus courantes qui permettront un utilisateur de se dbrouiller avec n'importe quel systme UNIX, de HP-UX Solaris en passant par Linux sans oublier les autres. Ce document s'adresse toute personne ayant une petite exprience d'un systme informatique, il s'adresse aussi ceux connaissant dj UNIX qui voudraient approfondir certaines notions. Le but de ce document n'est pas de traiter de l'administration d'un systme UNIX.


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 excute le logiciel que le programme va raliser la tche 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 rsolument statique, c'est des lignes de code, alors que le process est dynamique, c'est le programme qui s'excute. Par exemple le logiciel Winword sous Windows est en fait un bte programme crit dans un langage abscons qui a t ensuite compil pour le rendre comprhensible par la machine, ce n'est uniquement que quand vous le lancez, que vous avez alors affaire au process Winword.
Dfinition d'un systme d'exploitation
Un systme d'exploitation est un ensemble de programmes charg de faire l'interface entre l'utilisateur et le matriel. C'est dire que quand un utilisateur tape une commande au niveau d'un logiciel (ou application), le logiciel interprte la commande, la transmet au systme d'exploitation qui la transmet au matriel dans un format comprhensible. Un exemple vaut mieux qu'un grand discours, quand vous ouvrez un fichier dans votre traitement de texte favori, vous avez appuy sur l'icne qui va bien, votre traitement de texte interprte l'action d'ouverture de fichier et transmet l'ordre au systme d'exploitation, ce dernier va alors commander au contrleur 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 matriel, le systme d'exploitation se place entre les deux pour transmettre et ventuellement rejeter des commandes illicites.
Environnement
Un environnement est dit fentr quand il y a possibilit de pouvoir faire apparatre plusieurs fentres, il va de pair avec l'utilisation d'une souris, Windows est par exemple un exemple d'environnement fentr. On parle aussi d'environnement graphique. A l'oppos on trouve aussi des environnements textuels non graphiques, DOS en est un bel exemple.

Prsentation du systme UNIX

Les utilisateurs UNIX
Sur un systme UNIX, on trouve deux types de personnes, celle qui va utiliser le systme dans le but de produire quelque chose, le systme UNIX est pour elle un moyen, un outil. Cette personne est l'utilisateur UNIX, on peut trouver dans cette catgorie, le programmeur, l'utilisateur de base de donnes, etc. La deuxime catgorie de personnes est charg de l'installation, de la configuration et de la bonne marche du systme UNIX, ce sont les administrateurs systmes UNIX. Sur un systme UNIX, les utilisateurs UNIX ont des droits limits, c'est dire que certaines commandes leurs sont interdites et ils n'ont pas accs certaines parties du systme. Les administrateurs systmes ont par contre tous les droits sur le systme. Gnralement sur un systme UNIX, on limite volontairement le nombre d'administrateur (appel ROOT ou super utilisateur).
Les fonctions principales
UNIX est un systme d'exploitation dont voici les tches principales : Partage des ressources quitables UNIX veille ce que toutes les ressources de l'ordinateur (imprimante, mmoire, ...) soient partages quitablement entre tous les processus. Par exemple si vous travaillez sur une appli du genre base de donnes, vous lancez une requte (commande dans le langage base de donnes) coteuse en temps, pour patienter rien ne vous empche de vous lancer un Doom de derrire les fagots. Vous vous retrouvez donc avec deux process lancs en mme temps, c'est le systme d'exploitation qui est charg de faire en sorte que les deux process puissent utiliser les ressources de manire quitable et que le deuxime process lanc n'attende pas la terminaison du premier pour se lancer. Le fait de pouvoir excuter plusieurs process ou tches en mme temps, en parallle, est appel multitches. UNIX est multitches. Interface avec le matriel UNIX par dfinition des systmes d'exploitation fait en sorte qu'aucun process accde directement une ressource matriel (disque dur, lecteur de disquette,...). Pour accder ces ressources on passe par l'intermdiaire de fichiers spciaux, un fichier spcial 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 spcial du lecteur de disquette. De mme pour lire dans un disque dur, on va lire le fichier spcial du disque dur.
Gestion de la mmoire
Il existe deux types de mmoire, la mmoire volatile et la mmoire statique, quand on teint et rallume l'ordinateur, toutes les donnes prsentes dans la premire ont disparu, et les donnes dans la seconde sont toujours prsentes. Concrtement la mmoire volatile se trouve dans la RAM, la mmoire statique dans le disque dur. Dans le vocabulaire Unix, quand on parle de mmoire on sous entend mmoire volatile ou RAM, c'est la convention qui sera adopte pour la suite du cours. Tout programme qui s'excute, ou process, a besoin de mmoire pour y stocker notamment les donnes qui manipulent. Malheureusement l'ordinateur dispose gnralement d'une quantit de mmoire limite et non extensible. UNIX doit donc faire en sorte que la mmoire soit bien partage entre tous les process, un process ne doit pas s'accaparer toute la mmoire, sans quoi les autres process ne pourraient plus fonctionner. La mmoire est vue comme une ressource matrielle, UNIX doit donc vrifier qu'aucun process accde la mmoire directement ou ne se rserve une zone de la mmoire. Gestion des fichiers UNIX fournit les outils ncessaires pour stocker les donnes et pour pouvoir les rcuprer rapidement et facilement. Il fournit les outils pour pouvoir visualiser l'ensemble des fichiers de manire simple. Ces fichiers se trouvent sur le disque dur, on nomme cela un systme de fichiers ou File System en anglais. UNIX fournit, en outre, un mcanisme de protection des fichiers. Plusieurs utilisateurs peuvent travailler en mme temps sur la mme machine, c'est la notion de multi-utilisateurs. Chaque utilisateur du systme dispose de ses fichiers, UNIX lui donne le moyen de protger ses fichiers, et d'accorder le droit ou non d'autres utilisateurs d'accder ses fichiers.
Structure du systme UNIX
Concrtement le systme d'exploitation est lui aussi un ensemble de programme et de sous programmes regroups dans ce qu'on appelle un noyau (kernel en anglais). On a vu auparavant que les process ne pouvaient pas accder directement aux ressources matriels, en fait les process passent par le noyau pour y accder, pour cela ils disposent d'un ensemble de commandes appeles " appels systme " UNIX . Ces appels systmes commandent deux composantes principales du noyau, le gestionnaire de processus et le systme de gestion de fichiers. Le premier a pour rle de faire en sorte que les process s'excutent et accdent la mmoire de manire quitable, on le nomme aussi scheduler. Le deuxime a pour rle la gestion du systme de fichiers, notamment pour ce qui concerne les droits d'accs. Ce sont ces deux derniers composants du noyau qui accdent directement au matriel.
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 franais). Son rle est d'interprter les commandes de l'utilisateur avant transmission au noyau, c'est pourquoi on parle aussi d'interprteur de commandes. On trouve l'quivalent sous DOS qui peut tre considr comme un shell. Il existe plusieurs types de shell, ils se diffrencient 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.

Prsentation du systme UNIX


Ouverture de session
Avant de tenter une connexion, il faut d'abord vous assurer que vous ayez t dclar sur la machine, c'est dire que vous possdiez un compte utilisateur caractris 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 apparat enfin le message login: avec un curseur qui clignote. Le systme attend que vous rentriez votre login. Rentrez votre login. Puis tapez Enter, apparat alors le message Password, tapez votre mot de passe, vous pouvez vous rendre compte que votre mot de passe n'apparat pas en clair l'cran, il est remplac pour des raisons de scurit 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 fentre ou bannire qui vous invite saisir votre login et votre mot de passe. C'est notamment le cas pour la configuration par dfaut de la Mandrake 6.0, mais aussi pour les versions rcentes de HP-UX et de Solaris. Une fois le login et le mot de passe saisi, deux possiblits peuvent s'offrir vous, vous pouvez retrouver un cran noir, avec tout simplement un caractre du genre $ ou > (appel prompt) suivi du curseur qui clignote apparat. Vous tes dans un shell prt taper des commandes. Par exemple, sous Linux le prompt par dfaut est le suivant: [login@localhost login]$
Ou alors vous pouvez trouver un environnement fentr 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 dclarant 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 caractres, avec au moins un, voie deux, caractre non alphabtique. Rappelons que quand vous saisissez votre mot de passe, il ne parat pas en clair, aussi par prcaution, le systme vous demande de le saisir deux fois. ATTENTION : Evitez de vous servir du pav numrique, car d'un poste un autre, il peut y avoir des grosses diffrences ce niveau l. Si vous avez oubli votre mot de passe, vous devez vous adresser l'administrateur du systme (root) qui est le seul habilit vous dbloquer. >passwd
Old passwd :******
Setting password for user : olivier
New password :******
Reenter password :******
> ATTENTION : Sur certains systmes, 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 systme, on doit se dconnecter 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 mme effet. Vous devez veiller vous dconnecter quand vous n'utilisez plus le systme, pour des raisons de scurit, mais aussi tout simplement pour librer le poste de travail.

Commandes UNIX et redirection


Syntaxe d'une commande
La syntaxe standard d'une commande UNIX est la suivante : commande -options arg1 arg2 arg3 Les options varient en fonction de la commande, le nombre des arguments qui suivent dpend aussi de la commande, par exemple la commande : sort -r mon-fichier sort (trier) permet de trier un fichier, l'option r (reverse), permet de trier en sens inverse le fichier. L'argument unique de la commande est le nom du fichier. Avec cp -R mon-repertoire nouveau-repertoire La commande cp (copy) copie un rpertoire (option R) vers un autre rpertoire, on a ici deux arguments. On peut coupler deux options : ps -ef, avec cette commande on a l'option e et f (voir plus loin la signification de la commande). A noter que pour introduire une option on met -, ce n'est pas ncessaire pour certaines commandes (tar par exemple).
Les entres sorties
Il y a trois sortes d'entres sorties ou flux de donnes : le premier est l'entre standard, c'est dire ce que vous saisissez au clavier, le deuxime est la sortie standard, c'est dire l'cran, plus prcisment le shell, et le troisime est la sortie standard des messages d'erreurs conscutifs une commande, qui est gnralement l'cran. Chacun de ces flux de donnes est identifi par un numro descripteur, 0 pour l'entre standard, 1 pour la sortie standard et 2 pour la sortie standard des messages d'erreur.
Redirection des entres sorties
Quand vous lancez une commande dans un shell, il peut y avoir du texte qui s'affiche suite l'excution de la commande, ce texte par dfaut, s'affiche dans le shell. On dit que le shell (ou terminal) est la sortie standard, c'est l o va s'afficher tous les commentaires d'une commande. Vous pouvez changer ce comportement, en tapant : ma-commande > mon-fichier Tous les commentaires, les sorties, de la commande, ne vont pas apparatre au shell mais tre crits dans un fichier. En d'autres termes, la standard standard est redirig vers un fichier. Cela peut tre utile, si vous avez une commande qui gnre normment de commentaire, et que vous voulez les rcuprer, pour les exploiter par la suite, la terminaison de la commande. La redirection > a pour effet de crer le fichier mon-fichier, si ce fichier existait dj, il est tout simplement cras (supprim et recr), ce qui peut tre gnant si vous ne voulez pas perdre ce qu'il contient, vous disposez donc de la redirection >>. En tapant : ma-commande >> mon-fichier Le fichier mon-fichier n'est pas cras, mais la sortie standard (les commentaires de la commande) sont ajouts en fin de fichier, la suite du texte qui tait dj dans le fichier. Les redirections marchent dans les deux sens, par exemple en tapant la commande suivante : sort < mon-fichier Vous envoyez le contenu du fichier mon-fichier vers la commande sort (trie), celle-ci va donc trier le contenu du fichier, par dfaut le rsultat sort sur la sortie standard, c'est dire l'cran, plus prcisment sur le shell. Avec : sort < mon-fichier > fichier-trie On a vu que sort < mon-fichier avait pour effet de trier le fichier mon-fichier, l'expression >fichier-trie a pour effet d'envoyer le rsultat (le fichier tri) dans un fichier fichier-trie, le rsultat n'apparat plus l'cran, mais est sauvegard dans un fichier. Avec la redirection << la commande va lire les caractres jusqu' la rencontre d'une certaine chane de caractres. Exemple avec la commande cat (catalogue, permet d'diter le contenu d'un fichier). >cat << fin je tape du texte jusqu' la chane de caractre fin > En tapant la commande, vous revenez la ligne, mais perdez le prompt, cat va lire (et diter) les caractres que vous saisissez jusqu' qu'il rencontre la chane fin, ce moment l, le prompt apparat nouveau. Si vous voulez crer un fichier avec un peu de texte l'intrieur, vous ferez : >cat << fin > mon-fichier je tape du texte qui sera sauvegard dans mon-fichier, pour terminer le texte fin > Le texte que vous venez de saisir, se trouve donc dans mon-fichier. Avec la commande : >fichier-vide Vous crez un fichier vide fichier-vide.
Redirection des erreurs
Par dfaut les messages d'erreur s'affichent l'cran (sortie standard par dfaut), vous pouvez modifier ce comportement. On rappelle que la sortie d'erreur a pour code 2. Vous pouvez sauvegarder dans un fichier vos messages d'erreur, pour analyse ultrieure, en tapant :
cat mon-fichier 2>fichier-erreur
Si on rencontre une erreur pendant l'excutionde la commande d'dition cat de mon-fichier (absence du fichier par exemple), le message d'erreur sera sauvegard dans le fichier fichier-erreur.
En tapant :
sort mon-fichier > fichier-trie
Vous redirigez le rsultat de la commande sort mon-fichier vers le fichierfichier-trie, la sortie standard (descripteur 1) n'est donc plus l'cran (plus prcisment le shell ou terminal) mais le fichier fichier-trie. Par dfaut les messages d'erreur s'affichent dans le shell, vous pouvez faire en sorte qu'ils s'affichent dans le fichier fichier-trie, en tapant :
sort mon-fichier > fichier-trie 2>&1
Avec la syntaxe >& vous indiquez que les messages d'erreurs seront redirigs vers la sortie standard qui est le fichier fichier-trie.
Les pipes
Un pipe (en franais tube de communication) permet de rediriger la sortie d'une commande vers une autre. En d'autres termes, pour rediriger les rsultats (la sortie) d'une commande, on a vu qu'on pouvait taper :
commande1 > sortie1
On redirige cette sortie vers une autre commande, a devient donc une entre pour cette dernire commande, pour cela vous tapez :
commande2 < sortie1
En fait la syntaxe commande1|commande2 (| tant le symbole de pipe) est totalement quivalente aux deux lignes de commandes prcdentes. Exemple : ls permet la visualisation de fichiers, en tapant ls, on obtient :
fichier1 fichier2 totofichier
grep permet la recherche d´une chane de caractre dans une liste donne, en tapant grep toto * (* signifie tous les fichiers, grep recherche la chane de caractre toto dans les noms de tous les fichiers), on obtient :
totofichier
On a le mme rsultat avec le |, en tapant :

ls | grep toto
La premire commande aura pour effet de lister le nom des fichiers se trouvant l´endroit o l´on a tap la commande, la sortie standard (le rsultat de la commande) est donc une liste de nom, elle est redirige vers la commande grep, qui va y chercher une chane de caractre contenant toto. Le rsultat est donc aussi: totofichier

Vous devez vous connecter pour pouvoir commenter cet article. si vous etes enregistré Connectez-vous en haut de la page sous le menu principal, sinon l'inscription est gratuite: inscrivez-vous ici
Laissez votre commentaire
Loading...



Copyright ©2009 Bacho's Design by Bachir Jean EL HAGE

Bacho's design - Votre site Educatif en ligne par Bachir Jean EL HAGE

Statistiques du Site

Membres et messages

Nous avons 524 membres enregistrés.
Le dernier inscrit est mbaitibetfils3.
Nos membres ont posté 1108 messages.

Statistiques d'accès

  • 3105591 pages vues
  • En ce moment : 2 visiteurs connectés


did you like this website?



Bacho's Design web statistics for math education

Partenaires: (echange de lien? m'ecrire)

Recherchez Ici

  Annuaire généraliste

E-Learning Maths & Info - Liban par Bachir Jean EL HAGE Google   Google+     ISN Services Copyright 2008