Initiation et utilisation de Linux pdf


Télécharger Initiation et utilisation de Linux pdf

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Initiation et utilisation de Linux support de formation complet

...

1.5 VUE G N RALE D’UNIX

Unix est un syst me multi–utilisateur «temps partag », c’est––dire qu’il est possible de connecter sous Unix plusieurs utilisateurs simultan ment. Chacun a à sa disposition l’ensemble des ressources du syst me, le partage tant effectu par d coupage du temps et r cup ration des temps morts d’entr e–sortie. Comme tout syst me multi–utilisateur, Unix comporte des m canismes d’identification et de protection permettant d’ viter toute interf rence (accidentelle ou malveillante) entre utilisateurs.

Unix est un syst me multit che, c’est––dire qu’un utilisateur peut lancer plusieurs t ches simultan ment. Un processus (ou t che) correspond à l’ex cution d’un programme à un instant donn , le programme tant en lui–m me quelque chose d’inerte rang sur disque sous la forme d’un fichier ordinaire ex cutable.

Le syst me de fichiers est un syst me hi rarchis arborescent. Il se retrouve sur beaucoup d’autres syst mes d’exploitation (GCOS, DOS, VMS...). Les entres–sorties sont g n ralis es. Les p riph riques sont consid r s, du point de vue de l’utilisateur, comme des fichiers.

Le syst me est crit à 99 % en C, ce qui facilite l’appel au noyau par des applica¬tions crites en langage C. Ce syst me a t crit de fa on à tre r ellement portable.

 Chapitre 2

Connexion d’un utilisateur

2.1 L’UTILISATEUR

Pour permettre à de nombreux utilisateurs de travailler sur la m me machine, Linux met en œuvre des m canismes d’identification des utilisateurs, de protection et de confidentialit de l’information, tout en permettant le partage contr l n cessaire au travail en groupe. Tout utilisateur est identifi par un nom (login name) et ne peut utiliser le syst me que si son nom a pr alablement d

t fini par l’administrateur du

syst me (ou super–utilisateur), dont le nom est g n ralement root. Ce dernier a tous les droits et aucune restriction d’acc s ne lui est applicable.

2.1.1 Connexion

Lors du d marrage d’une machine, plusieurs tapes se succ dent :

  • mise sous tension de la machine et de ses p riph riques,
  • bootstrap du syst me (charger le noyau Linux),
  • montage des disques,
  • v rification des syst mes de fichiers (fsck),
  • passage en multi–utilisateur,
  • lancement des services.

On obtient alors, affich e à l’ cran, l’invite “ login : ”

Le syst me Linux tant un syst me multi–utilisateur et multit che, plusieurs personnes sont connect es simultan ment et peuvent travailler sans interf rer les unes avec les autres. Cela n cessite un syst me de protection des fichiers propre à chaque utilisateur, syst me que nous d velopperons au chapitre 4.

 Ainsi pour qu’un utilisateur puisse travailler avec le syst me Linux, il doit tablir une connexion (on dit aussi ouvrir une session).

Lorsque vous avez install Linux, vous avez eu l’opportunit d’indiquer si vous vouliez utiliser un cran graphique (connexion en mode graphique) plut t qu’une console (connexion en mode texte) pour ouvrir une session. Bien que le mode texte soit utilis tout au long de cet ouvrage, except au chapitre 16, nous allons pr senter les deux m thodes de connexion.

Connexion en mode texte

Pour qu’un utilisateur puisse travailler sur le syst me, il doit s’identifier en indiquant tout d’abord son nom suivi de la touche (sur le clavier 102 touches, la touche ↵) apr s l’invite login :, puis son mot de passe suivi de la touche à la suite de l’invite passwd :.

Lorsque l’utilisateur saisit son mot de passe, les caract res saisis ne sont pas affi¬ch s à l’ cran (on dit qu’il n’y a pas d’ cho des caract res sur le terminal). Ce m ca¬nisme permet de garder la confidentialit du mot de passe.

Apparaît alors à l’ cran un certain nombre d’informations (informations g n - rales, date, arriv e de messages, date de derni re connexion). Puis le syst me lance un programme qui g n ralement est un interpr teur de commandes (shell). L’inter¬pr teur indique par une chaîne de caract res, appel e invite (ou prompt), qu’il est pr t à recevoir une commande.

A partir de ce moment, l’utilisateur est connect (il est entr en session). Exemple

