Vous êtes sur la page 1sur 39

Universit de Tunis El Manar Facult des Sciences de Tunis

Rsum sur lutilisation du systme UNIX (Exploitation et Programmation Shell) par Y. SLIMANI -----------------------------------------------------------------------------------------------------Ce rsum est destin vous faciliter lutilisation du systme pour raliser vos travaux pratiques du cours de Systme dExploitation. Il contient quelques lments de base pour lutilisation du systme UNIX. Il ne constitue quun guide dutilisation et ne peut pas remplacer un cours complet sur UNIX. La dernire partie de ce rsum est consacre la programmation Shell sous Unix. Le meilleur moyen dapprendre utiliser Unix est la pratique intensive sur machine, malgr les erreurs que vous pourriez faire au dbut. Plus vous ferez derreurs, plus vous apprendrez les viter et les viter. A terme, cette accumulation derreurs constituera un capital certain pour la mise en uvre dun systme Unix.

------------------------------------------------------------------------------------------------------

1- Principes de base UNIX


1.1 Caractristiques
Unix est systme d'exploitation cr en 1969 par K. Thompson et D. Ritchie. C'est un systme multiutilisateurs, c'est dire capable de grer plusieurs sessions de travail (mise en contact d'un utilisateur avec une machine) simultanment. Il est capable de traiter plusieurs applications en mme temps : c'est un systme multitches. Il gre de plus le temps partag, c'est dire le partage de l'unit centrale entre les diffrentes taches et processus. C'est aussi le premier systme d'exploitation orient rseau : mail, ftp, web

1.2 Les utilisateurs UNIX


Sur un systme UNIX, on trouve deux types dutilisateurs : 1. Les personnes qui veulent utiliser (exploiter) le systme. Pour elles, le systme UNIX est un moyen, un outil pour raliser leurs applications. 2. Les personnes (gnralement une seule) charge de l'installation, de la configuration et de la bonne
------------------------------------------- 1 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

utilisation du systme UNIX, Ce sont les administrateurs systmes UNIX. Laccs au systme nest autoris que pour les personnes ayant un compte utilisateur. Ce compte est dfini par un nom et un mot de passe. Aucun accs nest possible un utilisateur nayant pas de compte. Ceci constitue laspect scurit du systme. Une fois quun utilisateur a russi accder un systme UNIX, il a des droits limits (voir paragraphe 5). Ceci veut dire que certaines commandes lui sont interdites, quil na pas accs certaines parties du systme, et quil na pas accs tous les fichiers existants sur le systme. Ceci constitue laspect protection du systme. . Les administrateurs systmes ont par contre tous les droits sur le systme. Gnralement le nombre d'administrateurs sur un systme UNIX est limit une seule personne pour des raisons de responsabilit. Cet administrateur a un compte dont le nom est root.

1.3 Le shell
Pour exploiter une machine fonctionnant sous UNIX, l'utilisateur dispose des logiciels ou d'un utilitaire qui lui permet la saisie directe de commandes. On appelle cet utilitaire le shell (interprteur de commandes). Son rle est d'interprter les commandes de l'utilisateur avant de les transmettre au systme UNIX. Il existe plusieurs types de shell, ils se diffrencient par la syntaxe et la richesse des commandes. Le plus commun est le Bourne-Shell (sh), on trouve aussi le C-Shell (csh) qui s'apparente au langage de programmation C et le Korn Shell (ksh).

2 Ouverture et fermeture de session


2.1 Ouverture de session
Pour accder un systme UNIX , il faut ouvrir ce que lon appelle une Session UNIX. Lors de la connexion partir dun poste (PC ou station) une fentre deux cases apparat sur lcran. Ces deux cases contiennent, respectivement, les mots Login et Password. Il faut alors taper votre nom de login (par exemple IF3_1) suivi de la touche Entre, puis de saisir votre mot de passe qui vous a t donn. 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 * ou bien par des caractres invisibles lcran. Si votre login et mot de passe sont corrects, vous verrez apparatre sur votre cran, le bureau UNIX ou une fentre noir et blanc avec un prompt (invite du systme). Si vous ntes pas ladministrateur, le prompt est matrialis par le symbole $ (dollar). Si vous tes ladministrateur, alors votre prompt est matrialis par le symbole # (dieze).

2.2 Changement de password


Vous pouvez changer votre mot de passe tout moment. 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, voir deux, caractre non alphabtique. N'utilisez pas comme mot de passe un mot du dictionnaire (donc facile retrouver). $ passwd passwd Old passwd :****** Setting password for user : licm284 New password :****** Reenter password :****** $

2.3 Fermeture de session


Quand vous avez fini d'utiliser le systme, vous devez vous dconnecter ou fermer la session. Il suffit de taper exit, ou logout ou taper simultanment les touches CTRL et D. Ne fermer jamais un systme UNIX de
------------------------------------------- 2 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

manire brutale comme sous Windows !!! Le systme UNIX est plus stable que Windows. Il ny a donc aucune raison de larrter brusquement.

3 La commande man
La commande man est une commande fondamentale lors de la phase dapprentissage dun systme UNIX. Cest une commande qui permet de fournir de laide en ligne (affichage de manuel dutilisation sur lcran). Elle est trs importante pour apprendre utiliser les commandes UNIX de manire correcte et efficace. Associe une autre commande UNIX, elle affiche le manuel dutilisation relatif cette commande. Par exemple, en tapant : $ man passwd le systme va vous afficher le manuel dutilisation de la commande passwd. Un manuel est compos de pages cran qui sont affiches sur cran avec arrt de dfilement pour vous donner la possibilit de lire le document page par page. Pour passer la page suivante, vous taper la touche espace et pour quitter le manuel et revenir au promptn, vous devez taper la touhe q.

4 Le systme de fichiers
4.1 Les types de fichiers
Il existe plusieurs types de fichiers sous UNIX. Parmi les plus importants que vous utiliserez le plus souvent, on trouve les fichiers ordinaires et les fichiers rpertoire, catalogue ou dossier (en anglais directory ou folder). Un fichier ordinaire contient des donnes, ce fichier peut tre lisible, c'est dire contenir des informations comprhensibles crites en clair, ce fichier peut tre aussi totalement illisible, comme pour le cas des fichiers excutables (fichiers binaires). Concrtement un fichier texte qui comme son nom l'indique contient du texte est lisible, alors qu'un excutable ne l'est pas, si vous cherchez l'diter vous ne verrez rien de comprhensible, dans ce dernier cas, on dit aussi qu'on a affaire un fichier binaire. Un rpertoire peut tre considr comme un classeur ou un dossier, dans lequel on met des fichiers, c'est un lment d'organisation de l'espace du disque dur. Les fichiers ayant les mmes affinits peuvent tre rangs sous un mme rpertoire. De mme on peut trouver des sous rpertoires dans un rpertoire, qui eux mmes contiennent des fichiers et d'autres sous rpertoires. Ce systme hirarchique fait penser un arbre, d'o le terme d'arborescence de fichiers.

/usr/bin /usr /usr/local /users/I3 /users/IF3 /users/IF3/IF3A /users/IF3/IF3B /users/IF3/IF3A/ali/prog.c

/bin /users

Il existe un anctre tous les rpertoires, c'est la racine ou le / (slash) sur le shma. Tout rpertoire, qui
------------------------------------------- 3 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

n'est pas la racine elle mme, possde un rpertoire qui le contient (appel rpertoire pre) et peut possder des sous-rpertoires (rpertoires fils) et des fichiers . Quand on cre un rpertoire, le systme cre automatiquement deux fichiers sous le rpertoire, le premier est symbolis par un point ., qui reprsente le rpertoire lui-mme, le deuxime est symbolis par deux points .. qui reprsente le rpertoire pre.

4.2 Atteindre un fichier


