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 :
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
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.
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.
E
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
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. Vo
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:
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 ].
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 :
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:
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).
Les principales variables du Bash sont:
PS1 valeur du prompt.
PATH pr cise le chemin d
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 tro
xstra> ls –l
L’interpr teur Bash permet de modifier des commandes d j ex cut es et de les relancer (chapitre 6).
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
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 :
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
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
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 lect
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:
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
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 f
: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
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,
← (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
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.
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 :
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,
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 :
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 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
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.