Vous avez dix messages

Derniere connexion : Vendredi 08 Mai 2003 a 18 h 04 xstra>

Dans cet exemple, l’utilisateur a pour nom xstra et xstra> correspond l’invite (ou prompt) que nous utiliserons dans la suite de cet ouvrage.

Remarques

  • En cas d’erreur lors de la saisie du nom ou du mot de passe, le syst me donne à l’utilisateur la possibilit de recommencer.
  • Une erreur lors de la saisie du nom peut tre annul e par la combinaison de touches <ctrl–u>.

Connexion en mode graphique

La proc dure d’identification est la m me en mode graphique et en mode texte. Une invite en mode graphique login, parfois nomm username, demande votre nom que vous saisissez avec le clavier et validez avec la touche < return >. Puis apparaît une fen tre demandant votre mot de passe que vous devez saisir toujours suivi par la touche < return >, touche de validation de votre saisie. Comme en mode texte, ne soyez pas surpris, le mot de passe n’apparaît pas lors de sa saisie permettant ainsi la confidentialit . Cette tape est souvent source de difficult car vous croyez saisir votre mot de passe et en fait les caract res que vous tapez ne correspondent pas à votre souhait. Le syst me, en cas d’erreur de saisie du mot de passe, refusera votre connexion.

Apr s avoir r ussi votre connexion, c’est--dire votre combinaison valide « nom d’utilisateur et mot de passe », l’interface graphique X Window est d marr e (chapitre 16). Vous d couvrez alors un bureau semblable à la figure 2.1 dans GNOME.

Dans cet ouvrage, les exemples et exercices sont pr sent s en mode texte. Pour les r aliser en mode graphique, il faut ouvrir un terminal qui mulera une console en mode texte. Chaque distribution de Linux offre plusieurs mulateurs de terminal dont le plus classique est « xterm ». Un moyen commun à la plupart des distribu¬tions est de cliquer sur le bouton droit de la souris et de choisir dans le menu déroulant qui apparaît la ligne nouveau terminal (en anglais New Terminal ou xterm).

 FIGURE 2.1. BUREAU GNOME 2.0 DE LA DISTRIBUTION REDHAT 8.0.

 2.1.2 Mot de passe

Lors d’une premi re connexion, il est fortement conseill à l’utilisateur de s’attri¬buer un mot de passe. Ce mot de passe sera chiffr (le chiffrage est purement logi¬ciel et non inversible). Il sera impossible de le retrouver à partir du mot chiffr , m me pour le super–utilisateur (l’administrateur de la machine). Si l’utilisateur oublie son mot de passe, l’administrateur ne peut que le d truire pour lui permettre d’en d finir un nouveau.

Un utilisateur peut à tout moment changer son mot de passe, ou s’en attribuer un par la commande passwd. Lors du changement, il faut fournir l’ancien mot de passe.

Exemple

xstra> passwd

Changing password for xstra

(current) UNIX password:

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

Par la suite, lors des diverses connexions de l’utilisateur, la lecture du mot de passe se fera sans cho. Souvent seuls les huit premiers caract res du mot de passe sont pris en compte. L’administrateur peut imposer des contraintes sur le mot de passe (six caract res minimum, un caract re non alphab tique,...).

L’administrateur de la machine pourra de plus installer des programmes qui teste-ront vos mots de passe afin d’interdire par exemple les mots du dictionnaire, les pr noms, les mots identiques à votre login, etc. Ce point de s curisation de votre mot de passe sera vu au chapitre 15.

Lorsque le nom et le mot de passe sont corrects, login r cup re dans le fichier /etc/passwd toutes les informations utiles pour cet utilisateur.

Remarques

Si vous avez r alis vous-m me l’installation, une fois cette derni re termin e, connectez-vous au syst me en tant qu’administrateur (r pondre root au login :). Il faut imm diatement d finir un mot de passe pour cet utilisateur root aussi appel super-utilisateur. Ce mot de passe doit contenir plus de six caract res. Il vous permettra de vous connecter en tant qu’utilisateur root et ainsi d’avoir tous les droits sur le syst me. Mais attention il ne faut jamais l’utiliser comme un compte personnel. Il doit tre utilis pour r aliser des modifications dans votre syst me. C’est pourquoi la premi re action d’un administrateur est de cr er un compte personnel. Pour ceci, il suffit d’utiliser la commande useradd.

Exemple