Nommer un fichier Tout fichier, qu'elle que soit son type, doit pouvoir tre identifi. Cest pourquoi on leur donne un nom. Ce nom comporte au maximum 255 caractres, sachant qu'il existe une distinction entre les lettres minuscules et majuscules, et que certains caractres sont interdits, comme par exemple le /, les parenthses (), l'espace ou le symbole *. Le chemin d'accs Chaque fichier est rang dans un rpertoire du systme de fichiers. On doit donc pouvoir y accder (c'est-dire latteindre), en suivant un chemin bien prcis dans l'arborescence. Pour indiquer le chemin du fichier (prog.c dans notre exemple), on part de la racine (/), on indique le premier rpertoire travers, puis les autres, en sparant chacun des rpertoires d'un /. Ainsi donc pour notre fichier le chemin d'accs est : /users/IF3/IF3A/ali/prog.c En indiquant /users/IF3/IF3A/ali/prog.c, le fichier est parfaitement identifi sans aucune ambiguit. A noter qu'on peut avoir des fichiers portant le mme nom dans le systme de fichiers ds lors qu'ils n'ont pas le mme chemin, et donc qu'ils ne se trouvent pas au mme endroit. On dit que le chemin du fichier est absolu parce qu' la vue de son chemin d'accs, en partant de la racine, on sait exactement o se trouve le fichier. Un chemin est dit relatif, quand il n'est pas ncessaire, d'indiquer le chemin complet. A partir de lendroit o lon se trouve dans l'arborescence (rpertoire courant) il suffit de rajouter le chemin par rapport ce rpertoire. Rappelons que le rpertoire courant est symbolis par un point . En admettant qu'on se trouve sous /users/IF3/, si l'on veut accder au fichier prog.c, le chemin relatif au rpertoire courant est ./IF3A/ali.

5 Les commandes usuelles


5.1 Dplacements
La commande pour se dplacer dans l'arborescence est cd. Si l'on est au niveau de la racine, pour aller notre rpertoire /users/IF3/IF3A/ali on doit taper : $ cd /users/IF3/IF3A/ali On a tap un chemin absolu. On se trouve maintenant sous /users/IF3/IF3A/ali qui devient le nouvezu rpertoire courant. En fait, un raccourci permet de se retrouver rapidement dans son rpertoire personnel en
------------------------------------------- 4 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

tapant simplement cd. Si l'on veut aller maintenant sous /users/IF3/IF3A, on doit taper : $ cd .. En effet .. reprsente le rpertoire pre, /users/IF3/IF3A tant le rpertoire pre de /users/IF3/IF3A/ali. Si on veut connatre dans quel rpertoire on trouve actuellement, on utilise la commande pwd, qui affiche sur cran, le chemin absolu du rpertoire courant.

5.2 Lister les fichiers


La commande ls permet de visualiser le contenu de rpertoires. La commande ls peut tre utilise avec des options. La plus importantes est loption -l, qui donnent lensemble des attributs sur un fichier. Par exemple : -rw-r--r-- 1 ali users 76 May 12 10:45 prog.c La signification des champs de la ligne ci-dessus est la suivante: -rw-r--r-1 ali users 76 May 12 10:45 prog.c type de fichier et ses caractristiques de protection (voir chapitre 5) le nombre de lien le nom du propritaire le groupe d'utilisateurs auquel appartient le propritaire la taille du fichier (en octets) le jour de dernire modification l'heure de dernire modification le nom du fichier

Pour avoir ces informations sur un fichier, vous vous devez taper : $ ls -l nom-du-fichier Si vous tapez ls la, vous verez de plus apparatre les deux fichiers . et .. vus prcdement. Loption a permet de lister les fichiers commenant par un point quon appelle les fichiers cachs (ils ne sont pas affichs automatiquement sur lcran).

Les mtacaractres
Les mtacaractres permettent de faire une slection de fichiers suivant certains critres. Le mtacaractre le plus frquemment utilis est le symbole *. Il remplace une chane de longueur non dfinie. Avec le critre *, vous slectionnez tous les fichiers. Par exemple le critre a*, permet de slectionnez tous les fichiers commenant par a. $ ls a* Va lister que les fichiers commenant par a. De mme *a opre une slection des noms de fichiers se terminant par a. Le critre *a* va faire une slection sur les noms de fichiers qui ont le caractre a dans leur nom, quelque soit sa place. Le mtacaractre ? remplace un caractre unique. Avec le critre a??, vous slectionnez les fichiers dont le nom commence par a, mais qui contiennent au total trois caractres, exactement. Les mtacaractres [ ] reprsente une srie de caractres. Le critre [aA]* permet la slection des fichiers
------------------------------------------- 5 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

dont le nom commence par un a ou A (minuscule ou majuscule). Le critre [a-d]* fait la slection des fichiers dont le nom commence par a jusqu' d. Le critre *[de] fait la slection des fichiers dont le nom se termine par d ou e. Vous voyez donc que les caractres [],* et ? sont des caractres spciaux, qu'on ne peut utiliser comme des simples caractres, parce qu'ils sont interprts par le shell, comme des mtacaractres.

5.3 Commandes de gestion des rpertoires


Pour grer les rpertoires, vous disposez des commandes suivantes : mkdir nom-de-rpertoire rmdir nom-de-rpertoire mv rpertoire rpertoire-d'accueil mv rpertoire nouveau-nom Cration d'un rpertoire Suppression d'un rpertoire vide dplacement d'un rpertoire Changement de nom d'un rpertoire

5.4 Commandes de gestion des fichiers


Pour grer les fichiers vous disposez des commandes suivantes: touch mon-fichier Cration de fichier vide more mon-fichier Visualisation page page d'un fichier rm mon-fichier Suppression d'un fichier mv mon-fichier rpertoire d'accueil Dplacement d'un fichier mv mon-fichier nouveau-nom Changement de nom d'un fichier cp nom-fichier rpertoire-d'accueil/autre-nom Copie de fichier file mon-fichier Savoir si on a affaire une fichier binaire (excutable) ou un fichier texte. On obtient pour un fichier texte, comme sortie mon-fichier : ascii text

5.5 Commandes diverses

man nomcommande man -k mot-cl

Donne l'aide sur la commande nomcommande Donne toutes les commandes qui contiennent le mot cl dans leur aide Efface l'cran clear Affiche la date et l'heure date Donne la taille disque utilise pas le rpertoire du -k courant Compresse un fichier gzip -9 nomfich Dcompresse un fichier gzip -d nomfichi.gz tar cvf nomarchive nomfich1 nomfichi2 Archive les fichiers nomfich 1 n dans l'archive nomarchive nomfichn
------------------------------------------- 6 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

tar tvf nomarchive tar xvf nomarchive tar uvf nomarchive nomfich1 nomfich2 who whoami grep -i chaine nomfichier ftp nommachine

Liste les fichiers contenus dans l'archive Extrait les fichiers de l'archive Ajoute les fichiers nomfich1, nomfich2 l'archie nomarchive Indique toutes les personnes connectes Donne l'identit de l'utilisateur Recherche la chaine chaine dans le fichier fichier sans regarder la casse Transfert de fichiers

6 Les droits d'accs


6.1 Identification de l'utilisateur
Tout utilisateur, en plus de lobligation davoir un compte, appartient un groupe dutilisateurs (dans le cas dune universit, on peut avoir le groupe des enseignants, le groupe dtudiants de IF3, de MI4, le groupe administration, etc.) Ainsi, chaque utilisateur est identifi par un numro unique UID (User identification), de mme chaque groupe est identifi par un numro unique GID (Group identification). Vous pouvez voir votre UID et GID en ditant le fichier /etc/passwd (voir, respectivement , les champs de rangs 3 et 4 qui se trouvent aprs le nom (le login), et le mot de passe crypt).

6.2 Dfinition des droits d'utilisateur


Cas d'un fichier ordinaire Avec UNIX les fichiers bnficient d'une protection en lecture, criture et excution. Ceci veut dire que lon peut choisir si nous voulons que nos fichiers soient lisibles et/ou modifiables par d'autres. Nous pouvons galement empcher que d'autres utilisateurs lancent nos excutables. C'est le principe des droits d'accs ou des permissions. En tapant la commande ls l, le premier champ correspond au droit d'accs. Ainsi, nous pouvons avoir : -rw-r--r-- 1 ali users 76 May 12 10:45 prog.c Ce premier champ est lui mme divis en quatre groupes : 1. une lettre, qui peut prendre les valeurs : (fichier ordinaire) ou d (fichier rpertoire) ou dautres valeurs que vous dcrouvirez par la suite. 2. les trois autres composs chacun de trois caractres. Le premier groupe de trois lettres dfinit les droits daccs du propritaire du fichier, le deuxime dfinit les droits du groupe et le troisime dfinit les droits des autres (diffrents du propritaire et du groupe). La signification des lettres rwx et la suivante : r (read) on peut lire le fichier w (write) on peut modifier le fichier x (excutable) on peut excuter le fichier (c'est donc un excutable) - aucun droit autoris Le champ -rw-r--r-- regroupe les droits du propritaire du fichier, du groupe auquel appartient le propritaire et les autres utilisateurs.
------------------------------------------- 7 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

Par exemple pour notre fichier le propritaire ali a des droits en criture et lecture, le groupe a un droit en lecture, mais aucun droit en criture et en excution, les autres utilisateurs ont uniquement le droit en lecture du fichier. Cas d'un rpertoire Pour un rpertoire le x n'est pas un droit en excution, mais un droit d'accs au rpertoire. Sans ce droit, on ne peut pas accder au rpertoire et voir ce qu'il y a dedans. En tapant ls -l sur un rpertoire, on peut obtenir la ligne suivante : drwxr-x--- 1 ali users 13242 Dec 2 13 :14 mon-rpertoire d signifie qu'on a affaire un rpertoire ; rwx sont les droits du propritaire ali qui est autoris en lecture, criture et droit d'accs au rpertoire ; r-x reprsentent les droits du groupe users : autoris en lecture, droit d'accs au rpertoire, pas de droit en criture ; --- reprsentent les droits des autres utilisateurs : aucun droit actuellement.

6.3 Commandes associes


Changer les droits : chmod La commande chmod permet de modifier les droits d'accs d'un fichier (ou rpertoire). Pour pouvoir l'utiliser sur un fichier ou un rpertoire, il faut en tre le propritaire. On utilise chmod soit laide des lettres dcrites prcdement (r,w et x), soit laide de chiffres. Dans le premier cas, on accde au champ propritaire avec u (comme user), au champ groupe avec g (comme group) et au champ tranger avec o (comme other). Il suffit de mettre un + ou un - suivant que lon dsire rajouter un droit ou lenlever (voir exemples ci-dessous). Une dernire possibilit est a (comme all), ce qui permet de donner les droits tout le monde simultanment. Lutilisation des chiffres avec chmod est plus simple. On dispose dun tableau de correspondance fixant les poids de chaque type dopration :

r w

4 2

------------------------------------------- 8 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

Pour positionner une autorisation, on fait la somme des chiffres par groupement. Si vous avez un fichier avec les droits suivants -rw-rw-rw-, pour les droits utilisateurs vous avez (r=)4+(w=)2=6, de mme pour le groupe et les autres. Donc -rw-rw-rw- est quivalent 666. En suivant la mme rgle rwxrw-r-- est quivalent 754. Pour mettre un fichier avec les droits-r--r--r-- vous devez taper : $ chmod 444 nom-fichier On appelle ce systme de notation, la notation octale ou numrique. On peut galement utiliser une notation symbolique comme suit : donner un droit en criture pour le groupe du fichier nom-fichier $ chmod g+w nom-fichier Comme autre exemple, on peut vouloir supprimer le droit d'accs du rpertoire rep1 aux autres utilisateurs (autres que propritaire et utilisateurs du groupe) $ chmod o-x rep1 En tapant $ chmod u+x,g-w nom-fichier on ralise plusieurs changements de droits en mme temps : rajouter le droit en excution pour le propritaire et enlevez le droit en criture pour le groupe du fichier.

