Bacho's Design

The Online Maths School
🇺🇸 🇫🇷

Cours sur l'UNIX


D'apres la reference: Olivier Hoarau

Pr�ambule

UNIX est un syst�me d'exploitation d'une richesse incroyable, il serait bien pr�tentieux d'essayer en quelques pages d'en faire le tour. C'est pourquoi je me suis fix� comme objectif de ne pr�senter que les commandes les plus courantes qui permettront � un utilisateur de se d�brouiller avec n'importe quel syst�me UNIX, de HP-UX � Solaris en passant par Linux sans oublier les autres. Ce document s'adresse � toute personne ayant une petite exp�rience d'un syst�me informatique, il s'adresse aussi � ceux connaissant d�j� UNIX qui voudraient approfondir certaines notions. Le but de ce document n'est pas de traiter de l'administration d'un syst�me 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 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

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.

Pr�sentation du syst�me UNIX


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.

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 d�pend 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 r�pertoire (option R) vers un autre r�pertoire, 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 n�cessaire pour certaines commandes (tar par exemple).
Les entr�es sorties
Il y a trois sortes d'entr�es sorties ou flux de donn�es : le premier est l'entr�e standard, c'est � dire ce que vous saisissez au clavier, le deuxi�me est la sortie standard, c'est � dire l'�cran, plus pr�cis�ment le shell, et le troisi�me est la sortie standard des messages d'erreurs cons�cutifs � une commande, qui est g�n�ralement l'�cran. Chacun de ces flux de donn�es est identifi� par un num�ro descripteur, 0 pour l'entr�e standard, 1 pour la sortie standard et 2 pour la sortie standard des messages d'erreur.
Redirection des entr�es sorties
Quand vous lancez une commande dans un shell, il peut y avoir du texte qui s'affiche suite � l'ex�cution de la commande, ce texte par d�faut, 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 appara�tre 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 g�n�re �norm�ment de commentaire, et que vous voulez les r�cup�rer, pour les exploiter par la suite, � la terminaison de la commande. La redirection > a pour effet de cr�er le fichier mon-fichier, si ce fichier existait d�j�, il est tout simplement �cras� (supprim� et recr��), ce qui peut �tre g�nant 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 ajout�s en fin de fichier, � la suite du texte qui �tait d�j� 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 d�faut le r�sultat sort sur la sortie standard, c'est � dire � l'�cran, plus pr�cis�ment 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 r�sultat (le fichier tri�) dans un fichier fichier-trie, le r�sultat n'appara�t plus � l'�cran, mais est sauvegard� dans un fichier. Avec la redirection << la commande va lire les caract�res jusqu'� la rencontre d'une certaine cha�ne de caract�res. Exemple avec la commande cat (catalogue, permet d'�diter le contenu d'un fichier). >cat << fin je tape du texte jusqu'� la cha�ne de caract�re fin > En tapant la commande, vous revenez � la ligne, mais perdez le prompt, cat va lire (et �diter) les caract�res que vous saisissez jusqu'� qu'il rencontre la cha�ne fin, � ce moment l�, le prompt appara�t � nouveau. Si vous voulez cr�er un fichier avec un peu de texte � l'int�rieur, 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 cr�ez un fichier vide fichier-vide.
Redirection des erreurs
Par d�faut les messages d'erreur s'affichent � l'�cran (sortie standard par d�faut), 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 ult�rieure, en tapant :
cat mon-fichier 2>fichier-erreur
Si on rencontre une erreur pendant l'ex�cutionde 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 r�sultat de la commande sort mon-fichier vers le fichierfichier-trie, la sortie standard (descripteur 1) n'est donc plus l'�cran (plus pr�cis�ment le shell ou terminal) mais le fichier fichier-trie. Par d�faut 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 redirig�s vers la sortie standard qui est le fichier fichier-trie.
Les pipes
Un pipe (en fran�ais tube de communication) permet de rediriger la sortie d'une commande vers une autre. En d'autres termes, pour rediriger les r�sultats (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 entr�e pour cette derni�re 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 pr�c�dentes. Exemple : ls permet la visualisation de fichiers, en tapant ls, on obtient :
fichier1 fichier2 totofichier
grep permet la recherche d´une cha�ne de caract�re dans une liste donn�e, en tapant grep toto * (* signifie tous les fichiers, grep recherche la cha�ne de caract�re toto dans les noms de tous les fichiers), on obtient :
totofichier
On a le m�me r�sultat avec le |, en tapant :

ls | grep toto
La premi�re 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 r�sultat de la commande) est donc une liste de nom, elle est redirig�e vers la commande grep, qui va y chercher une cha�ne de caract�re contenant toto. Le r�sultat est donc aussi: totofichier
Laissez votre commentaire
Fatal error: Uncaught mysqli_sql_exception: Table 'bachosdesign_db.commentairesBach' doesn't exist in /home/bachosdesign/public_html/files/_setup/pages/security_article.php:141 Stack trace: #0 /home/bachosdesign/public_html/files/_setup/pages/security_article.php(141): mysqli->query('SELECT * FROM c...') #1 /home/bachosdesign/public_html/files/_setup/pages/linux.php(309): include('/home/bachosdes...') #2 /home/bachosdesign/public_html/index.php(105): include('/home/bachosdes...') #3 {main} thrown in /home/bachosdesign/public_html/files/_setup/pages/security_article.php on line 141