root> useradd xstra § création du compte xstra

root> passwd xstra

 Changing password for xstra

(current) UNIX password:

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

Remarque

La commande useradd permet de cr er un utilisateur en pr cisant des informa¬tions associ es. Vous trouverez son d veloppement en annexe C.

2.1.3 Fichiers /etc/passwd et /etc/group

La liste des utilisateurs du syst me est g n ralement dans le fichier /etc/passwd. Ce fichier est accessible en lecture à tous les utilisateurs et contient, pour chaque utilisateur, les champs suivants :

. nom de connexion (login) de l’utilisateur,

. un caract re x

. le num ro de l’utilisateur (UID = user identifier),

. le num ro de groupe (GID = group identifier),

. [ commentaire ],

. le r pertoire d’accueil,

. [ programme à lancer ].

Lors de la connexion, le programme d sign est lanc ; g n ralement il s’agit d’un interpr teur de commandes (shell).

Remarque

Les points cit s entre crochets ne sont pas obligatoires.

Exemple

Voici un extrait du fichier /etc/passwd.

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:

daemon:x:2:2:daemon:/sbin:

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

ftp:x:14:50:FTP User:/home/ftp:

nobody:x:99:99:Nobody:/:

soline:x:518:504:Soline Waerzeggers:/home/soline:/bin/zsh

florent:x:519:504:Florent COLIN:/home/florent:/bin/bash

Un groupe d’utilisateurs rassemble un certain nombre d’utilisateurs pouvant faci-lement partager des fichiers. Ce groupe est r pertori dans un fichier (/etc/group) qui est constitu par :

. nom du groupe,

. un champ vide ou contenent un caract re x ou * . num ro du groupe (GID = group identifier), . [ liste des utilisateurs membres du groupe ].

Les notions d’UID et de GID sont importantes pour la protection des fichiers (il ne faut pas les changer inconsid r ment). Un utilisateur a un groupe principal de rattachement et peut appartenir à plusieurs autres groupes.

Exemple

Voici un extrait du fichier /etc/group.

root:x:0:root

bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm

reseau:*:504:soline,florent

2.1.4 D connexion En mode texte

Pour sortir de session, vous pouvez utiliser la commande exit. La d connexion est effective lorsqu’apparaît l’invite login :.

En mode graphique

Pour sortir de session, il faut s lectionner avec le bouton gauche de la souris le menu d marrer puis choisir la commande log out. La d connexion est effective lorsqu’apparaîtra l’invite graphique login.

2.2 LES SHELLS

Apr s toute entr e en session (login), le syst me positionne l’utilisateur dans son r pertoire priv (home directory ou r pertoire d’accueil), qui a t cr par l’administrateur du syst me au moment de l’ouverture de son compte et qui devient son r pertoire de travail courant (current working directory). Puis le syst me active l’interpr teur de commandes d sign dans le dernier champs du fichier /etc/passwd. Il existe plusieurs interpr teurs de commandes : le Bash, le TC–shell, et d’autres.

Historiquement, le Bourne–shell fut le premier et a donc fait partie de la premi re version d’Unix. Il a maintenu dans la version System V d’AT&T ainsi que dans la version Berkeley (BSD). Il existe d’autres shells tels que le TC–shell (Tenex C–shell) de souche Berkeley, le Z–shell totalement libre, et le Bash, shell standard sous Linux.

Le TC–shell est un descendant tr s am lior du C–shell d’origine Berkeley. Le shell standard de Linux est le Bash, descendant tr s am lior du Bourne–shell. Cet interpr teur de commandes est pr sent plus en d tail au chapitre 6.

2.2.1 TC–shell

Le TC–shell doit son nom au fait que sa syntaxe est inspir e du langage C. Il poss de des fonctionnalit s sup rieures à celles du Bourne–shell, entre autres :

  • un m canisme d’historique avec rappel et dition des commandes ;
  • la possibilit de cr ation d’alias ;
  • des possibilit s accrues pour le contr le de processus.

Il ex cute deux fichiers d’initialisation, qui sont les deux fichiers de commandes (scripts) du r pertoire priv de l’utilisateur : .cshrc et .login. Puis l’interpr - teur se met en attente d’une commande de l’utilisateur.