Changer les droits par dfaut : umask Quand vous crer un fichier, par exemple avec la commande touch, ce fichier par dfaut possde certains droits. Ce sont 666 pour un fichier (-rw-rw-rw-) et 777 pour un rpertoire (-rwxrwxrwx). Ils reprsentent les les droits maximum (tous les droits). Vous pouvez faire en sorte de changer ces paramtres par dfaut. La commande umask est dfinie pour changer ces paramtres. Pour un fichier : Si vous tapez umask 022, vous partez des droits maximum 666 et vous retranchez 022, on obtient donc 644, par dfaut les fichiers auront comme droit 644 (-rw-r-r--). Si vous tapez umask 244, vous partez des droits maximum 666 et vous retranchez 244, on obtient donc 422, par dfaut les fichiers auront comme droit 422 (-rw--w--w-).

Pour un rpertoire : Si vous tapez umask 022, vous partez des droits maximum 777 et vous retranchez 022, on obtient donc 755, par dfaut les fichiers auront comme droit 644 (-rwxr-xr-x). Si vous tapez umask 244, vous partez des droits maximum 777 et vous retranchez 244, on obtient donc 533,
------------------------------------------- 9 --------------------------------------Introduction lutilisation du systme Unix Yahya SLIMANI

par dfaut les fichiers auront comme droit 422 (-rwx-wx-wx). umask n'est utilisatable que si on est propritaire du fichier.

7 Commandes UNIX et redirection


7.1 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. Ici nous avons deux arguments. On peut coupler deux options comme par exemple : ps ef ; avec cette commande on a l'option e et f.

7.2 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.

7.3 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 sur lcran. On dit que lcran est la sortie standard. On peut changer ce comportement, en tapant : ma-commande > mon-fichier Tous les commentaires, les sorties, de la commande, ne vont pas apparatre sur lcran mais seront crits et donc redirigs dans un fichier. En d'autres termes, la sortie standard est redirige vers un fichier.

La redirection > a pour effet de crer le fichier mon-fichier. Si ce fichier existait dj, il est tout simplement cras (supprim et recr). Si on ne veut pas lcraser et donc garder son ancien contenu, on utilise une redirection avec les symboles >>. En tapant :
------------------------------------------- --------------------------------------10 Introduction lutilisation du systme Unix Yahya SLIMANI

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 et afficher le rsultat sur lcran. On peut galement combiner les deux redirections (entre et sortie). 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.

7.4 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 peut taper : commande1 > sortie1 On peut rediriger cette sortie vers une autre commande. Cette sortie devient donc une entre pour cette dernire commande. Pour cela, on taperait la ligne de commande suivante : commande2 < sortie1 Il existe un autre moyen de faire le mme travail en utilisant la notion de pipe ou de tube. Par exemple, en crivant la ligne de commande suivante : commande1 | commande2 (| tant le symbole de pipe) on obtient un comportement totalement quivalent aux deux lignes de commandes prcdentes. Voici un exemple plus significatif La commande ls permet la visualisation de fichiers. On peut obtenir alors le rsultat suivant (ceci nest quun exemple) : fichier1 fichier2 monfichier La commande grep permet la recherche d'une chane de caractre dans une liste donne. En tapant par exemple : grep mon * (* signifie tous les fichiers)
------------------------------------------- --------------------------------------11 Introduction lutilisation du systme Unix Yahya SLIMANI

la commande grep recherche la chane de caractre mon dans les noms de tous les fichiers. Ainsi, on aura comme rsultat : monfichier Ce mme mme rsultat peut tre obtenu en utilsant le symbole du pipe (|). Ainsi, en tapant : $ ls | grep mon on aura le comportement suivant : la premire commande aura pour effet de lister le nom des fichiers se trouvant l'endroit o l'on a tap la commande (rpertoire courant). L& sortie standard (le rsultat de la commande) est donc une liste de noms. Cette liste, au lieu dtre affiche sur lcran, est redirige vers la commande grep, qui va y chercher une chane de caractre contenant mon. Le rsultat est donc : monfichier

8 Gestion des processus


8.1 Caractristiques d'un processus
Chaque excution dune commande gnre dun point de vue interne, ce que lon appelle un processus. Ces processus sont identifis par le systme par un numro appel PID (Process Identification). Chaque processus dans le systme dispose dun PID unique. Un processus peut lui mme crer un autre processus. Il devient donc un processus parent ou pre, et le nouveau processus, un processus enfant. Ce dernier est identifi par son PID, et le processus pre par son numro de processus appel PPID (Parent Process Identification). On obtient ainsi une arborescence de processus comme on dispose dune arborescence de fichiers.

Tous les processus sont ainsi identifis par leur PID, mais aussi par le PPID du processus qui la cr, car tous les processus ont t crs par un autre processus. La racine de tous ces processus est dfinie par le premier processus lanc sur le systme : cest le processus douverture dune session. Ce processus est appel init. Il na pas de pre et son PID est gal la valeur 1.

8.2 Afficher les attributs des processus


On peut visualiser les processus qui tournent sur une machine, un instant donn, avec la commande : ps (options), les options les plus intressantes sont -e (affichage de tous les processus) et -f (affichage dtaille). Pour voir les process d'un seul utilisateur, on utilise loption u suivie du nom de lutilisateur : $ ps -u ali

8.3 Commandes de gestion des processus


Parmi toutes le commandes de gestion des processus, il en existe une qui est trs importante qui peut rendre beaucoup de services dans certains cas (processus qui boucle indfiniment). Cette commande est appele kill et sert arrter ou tuer un processus. Si on veut arrter un processus, il faut dabord connatre son PID. Pour cela on utilisera la commande ps . Une fois que lon connat le PID dun processus, nous pouvons taper la commande : $ kill -9 PID
------------------------------------------- --------------------------------------12 Introduction lutilisation du systme Unix Yahya SLIMANI

