Université de Tunis El Manar                                     Faculté des Sciences de Tunis                            ...
utilisation du système UNIX, Ce sont les administrateurs systèmes UNIX.L’accès au système n’est autorisé que pour les pers...
manière brutale comme sous Windows !!! Le système UNIX est plus stable que Windows. Il n’y a doncaucune raison de l’arrête...
nest pas la racine elle même, possède un répertoire qui le contient (appelé répertoire père) et peut posséderdes sous-répe...
tapant simplement cd. Si lon veut aller maintenant sous /users/IF3/IF3A, on doit taper :$ cd ..En effet .. représente le r...
dont le nom commence par un a ou A (minuscule ou majuscule). Le critère [a-d]* fait la sélection desfichiers dont le nom c...
tar tvf nomarchive                                      Liste les fichiers contenus dans larchivetar xvf nomarchive       ...
Par exemple pour notre fichier le propriétaire ali a des droits en écriture et lecture, le groupe a un droit enlecture, ma...
x      1Pour positionner une autorisation, on fait la somme des chiffres par groupement. Si vous avez un fichier avecles d...
par défaut les fichiers auront comme droit 422 (-rwx-wx-wx).umask nest utilisatable que si on est propriétaire du fichier....
ma-commande >> mon-fichierLe fichier mon-fichier nest pas écrasé, mais la sortie standard (les commentaires de la commande...
la commande grep recherche la chaîne de caractère mon dans les noms de tous les fichiers. Ainsi, on auracomme résultat :mo...
Un utilisateur ne peut arrêter que les processus qui lui appartiennent (quil a lancé). Seul ladministrateursystème a le dr...
ces indications, votre terminal est sans doute mal réglé. Tapez :q et "retour" pour sortir de vi et régler leproblème.1. S...
4. Quelques commandes vi simplesCeci est un simple groupe de commande pour permettre à un utilisateur débutant avec vi de ...
dw        efface de la position actuelle du curseur jusquà la fin du mot3dd        efface 3 lignes à partir de la position...
Ces deux commandes peuvent être répétées en utilisant les commandes ; ou , (; répète la dernièrerecherche de caractère dan...
êtes en mode insertion, la ligne du bas va indiquer INPUT MODE.warn      Cette option vous prévient si vous avez modifié l...
exemple, si vous voulez avoir lauto-indentation, la numérotation des lignes, et la marge droite (passage à laligne - wrap ...
p       Colle (Paste) le buffer spécifié après la position actuelle du curseur ou la ligne. Si aucun       buffer nest spé...
lignes.^U      Monte dune demi fenêtre. Un nombre fait monter de ce nombre de lignes.$      Déplace le curseur à la fin de...
Déplace le curseur sur le caractère de gauche.j      Descend le curseur dune ligne.k      Monte le curseur dune ligne.l   ...
F         Recherche vers lavant dans la ligne courante le caractère spécifié après la commande F. Sil         la trouvé, d...
Touche déchappement. Annule les commandes partiellement tapées.^^        Retourne au dernier fichier édité.!        Exécut...
remplace toutes les occurrences de "Dwayne" par "Dwight".:set [all]         Définit les options de VI et EX. La commande "...
modification du fichier                                                   dorigine                                        ...
par défaut, la destination est la    source              sortie standard quon redirige       -f : écrasement dun          ...
lettres                                                   -v : trace du mail jusquà                                       ...
tail          liste les n dernières lignes du        -n : nombre de lignes     nom de fichier              fichier        ...
daccès à une commandewho (am i)      retourne le nom des utilisateurs                qui ont ouvert une session           ...
ln -s exemple.c toto.c          crée un lien symbolique sur le fichier "exemple.c", de nom                                ...
which gcc                           Retourne le chemin complet daccès à la commande gccwho (am i)                         ...
ou encore sous la forme :                       sh nom-fichier-script7. Principes généraux des scripts shell     Un script...
echo "Comment allez-vous ?"10. Annuler le retour chariotSi vous voulez annuler le retour chariot qui a lieu par défaut à l...
Résumé sur l’utilisation du système unix
Résumé sur l’utilisation du système unix
Résumé sur l’utilisation du système unix
Résumé sur l’utilisation du système unix
Résumé sur l’utilisation du système unix
Prochain SlideShare
Chargement dans…5
×

Résumé sur l’utilisation du système unix

1 754 vues

Publié le

Résumé sur l’utilisation du système unix
par M.

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 754
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
85
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Résumé sur l’utilisation du système unix

  1. 1. Université de Tunis El Manar Faculté des Sciences de Tunis Résumé sur l’utilisation du système UNIX (Exploitation et Programmation Shell) par Y. SLIMANI------------------------------------------------------------------------------------------------------Ce résumé est destiné à vous faciliter l’utilisation du système pour réaliser vos travaux pratiques du cours de Systèmed’Exploitation. Il contient quelques éléments de base pour l’utilisation du système UNIX. Il ne constitue qu’un guided’utilisation et ne peut pas remplacer un cours complet sur UNIX. La dernière partie de ce résumé est consacrée à laprogrammation Shell sous Unix.Le meilleur moyen d’apprendre à utiliser Unix est la pratique intensive sur machine, malgré les erreurs que vouspourriez faire au début. Plus vous ferez d’erreurs, plus vous apprendrez à les éviter et à les éviter. A terme, cetteaccumulation d’erreurs constituera un capital certain pour la mise en œuvre d’un système Unix.------------------------------------------------------------------------------------------------------1- Principes de base UNIX1.1 CaractéristiquesUnix est système dexploitation créé en 1969 par K. Thompson et D. Ritchie. Cest un système multi-utilisateurs, cest à dire capable de gérer plusieurs sessions de travail (mise en contact dun utilisateur avecune machine) simultanément. Il est capable de traiter plusieurs applications en même temps : cest un systèmemultitâches. Il gère de plus le temps partagé, cest à dire le partage de lunité centrale entre les différentestaches et processus. Cest aussi le premier système dexploitation orienté réseau : mail, ftp, web …1.2 Les utilisateurs UNIXSur un système UNIX, on trouve deux types d’utilisateurs : 1. Les personnes qui veulent utiliser (exploiter) le système. Pour elles, le système UNIX est un moyen, un outil pour réaliser leurs applications. 2. Les personnes (généralement une seule) chargée de linstallation, de la configuration et de la bonne------------------------------------------- 1 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  2. 2. utilisation du système UNIX, Ce sont les administrateurs systèmes UNIX.L’accès au système n’est autorisé que pour les personnes ayant un compte utilisateur. Ce compte est définipar un nom et un mot de passe. Aucun accès n’est possible à un utilisateur n’ayant pas de compte. Ceciconstitue l’aspect sécurité du système. Une fois qu’un utilisateur a réussi à accéder à un système UNIX, il ades droits limités (voir paragraphe 5). Ceci veut dire que certaines commandes lui sont interdites, qu’il n’apas accès à certaines parties du système, et qu’il n’a pas accès à tous les fichiers existants sur le système.Ceci constitue l’aspect protection du système. . Les administrateurs systèmes ont par contre tous les droitssur le système. Généralement le nombre dadministrateurs sur un système UNIX est limité à une seulepersonne pour des raisons de responsabilité. Cet administrateur a un compte dont le nom est root.1.3 Le shellPour exploiter une machine fonctionnant sous UNIX, lutilisateur dispose des logiciels ou dun utilitaire quilui permet la saisie directe de commandes. On appelle cet utilitaire le shell (interpréteur de commandes). Sonrôle est dinterpréter les commandes de lutilisateur avant de les transmettre au système UNIX.Il existe plusieurs types de shell, ils se différencient par la syntaxe et la richesse des commandes. Le pluscommun est le Bourne-Shell (sh), on trouve aussi le C-Shell (csh) qui sapparente au langage deprogrammation C et le Korn Shell (ksh).2 Ouverture et fermeture de session2.1 Ouverture de sessionPour accéder à un système UNIX , il faut ouvrir ce que l’on appelle une Session UNIX. Lors de la connexionà partir d’un poste (PC ou station) une fenêtre à deux “cases” apparaît sur l’écran. Ces deux casescontiennent, respectivement, les mots Login et Password. Il faut alors taper votre nom de login (parexemple IF3_1) suivi de la touche Entrée, puis de saisir votre mot de passe qui vous a été donné. Vouspouvez vous rendre compte que votre mot de passe napparaît pas en clair à lécran, il est remplacé pour desraisons de sécurité évidente par des * ou bien par des caractères invisibles à l’écran. Si votre login et mot depasse sont corrects, vous verrez apparaître sur votre écran, le bureau UNIX ou une fenêtre noir et blanc avecun prompt (invite du système). Si vous n’êtes pas l’administrateur, le prompt est matérialisé par le symbole $(dollar). Si vous êtes l’administrateur, alors votre prompt est matérialisé par le symbole # (dieze).2.2 Changement de passwordVous 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 aumoins 6 caractères, avec au moins un, voir deux, caractère non alphabétique. Nutilisez pas comme mot depasse un mot du dictionnaire (donc facile à retrouver).$ passwdpasswd Old passwd :******Setting password for user : licm284New password :******Reenter password :******$2.3 Fermeture de sessionQuand vous avez fini dutiliser le système, vous devez vous déconnecter ou fermer la session. Il suffit detaper exit, ou logout ou taper simultanément les touches CTRL et D. Ne fermer jamais un système UNIX de------------------------------------------- 2 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  3. 3. manière brutale comme sous Windows !!! Le système UNIX est plus stable que Windows. Il n’y a doncaucune raison de l’arrêter brusquement.3 La commande manLa commande man est une commande fondamentale lors de la phase d’apprentissage d’un système UNIX.C’est une commande qui permet de fournir de l’aide en ligne (affichage de manuel d’utilisation sur l’écran).Elle est très importante pour apprendre à utiliser les commandes UNIX de manière correcte et efficace.Associée à une autre commande UNIX, elle affiche le manuel d’utilisation relatif à cette commande. Parexemple, en tapant :$ man passwdle système va vous afficher le manuel d’utilisation de la commande passwd. Un manuel est composé depages écran qui sont affichées sur écran avec arrêt de défilement pour vous donner la possibilité de lire ledocument page par page. Pour passer à la page suivante, vous taper la touche espace et pour quitter le manuelet revenir au promptn, vous devez taper la touhe q.4 Le système de fichiers4.1 Les types de fichiersIl 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 répertoire, catalogue ou dossier (en anglais directory oufolder).Un fichier ordinaire contient des données, ce fichier peut être lisible, cest à dire contenir des informationscompréhensibles écrites en clair, ce fichier peut être aussi totalement illisible, comme pour le cas des fichiersexécutables (fichiers binaires). Concrètement un fichier texte qui comme son nom lindique contient du texteest lisible, alors quun exécutable ne lest pas, si vous cherchez à léditer vous ne verrez rien decompréhensible, dans ce dernier cas, on dit aussi quon a affaire à un fichier binaire.Un répertoire peut être considéré comme un classeur ou un dossier, dans lequel on met des fichiers, cest unélément dorganisation de lespace du disque dur. Les fichiers ayant les mêmes “affinités” peuvent être rangéssous un même répertoire. De même on peut trouver des sous répertoires dans un répertoire, qui eux mêmescontiennent des fichiers et dautres sous répertoires. Ce système hiérarchique fait penser à un arbre, doù leterme darborescence de fichiers. /usr/bin /usr /usr/local / /bin /users/I3 /users/IF3/IF3A/ali/prog.c /users /users/IF3/IF3A /users/IF3 /users/IF3/IF3BIl existe un “ancêtre” à tous les répertoires, cest la racine ou le / (slash) sur le shéma. Tout répertoire, qui------------------------------------------- 3 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  4. 4. nest pas la racine elle même, possède un répertoire qui le contient (appelé répertoire père) et peut posséderdes sous-répertoires (répertoires fils) et des fichiers .Quand on crée un répertoire, le système crée automatiquement deux “fichiers” sous le répertoire, le premierest symbolisé par un point “.”, qui représente le répertoire lui-même, le deuxième est symbolisé par deuxpoints “..” qui représente le répertoire père.4.2 Atteindre un fichierNommer un fichierTout fichier, quelle que soit son type, doit pouvoir être identifié. C’est pourquoi on leur donne un nom. Cenom comporte au maximum 255 caractères, sachant quil existe une distinction entre les lettres minuscules etmajuscules, et que certains caractères sont interdits, comme par exemple le /, les parenthèses (), lespace ou lesymbole *.Le chemin daccèsChaque fichier est rangé dans un répertoire du système de fichiers. On doit donc pouvoir y accéder (cest-à-dire l’atteindre), en suivant un chemin bien précis dans larborescence.Pour indiquer le chemin du fichier (prog.c dans notre exemple), on part de la racine (/), on indique le premierrépertoire traversé, puis les autres, en séparant chacun des répertoires dun /. Ainsi donc pour notre fichier lechemin daccès est :/users/IF3/IF3A/ali/prog.cEn indiquant /users/IF3/IF3A/ali/prog.c, le fichier est parfaitement identifié sans aucune ambiguité.A noter quon peut avoir des fichiers portant le même nom dans le système de fichiers dés lors quils nont pasle même chemin, et donc quils ne se trouvent pas au même endroit.On dit que le chemin du fichier est absolu parce quà la vue de son chemin daccès, en partant de la racine,on sait exactement où se trouve le fichier.Un chemin est dit relatif, quand il nest pas nécessaire, dindiquer le chemin complet. A partir de l’endroit oùl’on se trouve dans larborescence (répertoire courant) il suffit de rajouter le chemin par rapport à cerépertoire. Rappelons que le répertoire courant est symbolisé par un point “.”En admettant quon se trouve sous /users/IF3/, si lon veut accéder au fichier prog.c, le chemin relatif aurépertoire courant est ./IF3A/ali.5 Les commandes usuelles5.1 DéplacementsLa commande pour se déplacer dans larborescence est cd. Si lon est au niveau de la racine, pour aller ànotre répertoire /users/IF3/IF3A/ali on doit taper :$ cd /users/IF3/IF3A/aliOn a tapé un chemin absolu. On se trouve maintenant sous /users/IF3/IF3A/ali qui devient le nouvezurépertoire courant. En fait, un raccourci permet de se retrouver rapidement dans son répertoire personnel en------------------------------------------- 4 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  5. 5. tapant simplement cd. Si lon veut aller maintenant sous /users/IF3/IF3A, on doit taper :$ cd ..En effet .. représente le répertoire père, /users/IF3/IF3A étant le répertoire père de /users/IF3/IF3A/ali. Si onveut connaître dans quel répertoire on trouve actuellement, on utilise la commande pwd, qui affiche surécran, le chemin absolu du répertoire courant.5.2 Lister les fichiersLa commande ls permet de visualiser le contenu de répertoires.La commande ls peut être utilisée avec des options. La plus importantes est l’option -l, qui donnentl’ensemble des attributs sur un fichier. Par exemple :-rw-r--r-- 1 ali users 76 May 12 10:45 prog.cLa signification des champs de la ligne ci-dessus est la suivante:-rw-r--r-- type de fichier et ses caractéristiques de protection (voir chapitre 5)1 le nombre de lienali le nom du propriétaireusers le groupe dutilisateurs auquel appartient le propriétaire76 la taille du fichier (en octets)May 12 le jour de dernière modification10:45 lheure de dernière modificationprog.c le nom du fichierPour avoir ces informations sur un fichier, vous vous devez taper :$ ls -l nom-du-fichierSi vous tapez ls –la, vous verez de plus apparaître les deux fichiers “.” et “..” vus précédement. L’option “-a” permet de lister les fichiers commençant par un point qu’on appelle les fichiers cachés (ils ne sont pasaffichés automatiquement sur l’écran).Les métacaractèresLes métacaractères permettent de faire une sélection de fichiers suivant certains critères. Le métacaractère leplus fréquemment utilisé est le symbole *. Il remplace une chaîne de longueur non définie. Avec le critère *,vous sélectionnez tous les fichiers. Par exemple le critère a*, permet de sélectionnez tous les fichierscommençant par a.$ ls a*Va lister que les fichiers commençant par a. De même *a opère une sélection des noms de fichiers seterminant par a. Le critère *a* va faire une sélection sur les noms de fichiers qui ont le caractère a dans leurnom, quelque soit sa place.Le métacaractère ? remplace un caractère unique. Avec le critère a??, vous sélectionnez les fichiers dont lenom commence par a, mais qui contiennent au total trois caractères, exactement.Les métacaractères [ ] représente une série de caractères. Le critère [aA]* permet la sélection des fichiers------------------------------------------- 5 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  6. 6. dont le nom commence par un a ou A (minuscule ou majuscule). Le critère [a-d]* fait la sélection desfichiers dont le nom commence par a jusquà d. Le critère *[de] fait la sélection des fichiers dont le nom setermine par d ou e.Vous voyez donc que les caractères [],* et ? sont des caractères spéciaux, quon ne peut utiliser comme dessimples caractères, parce quils sont interprétés par le shell, comme des métacaractères.5.3 Commandes de gestion des répertoiresPour gérer les répertoires, vous disposez des commandes suivantes :mkdir nom-de-répertoire Création dun répertoirermdir nom-de-répertoire Suppression dun répertoire videmv répertoire répertoire-daccueil déplacement dun répertoiremv répertoire nouveau-nom Changement de nom dun répertoire5.4 Commandes de gestion des fichiersPour gérer les fichiers vous disposez des commandes suivantes:touch mon-fichier Création de fichier videmore mon-fichier Visualisation page à page dun fichierrm mon-fichier Suppression dun fichiermv mon-fichier répertoire daccueil Déplacement dun fichiermv mon-fichier nouveau-nom Changement de nom dun fichiercp nom-fichier répertoire-daccueil/autre-nom Copie de fichierfile mon-fichier Savoir si on a affaire à une fichier binaire (exécutable) ou un fichier texte. On obtient pour un fichier texte, comme sortie mon-fichier : ascii text5.5 Commandes diversesman nomcommande Donne laide sur la commande nomcommandeman -k mot-clé Donne toutes les commandes qui contiennent le mot clé dans leur aideclear Efface lécrandate Affiche la date et lheuredu -k Donne la taille disque utilisée pas le répertoire courantgzip -9 nomfich Compresse un fichiergzip -d nomfichi.gz Décompresse un fichiertar cvf nomarchive nomfich1 nomfichi2 … Archive les fichiers nomfich 1 à n dans larchivenomfichn nomarchive------------------------------------------- 6 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  7. 7. tar tvf nomarchive Liste les fichiers contenus dans larchivetar xvf nomarchive Extrait les fichiers de larchivetar uvf nomarchive nomfich1 nomfich2 … Ajoute les fichiers nomfich1, nomfich2 … à larchie nomarchivewho Indique toutes les personnes connectéeswhoami Donne lidentité de lutilisateurgrep -i chaine nomfichier Recherche la chaine chaine dans le fichier fichier sans regarder la casseftp nommachine Transfert de fichiers6 Les droits daccès6.1 Identification de lutilisateurTout utilisateur, en plus de l’obligation d’avoir un compte, appartient à un groupe d’utilisateurs (dans le casd’une université, on peut avoir le groupe des enseignants, le groupe d’étudiants de IF3, de MI4, le groupeadministration, etc.)Ainsi, chaque utilisateur est identifié par un numéro unique UID (User identification), de même chaquegroupe est identifié par un numéro unique GID (Group identification).Vous pouvez voir votre UID et GID en éditant le fichier /etc/passwd (voir, respectivement , les champs derangs 3 et 4 qui se trouvent après le nom (le login), et le mot de passe crypté).6.2 Définition des droits dutilisateurCas dun fichier ordinaireAvec UNIX les fichiers bénéficient dune protection en lecture, écriture et exécution. Ceci veut dire que l’onpeut choisir si nous voulons que nos fichiers soient lisibles et/ou modifiables par dautres. Nous pouvonségalement empêcher que dautres utilisateurs lancent nos exécutables. Cest le principe des droits daccès oudes permissions.En tapant la commande ls –l, le premier champ correspond au droit daccès. Ainsi, nous pouvons avoir :-rw-r--r-- 1 ali users 76 May 12 10:45 prog.cCe premier champ est lui même divisé en quatre groupes : 1. une lettre, qui peut prendre les valeurs : – (fichier ordinaire) ou d (fichier répertoire) ou d’autres valeurs que vous décrouvirez par la suite. 2. les trois autres composés chacun de trois caractères. Le premier groupe de trois lettres définit les droits d’accès du propriétaire du fichier, le deuxième définit les droits du groupe et le troisième définit les droits des autres (différents du propriétaire et du groupe).La signification des lettres rwx et la suivante :r (read) on peut lire le fichierw (write) on peut modifier le fichierx (exécutable) on peut exécuter le fichier (cest donc un exécutable)- aucun droit autoriséLe champ -rw-r--r-- regroupe les droits du propriétaire du fichier, du groupe auquel appartient lepropriétaire et les autres utilisateurs.------------------------------------------- 7 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  8. 8. Par exemple pour notre fichier le propriétaire ali a des droits en écriture et lecture, le groupe a un droit enlecture, mais aucun droit en écriture et en exécution, les autres utilisateurs ont uniquement le droit en lecturedu fichier.Cas dun répertoirePour un répertoire le x nest pas un droit en exécution, mais un droit daccès au répertoire. Sans ce droit, onne peut pas accéder au répertoire et voir ce quil y a dedans.En tapant ls -l sur un répertoire, on peut obtenir la ligne suivante :drwxr-x--- 1 ali users 13242 Dec 2 13 :14 mon-répertoired signifie quon a affaire à un répertoire ; rwx sont les droits du propriétaire ali qui est autorisé en lecture,écriture et droit daccès au répertoire ; r-x représentent les droits du groupe users : autorisé en lecture, droitdaccès au répertoire, pas de droit en écriture ; --- représentent les droits des autres utilisateurs : aucun droitactuellement.6.3 Commandes associéesChanger les droits : chmodLa commande chmod permet de modifier les droits daccès dun fichier (ou répertoire). Pour pouvoirlutiliser sur un fichier ou un répertoire, il faut en être le propriétaire. On utilise chmod soit à l’aide des lettresdécrites précédement (r,w et x), soit à l’aide de chiffres. Dans le premier cas, on accéde au champpropriétaire 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 l’on désire rajouter un droit ou l’enlever(voir exemples ci-dessous). Une dernière possibilité est a (comme all), ce qui permet de donner les droits àtout le monde simultanément. L’utilisation des chiffres avec chmod est plus simple. On dispose d’un tableaude correspondance fixant les poids de chaque type d’opération : r 4 w 2------------------------------------------- 8 ---------------------------------------Introduction à l’utilisation du système Unix Yahya SLIMANI
  9. 9. x 1Pour positionner une autorisation, on fait la somme des chiffres par groupement. Si vous avez un fichier avecles droits suivants -rw-rw-rw-, pour les droits utilisateurs vous avez (r=)4+(w=)2=6, de même pour le groupeet les autres. Donc -rw-rw-rw- est équivalent à 666. En suivant la même règle rwxrw-r-- est équivalent à 754.Pour mettre un fichier avec les droits-r--r--r-- vous devez taper :$ chmod 444 nom-fichierOn appelle ce système de notation, la notation octale ou numérique.On peut également utiliser une notation symbolique comme suit : donner un droit en écriture pour le groupedu fichier nom-fichier$ chmod g+w nom-fichierComme autre exemple, on peut vouloir supprimer le droit daccès du répertoire rep1 aux autres utilisateurs(autres que propriétaire et utilisateurs du groupe)$ chmod o-x rep1En tapant$ chmod u+x,g-w nom-fichieron réalise plusieurs changements de droits en même temps : rajouter le droit en exécution pour lepropriétaire et enlevez le droit en écriture pour le groupe du fichier.Changer les droits par défaut : umaskQuand vous créer un fichier, par exemple avec la commande touch, ce fichier par défaut possède certainsdroits. Ce sont 666 pour un fichier (-rw-rw-rw-) et 777 pour un répertoire (-rwxrwxrwx). Ils représentent lesles droits maximum (tous les droits). Vous pouvez faire en sorte de changer ces paramètres par défaut. Lacommande umask est définie pour changer ces paramètres.Pour un fichier :Si vous tapez umask 022, vous partez des droits maximum 666 et vous retranchez 022, on obtient donc 644,par défaut 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 défaut les fichiers auront comme droit 422 (-rw--w--w-).Pour un répertoire :Si vous tapez umask 022, vous partez des droits maximum 777 et vous retranchez 022, on obtient donc 755,par défaut 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 à l’utilisation du système Unix Yahya SLIMANI
  10. 10. par défaut les fichiers auront comme droit 422 (-rwx-wx-wx).umask nest utilisatable que si on est propriétaire du fichier.7 Commandes UNIX et redirection7.1 Syntaxe dune commandeLa syntaxe standard dune commande UNIX est la suivante :commande -options arg1 arg2 arg3Les options varient en fonction de la commande, le nombre des arguments qui suivent dépend aussi de lacommande, par exemple la commande :$ sort -r mon-fichiersort (trier) permet de trier un fichier, loption r (reverse), permet de trier en sens inverse le fichier. Largumentunique de la commande est le nom du fichier. Avec$ cp -R mon-repertoire nouveau-repertoireLa commande cp (copy) copie un répertoire (option R) vers un autre répertoire. Ici nous avons deuxarguments.On peut coupler deux options comme par exemple : ps –ef ; avec cette commande on a loption e et f.7.2 Les entrées sortiesIl y a trois sortes dentrées sorties ou flux de données : le premier est lentrée standard, cest à dire ce que voussaisissez au clavier, le deuxième est la sortie standard, cest à dire lécran, plus précisément le shell, et letroisième est la sortie standard des messages derreurs consécutifs à une commande, qui est généralementlécran.Chacun de ces flux de données est identifié par un numéro descripteur : 0 pour lentrée standard, 1 pour lasortie standard et 2 pour la sortie standard des messages derreur.7.3 Redirection des entrées sortiesQuand vous lancez une commande dans un shell, il peut y avoir du texte qui saffiche suite à lexécution de lacommande. Ce texte par défaut, saffiche sur l’écran. On dit que l’écran est la sortie standard.On peut changer ce comportement, en tapant :ma-commande > mon-fichierTous les commentaires, les sorties, de la commande, ne vont pas apparaître sur l’écran mais seront écrits etdonc redirigés dans un fichier. En dautres termes, la sortie standard est redirigée vers un fichier.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éé). Si on ne veut pas l’écraser et donc garder son ancien contenu, on utilise uneredirection avec les symboles >>. En tapant :------------------------------------------- --------------------------------------- 10Introduction à l’utilisation du système Unix Yahya SLIMANI
  11. 11. ma-commande >> mon-fichierLe fichier mon-fichier nest pas écrasé, mais la sortie standard (les commentaires de la commande) sontajouté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-fichierVous envoyez le contenu du fichier mon-fichier vers la commande sort (trie). Celle-ci va donc trier lecontenu du fichier et afficher le résultat sur l’écran.On peut également combiner les deux redirections (entrée et sortie). Avec :sort < mon-fichier > fichier-trieOn a vu que sort < mon-fichier avait pour effet de trier le fichier mon-fichier, lexpression >fichier-trie a poureffet denvoyer le résultat (le fichier trié) dans un fichier fichier-trie. Le résultat napparaît plus à lécran, maisest sauvegardé dans un fichier.7.4 Les pipesUn pipe (en français tube de communication) permet de rediriger la sortie dune commande vers une autre.En dautres termes, pour rediriger les résultats (la sortie) dune commande, on peut taper :commande1 > sortie1On peut rediriger cette sortie vers une autre commande. Cette sortie devient donc une entrée pour cettedernière commande.Pour cela, on taperait la ligne de commande suivante :commande2 < sortie1Il existe un autre moyen de faire le même 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 précédentes.Voici un exemple plus significatifLa commande ls permet la visualisation de fichiers. On peut obtenir alors le résultat suivant (ceci n’est qu’unexemple) :fichier1 fichier2 monfichierLa commande grep permet la recherche dune chaîne de caractère dans une liste donnée. En tapant parexemple :grep mon * (* signifie tous les fichiers)------------------------------------------- --------------------------------------- 11Introduction à l’utilisation du système Unix Yahya SLIMANI
  12. 12. la commande grep recherche la chaîne de caractère mon dans les noms de tous les fichiers. Ainsi, on auracomme résultat :monfichierCe même même résultat peut être obtenu en utilsant le symbole du pipe (|). Ainsi, en tapant :$ ls | grep monon aura le comportement suivant : la première commande aura pour effet de lister le nom des fichiers setrouvant à lendroit où lon a tapé la commande (répertoire courant). L& sortie standard (le résultat de lacommande) est donc une liste de noms. Cette liste, au lieu d’être affichée sur l’écran, est redirigée vers lacommande grep, qui va y chercher une chaîne de caractère contenant mon. Le résultat est donc :monfichier8 Gestion des processus8.1 Caractéristiques dun processusChaque exécution d’une commande génère d’un point de vue interne, ce que l’on appelle un processus. Cesprocessus sont identifiés par le système par un numéro appelé PID (Process Identification). Chaqueprocessus dans le système dispose d’un PID unique.Un processus peut lui même créer un autre processus. Il devient donc un processus parent ou père, et lenouveau processus, un processus enfant. Ce dernier est identifié par son PID, et le processus père par sonnuméro de processus appelé PPID (Parent Process Identification). On obtient ainsi une arborescence deprocessus comme on dispose d’une arborescence de fichiers.Tous les processus sont ainsi identifiés par leur PID, mais aussi par le PPID du processus qui la créé, car tousles processus ont été créés par un autre processus. La racine de tous ces processus est définie par le premierprocessus lancé sur le système : c’est le processus d’ouverture d’une session. Ce processus est appelé init. Iln’a pas de père et son PID est égal à la valeur 1.8.2 Afficher les attributs des processusOn peut visualiser les processus qui tournent sur une machine, à un instant donné, avec la commande : ps(options), les options les plus intéressantes sont -e (affichage de tous les processus) et -f (affichage détaillée).Pour voir les process dun seul utilisateur, on utilise l’option –u suivie du nom de l’utilisateur :$ ps -u ali8.3 Commandes de gestion des processusParmi toutes le commandes de gestion des processus, il en existe une qui est très importante qui peut rendrebeaucoup de services dans certains cas (processus qui boucle indéfiniment). Cette commande est appeléekill et sert à arrêter ou tuer un processus. Si on veut arrêter un processus, il faut d’abord connaître son PID.Pour cela on utilisera la commande ps . Une fois que l’on connaît le PID d’un processus, nous pouvons taperla commande :$ kill -9 PID------------------------------------------- --------------------------------------- 12Introduction à l’utilisation du système Unix Yahya SLIMANI
  13. 13. Un utilisateur ne peut arrêter que les processus qui lui appartiennent (quil a lancé). Seul ladministrateursystème a le droit darrêter un processus ne lui appartenant pas.8.4 Lancer en processus en tâche de fondPour lancer une commande quelconque, on tape son nom sur la ligne de commande après le prompt (parexemple $). Tant que la commande nest pas terminée, on n’a pas la main au niveau du shell, et donc on nepeut pas taper une autre commande. Si cette commande demande beaucoup de temps pour s’exécuter, on setrouve en train d’atteindre sa fin, avant de faire autre chose. Pour éviter cela, on dispose d’un autre moyenpour lancer une commande. On parle alors d’exécution en background. Ceci veut dire que l’on peut lancerune commande, récupérer la main sans que cette soit terminée pour lancer une autre commande. Pour cela,on rajoute le symbole & à la fin de commande. Celle-ci se lancera en " tâche de fond " ou en background, cequi permet de revenir directement au prompt du shell.En tapant la commande :$ ps ef &[321]$le shell nousdonne immédiatement la main, et affiche le numéro 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 à lutilisateur de créer de nouveaux fichiers ou déditer des fichiers existants. Lacommande pour lancer léditeur est vi, suivie par le nom de fichier. Par exemple, pour éditer le fichiernommé temporaire, vous devez tapez vi temporaire et ensuite retour. Vous pouvez lancer vi sans nom defichier, mais quand vous voudrez sauvez votre travail, vous devrez indiquer plus tard à vi sous quel nom ildevra le sauver.Quand vous lancez vi pour la première fois, vous voyez un écran rempli de tildes (un tilde ressemble à ceci :~) sur le côté gauche de lécran. Les lignes vides au-delà de la fin du fichier sont montrées de cette manière.En bas de votre écran, si vous avez spécifié un nom de fichier existant, le nom et la taille de ce fichier sontaffichés, comme ceci :"nom_de_fichier" 21 lines, 385 charactersSi le fichier que vous avez spécifié nexiste pas, il vous est indiqué quil sagit dun nouveau fichier, commececi :"newfile" [New file]Si vous lancez vi sans nom de fichier, la dernière ligne de lécran restera vide. Si laffichage ne correspond à------------------------------------------- --------------------------------------- 13Introduction à l’utilisation du système Unix Yahya SLIMANI
  14. 14. ces indications, votre terminal est sans doute mal réglé. Tapez :q et "retour" pour sortir de vi et régler leproblème.1. Sortir de viMaintenant que vous savez entrer dans vi, ce serait une bonne idée de savoir en sortir. Léditeur vi a deuxmodes (commande et insertion). Pour sortir de vi, vous devez être en mode commande. Appuyer sur latouche appelée "Escape" ou "Esc" (Si votre terminal na pas une telle touche, essayez ^[, ou contrôle -[) pourpasser en mode commande. Si vous êtes déjà en mode commande quand vous tapez "Escape", cela peut"biper" (signal sonore), ne vous inquiétez 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é dune façon ou dune autre, léditeur vous préviendra, et ne vous laissera pasquitter. Pour éviter ce message, la commande est :q!. Cela vous laisse quitter vi sans sauvegarder leschangements.Bien sûr, normalement dans un éditeur, vous devriez vouloir sauvegarder les changements que vous avezfaits. La commande pour enregistrer le contenu de léditeur est :w. Vous pouvez combiner cette commandeavec la commande pour quitter, soit :wq. Vous pouvez spécifier un nom de fichier différent pour sauver sousce nom après le :w. Par exemple, si vous voulez sauvegarder le fichier sur lequel vous travaillez sous le nomnom_de_fichier_2, vous devez taper :w nom_de_fichier_2 et retour.Une autre façon de sauver vos changements et quitter vi est la commande ZZ. Quand vous êtes en modecommande, taper ZZ est équivalent à :wq. Si des changements ont été faits dans le fichier, ils seront sauvés.Cest la façon la plus simple de quitter léditeur, avec seulement deux appuis de touches. La commande x estaussi équivalente à :wq.2. Les deux modes de viLa première chose que beaucoup dutilisateurs apprennent à propos de léditeur vi est quil a deux modes:commande et insertion. Le mode commande permet lentrée de commandes pour manipuler du texte. Cescommandes sont en général longues dun ou deux caractères, et peuvent être entrées en peu de frappe detouche. Le mode insertion insère tout ce qui est tapé sur le clavier dans le fichier courant.vi démarre en mode commande. Plusieurs commandes mettent léditeur vi en mode insertion. Lescommandes les plus couramment utilisées sont a et i. Ces deux commandes sont décrites plus bas. Une foisen mode insertion, vous en sortez en tapant la touche escape. Si votre terminal na pas de touche escape, ^[devrait convenir (contrôle-[). Taper escape pendant que vous êtes déjà en mode commande ne fait passortir léditeur du mode commande. Un bip peut vous indiquer que vous êtes déjà dans ce mode.3. Comment taper des commandes en mode commandeLes commandes du mode commande sont généralement au format suivant : (Les arguments optionnels sontdonnés entre crochet. [quantité] commande [lieu]La plupart des commandes font un caractère de long, en particulier celles qui utilisent le caractère decontrôle. Les commandes décrites dans cette section sont celles que lon utilise le plus avec léditeur vi.La quantité est définie par nimporte quel caractère de 1 à 9. Par exemple, la commande x efface uncaractère sous le curseur. Si vous tapez 23x en mode commande, cela va effacer 23 caractères.Certaines commandes utilisent un paramètre optionnel lieu, où vous pouvez spécifier le nombre de lignes oula partie du document concernée par la commande. Le paramètre lieu peut aussi être nimporte quellecommande qui déplace le curseur.------------------------------------------- --------------------------------------- 14Introduction à l’utilisation du système Unix Yahya SLIMANI
  15. 15. 4. Quelques commandes vi simplesCeci est un simple groupe de commande pour permettre à un utilisateur débutant avec vi de commencer.Dautres commandes utiles, seront présentées ultérieurement.a fait entrer en mode insertion, les caractères tapés ensuite seront insérés après le curseur. Si vous spécifiez un nombre, tout le texte qui a été inséré sera répété ce nombre de foish déplace le curseur sur le caractère précédent.i entre en mode insertion, Le caractère tapé ensuite sera inséré avant la position actuelle du curseur. Si vous spécifiez un nombre, tout le texte qui a été inséré sera répété ce nombre de foisj déplace le curseur dune ligne vers le bas.k déplace le curseur dune ligne vers le haut.l déplace le curseur dun caractère vers la droite.r remplace le caractère sous le curseur. Un nombre spécifie le nombre de caractères à remplacer.u annule le dernier changement dans le fichier. Taper de nouveau u rétablit le changement.x efface le caractère sous le curseur. Nombre spécifie combien de caractères il faut effacer. Les caractères seront effacés après le curseur.5. Les "buffers" texte de viLéditeur vi a 36 "buffers" pour conserver des morceaux de texte, ainsi quun "buffer" principal. Chaque fois,quun bout de texte est effacé ou copié depuis le fichier, il est placé dans le "buffer" principal. Beaucoupdutilisateurs de vi utilisent rarement les autres buffers, et se débrouillent sans eux. Le bloc de texte peutaussi être placé dans un autre buffer demandé en utilisant la commande ". Après avoir tapé ", une lettre ou unchiffre identifiant le buffer doit être entré. Par exemple, la commande : "mdd remplit le buffer m et efface laligne courante. De même, du texte peut être collé avec les commandes p ou P. "mp colle le contenu du bufferm après la position actuelle du curseur. Pour toutes les commandes utilisées dans les deux sections suivantes,ces buffers peuvent être spécifiés pour un stockage temporaire de mots ou de paragraphes.6. Couper et CopierLa commande la plus couramment utilisée pour couper est d. Cette commande efface du texte dans le fichier.La commande est précédée par un nombre optionnel et suivie par une indication de déplacement. Si vousdoublez la commande en tapant dd, la ligne courante est effacée. Voici quelques combinaisons :d^ efface de la position actuelle du curseur jusquau début de la ligne.d$ efface de la position actuelle du curseur jusquà la fin de la ligne.------------------------------------------- --------------------------------------- 15Introduction à l’utilisation du système Unix Yahya SLIMANI
  16. 16. dw efface de la position actuelle du curseur jusquà la fin du mot3dd efface 3 lignes à partir de la position actuelle du curseur vers le bas.La commande y (commande de copie) opère comme la commande d en prenant du texte du fichier sanseffacer le texte.7. CollerLes commandes pour coller sont p et P. Elles diffèrent seulement par la position où elles collent le texte parrapport au curseur. p colle le contenu du buffer spécifié ou du buffer général après le curseur, tandis que P lecolle avant le curseur. nombre avant la commande, colle le texte le nombre de fois demandé.8. Recherche de mots ou de caractèresLéditeur vi peut faire deux types de recherche : chaînes de caractères ou caractères. Pour une recherche dechaîne, les commandes / et ? sont utilisées. Quand vous lancez ces commandes, la commande que vousvenez de taper sera affichée sur la ligne du bas, où vous taperez la chaîne que vous cherchez. Ces deuxcommandes diffèrent 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 début du fichier (de bas en haut).Les commandes n et N répètent la précédente recherche respectivement dans le même sens et dans le sensopposé. Certains caractères ont une signification particulière pour vi, et doivent donc être précédés dunantislash () pour faire partie de lexpression recherchée.Caractères spéciaux :^ Début de ligne. (Au début de lexpression recherchée.). Correspond à un caractère simple.* Correspond à zéro ou plusieurs fois le caractère précédent.$ Fin de ligne (A la fin de lexpression recherchée.)[ Correspond au début dun groupe dexpressions correspondantes ou non. Par exemple /f[iae]t correspond à chacun de ces mots : fit fat fet. Dans ce cas, il correspond uniquement à ceux- là. /a[^bcd] ne correspond à aucun deux mais à tout ce qui contient "a" et une lettre autre que "b","c","d".< Peut être inséré dans une expression précédée dun antislash pour rechercher le début ou la fin dun mot. Par exemple /<le> va chercher seulement le mot "le" mais pas les mots comme "leur" ou "fleur".> Voir la description du caractère < au dessus.La recherche de caractères cherche une ligne à lintérieur de laquelle se trouve le caractère entré après lacommande. Les commandes f et F cherchent un caractère uniquement sur la ligne courante. f cherche verslavant et F cherche vers larrière et le curseur se déplace sur la position du caractère trouvé.Les commandes t et T cherchent un caractère seulement sur la ligne courante, mais avec t, le curseur sedéplace sur la position avant le caractère, et T cherche depuis la fin de la ligne vers la position après lecaractère .------------------------------------------- --------------------------------------- 16Introduction à l’utilisation du système Unix Yahya SLIMANI
  17. 17. Ces deux commandes peuvent être répétées en utilisant les commandes ; ou , (; répète la dernièrerecherche de caractère dans la même direction, alors que , la répète en sens inverse.)Si loption "ic" (ou ignorecase) est activée (tapez :set ic) la recherche est insensible à la casse.9. Personnalisation de vi (et EX)Vous pouvez personnaliser la façon dont vi se comporte. Les options dédition sont activées en utilisant lacommande :set, les options des éditeurs vi et EX disponibles sur Wiliki sont les suivantes : (Vous pouvezobtenir cette liste en tapant :set all puis retour en mode commande)noautoindent magic noshowmatchautoprint mesg noshowmodenoautowrite nomodelines noslowopennobeautify nonumber tabstop=8directory=/tmp nonovice taglength=0nodoubleescape nooptimize tags=tags /usr/lib/tagsnoedcompatible paragraphs=IPLPPPQPP LIpplpipnpbp term=xtermnoerrorbells prompt notersenoexrc noreadonly timeoutflash redraw timeoutlen=500hardtabs=8 remap ttytype=xtermnoignorecase report=5 warnkeyboardedit scroll=11 window=23keyboardedit! sections=NHSHH HUuhsh+c wrapscannolisp shell=/bin/csh wrapmargin=0nolist shiftwidth=8 nowriteanyCertaines de ces options ont des valeurs définies par le signe égal = , tandis que dautres sont activées ounon. (Ces options de type "oui ou non" sont appelées Booléennes, et sont préfixées par "no" pour indiquerquelles ne sont pas sélectionnées.) Les options montrées ici sont les options qui sont définies sanspersonalisation. La description de certaines est donnée plus bas, avec une abréviation. Par exemple lacommande set autoindent, vous pouvez taper :set autoindent ou :set ai. Pour la désélectionner, vouspouvez taper :set noautoindent ou :set noai.autoindent (ai) Cette option règle léditeur pour que les lignes suivantes soient indentées comme la ligne précédente. Si vous voulez retirer cette indentation, vous pouvez taper ^D comme premier caractère. Ce ^D fonctionne en mode insertion, et pas en mode commande. De plus la longueur de lindentation peut être réglée par shiftwidth, expliqué plus bas.exrc Le fichier .exrc dans le répertoire courant est lu pendant le démarrage. Ceci doit être défini soit dans la variable denvironnement EXINIT soit dans le fichier .exrc dans votre répertoire home.mesg Désactive les messages si cette option est désélectionnée avec :set nomesg, ainsi rien ne peut vous déranger pendant que vous utilisez léditeur.number (nu) Affiche les lignes avec leur numéro sur le coté gauche.shiftwidth (sw) Cette option prend une valeur, et détermine la largeur de la tabulation logicielle. (La tabulation logicielle est utilisée pour les commandes << et >>.) Par exemple, vous pouvez régler un décalage dune largeur de 4 avec cette commande : :set sw=4.showmode (smd) Cette option est utilisée pour afficher le mode dans lequel vous êtes actuellement. Si vous------------------------------------------- --------------------------------------- 17Introduction à l’utilisation du système Unix Yahya SLIMANI
  18. 18. êtes en mode insertion, la ligne du bas va indiquer INPUT MODE.warn Cette option vous prévient si vous avez modifié le fichier mais ne lavez pas encore sauvegardé.window (wi) Cette option définit le nombre de lignes de la fenêtre utilisé par vi. Par exemple, pour régler léditeur vi de façon à ce quil 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 sélectionné, si le mot nest pas trouvé vers le bas du texte, la recherche reprendra au début.wrapmargin (wm) Si cette option a une valeur plus grande que zéro, léditeur va automatiquement faire passer le mot à la ligne suivante. Cest à dire que si vous avez plus que ce nombre despace par rapport à la marge de gauche, le mot va aller à la ligne, sans que vous ayiez à taper retour. Par exemple, pour régler la marge droite à deux caractères, vous pouvez taper : :set wm=2.10. Abréviations et traductions de touchesUne commande de lediteur EX qui est utile sur léditeur vi est la commande abbreviate. Elle vous permetde définir des abréviations pour des chaînes de caractères spécifiques. La commande ressemble à ceci : :abchaînes chaîne à substituer. Si vous avez à taper le nom,"Humuhumunukunukuapua`a" maisque vous nayez pas envie de taper le nom complet, vous pouvez utiliser une abréviation. Pour cet exemple,la commande à entrer est ::ab 9u Humuhumunukunukuapua`aMaintenant quel que soit lendroit où vous tapez 9u comme un mot séparé, vi va taper le ou les mots entiersindiqués. Si vous tapez 9université, il ne va pas substituer le mot.Pour retirer une abréviation définie précédemment, la commande est anabbreviate. Pour retirer lexempleprécédent, la commande serait ":unab 9u". Pour obtenir la liste de vos abréviations, 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 modeinsertion. Ces deux commandes sont respectivement :map et :map!. Le "mappage" fonctionne de façonsimilaire à abréviation, vous lui donnez une séquence de touches et une autre à mettre à la place.(Laséquence de touches de remplacement est généralement constituée de commandes vi.)11. La variable denvironnement EXINIT et le fichier .exrcIl y a deux façons de personnaliser léditeur vi. Si vous créez un fichier nommé .exrc dans votre répertoirehome , toutes les commandes quil contient seront executées quand vi démarrera. Lautre méthode est dedefinir une variable denvironnement nommé EXINIT. Loption sera sélectionnée dans le fichier deconfiguration de votre shell. Si vous utilisez /bin/csh (C-Shell), la commande est la suivante, et mise dans lefichier: .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=...Nécrivez pas ... comme dans lexemple. Dans cet espace mettez la commande que vous voulez définir. Par------------------------------------------- --------------------------------------- 18Introduction à l’utilisation du système Unix Yahya SLIMANI
  19. 19. exemple, si vous voulez avoir lauto-indentation, la numérotation des lignes, et la marge droite (passage à laligne - wrap margin) à 3 caractères, alors la commande setenv (pour C shell) serait : setenv EXINIT set ai nu wm=3Si vous voulez mettre plus dune commande dans la variable EXINIT, séparez les commandes avec unebarre verticale (|). Par exemple, pour "mapper" la commande g au caractère G en mode commande, lacommande est :map g G et combiné avec la commande précédente, vous aurez :setenv EXINIT set ai nu wm=3|map g GSi vous voulez créer le fichier nommé .exrc, vous pouvez y mettre ce qui est entre guillemets après leEXINIT.12. Récupérer votre travail quand quelque chose va mal avec votre terminalLediteur vi édite une copie temporaire de votre fichier, et quand la session est terminée ou quand vous luidemandez de sauver, il place le contenu du fichier temporaire dans le fichier original. Si quelque chose sepasse mal pendant que vous éditez votre fichier, léditeur vi va essayer de sauver quand même le travail encours et de le stocker pour une récupération ultérieure. Note : Si vi meurt (vi est un processus) pendant quevous travaillez sur un fichier, il vous envoie un courrier sur la façon de récupérer ce travail. Loption -r est làpour la récupération. Si vous éditez le fichier infovitale, et si vous êtes déconnecté, alors loption -r deléditeur vi devrait vous aider. La commande doit ressembler à quelque chose comme :vi -r infovitale.Après avoir utilisé loption -r vous DEVEZ tout de même sauvegarder ce que vous avez récupéré dans lefichier initial. Loption -r ne fonctionne quune fois par session vi défaillante.13. Résumé des commandes viCette liste est un résumé des commande vi, classées par fonction. Il peut y avoir dautres commandesdisponibles, que vous pourriez trouver dans le manuel de vi.Couper et coller/effacer du texte" Spécifie le buffer à utiliser avec les commandes se servant dun 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 nest indiqué (avec la commande ") alors P utilise le buffer général.X Efface le caractère avant le curseur.Y Copie (Yank) la ligne courante dans le buffer indiqué. Si aucun buffer nest indiqué, le buffer général 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 spécifié avec la commande ". Si aucun buffer nest spécifié, le buffer général est utilisé.------------------------------------------- --------------------------------------- 19Introduction à l’utilisation du système Unix Yahya SLIMANI
  20. 20. p Colle (Paste) le buffer spécifié après la position actuelle du curseur ou la ligne. Si aucun buffer nest spécifié (avec la commande ") p utilise le buffer général.x Efface le caractère sous le curseur. Un nombre indique combien de caractères doivent être effacés. Les caractères seront effacés après le curseur.y Copie (Yank) jusquà lieu, en mettant le résultat dans un buffer. "yy" copie la ligne courante. Un nombre copie ce nombre de lignes. Le buffer peut être spécifié avec la commande ".Si aucun buffer nest spécifié, le buffer général est utilisé.Insérer du texteA Joint (Append) à la fin de la ligne courante.I Insère à partir du début 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 caractères tapés seront ajoutés après la position courante du curseur. Un nombre insère tout le texte ce nombre de fois.i Entre en mode insertion, les caractères tapés seront insérés avant la position courante du curseur. Un nombre insère tout le texte ce nombre de fois.o Entre en mode insertion sur une nouvelle ligne en dessous de la position courante du curseur.Déplacer le curseur dans le fichier^B Monte dune page. Un nombre fait monter de ce nombre de pages.^D Descend dune demi fenêtre. Un nombre fait descendre de ce nombre de lignes.^F Descend dune page. Un nombre fait descendre de ce nombre de pages.^H Déplace le curseur dun espace vers la gauche. Un nombre fait déplacer de ce nombre despaces.^J Descend le curseur dune ligne dans le même colonne. Un nombre fait descendre de ce nombre de lignes.^M Déplace vers le premier caractère de la ligne suivante.^N Descend le curseur dune ligne dans le même colonne. Un nombre fait descendre de ce nombre de lignes.^P Monte le curseur dune ligne dans le même colonne. Un nombre fait monter de ce nombre de------------------------------------------- --------------------------------------- 20Introduction à l’utilisation du système Unix Yahya SLIMANI
  21. 21. lignes.^U Monte dune demi fenêtre. Un nombre fait monter de ce nombre de lignes.$ Déplace le curseur à la fin de la ligne courante. Un nombre le fait se déplacer à la fin des lignes suivantes.% Déplace le curseur sur la parenthèse ou accolade correspondante.^ Déplace le curseur sur le premier caractère non-blanc.( Déplace le curseur au début de la phrase.) Déplace le curseur au début de la phrase suivante.{ Déplace le curseur au paragraphe précédent.} Déplace le curseur au paragraphe suivant.| Déplace le curseur à la colonne indiquée par le nombre.+ Déplace le curseur sur le prochain caractère non-blanc de la ligne suivante.- Déplace le curseur sur le prochain caractère non-blanc de la ligne courante.0 (Zéro) Déplace le curseur sur la première lettre de la ligne courante.B Déplace le curseur dun mot en arrière, 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 nest donné, il va à la fin du fichier.H Déplace le curseur sur le premier caractère non-blanc en haut de lécran.L Déplace le curseur sur le premier caractère non-blanc en bas de lécran.M Déplace le curseur sur le premier caractère non-blanc au milieu de lécran.W Avance au début dun mot,en sautant la ponctuation.b Recule le curseur dun mot. Si le curseur est au milieu dun mot, place le curseur sur le premier caractère du mot.e Avance le curseur dun mot. Si le curseur est au milieu dun mot, place le curseur sur le dernier caractère du mot.h------------------------------------------- --------------------------------------- 21Introduction à l’utilisation du système Unix Yahya SLIMANI
  22. 22. Déplace le curseur sur le caractère de gauche.j Descend le curseur dune ligne.k Monte le curseur dune ligne.l Déplace le curseur sur le caractère de droite.w Déplace le curseur sur le mot suivant. Si le curseur est au milieu dun mot, place le curseur sur le premier caractère du mot suivant.Déplacer le curseur dans lécran^E Déplace lécran dune ligne vers le haut. Un nombre fait monter de ce nombre de lignes.^Y Déplace lécran dune 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 spécifiez un nombre avant la commande z, il agit sur la ligne spécifiée. Par exemple, "14z." place la ligne 14 au centre de lécran.Remplacer du texteC Change de la position du curseur jusquà la fin de la ligne.R Remplace les caractères de lécran par les caractères entrés, sarrête en tapant la touche Escape.S Change une ligne entière.c Change jusquà <where>. "cc" change la ligne courante. Un nombre fait changer ce nombre de lignes.r Remplace un caractère sous le curseur. Indiquer un nombre fait remplacer ce nombre de caractères.s Substitue un caractère sous le curseur et passe en mode insertion. Spécifier un nombre pour substituer ce nombre de caractères. Un signe dollar($) sera ajouté au dernier caractère substitué.Rechercher du texte ou des caractères, Répète la dernière commande f, F, t ou T dans la direction opposée./ Recherche vers le bas dans le fichier la chaîne spécifiée après le /.; Répète la dernière commande f, F, t ou T.? Recherche vers le haut dans le fichier la chaîne spécifiée.------------------------------------------- --------------------------------------- 22Introduction à l’utilisation du système Unix Yahya SLIMANI
  23. 23. F Recherche vers lavant dans la ligne courante le caractère spécifié après la commande F. Sil la trouvé, déplace le curseur sur sa position.N Répète la dernière recherche faite par / ou ?, mais dans la direction opposée.T Recherche vers larrière dans la ligne courante le caractère spécifié après la commande T, et se place sur la colonne suivante sil la trouvé.f Recherche dans la ligne courante le caractère spécifié après la commande f. Sil la trouvé, déplace le curseur sur sa position.n Répète la dernière recherche faite par / ou ?.t Cherche dans la ligne courante le caractère spécifié après la commande t et se place sur la colonne précédent le caractère ,sil la trouvé.Manipulation des caractères/Formatage de ligne~ Inverse la casse du caractère sous le curseur.< Décale jusquà lieu dune tabulation vers la gauche. "<<" décale la ligne courante et peut être répété avec un nombre.> Décale jusquà lieu dune tabulation vers la droite. ">>" décale la ligne courante et peut être répété 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 effectués.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.^[------------------------------------------- --------------------------------------- 23Introduction à l’utilisation du système Unix Yahya SLIMANI
  24. 24. Touche déchappement. Annule les commandes partiellement tapées.^^ Retourne au dernier fichier édité.! Exécute un shell. Si un lieu est spécifié, le programme qui est exécuté avec ! utilise les ligne(s) spécifiée(s) comme entrée standard, et va les remplacer par la sortie standard du programme exécuté. "!!" exécute un programme utilisant la ligne courante comme entrée. Par exemple "!4jsort" va prendre 5 lignes à partir de la position courante du curseur et exécuter sort. Après avoir tapé la commande, il y aura un point dexclamation où vous pourrez taper la commande.& Répète la précédente commande ":s".. Répète la dernière commande qui a modifié le fichier.: Commence une commande de léditeur EX. La commande est exécutée une fois que lutilisateur a tapé retour. (voir section ci-dessous.)@ Tape la commande stockée dans le buffer spécifié.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 caractère spécifié après 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 précédent et . le rétablit.).Les commandes EXLéditeur vi est basé sur un autre éditeur, nommé EX. Léditeur EX édite seulement par ligne. Depuis léditeurvi, vous utilisez la commande : pour entrer une commande EX. La liste donnée ici nest pas complète, maisles commandes proposées sont les plus utilisées. Si plus dune ligne doit être modifiée par certainescommandes (comme ":s" et ":w"), un intervalle doit être spécifié avant la commande. Par exemple, poursubstituer de la ligne 3 à la ligne 15, la commande est ":3,15s/from/this/g".:ab chaîne chaînes Abréviation. Si un mot correspondant à chaîne est tapé dans vi, léditeur insère automatiquement les mots correspondants. Par exemple, abréviation ":ab TN Tunisia" va insérer le mot, "Tunisia" partout où le mot "TN" est tapé.:map touches new_seq Mapping. Ceci vous permet de remplacer une touche ou une séquence de touches par une autre touche ou séquence de touches.:q Quitte vi. Si des changements ont été faits, léditeur va afficher un message davertissement.:q! Quitte vi sans sauvegarder les changements.:s/pattern/to_pattern/options Substitution. Ceci substitue le modèle spécifié par la chaîne dans to_pattern. Sans option, il substitue seulement la première occurrence du modèle. Si un g est spécifié, toutes les occurrences seront substituées. Par exemple, la commande ":1,$s/Dwayne/Dwight/g"------------------------------------------- --------------------------------------- 24Introduction à l’utilisation du système Unix Yahya SLIMANI
  25. 25. remplace toutes les occurrences de "Dwayne" par "Dwight".:set [all] Définit 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 labréviation définie précédemment par ":ab".:unm keys Retire le mapping défini par ":map".:vi Commence lédition dun nouveau fichier. Si les changements nont pas étés sauvegardés, léditeur vous le signale.:w Sauvegarde (Write out) le fichier courant.:w nom_de_fichier Ecrit (Write) le buffer dans le fichier spécifié.:w >> filename Ajoute le contenu du buffer au fichier.:wq Enregistre le buffer et quitte. Commandes Unix par ordre alphabétique Nom Description Options Paramètresalias Renomme ou définit une variable=commande commandeawk, gawk extraction dinformations dun -F : ... : redéfinition du nom de fichier fichier séparateur de champ commande : traitement à faire sur les chaînes extraitescal affiche le calendrier de lannée mois année spécifiée en paramètrecat imprime le contenu du fichier nom de fichier mentionnécd se positionne sur le répertoire chemin daccès à un désigné répertoirechmod change les permissions en -R change les droits mode - nom de fichier lecture, écriture, exécution récursivement à partir du ou de répertoire noeud (mode = ugo)compress compresse un fichier (voir gzip) -c : résultat sans fichier------------------------------------------- --------------------------------------- 25Introduction à l’utilisation du système Unix Yahya SLIMANI
  26. 26. modification du fichier dorigine -f : écrasement dun fichier compressé préexistant -v : taux de compressioncp copie du fichier source vers la -i : demande source - destination destination confirmation -p : conservation de date et droits -r : recopie récursive dun répertoiredate retourne la date courantediff compare deux fichiers et affiche -c : affiche 3 lignes avant fichier1 fichier2 les différences et 3 lignes aprèsecho envoi en écho des paramètres -n : supprime le retour spécifiés à la suite ($PATH, chariot en fin de "bye") commandeelm courier électronique -s : chaîne de caractères destinataire qui sera le sujet du message -f : nom de la boîte à lettresfile retourne le type de fichier nom de fichier spécifié (ascii,ps, exé.sparc ou 68020)find recherche récursive dun fichier à -name fichier : fichier à"répertoire" partir du répertoire chercher -print : affiche le chemin trouvégrep affiche les lignes du fichier -v : seulement les lignes chaîne de caractères - contenant la chaîne de caractères ne contenant pas la fichier chaîne -i : majuscules et minuscules identiques -n : avec numéros de lignes -c : nombre de comparaisons positivesgunzip décompresse un fichier -c : le résultat est produit nom de fichier sans modification du fichier dorigine -v : taux de compressiongzip compresse un fichier (voir -c : résultat sans nom de fichier compress) modification du fichier------------------------------------------- --------------------------------------- 26Introduction à l’utilisation du système Unix Yahya SLIMANI
  27. 27. par défaut, la destination est la source sortie standard quon redirige -f : écrasement dun vers un fichier si on veut obtenir fichier compressé un fichier compressé préexistant -v : taux de compression -d : force une décompression -9 : niveau maximum de compressionhead liste les n premières lignes du -n : nombre de lignes source > destination fichier affichées (par défaut 10)id retourne le nom de login, lUID, le groupe et le GIDkill envoi dun signal à un processus -l : liste des signaux numéro du process disponibles -n : numéro du signal à envoyer 2 : INT (ctrl-c : ) 3 : QUIT (ctrl-) 9 : KILLln création dune nouvelle référence -s : création dun lien source - destination pour un fichier préexistant symboliquelogname retourne le nom de login de lutilisateurls liste le contenu dun répertoire -a : prise en compte des nom de répertoire fichiers cachés -F : renseigne sur le type de fichier (*, /, @) -i : précision du numéro dinode des fichiers -R : liste récursivement le contenu du répertoire -l : informations détaillées -g : ajout du nom du groupe -d : renseigne sur le répertoire lui-même -t : liste par date de modification -u : liste par date daccès -r : ordre inversemail courier électronique -s : chaîne de caractères destinataire - <fichier qui sera le sujet du message -f : nom de la boîte à------------------------------------------- --------------------------------------- 27Introduction à l’utilisation du système Unix Yahya SLIMANI
  28. 28. lettres -v : trace du mail jusquà sa délivranceman retourne le mode demploi de la nom de commande commande sil existemkdir création dun répertoire nom de répertoiremore liste le contenu dun fichier page nom de fichier par pagemv déplace fichiers et répertoires -i : demande source - destination confirmationps liste des processus BSD -a : processus détenus par les autres utilisateurs -u : nom du propriétaire du processus -x : processus sans terminal associé -l : description complète -t : terminal particulier liste des processus Système V -f : ou l : description plus ou moins longue -e : liste tous les processus -p : processus dont le numéro suit loption p -t : processus attachés au terminal spécifié -u : processus appartenant au propriétaire dont le nom ou lUID est donnépwd retourne la référence absolue du répertoire courantrlogin ouvrir une session vers une nom de machine -l : nom de login machine distante (sortie :exit)rm supprime la référence du fichier -f : force la commande nom de fichier ou de dans le répertoire sans soccuper des droits répertoire -i : demande confirmation -r : destruction récursivermdir suppression dun répertoire vide nom de répertoiresleep ne fait rien pendant n secondes temps en secondessort tri des lignes du fichier suivant -r : tri inverse fichier lordre ASCII -u : élimine les lignesidentiques------------------------------------------- --------------------------------------- 28Introduction à l’utilisation du système Unix Yahya SLIMANI
  29. 29. tail liste les n dernières lignes du -n : nombre de lignes nom de fichier fichier affichées (par défaut 10)talk, ytalk permet de converser avec une destination machine distantetar archivage/désarchivage de c : création de larchive archive -répertoire ou fichiers x : restauration de fichiers larchive t : listage du contenu de larchive v : mode verbeux p : préserve dates et droits à la restauration f : le nom du fichier spécifié sera celui de larchivetelnet établir une connexion avec une nom de machine machine distante(sortie : exit)touch modifie les caractéristiques dun -a : dernier accès fichier fichier (option -a : m par défaut) seulement crée un fichier vide sil nexiste -m : dernière pas déjà modification seulementtty donne le nom du terminalunalias supprime un alias variableuname donne le nom du système -a : informations dexploitation complètes -n : nom de la machine -r : release du système dexploitation -s : nom du système dexploitationuniq recopie de source dans source destination -u : seules les lignes destination après suppression des uniques sont recopiées lignes identiquesuudecode restitue un fichier binaire à partir fichier du fichier éditable (ASCII) créé avec uuencodeuuencode encode un fichier binaire en fichier - indication fichier éditable (ASCII) >fichier encodéw aperçu de lactivité de la machine -h : supprime lentête nom dutilisateur -s : affichage restreintwhereis retourne le chemin complet nom de la commande daccès à tous les répertoires contenant la commandewhich retourne le chemin complet nom de la commande------------------------------------------- --------------------------------------- 29Introduction à l’utilisation du système Unix Yahya SLIMANI
  30. 30. daccès à une commandewho (am i) retourne le nom des utilisateurs qui ont ouvert une session Exemples de commandes Exemple Descriptionalias dir=ls -l Il suffira de taper "dir" pour consulter la liste des fichiers avec leurs droitsunalias dir Supprime lalias de nom "dir"cal 09 1996 Affiche le calendrier du mois de Septembre 1996cat exemple.c Liste le contenu du fichier de nom "exemple.c"cd programmes Se déplace dans le répertoire de nom "programmes"chmod 744 exemple.c Donne tous les droits au propriétaire du fichier, et une simple lecture au groupe et à luniverscompress -f exemple.c Compresse le fichier de nom "exemple.c", en écrasant un fichier préexistant sil existeuncompress exemple.c Décompresse le fichie r"exemple.c"cp exemple.c toto.c Crée le fichier de nom "toto.c" identique au fichier "exemple.c"date Affiche la date courantediff -c fichier1 fichier2 Compare "fichier1" et "fichier2" en affichant 3 lignes avant et 3 lignes après chaque différenceecho $PATH Affiche le contenu de la variable "PATH"elm martin@inf Envoie un message à martinmail martin <exemple.c Envoie le fichier "exemple.c" à martinfile exemple.c Retourne quel est le type du fichier "exemple.c"find "." -name exemple.c - Recherche récursivement et affiche le chemin menant au fichierprint "exemple.c" à partir du répertoire courantgrep -n -i "void" exemple.c Affiche, avec leurs numéros, les lignes du fichier "exemple.c" qui contiennent la chaîne "void" Compresse le fichier "exemple.c" en conservant le fichiergzip -c exemple.c >exemple.c.gz dorigine. Le fichier compressé est "exemple.c.gz". Décompresse le fichier "exemple.c.gz" sans perdre le fichiergunzip -c > exemple.cexemple.c.gz compressé. Le résultat se trouve dans le fichier "exemple.c"head exemple.c Affiche les 10 premières lignes du fichier "exemple.c"tail -5 exemple.c Affiche les 5 dernières lignes du fichier "exemple.c"id Retourne le login, lUID, le groupe et le GID courantskill -9 8756 tue le processus de numéro 8756------------------------------------------- --------------------------------------- 30Introduction à l’utilisation du système Unix Yahya SLIMANI
  31. 31. ln -s exemple.c toto.c crée un lien symbolique sur le fichier "exemple.c", de nom "toto.c"logname Retourne le nom de login de lutilisateurls -l programmes Donne le contenu du répertoire "programmes" en donnant des informations sur les fichiers (taille, dates, ...)man chmod Affiche le manuel dutilisation de la commande "chmod"mkdir sources Crée le répertoire "sources"more exemple.c Affiche, page par page, le contenu du fichier "exemple.c"mv exemple.c TP1.c Renomme le fichier "exemple.c" sous le nom "TP1.c"ps -aux Sous système V, donne la liste de tous les processus actifspwd Retourne la référence absolue du répertoire courantrlogin -l martin champagne Établit une connexion sur la machine champagne, sous le login de martintelnet champagne Établit une connexion sur la machine champagnerm exemple.c Supprime le fichier "exemple.c"rmdir sources Supprime le répertoire "sources"sleep 10 Attend 10 secondessort -r TP1.c Affiche le fichier "TP1.c", les lignes étant triées en ordre inversetalk champagne@cal.enst.fr Lance une conversation sur la machine "champagne@cal.enst.fr"tar cf sources.tar sources Crée une archive, de nom "sources.tar", du contenu du répertoire "sources" Extrait le contenu dune archive, de nom "sources.tar", danstar xvf sources.tar sources le répertoire"sources". Lécran affiche les noms des fichiers au fur et à mesure de leur désarchivage. Larchive est conservée.touch exemple.c Modifie la date de dernier accès au fichier "exemple.c" à la date courantetty Donne le nom du terminaluname Affiche, dans lordre, le nom du système dexploitation, le nom et la release du système de la machineuniq exemple.c uniques.c Recopie le fichier "exemple.c" dans "uniques.c" en supprimant les lignes identiquesuudecode fichieruuencode fichier -indication >fichier encodéw martin Donne une idée de lutilisation de la machine faite par lutilisateur msrtinwhereis gcc Retourne le chemin complet daccès à tous les répertoires contenant la commande gcc------------------------------------------- --------------------------------------- 31Introduction à l’utilisation du système Unix Yahya SLIMANI
  32. 32. which gcc Retourne le chemin complet daccès à la commande gccwho (am i) Retourne le nom des utilisateurs qui ont ouvert une session sur cette machine LA PROGRAMMATION SHELL SOUS UNIX1. Notions sur la programmation ShellUn shell, quel quil soit, peut exécuter des commandes contenues dans un fichier texte (fichierordinaire). Un fichier contenant des commandes pour le shell est appelé un script. Cest en fait unprogramme écrit dans le langage du shell. Ce langage comprend non seulement les commandes quenous avons déjà vues (commandes Unix), mais aussi des structures de contrôle (instructionsconditionnelles, boucles et d’autres instructions spécifiques).Pour la programmation du shell, nous allons utiliser le shell sh, qui est le plus répandu et standard2. Créer un scriptUn script shell est un fichier en mode texte. Cest-à-dire que ce nest pas un fichier binaire,exécutable directement par la machine, mais il doit être interprété.3. Linterprétation dun scriptLinterprétation signifie que chaque commande contenue dans un script doit être lue par unprogramme, appelé interpréteur ; linterpréteur analyse chaque commande du script et l’exécute.4. Lédition dun scriptUn script étant un fichier en mode texte, il doit être créé avec un éditeur de texte, comme parexemple vi.5. Rendre un script exécutablePour que le shell sache comment linterpréter, un script shell doit commencer par la ligne: # !/bin/shIl doit aussi être exécutable (droit x). Le #!/bin/sh sur la première ligne indique que ce script doitêtre exécuté par le shell sh dont on indique le chemin daccès. Pour rendre un fichier exécutable,tapez : chmod u+x nom-fichier-script6. Spécifier le chemin dune commandePour que le shell comprenne où chercher votre commande, il faut donc spécifier lemplacement dela commande en donnant son chemin, quil soit absolu : /home/student/nom-fichier-scriptou relatif : ./nom-fichier-script------------------------------------------- --------------------------------------- 32Introduction à l’utilisation du système Unix Yahya SLIMANI
  33. 33. ou encore sous la forme : sh nom-fichier-script7. Principes généraux des scripts shell Un script shell est avant tout une succession de commandes, comme celles que nous écrivonsdans une fenêtre de type Terminal ; sauf que ces commandes nous les rassemblons dans un fichierpour les exécuter dans l’ordre où elles sont écrites dans le script.8. CommentairesPresque tous les langages informatiques autorisent dinsérer des commentaires ; le shell néchappepas à la règle. Pour cela, il suffit de faire précéder chaque ligne de commentaire du caractère « # ».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 echoMaintenant que vous savez comment on peut exécuter un script, il sagit de le remplir...Commençons par ce quil y a de plus simple : afficher du texte, comme par exemple « Ceci est unexemple de fichier script ! »Ecrivez ce fichier script et appelez le script1 #!/bin/sh # Fichier "Exemple" echo " exemple de fichier script !"Exécutez ensuite ce script, en tapant : $ ./script1 exemple de fichier script !Autre exemple de fichier script (écrivez-le et exécutez-le). #!/bin/sh # Fichier "bonjour" echo "Bonjour... "------------------------------------------- --------------------------------------- 33Introduction à l’utilisation du système Unix Yahya SLIMANI
  34. 34. echo "Comment allez-vous ?"10. Annuler le retour chariotSi vous voulez annuler le retour chariot qui a lieu par défaut à la fin de toute commande echo, ilfaut utiliser loption -n. Le programme sera alors : #!/bin/sh echo -n "Bonjour..." echo "Comment allez-vous ?"Vous aurez comme résultat : Bonjour... Comment allez-vous ?11. Lecture de valeurs de variables à partir du clavier : commande readLa commande Unix read permet de lire des valeurs à partir du clavier. La commande read doit êtresuivie d’un nom de variable, non précédé du signe dollar. Cette variable contiendra la valeurintroduite à partir du clavier12. Lire plusieurs variablesLa commande read permet également de lire plusieurs variables. Il suffit pour cela dindiquer à lasuite les noms des différentes variables. Exemple : #!/bin/sh # Fichier "administration" echo "Écrivez votre nom puis votre prénom :" read nom prenom echo "Nom : $nom" echo "Prénom : $prenom" Vous obtiendrez comme résultat : Écrivez votre nom puis votre prénom : Nom : Tounsi------------------------------------------- --------------------------------------- 34Introduction à l’utilisation du système Unix Yahya SLIMANI

×