Le fichier d’initialisation .cshrc est ex cut lors de chaque appel au TC–shell. Il est destin à positionner des variables du TC–shell, à affecter pour certaines commandes des arguments implicites et à d finir d’autres commandes (alias). Il affecte une valeur:

  • à la variable prompt qui d finit l’invite,
  • la variable path qui contient les r pertoires de recherche des commandes,
  • aux variables n cessaires à la gestion de l’historique des commandes, etc.

Le fichier .login, qui est ex cut apr s le fichier .cshrc, une seule fois lors de la connexion, est destin à positionner des variables d’environnement de la session. Il contient les initialisations standard, principalement les caract ristiques du terminal utilis .

Les principales variables du TC–shell sont:

prompt valeur du prompt.

path pr cise le chemin d’acc s aux r pertoires contenant les principaux programmes.

home indique le r pertoire d’accueil de l’utilisateur.

En sortie de session, à l’aide de la commande exit, le fichier de commandes .logout est ex cut

2.2.2 Bash

Apr s une entr e en session (login) sur un syst me Linux, vous tes pris en charge par un interpr teur de commandes (shell) qui est le Bash (baste). A la connexion, avant l’interpr tation des commandes, c’est à dire apparition du prompt, le Bash ex cute les fichiers d’initialisation : /etc/profile et .bash profile.

Le fichier /etc/profile est g n ralement g r par l’administrateur syst me alors que le fichier .bash profile, se trouvant dans le r pertoire d’accueil (Home Directory), est à la disposition de l’utilisateur. L’existence (ou non), l’acc s en lecture d’un de ces fichiers, peut changer l’ordre d’acc s à ces fichiers ou à d’autres fichiers, .bash login par exemple (cf d tails au chapitre 6).

Ces fichiers permettent de modifier ou de cr er des variables internes au shell, ou des variables d’environnement, de cr er des fonctions, etc.

Les principales variables du Bash sont:

PS1 valeur du prompt.

PATH pr cise le chemin d’acc s aux r pertoires contenant les principaux programmes.

HOME indique le r pertoire d’accueil de l’utilisateur.

En sortie de session, à l’aide de la commande exit, le fichier de commandes .bash logout est ex cut s’il existe.

2.3 COMMANDES LINUX

Il existe sous Linux de nombreuses commandes dont on trouvera les plus courantes en annexe A et que nous pr senterons tout au long de cet ouvrage.

Une commande est compos e en premier d’un code mn monique (son nom proprement dit), suivi parfois d’options et/ou de param tres. Une option dans une ligne de commandes Unix est une lettre. Elle commence par un tiret "–". Sous Linux, les options peuvent tre de la forme :

-c c = caract re

--mot mot = un mot explicite

l’espace est le caract re s parateur des diff rents l ments d’une commande. Cette derni re est prise en compte et n’est interpr t e que lorsque l’utilisateur a tap la touche .

Remarque

Pour obtenir la totalit des options d’une commande, il faut faire appel à l’option help.

Exemple

xstra> ls –i § option i, style Unix

66 fich1 69 fich2

xstra> ls inode § option inode, style POSIX

66 fich1 69 fich2

Il est possible, à tout moment avant la saisie de , de modifier ou d’effacer une commande saisie au clavier et affich e à l’ cran. La touche (sur le clavier 102 touches, la touche F situ au-dessus du ) ou la combinaison de touches <ctrl–h> permet d’annuler le dernier caract re saisi et ainsi de modifier la commande. La combinaison <ctrl–u> permet d’effacer tous les caract res situ s à gauche du curseur.

Exemple

xstra> ls –lz § erreur de frappe : z en trop

  • la touche permet
  • d’annuler le dernier caractère

xstra> ls –l

L’interpr teur Bash permet de modifier des commandes d j ex cut es et de les relancer (chapitre 6).

Linux autorise la frappe anticip e des caract res, c’est––dire qu’il est possible de saisir une r ponse à une question sans que cette derni re soit apparue à l’ cran ( n’utiliser que lorsque l’on a une parfaite maîtrise du syst me).

L’ex cution d’une commande peut tre interrompue à l’aide de la combinaison <ctrl–c>. Si vous avez saisi une commande inconnue du syst me, ce dernier vous l’indiquera par un message d’erreur.

Exemple

xstra> date

Tue May 9 10:50:24 CEST 2000 xstra> dte

bash: dte: Command not found. xstra>

Si la commande existe, elle est ex cut e et affiche à l’ cran le r sultat. En cas d’une erreur d’option, le programme indique l’erreur à l’ cran et parfois affiche la liste des options disponibles.