Un utilisateur ne peut arrter que les processus qui lui appartiennent (qu'il a lanc). Seul l'administrateur systme a le droit d'arrter un processus ne lui appartenant pas. 8.4 Lancer en processus en tche de fond Pour lancer une commande quelconque, on tape son nom sur la ligne de commande aprs le prompt (par exemple $). Tant que la commande n'est pas termine, on na pas la main au niveau du shell, et donc on ne peut pas taper une autre commande. Si cette commande demande beaucoup de temps pour sexcuter, on se trouve en train datteindre sa fin, avant de faire autre chose. Pour viter cela, on dispose dun autre moyen pour lancer une commande. On parle alors dexcution en background. Ceci veut dire que lon peut lancer une commande, rcuprer la main sans que cette soit termine pour lancer une autre commande. Pour cela, on rajoute le symbole & la fin de commande. Celle-ci se lancera en " tche de fond " ou en background, ce qui permet de revenir directement au prompt du shell. En tapant la commande : $ ps ef & [321] $ le shell nousdonne immdiatement la main, et affiche le numro du PID du processus lanc et qui correspond la commande que nous avons tap.

L'diteur vi (ATTENTION : crire vi en minuscules !!!)


L'diteur vi permet l'utilisateur de crer de nouveaux fichiers ou d'diter des fichiers existants. La commande pour lancer l'diteur est vi, suivie par le nom de fichier. Par exemple, pour diter le fichier nomm temporaire, vous devez tapez vi temporaire et ensuite retour. Vous pouvez lancer vi sans nom de fichier, mais quand vous voudrez sauvez votre travail, vous devrez indiquer plus tard vi sous quel nom il devra le sauver. Quand vous lancez vi pour la premire fois, vous voyez un cran rempli de tildes (un tilde ressemble ceci : ~) sur le ct gauche de l'cran. Les lignes vides au-del de la fin du fichier sont montres de cette manire. En bas de votre cran, si vous avez spcifi un nom de fichier existant, le nom et la taille de ce fichier sont affichs, comme ceci :
"nom_de_fichier" 21 lines, 385 characters

Si le fichier que vous avez spcifi n'existe pas, il vous est indiqu qu'il s'agit d'un nouveau fichier, comme ceci :
"newfile" [New file]

Si vous lancez vi sans nom de fichier, la dernire ligne de l'cran restera vide. Si l'affichage ne correspond
------------------------------------------- --------------------------------------13 Introduction lutilisation du systme Unix Yahya SLIMANI

ces indications, votre terminal est sans doute mal rgl. Tapez :q et "retour" pour sortir de vi et rgler le problme.

1. Sortir de vi
Maintenant que vous savez entrer dans vi, ce serait une bonne ide de savoir en sortir. L'diteur vi a deux modes (commande et insertion). Pour sortir de vi, vous devez tre en mode commande. Appuyer sur la touche appele "Escape" ou "Esc" (Si votre terminal n'a pas une telle touche, essayez ^[, ou contrle -[) pour passer en mode commande. Si vous tes dj en mode commande quand vous tapez "Escape", cela peut "biper" (signal sonore), ne vous inquitez pas, vous tes encore dans le mode commande. La commande pour quitter vi est :q. Une fois en mode commande, tapez deux points, et 'q', suivi de retour. Si votre fichier a t modifi d'une faon ou d'une autre, l'diteur vous prviendra, et ne vous laissera pas quitter. Pour viter ce message, la commande est :q!. Cela vous laisse quitter vi sans sauvegarder les changements. Bien sr, normalement dans un diteur, vous devriez vouloir sauvegarder les changements que vous avez faits. La commande pour enregistrer le contenu de l'diteur est :w. Vous pouvez combiner cette commande avec la commande pour quitter, soit :wq. Vous pouvez spcifier un nom de fichier diffrent pour sauver sous ce nom aprs le :w. Par exemple, si vous voulez sauvegarder le fichier sur lequel vous travaillez sous le nom nom_de_fichier_2, vous devez taper :w nom_de_fichier_2 et retour. Une autre faon de sauver vos changements et quitter vi est la commande ZZ. Quand vous tes en mode commande, taper ZZ est quivalent :wq. Si des changements ont t faits dans le fichier, ils seront sauvs. C'est la faon la plus simple de quitter l'diteur, avec seulement deux appuis de touches. La commande x est aussi quivalente :wq.

2. Les deux modes de vi


La premire chose que beaucoup d'utilisateurs apprennent propos de l'diteur vi est qu'il a deux modes: commande et insertion. Le mode commande permet l'entre de commandes pour manipuler du texte. Ces commandes sont en gnral longues d'un ou deux caractres, et peuvent tre entres en peu de frappe de touche. Le mode insertion insre tout ce qui est tap sur le clavier dans le fichier courant. vi dmarre en mode commande. Plusieurs commandes mettent l'diteur vi en mode insertion. Les commandes les plus couramment utilises sont a et i. Ces deux commandes sont dcrites plus bas. Une fois en mode insertion, vous en sortez en tapant la touche escape. Si votre terminal n'a pas de touche escape, ^[ devrait convenir (contrle-[). Taper escape pendant que vous tes dj en mode commande ne fait pas sortir l'diteur du mode commande. Un bip peut vous indiquer que vous tes dj dans ce mode.

3. Comment taper des commandes en mode commande


Les commandes du mode commande sont gnralement au format suivant : (Les arguments optionnels sont donns entre crochet.
[quantit] commande [lieu]

La plupart des commandes font un caractre de long, en particulier celles qui utilisent le caractre de contrle. Les commandes dcrites dans cette section sont celles que l'on utilise le plus avec l'diteur vi. La quantit est dfinie par n'importe quel caractre de 1 9. Par exemple, la commande x efface un caractre sous le curseur. Si vous tapez 23x en mode commande, cela va effacer 23 caractres. Certaines commandes utilisent un paramtre optionnel lieu, o vous pouvez spcifier le nombre de lignes ou la partie du document concerne par la commande. Le paramtre lieu peut aussi tre n'importe quelle commande qui dplace le curseur.
------------------------------------------- --------------------------------------14 Introduction lutilisation du systme Unix Yahya SLIMANI

4. Quelques commandes vi simples


Ceci est un simple groupe de commande pour permettre un utilisateur dbutant avec vi de commencer. D'autres commandes utiles, seront prsentes ultrieurement.

a fait entrer en mode insertion, les caractres taps ensuite seront insrs aprs le curseur. Si vous spcifiez un nombre, tout le texte qui a t insr sera rpt ce nombre de fois h dplace le curseur sur le caractre prcdent. i entre en mode insertion, Le caractre tap ensuite sera insr avant la position actuelle du curseur. Si vous spcifiez un nombre, tout le texte qui a t insr sera rpt ce nombre de fois j dplace le curseur d'une ligne vers le bas. k dplace le curseur d'une ligne vers le haut. l dplace le curseur d'un caractre vers la droite. r remplace le caractre sous le curseur. Un nombre spcifie le nombre de caractres remplacer. u annule le dernier changement dans le fichier. Taper de nouveau u rtablit le changement. x efface le caractre sous le curseur. Nombre spcifie combien de caractres il faut effacer. Les caractres seront effacs aprs le curseur.

5. Les "buffers" texte de vi


L'diteur vi a 36 "buffers" pour conserver des morceaux de texte, ainsi qu'un "buffer" principal. Chaque fois, qu'un bout de texte est effac ou copi depuis le fichier, il est plac dans le "buffer" principal. Beaucoup d'utilisateurs de vi utilisent rarement les autres buffers, et se dbrouillent sans eux. Le bloc de texte peut aussi tre plac dans un autre buffer demand en utilisant la commande ". Aprs avoir tap ", une lettre ou un chiffre identifiant le buffer doit tre entr. Par exemple, la commande : "mdd remplit le buffer m et efface la ligne courante. De mme, du texte peut tre coll avec les commandes p ou P. "mp colle le contenu du buffer m aprs la position actuelle du curseur. Pour toutes les commandes utilises dans les deux sections suivantes, ces buffers peuvent tre spcifis pour un stockage temporaire de mots ou de paragraphes.

6. Couper et Copier
La commande la plus couramment utilise pour couper est d. Cette commande efface du texte dans le fichier. La commande est prcde par un nombre optionnel et suivie par une indication de dplacement. Si vous doublez la commande en tapant dd, la ligne courante est efface. Voici quelques combinaisons :

d^ efface de la position actuelle du curseur jusqu'au dbut de la ligne. d$ efface de la position actuelle du curseur jusqu' la fin de la ligne.
------------------------------------------- --------------------------------------15 Introduction lutilisation du systme Unix Yahya SLIMANI

dw efface de la position actuelle du curseur jusqu' la fin du mot 3dd efface 3 lignes partir de la position actuelle du curseur vers le bas.
La commande y (commande de copie) opre comme la commande d en prenant du texte du fichier sans effacer le texte.

7. Coller
Les commandes pour coller sont p et P. Elles diffrent seulement par la position o elles collent le texte par rapport au curseur. p colle le contenu du buffer spcifi ou du buffer gnral aprs le curseur, tandis que P le colle avant le curseur. nombre avant la commande, colle le texte le nombre de fois demand.

8. Recherche de mots ou de caractres


L'diteur vi peut faire deux types de recherche : chanes de caractres ou caractres. Pour une recherche de chane, les commandes / et ? sont utilises. Quand vous lancez ces commandes, la commande que vous venez de taper sera affiche sur la ligne du bas, o vous taperez la chane que vous cherchez. Ces deux commandes diffrent uniquement par la direction dans laquelle la recherche est entreprise. La commande / cherche vers la fin du fichier, tandis que la commande ? cherche vers le dbut du fichier (de bas en haut). Les commandes n et N rptent la prcdente recherche respectivement dans le mme sens et dans le sens oppos. Certains caractres ont une signification particulire pour vi, et doivent donc tre prcds d'un antislash (\) pour faire partie de l'expression recherche.

Caractres spciaux : ^ Dbut de ligne. (Au dbut de l'expression recherche.) . Correspond un caractre simple. * Correspond zro ou plusieurs fois le caractre prcdent. $ Fin de ligne (A la fin de l'expression recherche.) [ Correspond au dbut d'un groupe d'expressions correspondantes ou non. Par exemple /f[iae]t correspond chacun de ces mots : fit fat fet. Dans ce cas, il correspond uniquement ceuxl. /a[^bcd] ne correspond aucun d'eux mais tout ce qui contient "a" et une lettre autre que "b","c","d". < Peut tre insr dans une expression prcde d'un antislash pour rechercher le dbut ou la fin d'un mot. Par exemple /\<le\> va chercher seulement le mot "le" mais pas les mots comme "leur" ou "fleur". > Voir la description du caractre '<' au dessus.
La recherche de caractres cherche une ligne l'intrieur de laquelle se trouve le caractre entr aprs la commande. Les commandes f et F cherchent un caractre uniquement sur la ligne courante. f cherche vers l'avant et F cherche vers l'arrire et le curseur se dplace sur la position du caractre trouv. Les commandes t et T cherchent un caractre seulement sur la ligne courante, mais avec t, le curseur se dplace sur la position avant le caractre, et T cherche depuis la fin de la ligne vers la position aprs le caractre .
------------------------------------------- --------------------------------------16 Introduction lutilisation du systme Unix Yahya SLIMANI

Ces deux commandes peuvent tre rptes en utilisant les commandes ; ou , (; rpte la dernire recherche de caractre dans la mme direction, alors que , la rpte en sens inverse.) Si l'option "ic" (ou ignorecase) est active (tapez :set ic) la recherche est insensible la casse.

9. Personnalisation de vi (et EX)


Vous pouvez personnaliser la faon dont vi se comporte. Les options d'dition sont actives en utilisant la commande :set, les options des diteurs vi et EX disponibles sur Wiliki sont les suivantes : (Vous pouvez obtenir cette liste en tapant :set all puis retour en mode commande)
noautoindent autoprint noautowrite nobeautify directory=/tmp nodoubleescape noedcompatible noerrorbells noexrc flash hardtabs=8 noignorecase keyboardedit keyboardedit! nolisp nolist magic mesg nomodelines nonumber nonovice nooptimize paragraphs=IPLPPPQPP LIpplpipnpbp prompt noreadonly redraw remap report=5 scroll=11 sections=NHSHH HUuhsh+c shell=/bin/csh shiftwidth=8 noshowmatch noshowmode noslowopen tabstop=8 taglength=0 tags=tags /usr/lib/tags term=xterm noterse timeout timeoutlen=500 ttytype=xterm warn window=23 wrapscan wrapmargin=0 nowriteany

Certaines de ces options ont des valeurs dfinies par le signe gal '=' , tandis que d'autres sont actives ou non. (Ces options de type "oui ou non" sont appeles Boolennes, et sont prfixes par "no" pour indiquer qu'elles ne sont pas slectionnes.) Les options montres ici sont les options qui sont dfinies sans personalisation. La description de certaines est donne plus bas, avec une abrviation. Par exemple la commande set autoindent, vous pouvez taper :set autoindent ou :set ai. Pour la dslectionner, vous pouvez taper :set noautoindent ou :set noai.

autoindent (ai) Cette option rgle l'diteur pour que les lignes suivantes soient indentes comme la ligne prcdente. Si vous voulez retirer cette indentation, vous pouvez taper ^D comme premier caractre. Ce ^D fonctionne en mode insertion, et pas en mode commande. De plus la longueur de l'indentation peut tre rgle par shiftwidth, expliqu plus bas. exrc Le fichier .exrc dans le rpertoire courant est lu pendant le dmarrage. Ceci doit tre dfini soit dans la variable d'environnement EXINIT soit dans le fichier .exrc dans votre rpertoire home. mesg Dsactive les messages si cette option est dslectionne avec :set nomesg, ainsi rien ne peut vous dranger pendant que vous utilisez l'diteur. number (nu) Affiche les lignes avec leur numro sur le cot gauche. shiftwidth (sw) Cette option prend une valeur, et dtermine la largeur de la tabulation logicielle. (La tabulation logicielle est utilise pour les commandes << et >>.) Par exemple, vous pouvez rgler un dcalage d'une largeur de 4 avec cette commande : :set sw=4. showmode (smd) Cette option est utilise pour afficher le mode dans lequel vous tes actuellement. Si vous
------------------------------------------- --------------------------------------17 Introduction lutilisation du systme Unix Yahya SLIMANI

tes en mode insertion, la ligne du bas va indiquer INPUT MODE. warn Cette option vous prvient si vous avez modifi le fichier mais ne l'avez pas encore sauvegard. window (wi) Cette option dfinit le nombre de lignes de la fentre utilis par vi. Par exemple, pour rgler l'diteur vi de faon ce qu'il utilise seulement 12 lignes de votre cran (parce que votre modem est lent) vous pouvez utiliser : :set wi=12. wrapscan (ws) Cette option affecte la conduite de la recherche de mots. Quand wrapscan est slectionn, si le mot n'est pas trouv vers le bas du texte, la recherche reprendra au dbut. wrapmargin (wm) Si cette option a une valeur plus grande que zro, l'diteur va automatiquement faire passer le mot la ligne suivante. C'est dire que si vous avez plus que ce nombre d'espace par rapport la marge de gauche, le mot va aller la ligne, sans que vous ayiez taper retour. Par exemple, pour rgler la marge droite deux caractres, vous pouvez taper : :set wm=2.

10. Abrviations et traductions de touches


Une commande de l'editeur EX qui est utile sur l'diteur vi est la commande abbreviate. Elle vous permet de dfinir des abrviations pour des chanes de caractres spcifiques. La commande ressemble ceci : :ab chanes chane substituer. Si vous avez taper le nom,"Humuhumunukunukuapua`a" mais que vous n'ayez pas envie de taper le nom complet, vous pouvez utiliser une abrviation. Pour cet exemple, la commande entrer est :
:ab 9u Humuhumunukunukuapua`a

Maintenant quel que soit l'endroit o vous tapez 9u comme un mot spar, vi va taper le ou les mots entiers indiqus. Si vous tapez 9universit, il ne va pas substituer le mot. Pour retirer une abrviation dfinie prcdemment, la commande est anabbreviate. Pour retirer l'exemple prcdent, la commande serait ":unab 9u". Pour obtenir la liste de vos abrviations, tapez :ab. Une autre commande de l'diteur EX utile pour la personnalisation est la commande de traduction de touche (mappage). Il y a deux types de commandes de traduction. Une pour le mode commande et une pour le mode insertion. Ces deux commandes sont respectivement :map et :map!. Le "mappage" fonctionne de faon similaire abrviation, vous lui donnez une squence de touches et une autre mettre la place.(La squence de touches de remplacement est gnralement constitue de commandes vi.)

11. La variable d'environnement EXINIT et le fichier .exrc


Il y a deux faons de personnaliser l'diteur vi. Si vous crez un fichier nomm .exrc dans votre rpertoire home , toutes les commandes qu'il contient seront executes quand vi dmarrera. L'autre mthode est de definir une variable d'environnement nomm EXINIT. L'option sera slectionne dans le fichier de configuration de votre shell. Si vous utilisez /bin/csh (C-Shell), la commande est la suivante, et mise dans le fichier: .cshrc
setenv EXINIT '...'

Si vous utilisez /bin/sh ou /bin/ksh, la commande est la suivante, et mise dans le fichier .profile :
export EXINIT EXINIT='...'

Ncrivez pas ... comme dans l'exemple. Dans cet espace mettez la commande que vous voulez dfinir. Par
------------------------------------------- --------------------------------------18 Introduction lutilisation du systme Unix Yahya SLIMANI

exemple, si vous voulez avoir l'auto-indentation, la numrotation des lignes, et la marge droite (passage la ligne - wrap margin) 3 caractres, alors la commande setenv (pour C shell) serait :
setenv EXINIT 'set ai nu wm=3'

Si vous voulez mettre plus d'une commande dans la variable EXINIT, sparez les commandes avec une barre verticale (|). Par exemple, pour "mapper" la commande 'g' au caractre 'G' en mode commande, la commande est :map g G et combin avec la commande prcdente, vous aurez :
setenv EXINIT 'set ai nu wm=3|map g G'

Si vous voulez crer le fichier nomm .exrc, vous pouvez y mettre ce qui est entre guillemets aprs le EXINIT.

12. Rcuprer votre travail quand quelque chose va mal avec votre terminal
L'editeur vi dite une copie temporaire de votre fichier, et quand la session est termine ou quand vous lui demandez de sauver, il place le contenu du fichier temporaire dans le fichier original. Si quelque chose se passe mal pendant que vous ditez votre fichier, l'diteur vi va essayer de sauver quand mme le travail en cours et de le stocker pour une rcupration ultrieure. Note : Si vi meurt (vi est un processus) pendant que vous travaillez sur un fichier, il vous envoie un courrier sur la faon de rcuprer ce travail. L'option -r est l pour la rcupration. Si vous ditez le fichier infovitale, et si vous tes dconnect, alors l'option -r de l'diteur vi devrait vous aider. La commande doit ressembler quelque chose comme :
vi -r infovitale.

Aprs avoir utilis l'option -r vous DEVEZ tout de mme sauvegarder ce que vous avez rcupr dans le fichier initial. L'option -r ne fonctionne qu'une fois par session vi dfaillante.

13. Rsum des commandes vi


Cette liste est un rsum des commande vi, classes par fonction. Il peut y avoir d'autres commandes disponibles, que vous pourriez trouver dans le manuel de vi.

Couper et coller/effacer du texte " Spcifie le buffer utiliser avec les commandes se servant d'un buffer. Faites suivre le " par la lettre ou le nombre, qui correspond au buffer. D Efface (Delete) de la position actuelle du curseur la fin de la ligne. P Colle (Paste) le buffer indiqu avant la position actuelle du curseur. Si aucun buffer n'est indiqu (avec la commande ") alors 'P' utilise le buffer gnral. X Efface le caractre avant le curseur. Y Copie (Yank) la ligne courante dans le buffer indiqu. Si aucun buffer n'est indiqu, le buffer gnral est utilis. d Efface (Delete) jusqu' lieu. "dd" efface la ligne courante. Un nombre efface ce nombre de lignes. Tout ce qui est effac est plac dans le buffer spcifi avec la commande ". Si aucun buffer n'est spcifi, le buffer gnral est utilis.
------------------------------------------- --------------------------------------19 Introduction lutilisation du systme Unix Yahya SLIMANI

p Colle (Paste) le buffer spcifi aprs la position actuelle du curseur ou la ligne. Si aucun buffer n'est spcifi (avec la commande ") 'p' utilise le buffer gnral. x Efface le caractre sous le curseur. Un nombre indique combien de caractres doivent tre effacs. Les caractres seront effacs aprs le curseur. y Copie (Yank) jusqu' lieu, en mettant le rsultat dans un buffer. "yy" copie la ligne courante. Un nombre copie ce nombre de lignes. Le buffer peut tre spcifi avec la commande ".Si aucun buffer n'est spcifi, le buffer gnral est utilis. Insrer du texte A Joint (Append) la fin de la ligne courante. I Insre partir du dbut de la ligne. O (la lettre)Entre en mode insertion sur une nouvelle ligne au-dessus de la position courante du curseur. a Entre en mode insertion, les caractres taps seront ajouts aprs la position courante du curseur. Un nombre insre tout le texte ce nombre de fois. i Entre en mode insertion, les caractres taps seront insrs avant la position courante du curseur. Un nombre insre tout le texte ce nombre de fois. o Entre en mode insertion sur une nouvelle ligne en dessous de la position courante du curseur. Dplacer le curseur dans le fichier ^B Monte d'une page. Un nombre fait monter de ce nombre de pages. ^D Descend d'une demi fentre. Un nombre fait descendre de ce nombre de lignes. ^F Descend d'une page. Un nombre fait descendre de ce nombre de pages. ^H Dplace le curseur d'un espace vers la gauche. Un nombre fait dplacer de ce nombre d'espaces. ^J Descend le curseur d'une ligne dans le mme colonne. Un nombre fait descendre de ce nombre de lignes. ^M Dplace vers le premier caractre de la ligne suivante. ^N Descend le curseur d'une ligne dans le mme colonne. Un nombre fait descendre de ce nombre de lignes. ^P Monte le curseur d'une ligne dans le mme colonne. Un nombre fait monter de ce nombre de
------------------------------------------- --------------------------------------20 Introduction lutilisation du systme Unix Yahya SLIMANI

lignes. ^U Monte d'une demi fentre. Un nombre fait monter de ce nombre de lignes. $ Dplace le curseur la fin de la ligne courante. Un nombre le fait se dplacer la fin des lignes suivantes. % Dplace le curseur sur la parenthse ou accolade correspondante. ^ Dplace le curseur sur le premier caractre non-blanc. ( Dplace le curseur au dbut de la phrase. ) Dplace le curseur au dbut de la phrase suivante. { Dplace le curseur au paragraphe prcdent. } Dplace le curseur au paragraphe suivant. | Dplace le curseur la colonne indique par le nombre. + Dplace le curseur sur le prochain caractre non-blanc de la ligne suivante. Dplace le curseur sur le prochain caractre non-blanc de la ligne courante. 0 (Zro) Dplace le curseur sur la premire lettre de la ligne courante. B Dplace le curseur d'un mot en arrire, en sautant la ponctuation. E Avance la fin du mot, en sautant la ponctuation. G Aller (Go) la ligne indiqu par le nombre. Si aucun nombre n'est donn, il va la fin du fichier. H Dplace le curseur sur le premier caractre non-blanc en haut de l'cran. L Dplace le curseur sur le premier caractre non-blanc en bas de l'cran. M Dplace le curseur sur le premier caractre non-blanc au milieu de l'cran. W Avance au dbut d'un mot,en sautant la ponctuation. b Recule le curseur d'un mot. Si le curseur est au milieu d'un mot, place le curseur sur le premier caractre du mot. e Avance le curseur d'un mot. Si le curseur est au milieu d'un mot, place le curseur sur le dernier caractre du mot. h
------------------------------------------- --------------------------------------21 Introduction lutilisation du systme Unix Yahya SLIMANI

Dplace le curseur sur le caractre de gauche. j Descend le curseur d'une ligne. k Monte le curseur d'une ligne. l Dplace le curseur sur le caractre de droite. w Dplace le curseur sur le mot suivant. Si le curseur est au milieu d'un mot, place le curseur sur le premier caractre du mot suivant. Dplacer le curseur dans l'cran ^E Dplace l'cran d'une ligne vers le haut. Un nombre fait monter de ce nombre de lignes. ^Y Dplace l'cran d'une ligne vers le bas. Un nombre fait descendre de ce nombre de lignes. z Redessine l'cran avec les options suivantes. "z" place la ligne courante en haut de l'cran; "z." place la ligne courante au centre de l'cran; et "z-" place la ligne courante en bas de l'cran. Si vous spcifiez un nombre avant la commande 'z', il agit sur la ligne spcifie. Par exemple, "14z." place la ligne 14 au centre de l'cran. Remplacer du texte C Change de la position du curseur jusqu' la fin de la ligne. R Remplace les caractres de l'cran par les caractres entrs, s'arrte en tapant la touche Escape. S Change une ligne entire. c Change jusqu' <where>. "cc" change la ligne courante. Un nombre fait changer ce nombre de lignes. r Remplace un caractre sous le curseur. Indiquer un nombre fait remplacer ce nombre de caractres. s Substitue un caractre sous le curseur et passe en mode insertion. Spcifier un nombre pour substituer ce nombre de caractres. Un signe dollar($) sera ajout au dernier caractre substitu. Rechercher du texte ou des caractres , Rpte la dernire commande f, F, t ou T dans la direction oppose. / Recherche vers le bas dans le fichier la chane spcifie aprs le /. ; Rpte la dernire commande f, F, t ou T. ? Recherche vers le haut dans le fichier la chane spcifie.
------------------------------------------- --------------------------------------22 Introduction lutilisation du systme Unix Yahya SLIMANI

F Recherche vers l'avant dans la ligne courante le caractre spcifi aprs la commande 'F'. S'il l'a trouv, dplace le curseur sur sa position. N Rpte la dernire recherche faite par '/' ou '?', mais dans la direction oppose. T Recherche vers l'arrire dans la ligne courante le caractre spcifi aprs la commande 'T', et se place sur la colonne suivante s'il l'a trouv. f Recherche dans la ligne courante le caractre spcifi aprs la commande 'f'. S'il l'a trouv, dplace le curseur sur sa position. n Rpte la dernire recherche faite par '/' ou '?'. t Cherche dans la ligne courante le caractre spcifi aprs la commande 't' et se place sur la colonne prcdent le caractre ,s'il l'a trouv. Manipulation des caractres/Formatage de ligne ~ Inverse la casse du caractre sous le curseur. < Dcale jusqu' lieu d'une tabulation vers la gauche. "<<" dcale la ligne courante et peut tre rpt avec un nombre. > Dcale jusqu' lieu d'une tabulation vers la droite. ">>" dcale la ligne courante et peut tre rpt avec un nombre. J Joint la ligne courante la suivante. Un nombre fait joindre ce nombre de lignes.

Sauvegarder et quitter ^\ Sort du mode "VI" et passe en mode "EX". L'diteur EX est l'diteur en ligne de commande sur lequel VI est construit. La commande EX pour retourner dans VI est ":vi". Q Sort du mode "VI" et passe en mode "EX". L'diteur EX est l'diteur en ligne de commande sur lequel VI est construit. La commande EX pour retourner dans VI est ":vi". ZZ ou x Quitte l'diteur, en sauvant tout les changements effectus. Divers ^G Affiche le nom du fichier courant et son statut. ^L Vide et redessine l'cran. ^R Redessine l'cran en retirant les mauvaises lignes. ^[
------------------------------------------- --------------------------------------23 Introduction lutilisation du systme Unix Yahya SLIMANI

Touche d'chappement. Annule les commandes partiellement tapes. ^^ Retourne au dernier fichier dit. ! Excute un shell. Si un lieu est spcifi, le programme qui est excut avec ! utilise les ligne(s) spcifie(s) comme entre standard, et va les remplacer par la sortie standard du programme excut. "!!" excute un programme utilisant la ligne courante comme entre. Par exemple "!4jsort" va prendre 5 lignes partir de la position courante du curseur et excuter sort. Aprs avoir tap la commande, il y aura un point d'exclamation o vous pourrez taper la commande. & Rpte la prcdente commande ":s". . Rpte la dernire commande qui a modifi le fichier. : Commence une commande de l'diteur EX. La commande est excute une fois que l'utilisateur a tap retour. (voir section ci-dessous.) @ Tape la commande stocke dans le buffer spcifi. U Restaure la ligne courante dans l'tat o elle se trouvait avant que le curseur aille la ligne. m Marque la position courante du curseur avec le caractre spcifi aprs la commande 'm'. u Annule (Undo) le dernier changement dans le fichier. Retaper 'u' va refaire le changement.(NDT : avec Vim,'u' annule le changement prcdent et '.' le rtablit.). Les commandes EX
L'diteur vi est bas sur un autre diteur, nomm EX. L'diteur EX dite seulement par ligne. Depuis l'diteur vi, vous utilisez la commande : pour entrer une commande EX. La liste donne ici n'est pas complte, mais les commandes proposes sont les plus utilises. Si plus d'une ligne doit tre modifie par certaines commandes (comme ":s" et ":w"), un intervalle doit tre spcifi avant la commande. Par exemple, pour substituer de la ligne 3 la ligne 15, la commande est ":3,15s/from/this/g".

:ab chane chanes Abrviation. Si un mot correspondant chane est tap dans vi, l'diteur insre automatiquement les mots correspondants. Par exemple, abrviation ":ab TN Tunisia" va insrer le mot, "Tunisia" partout o le mot "TN" est tap. :map touches new_seq Mapping. Ceci vous permet de remplacer une touche ou une squence de touches par une autre touche ou squence de touches. :q Quitte vi. Si des changements ont t faits, l'diteur va afficher un message d'avertissement. :q! Quitte vi sans sauvegarder les changements. :s/pattern/to_pattern/options Substitution. Ceci substitue le modle spcifi par la chane dans to_pattern. Sans option, il substitue seulement la premire occurrence du modle. Si un 'g' est spcifi, toutes les occurrences seront substitues. Par exemple, la commande ":1,$s/Dwayne/Dwight/g"
------------------------------------------- --------------------------------------24 Introduction lutilisation du systme Unix Yahya SLIMANI

remplace toutes les occurrences de "Dwayne" par "Dwight". :set [all] Dfinit les options de VI et EX. La commande ":set all" affiche les options possibles. (Voir la section sur la personnalisation de VI pour quelques options.) :una string Retire l'abrviation dfinie prcdemment par ":ab". :unm keys Retire le mapping dfini par ":map". :vi Commence l'dition d'un nouveau fichier. Si les changements n'ont pas ts sauvegards, l'diteur vous le signale. :w Sauvegarde (Write out) le fichier courant. :w nom_de_fichier Ecrit (Write) le buffer dans le fichier spcifi. :w >> filename Ajoute le contenu du buffer au fichier. :wq Enregistre le buffer et quitte.

Commandes Unix par ordre alphabtique


Nom
alias

Description Renomme ou dfinit une commande extraction d'informations d'un fichier

Options

Paramtres variable=commande

awk, gawk

-F : '...' : redfinition du nom de fichier sparateur de champ 'commande' : traitement faire sur les chanes extraites mois anne nom de fichier chemin d'accs un rpertoire mode - nom de fichier -R change les droits rcursivement partir du ou de rpertoire noeud (mode = ugo) -c : rsultat sans fichier

cal cat cd chmod

affiche le calendrier de l'anne spcifie en paramtre imprime le contenu du fichier mentionn se positionne sur le rpertoire dsign change les permissions en lecture, criture, excution

compress

compresse un fichier (voir gzip)

------------------------------------------- --------------------------------------25 Introduction lutilisation du systme Unix Yahya SLIMANI

modification du fichier d'origine -f : crasement d'un fichier compress prexistant -v : taux de compression
cp

copie du fichier source vers la destination

source - destination -i : demande confirmation -p : conservation de date et droits -r : recopie rcursive d'un rpertoire

date diff echo

retourne la date courante compare deux fichiers et affiche -c : affiche 3 lignes avant fichier1 fichier2 les diffrences et 3 lignes aprs envoi en cho des paramtres spcifis la suite ($PATH, "bye") courier lectronique -n : supprime le retour chariot en fin de commande -s : chane de caractres qui sera le sujet du message -f : nom de la bote lettres destinataire

elm

file

retourne le type de fichier spcifi (ascii,ps, ex.sparc ou 68020) partir du rpertoire chercher -print : affiche le chemin trouv

nom de fichier

find recherche rcursive d'un fichier -name fichier : fichier "rpertoire"

grep

affiche les lignes du fichier -v : seulement les lignes chane de caractres contenant la chane de caractres ne contenant pas la fichier chane -i : majuscules et minuscules identiques -n : avec numros de lignes -c : nombre de comparaisons positives dcompresse un fichier -c : le rsultat est produit nom de fichier sans modification du fichier d'origine -v : taux de compression -c : rsultat sans modification du fichier nom de fichier

gunzip

gzip

compresse un fichier (voir compress)

------------------------------------------- --------------------------------------26 Introduction lutilisation du systme Unix Yahya SLIMANI

par dfaut, la destination est la sortie standard qu'on redirige vers un fichier si on veut obtenir un fichier compress

source -f : crasement d'un fichier compress prexistant -v : taux de compression -d : force une dcompression -9 : niveau maximum de compression source > destination -n : nombre de lignes affiches (par dfaut 10)

head id kill

liste les n premires lignes du fichier retourne le nom de login, l'UID, le groupe et le GID

envoi d'un signal un processus -l : liste des signaux disponibles -n : numro du signal envoyer 2 : INT (ctrl-c : ) 3 : QUIT (ctrl-\) 9 : KILL cration d'une nouvelle rfrence -s : cration d'un lien pour un fichier prexistant symbolique retourne le nom de login de l'utilisateur liste le contenu d'un rpertoire

numro du process

ln logname ls

source - destination

-a : prise en compte des nom de rpertoire fichiers cachs -F : renseigne sur le type de fichier (*, /, @) -i : prcision du numro d'inode des fichiers -R : liste rcursivement le contenu du rpertoire -l : informations dtailles -g : ajout du nom du groupe -d : renseigne sur le rpertoire lui-mme -t : liste par date de modification -u : liste par date d'accs -r : ordre inverse -s : chane de caractres qui sera le sujet du message -f : nom de la bote destinataire - <fichier

mail

courier lectronique

------------------------------------------- --------------------------------------27 Introduction lutilisation du systme Unix Yahya SLIMANI

lettres -v : trace du mail jusqu' sa dlivrance man mkdir more mv ps retourne le mode d'emploi de la commande s'il existe cration d'un rpertoire liste le contenu d'un fichier page par page dplace fichiers et rpertoires liste des processus BSD -i : demande confirmation -a : processus dtenus par les autres utilisateurs -u : nom du propritaire du processus -x : processus sans terminal associ -l : description complte -t : terminal particulier -f : ou l : description plus ou moins longue -e : liste tous les processus -p : processus dont le numro suit l'option p -t : processus attachs au terminal spcifi -u : processus appartenant au propritaire dont le nom ou l'UID est donn nom de commande nom de rpertoire nom de fichier source - destination

liste des processus Systme V

pwd rlogin rm

retourne la rfrence absolue du rpertoire courant ouvrir une session vers une machine distante (sortie :exit) supprime la rfrence du fichier dans le rpertoire -l : nom de login nom de machine

nom de fichier ou de -f : force la commande sans s'occuper des droits rpertoire -i : demande confirmation -r : destruction rcursive nom de rpertoire temps en secondes -r : tri inverse -u : limine les lignesidentiques fichier

rmdir sleep sort

suppression d'un rpertoire vide ne fait rien pendant n secondes tri des lignes du fichier suivant l'ordre ASCII

------------------------------------------- --------------------------------------28 Introduction lutilisation du systme Unix Yahya SLIMANI

tail talk, ytalk


tar

liste les n dernires lignes du fichier permet de converser avec une machine distante archivage/dsarchivage de fichiers

nom de fichier -n : nombre de lignes affiches (par dfaut 10) destination c : cration de l'archive x : restauration de l'archive t : listage du contenu de l'archive v : mode verbeux p : prserve dates et droits la restauration f : le nom du fichier spcifi sera celui de l'archive archive -rpertoire ou fichiers

telnet touch

tablir une connexion avec une machine distante(sortie : exit) modifie les caractristiques d'un fichier (option -a : m par dfaut) cre un fichier vide s'il n'existe pas dj donne le nom du terminal supprime un alias donne le nom du systme d'exploitation -a : informations compltes -n : nom de la machine -r : release du systme d'exploitation -s : nom du systme d'exploitation -a : dernier accs seulement -m : dernire modification seulement

nom de machine fichier

tty
unalias uname

variable

uniq

recopie de source dans -u : seules les lignes destination aprs suppression des uniques sont recopies lignes identiques restitue un fichier binaire partir du fichier ditable (ASCII) cr avec uuencode encode un fichier binaire en fichier ditable (ASCII) aperu de l'activit de la machine -h : supprime l'entte -s : affichage restreint retourne le chemin complet d'accs tous les rpertoires contenant la commande retourne le chemin complet

source destination

uudecode

fichier

uuencode w whereis

fichier - indication >fichier encod nom d'utilisateur nom de la commande

which

nom de la commande

------------------------------------------- --------------------------------------29 Introduction lutilisation du systme Unix Yahya SLIMANI

d'accs une commande


who (am i)

retourne le nom des utilisateurs qui ont ouvert une session

Exemples de commandes
Exemple
alias dir=ls -l unalias dir cal 09 1996 cat exemple.c cd programmes chmod 744 exemple.c compress -f exemple.c uncompress exemple.c cp exemple.c toto.c date diff -c fichier1 fichier2 echo $PATH elm martin@inf mail martin <exemple.c file exemple.c find "." -name exemple.c print grep -n -i "void" exemple.c

Description Il suffira de taper "dir" pour consulter la liste des fichiers avec leurs droits Supprime l'alias de nom "dir" Affiche le calendrier du mois de Septembre 1996 Liste le contenu du fichier de nom "exemple.c" Se dplace dans le rpertoire de nom "programmes" Donne tous les droits au propritaire du fichier, et une simple lecture au groupe et l'univers Compresse le fichier de nom "exemple.c", en crasant un fichier prexistant s'il existe Dcompresse le fichie r"exemple.c" Cre le fichier de nom "toto.c" identique au fichier
"exemple.c"

Affiche la date courante Compare "fichier1" et "fichier2" en affichant 3 lignes avant et 3 lignes aprs chaque diffrence Affiche le contenu de la variable "PATH" Envoie un message martin Envoie le fichier "exemple.c" martin Retourne quel est le type du fichier "exemple.c" Recherche rcursivement et affiche le chemin menant au fichier "exemple.c" partir du rpertoire courant Affiche, avec leurs numros, les lignes du fichier "exemple.c" qui contiennent la chane "void" Compresse le fichier "exemple.c" en conservant le fichier d'origine. Le fichier compress est "exemple.c.gz". Dcompresse le fichier "exemple.c.gz" sans perdre le fichier compress. Le rsultat se trouve dans le fichier "exemple.c" Affiche les 10 premires lignes du fichier "exemple.c" Affiche les 5 dernires lignes du fichier "exemple.c" Retourne le login, l'UID, le groupe et le GID courants tue le processus de numro 8756

gzip -c exemple.c > exemple.c.gz

gunzip -c > exemple.c exemple.c.gz head exemple.c tail -5 exemple.c id kill -9 8756

------------------------------------------- --------------------------------------30 Introduction lutilisation du systme Unix Yahya SLIMANI

ln -s exemple.c toto.c logname ls -l programmes man chmod mkdir sources more exemple.c mv exemple.c TP1.c ps -aux pwd rlogin -l martin champagne telnet champagne rm exemple.c rmdir sources sleep 10 sort -r TP1.c talk champagne@cal.enst.fr tar cf sources.tar sources

cre un lien symbolique sur le fichier "exemple.c", de nom


"toto.c"

Retourne le nom de login de l'utilisateur Donne le contenu du rpertoire "programmes" en donnant des informations sur les fichiers (taille, dates, ...) Affiche le manuel d'utilisation de la commande "chmod" Cre le rpertoire "sources" Affiche, page par page, le contenu du fichier "exemple.c" Renomme le fichier "exemple.c" sous le nom "TP1.c" Sous systme V, donne la liste de tous les processus actifs Retourne la rfrence absolue du rpertoire courant tablit une connexion sur la machine champagne, sous le login de martin tablit une connexion sur la machine champagne Supprime le fichier "exemple.c" Supprime le rpertoire "sources" Attend 10 secondes Affiche le fichier "TP1.c", les lignes tant tries en ordre inverse Lance une conversation sur la machine
"champagne@cal.enst.fr"

Cre une archive, de nom "sources.tar", du contenu du rpertoire "sources"

Extrait le contenu d'une archive, de nom "sources.tar", dans le rpertoire"sources". L'cran affiche les noms des fichiers au tar xvf sources.tar sources fur et mesure de leur dsarchivage. L'archive est conserve.
touch exemple.c tty uname uniq exemple.c uniques.c uudecode fichier uuencode fichier indication >fichier encod w martin whereis gcc

Modifie la date de dernier accs au fichier "exemple.c" la date courante Donne le nom du terminal Affiche, dans l'ordre, le nom du systme d'exploitation, le nom et la release du systme de la machine Recopie le fichier "exemple.c" dans "uniques.c" en supprimant les lignes identiques

Donne une ide de l'utilisation de la machine faite par l'utilisateur msrtin Retourne le chemin complet d'accs tous les rpertoires contenant la commande gcc

------------------------------------------- --------------------------------------31 Introduction lutilisation du systme Unix Yahya SLIMANI

which gcc who (am i)

Retourne le chemin complet d'accs la commande gcc Retourne le nom des utilisateurs qui ont ouvert une session sur cette machine

LA PROGRAMMATION SHELL SOUS UNIX


1. Notions sur la programmation Shell Un shell, quel qu'il soit, peut excuter des commandes contenues dans un fichier texte (fichier ordinaire). Un fichier contenant des commandes pour le shell est appel un script. C'est en fait un programme crit dans le langage du shell. Ce langage comprend non seulement les commandes que nous avons dj vues (commandes Unix), mais aussi des structures de contrle (instructions conditionnelles, boucles et dautres instructions spcifiques). Pour la programmation du shell, nous allons utiliser le shell sh, qui est le plus rpandu et standard 2. Crer un script Un script shell est un fichier en mode texte. C'est--dire que ce n'est pas un fichier binaire, excutable directement par la machine, mais il doit tre interprt. 3. L'interprtation d'un script L'interprtation signifie que chaque commande contenue dans un script doit tre lue par un programme, appel interprteur ; l'interprteur analyse chaque commande du script et lexcute. 4. L'dition d'un script Un script tant un fichier en mode texte, il doit tre cr avec un diteur de texte, comme par exemple vi. 5. Rendre un script excutable Pour que le shell sache comment l'interprter, un script shell doit commencer par la ligne: # !/bin/sh Il doit aussi tre excutable (droit x). Le #!/bin/sh sur la premire ligne indique que ce script doit tre excut par le shell sh dont on indique le chemin d'accs. Pour rendre un fichier excutable, tapez : chmod u+x nom-fichier-script 6. Spcifier le chemin d'une commande Pour que le shell comprenne o chercher votre commande, il faut donc spcifier l'emplacement de la commande en donnant son chemin, qu'il soit absolu : /home/student/nom-fichier-script ou relatif : ./nom-fichier-script
------------------------------------------- --------------------------------------32 Introduction lutilisation du systme Unix Yahya SLIMANI

ou encore sous la forme : sh nom-fichier-script 7. Principes gnraux des scripts shell Un script shell est avant tout une succession de commandes, comme celles que nous crivons dans une fentre de type Terminal ; sauf que ces commandes nous les rassemblons dans un fichier pour les excuter dans lordre o elles sont crites dans le script. 8. Commentaires Presque tous les langages informatiques autorisent d'insrer des commentaires ; le shell n'chappe pas la rgle. Pour cela, il suffit de faire prcder chaque ligne de commentaire du caractre # . Exemple : #!/bin/sh # Tout ce que j'cris ici ne sera pas lu. echo "Ce que je tape ici sera lu." 9. Un script qui parle : la commande echo Maintenant que vous savez comment on peut excuter un script, il s'agit de le remplir... Commenons par ce qu'il y a de plus simple : afficher du texte, comme par exemple Ceci est un exemple de fichier script ! Ecrivez ce fichier script et appelez le script1 #!/bin/sh # Fichier "Exemple" echo " exemple de fichier script !" Excutez ensuite ce script, en tapant : $ ./script1 exemple de fichier script ! Autre exemple de fichier script (crivez-le et excutez-le). #!/bin/sh # Fichier "bonjour" echo "Bonjour... "
------------------------------------------- --------------------------------------33 Introduction lutilisation du systme Unix Yahya SLIMANI

echo "Comment allez-vous ?" 10. Annuler le retour chariot Si vous voulez annuler le retour chariot qui a lieu par dfaut la fin de toute commande echo, il faut utiliser l'option -n. Le programme sera alors : #!/bin/sh echo -n "Bonjour..." echo "Comment allez-vous ?" Vous aurez comme rsultat : Bonjour... Comment allez-vous ? 11. Lecture de valeurs de variables partir du clavier : commande read La commande Unix read permet de lire des valeurs partir du clavier. La commande read doit tre suivie dun nom de variable, non prcd du signe dollar. Cette variable contiendra la valeur introduite partir du clavier 12. Lire plusieurs variables La commande read permet galement de lire plusieurs variables. Il suffit pour cela d'indiquer la suite les noms des diffrentes variables. Exemple : #!/bin/sh # Fichier "administration" echo "crivez votre nom puis votre prnom :" read nom prenom echo "Nom : $nom" echo "Prnom : $prenom"

Vous obtiendrez comme rsultat : crivez votre nom puis votre prnom : Nom : Tounsi
------------------------------------------- --------------------------------------34 Introduction lutilisation du systme Unix Yahya SLIMANI

Prnom : Redha 13. Paramtres de position Les paramtres de position sont des variables spciales utilises lors d'un passage de paramtres un script.

Variable $0 $1-9 $# $* $@

Contenu Nom de la commande (du script) $1,$2,$3... Les neuf premiers paramtres passs au script Nombre total de paramtres passs au script Liste de tous les paramtres au format "$1 $2 $3 ..." Liste des paramtres sous forme d'lments distincts "$1" "$2" "$3" ...

14. Sortie de script La commande exit permet de mettre fin un script. Par dfaut la valeur retourne est 0 (pas d'erreur) 15. Tests de conditions La commande test permet d'effectuer des tests de conditions. Le rsultat est rcuprable par la variable $? (code retour). Si ce rsultat est 0 alors la condition est ralise. tests sur chane

test -z "variable" : zero, retour OK si la variable est vide (ex test -z "$a") test -n "variable" : non zero, retour OK si la variable n'est pas vide (texte quelconque) test "variable" = chane : OK si les deux chanes sont identiques test "variable" != chane : OK si les deux chanes sont diffrentes

tests sur valeurs numriques test valeur1 option valeur2 Option -eq -ne Rle Equal : Egal Not Equal : Diffrent

------------------------------------------- --------------------------------------35 Introduction lutilisation du systme Unix Yahya SLIMANI

-lt -gt -le -ge

Less than : infrieur Greater than : suprieur Less ou equal : infrieur ou gal Greater or equal : suprieur ou gal

tests sur les fichiers La syntaxe est test option nom_fichier Option -f -d -c -b -p -r -w -x -s -e -L -u -g Rle Fichier normal Un rpertoire Fichier en mode caractre Fichier en mode bloc Tube nomm (named pipe) Autorisation en lecture Autorisation en criture Autorisation en excution Fichier non vide (au moins un caractre) Le fichier existe Le fichier est un lien symbolique Le fichier existe, SUID-Bit positionn Le fichier existe SGID-Bit positionn

tests combins par critres ET OU NON On peut effectuer plusieurs tests avec une seule instruction. Critre -a -o Action AND, ET logique OR, OU logique

------------------------------------------- --------------------------------------36 Introduction lutilisation du systme Unix Yahya SLIMANI

! (...)

NOT, NON logique groupement des combinaisons. Les parenthses doivent tre vrouilles \(...\).

16. Instruction if ... then ... else La structure if then else fi 'est une structure de contrle conditionnelle. If <commandes_condition> then <commandes excutes si condition ralise> else <commandes excutes si dernire condition pas ralise> fi 17. Choix multiples case La commande case esac permet de vrifier le contenu d'une variable ou d'un rsultat de manire multiple. case Valeur in Modele1) Commandes ;; Modele2) Commandes ;; *) action_defaut ;; esac Le modle est soit un simple texte, soit compos de caractres spciaux. Chaque bloc de commandes li au modle doit se terminer par deux points-virgules. Ds que le modle est vrifi, le bloc de commandes correspondant est excut. L'toile en dernire position (chane variable) est l'action par dfaut si aucun critre n'est vrifi. Caractre * ? [...] [!...] | Rle Chane variable (mme vide) Un seul caractre Une plage de caractres Ngation de la plage de caractres OU logique

18. Les boucles Elles permettent la rptition d'un bloc de commandes soit un nombre limit de fois, soit conditionnellement. Toutes les commandes excuter dans une boucle se placent entre les commandes do et done.

------------------------------------------- --------------------------------------37 Introduction lutilisation du systme Unix Yahya SLIMANI

Boucle for La boucle for ne se base pas sur une quelconque incrmentation de valeur mais sur une liste de valeurs, de fichiers ... for var in liste do commandes excuter done La liste reprsente un certain nombre d'lments qui seront successivement attribues var. Si on ne prcise aucune liste for, alors c'est la liste des paramtres soumise au script qui sera utilise. for params do echo "$params" done Boucle while La commande while permet une boucle conditionnelle tant que . Tant que la condition est ralise, le bloc de commande est excut. On sort si la condition n'est plus valable. while condition do commandes done ou while bloc d'instructions formant la condition do commandes done Boucle until La commande until permet une boucle conditionnelle jusqu' . Ds que la condition est ralise, on sort de la boucle. until condition do commandes done ou until bloc d'instructions formant la condition do commandes done

------------------------------------------- --------------------------------------38 Introduction lutilisation du systme Unix Yahya SLIMANI

19. La commande expr La commande expr permet d'effectuer des calculs sur des valeurs numriques, des comparaisons, et de la recherche dans des chanes de texte. Oprateur + * / % != = < > <= >= : Rle Addition Soustraction Multiplication Division Modulo Diffrent. Affiche 1 si diffrent, 0 sinon. Egal. Affiche 1 si gal, 0 sinon. infrieur. Affiche 1 si infrieur, 0 sinon. suprieur. Affiche 1 si suprieur, 0 sinon. infrieur ou gal. Affiche 1 si infrieur ou gal, 0 sinon. suprieur ou gal. Affiche 1 si suprieur ou gal, 0 sinon. Recherche dans une chane.

------------------------------------------- --------------------------------------39 Introduction lutilisation du systme Unix Yahya SLIMANI

Vous aimerez peut-être aussi