Exemple

xstra> who

xstra pts/1 May 9 10:49 xstra pts/0 May 9 09:27 xstra> who c

who: invalid option c

Try `who help' for more information.

xstra>

Remarque

Pour les utilisateurs de machines Linux, il est formellement d conseill de red marrer la machine (couper le secteur, reset). En effet, un arr t brutal de Linux a pour cons - quence de rendre le syst me de fichiers incoh rent. Ainsi, si vous tes « plant », c’est– –dire si l’une de vos applications bloque l’ cran, que la combinaison de touches <ctrl–c> ne permet pas de d truire le programme, contrairement à ce que vous feriez avec le DOS, surtout n’ teignez pas l’ordinateur. Une solution existe: lancer un cran virtuel par la combinaison de touches <alt–ctrl–F2>. Dans cet cran, vous pourrez lancer des commandes de destruction de programmes et vous pourrez ainsi r cup rer la main.

2.4 LE TERMINAL

Il est possible sous Linux d’activer simultan ment plusieurs consoles de connexion. En mode texte, le basculement entre les consoles est obtenu par la combinaison de touches <alt–ctrl–Fx>, o Fx repr sente les touches de fonction F1 à F8 situ es sur le haut de votre clavier.

Remarque

Pour les utilisateurs de machines Linux, il est formellement d conseill de red - marrer la machine (couper le secteur, reset). En effet, un arr t brutal de Linux a pour cons quence de rendre le syst me de fichiers incoh rent. Ainsi, si vous tes «plant », c’est--dire si l’une de vos applications bloque l’ cran, que la combi¬naison de touches <ctrl–c> ne permet pas de d truire le programme, contrairement à ce que vous feriez avec le DOS, surtout n’ teignez pas l’ordinateur. Une solution existe: lancez un cran virtuel par la combinaison de touches <alt–ctrl–F2>. Dans cet cran, vous pourrez lancer des commandes de destruction de programmes et vous pourrez ainsi r cup rer la main.

Si vous tes en mode graphique et que vous ne pouvez plus d placer la souris, la combinaison de touches <alt–ctrl–backspace> permet de revenir à un mode texte. Le mode graphique est relanc à partir du mode texte par la commande startx.

2.5 EXERCICES Exercice 2.5.1

Apr s votre connexion au syst me, votre nom de login est jerome, modifiez votre mot de passe si vous estimez qu’il est trop facile à deviner.

Exercice 2.5.2

Vous ex cutez la commande suivante :

xstra> sleep 60

 Chapitre 3

Syst me de fichiers

3.1 L’ARBORESCENCE

Le syst me de fichiers constitue un l ment du syst

cl me Linux. C’est encore à

maints gards une des grandes forces de Linux. Vu par l’utilisateur, le syst me de fichiers est organis en une structure arborescente dont les nœuds sont des rper¬toires et les feuilles des fichiers ordinaires.

Les fichiers sont des r cipients contenant des donn es. Pour le noyau du syst me, ils ne contiennent qu’une suite d’octets plus ou moins longue. Linux en lui–m me ne connaît ni enregistrement ni structure de fichier. C’est aux programmes d’appli¬cation de les implanter et de les g rer. Le syst me Linux ne connaît que trois types de fichiers :

  • Les fichiers ordinaires (regular files). Ils servent à m moriser les programmes et les donn es des utilisateurs et du syst me.
  • Les fichiers r pertoires ou r pertoires (directories). Chaque r pertoire contient la liste et la r f rence des fichiers plac s sous son contr le et la r f - rence du r pertoire dont il d pend (r pertoire p re).
  • Les fichiers sp ciaux. Ils d signent les p riph riques, les tubes ou autres supports de communication interprocessus. Les fichiers sp ciaux associ s aux p riph riques peuvent tre caract res (terminaux) ou blocs (disque) ; les entres/sorties (E/S) se font soit caract re par caract re, soit bloc par bloc, un bloc tant compos de n caract res (512, 1024 ou 2048).

L’extension du syst me de fichiers aux p riph riques constitue une des grandes particularit s de Linux. Cela permet à un utilisateur de diriger les donn es produites par son application vers un fichier ou un p riph rique. Autre cons quence, les noms des fichiers et des p riph riques ob issent à la m me syntaxe et l’acc s aux p riph - riques est contr l par le m canisme de protection des fichiers.

Le syst me de fichiers est organis en une seule arborescence logique. Cet arbre est compos de r pertoires qui contiennent eux–m mes d’autres r pertoires, ou des fichiers. La figure 3.1 repr sente un exemple simplifi de cette arborescence.

3.2 LA CLASSIFICATION DES FICHIERS LINUX

Dans la pr sentation de la structure du syst me de fichiers au paragraphe pr c dent, nous avons voqu des fichiers de type r pertoire, des fichiers de type ordinaire et des fichiers sp ciaux.

La syntaxe d’un nom de fichier n’est pas tr s stricte. Il est recommand de limiter le nom d’un fichier à 14 caract res au plus et de n’utiliser que les lettres majuscules ou minuscules (attention, Linux diff rencie les majuscules des minuscules), les chif¬fres et quelques autres caract res (le point ., le tiret –, le soulign ). Linux autorise jusqu’ 255 caract res pour le nom du fichier. La longueur minimum est de un caract re.

Les caract res sp ciaux suivants sont à proscrire absolument :

\ > < | $ ? & [ ] * ! " ‘ ( ) ` @ ~

De plus, les utilisateurs ayant des claviers fran ais doivent viter les caract res accentu s. En annexe B, vous trouverez la liste compl te des caract res sp ciaux à proscrire, car ils ont une signification particuli re pour le syst me.

Le point (.) joue un r le particulier dans le nom d’un fichier. Les fichiers dont les noms commencent par un point (.), comme .profile, sont des fichiers cach s (c’est– –dire qu’ils n’apparaissent pas dans la liste des fichiers en tapant la commande ls sans argument).

Le point sert galement à suffixer les noms des fichiers. Cette pratique est tr s recommand e, car elle facilite la gestion des fichiers. Il est vrai qu’il n’existe pas de syntaxe pr cise ; il existe toutefois un certain nombre de conventions :

essai.c fichier source C

include.h include de C

essai.o fichier binaire objet

essai.f fichier source fortran

essai.c.old convention autoris e mais personnelle

(fichier source C, ancienne version).

Certaines commandes de Linux s’appliquent à plusieurs fichiers. Dans ce cas, plut t que de les num rer, il est plus commode de les d signer par un nom g n - rique en utilisant des caract res sp ciaux, pour remplacer un ou plusieurs caract res dans le nom du fichier (voir paragraphe 7.7).

...

Chapitre 5 diteurs de texte

L’ diteur de texte de base de Linux est un programme appel ed, crit par Ken Thompson. ed a contu vers 1970 pour fonctionner dans un environnement de petites machines. Malgr les volutions technologiques, ed n’a pas chang et il est aujourd’hui toujours disponible sur tous les syst mes Linux.

Sur Linux, on dispose bien s r de l’ diteur ed, mais aussi d’un autre diteur ligne ex et d’un diteur plein cran vi. L’ diteur ex poss de les m mes commandes que l’ diteur ed à quelques am liorations pr s ; notamment les messages d’erreur sont donn s explicitement au lieu d’un simple ? sur ed.

Il existe d’autres diteurs, en mode caract res (emacs,..) et en mode graphique X11 (nedit,...). Nous ne pr sentons ici que l’ diteur vi et un sous-ensemble des commandes de ex (recherche, substitution, copie, etc.). En effet, il est int ressant de connaître cet diteur car il est disponible sur tous les syst mes Linux. Cet diteur nous permettra, par exemple, l’ criture rapide de fichiers de commandes (voir chapitre 8).

Sous Linux, la commande vi lance l’ diteur vim correspondant à une version am lior e de vi.

L’ diteur vi, fonctionnant en pleine page, est essentiellement utilis pour la cr a¬tion de nouveaux fichiers ou pour des modifications ponctuelles. ex est par contre plus adapt pour les recherches de motif ou pour des modifications syst matiques. Comme sous vi, il est possible d’ex cuter des commandes de ex en les faisant pr c der d’un « : », ce sont les commandes de ex que nous utiliserons pour effec¬tuer un traitement global (liste et effacement s lectif, substitution), les mouvements ou copies de groupes quelconques de lignes, la sauvegarde du fichier en cours d’ dition ou la sortie de vi.

La figure 5.1 indique les cinq modes de fonctionnement de l’ diteur vi et les transitions possibles entre ces modes. Apr s l’appel de l’ diteur, vi est en mode

 FIGURE 5.1. REPR SENTATION SYNOPTIQUE DU FONCTIONNEMENT DE L’ DITEUR VI.

commande, c’est--dire en attente d’une commande. Depuis ce mode, il est possible de passer:



  • en mode insertion, le retour au mode commande tant r alis à l’aide de la touche ,
  • en mode recherche de motif,
  • en mode commande de l’ diteur ex,
  • en mode ex cution d’une commande Linux.

 Linux du fait que vi a connaissance du type de terminal sur lequel vous travaillez gr ce à la variable d’environnement TERM (voir chapitre 6). Cette variable indique à vi les caract ristiques du terminal.

Remarque

Si la variable d’environnement TERM n’a pas positionnte, à l’appel de vi, un

message d’erreur vous indiquera que l’ diteur ne reconnaît pas le type de terminal (voir chapitre 6).

5.1 L’ DITEUR PLEINE PAGE VI 5.1.1 Appel de l’ diteur et sorties

vi nom de fichier appel de l’ diteur ; le curseur se positionne au

d but du fichier,

vi r nom fichier idem mais pour r cup rer un fichier apr s un

probl me machine,

vi R nom fichier appel de l’ diteur mais avec verrouillage du

fichier en lecture seule,

ZZ (ou :x) mise à jour du fichier et sortie de l’ diteur,

:wq idem à ZZ,

:q! sortie de l’ diteur sans modification du fichier.

5.1.2 Renseignements utiles

:set ts affiche le nombre de caract res d’une tabulation,

:set ts=n fixe la tabulation à n caract res (par d faut n=8),

:set nu affiche les num ros de lignes,

:set nonu supprime les num ros de lignes,

:.= affiche le num ro de la ligne courante,

(ou :f) affiche le nom et l’ tat du fichier.

:e! R dite le fichier tel qu’il est sur le disque

5.1.3 D placements de la page affich e

page pr c dente (back),

page suivante (forward).

5.1.4 D placements du curseur

La saisie d’un des caract res suivant nous am ne dans la position indiqu e.

 G Derni re ligne,

nG Ligne n,

H Haut de l’ cran (high),

M Milieu de l’ cran (middle),

L Bas de l’ cran (low),

n n caract res vers la droite,

0 (zéro) D but de ligne,

^ Premier caract re non blanc,

$ Dernier caract re de la ligne,

t (ou k) Ligne pr c dente,

← (ou h) Vers la gauche,

→ (ou l) Un caract re vers la droite,

↓ (ou j) Ligne suivante,

n n lignes vers le bas,

+ ou D but de la ligne suivante,

D but de la ligne pr c dente.

5.1.5 Recherche

/motif recherche motif vers l’avant,

?motif recherche motif vers l’arri re,

n r p te la derni re commande de recherche.

Exemple

Voici un texte en vi :

5.1.6 Insertion

Le mode insertion est obtenue en tapant au choix I, i, a, A, o, O suivi du texte à ins rer et termin par la touche . Cette touche remet l’ diteur en mode commande (en cas de doute, taper encore une fois ; le signal sonore fera savoir que l’on n’est plus en mode insertion). Les commandes d’insertion sont:

i... avant le curseur,

I... en d but de ligne courante,

a... apr s le curseur,

A... en fin de ligne courante,

o... au-dessous de la ligne courante,

O... au-dessus de la ligne courante.

5.1.7 Caract res sp ciaux en mode insertion

ou efface le dernier caract re ins r ,

annule le texte ins r de la ligne courante,

permet d’ins rer le caract re sp cial qui suit,

5.1.8 Remplacement

r# remplace le caract re courant par le caract re #,

R... remplace la chaîne de caract res courante par les carac

t res compris entre R et ,

~ bascule de MAJUSCULE en minuscule et inversement,

. r p te la derni re commande modifiant un texte.

5.1.9 Effacement

x du caract re sous le curseur,

3x de trois caract res à partir de la position du curseur,

dd de la ligne o se trouve le curseur,

4dd de quatre lignes à partir de la ligne o est le curseur.

5.1.10 Restitution

u derni re modification (undo),

U la ligne courante avant modification (sauf dd),

p derni re commande d’effacement.

 5.1.11 Mouvements de lignes

J joint la ligne courante et la suivante,

r brise en deux lignes à partir de la position du curseur,

yy place la ligne courante dans le tampon de travail,

dd idem avec effacement de la ligne,

10yy place dix lignes dans le tampon de travail,

10dd idem avec effacement des dix lignes,

p ins re le contenu du tampon sous la ligne courante,

”ayy place la ligne courante dans le tampon a (un tampon

nomm se conserve au changement de fichier),

”anyy place n lignes dans le tampon a,

”ap place le contenu du tampon a apr s la ligne courante.

5.1.12 D calage

>> (ou <<) d calage vers la droite ou vers la gauche de toute

la ligne courante de m positions, m tant d fini par la commande :set sw=m (par d faut m=8),

n>> (ou n<<) d calage des n lignes suivantes,

:n1,n2 >> (ou <<) d calage des lignes n1 à n2.

5.2 LE MODE COMMANDE DE L’ DITEUR EX SOUS VI

L’ diteur ligne ex est capable de r aliser sur un texte les op rations suivantes :

  • recherche d’une chaîne de caract re (motif),
  • d placement et duplication de lignes,
  • substitution de chaînes de caract res,
  • manipulation de fichier.

L’ diteur vi passe en mode ex lorsque l’utilisateur frappe le caract re : en mode commande vi.

Le passage en mode ex est mat rialis par l’apparition du caract re : sur la derni re ligne de l’ cran, indiquant l’attente d’une commande ex. Cette commande est valid e par la touche .

5.2.1 Listage s lectif et recherche de motif

 5.2.2 D placement et duplication de lignes

:i,jmok d place les lignes i à j en les mettant apr s la ligne k,

:i,jcok copie les lignes i à j en les mettant apr s la ligne k.

5.2.3 Substitution de chaînes de caract res

:s/old/new[/p] substitution du premier old de la ligne courante

par new,

:s/old/(&)[/p] substitution du premier old de la ligne courante

par (old),

:s/old/new/gp substitution de tous les old de la ligne courante

par new,

:i,js/old/new/p substitution des premiers old des lignes i à j par

new,

:i,jg/old/s//new/p idem, mais toutes les lignes modifi es sont list es,

:i,js/old/new/g substitution de tous les old des lignes i à j par

new,

:g/old/s//new/g substitution des old de tout le fichier par new,

:g/old/s//new/gp idem, et liste toutes les lignes modifi es,

:[n]s[g] r p te la plus r cente substitution sur la ligne

courante ou la ligne num ro n,

:u undo, annule la plus r cente substitution r alis e.

Dans les exemples ci-dessus, i et j peuvent prendre les valeurs suivantes :

  • . la ligne courante
  • $ la derni re ligne
  • %tout le fichier

Les expressions r guli res utilis es en substitution comportent / \ & . * [ ] ^ et $ (voir chapitre 14).

/ s parateur de chaînes (peut tre un caract re quelconque, sauf si

risque de confusion),

\ caract re de neutralisation (\& d signe le caract re &),

& chaîne de caract res à remplacer (la derni re chaîne connue),

  • un caract re quelconque ( quivalent à ? dans les commandes de l’interpr teur shell),

* un nombre quelconque de fois le caract re qui le pr c de,

[ ] n’importe quel caract re dans l’intervalle [ ]

(ex : [1–4]=[1234]),

 ^ d but d’une ligne (ou n gation si ce caract re se trouve à l’int rieur et

au d but de [Il...]),

$ fin d’une ligne (s/$/./ ajoute un point à la fin de la ligne courante).

5.2.4 Insertion et criture de fichier

:n rnom de fichier ins re le fichier nomm apr s la ligne n,

:r nom de fichier ins re le fichier nomm apr s la ligne courante,

:r!cmd idem, mais avec la sortie de la commande cmd,

:w!nom de fichier cr e un nouveau fichier avec le contenu du fichier courant,

:i,jw!nom de fichier idem, avec les lignes i à j du fichier courant,

:w>>nom de fichier ajoute le ficher courant à la fin du fichier nomm ,

:w!nom de fichier copie le fichier courant sur le fichier nomm .

5.3 PERSONNALISER VI

Le fichier d’environnement .exrc permet de personnaliser le fonctionnement de vi. Ce fichier se trouve dans le r pertoire d’accueil (HOME). Il contient les commandes permettant de positionner les options de vi, et de cr er de nouvelles commandes.

5.3.1 Les commandes set

La commande set permet de positionner les options de vi. Sa syntaxe g n rale est:

:set option[ valeur]

Dans vi, la commande :set all affiche les param tres positionn s à l’aide de la commande set.



155