From 210117162d70b0b9df37e310a4e29bcd79cb011c Mon Sep 17 00:00:00 2001 From: meles Date: Mon, 30 May 2005 12:12:40 +0000 Subject: [PATCH] =?UTF-8?q?Bap:=20-=20titres=20des=20deux=20pages=20sur=20?= =?UTF-8?q?les=20accents=20;=20-=20compl=C3=A9ments=20et=20d=C3=A9tails=20?= =?UTF-8?q?sur=20le=20shell.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unix/accents-base.tml | 4 +- unix/accents.tml | 4 +- unix/shell.tml | 180 +++++++++++++++++++++++++++++++----------- 3 files changed, 139 insertions(+), 49 deletions(-) diff --git a/unix/accents-base.tml b/unix/accents-base.tml index 710482f..193e369 100644 --- a/unix/accents-base.tml +++ b/unix/accents-base.tml @@ -4,7 +4,7 @@ "tuteurs://DTD/tml.dtd"> - Les accents + Accents @@ -230,7 +230,7 @@ scolaire 1999-2000.
Auteur : Dominique Quatravaux, Émilia Robin. Dernière -modification le . +modification le .
diff --git a/unix/accents.tml b/unix/accents.tml index b3681d5..79c1f53 100644 --- a/unix/accents.tml +++ b/unix/accents.tml @@ -4,7 +4,7 @@ "tuteurs://DTD/tml.dtd"> -Les accents sur Sun +Accents (Sun) @@ -195,7 +195,7 @@ m
-Auteur : Émilia Robin. Dernière modification le +Auteur : Émilia Robin. Dernière modification le
diff --git a/unix/shell.tml b/unix/shell.tml index afd75a7..3eb6d89 100644 --- a/unix/shell.tml +++ b/unix/shell.tml @@ -14,10 +14,11 @@

Le mot shell signifie « coquille » en anglais. Il -s'agit du programme que vous utilisez régulièrement à l'ENS, et qui -interprète les commandes. Par exemple, vous y tapez pine ou -mutt, forum, cc, -mozilla, etc. +s'agit du programme que vous utilisez régulièrement sur les machines +Unix de l'ENS (que ce soient les Sun, les PC sous FreeBSD ou autres +dérivés d'Unix), et qui interprète les commandes. Par exemple, vous y +tapez pine ou mutt, forum, +cc, mozilla, etc.

@@ -167,6 +168,7 @@ Nous aurons alors :

Quels programmes utilisent le langage du shell ?

+

Les scripts shell

La répétition de commandes complexes en ligne de commande du shell est rapidement fastidieuse ; aussi est-il très pratique de connaître @@ -174,6 +176,8 @@ les bases de la programmation de scripts shell. Les scripts servent automatiser ou systématiser des tâches.

+ +

Le script .profile

Il existe un script spécial, qui est exécuté au moment où on se connecte. Ce script est contenu dans le fichier $HOME/.profile. C'est ce @@ -187,10 +191,13 @@ config conscrits. Il est n options.

+

Le script .xinitrc

Il existe encore le script .xinitrc, qui lance X ; X est le gestionnaire de fenêtres classique sous Unix.

+ +

Créer ses propres scripts

Le nombre de scripts possibles est illimité ; vous pouvez en créer autant que vous voulez, selon vos besoins : c'est ainsi que l'on @@ -205,18 +212,33 @@ l'inverse. jokers

-Il est parfois ennuyeux d'avoir à taper un nom complet de fichier comme -nabuchodonosor. Il est encore plus ennuyeux d'avoir à taper une -liste de fichier pour les donner en arguments à une commande, comme : +Il est souvent ennuyeux d'avoir à taper une longue liste de fichiers +pour les donner en arguments à une commande, comme :

cc -o foo bar.c gee.c buz.c gog.c

Pour éviter ces problèmes, on peut utiliser des jokers -(wildcards en anglais). +(wildcards en anglais). Pourquoi ce nom ? Eh bien, dans +certains jeux de cartes, le joker permet de remplacer n'importe quelle +carte ; dans le shell, les jokers permettent de remplacer n'importe +quel caractère ou n'importe quelle séquence de caractères.

+

+Il existe principalement trois types de jokers : +

+ + +

L'étoile : *

@@ -271,44 +293,83 @@ affiche (La commande echo se contente d'afficher ses arguments.)

+

&icone.attention; Attention :

+
+ +
+

+Interlude : comment effacer un fichier nommé +?* ? On ne peut pas taper rm ?* car le shell +remplace ?* par la liste de tous les fichiers du répertoire +courant. On peut taper rm -i * qui supprime tous les +fichiers, mais en demandant confirmation à chaque fichier. On répond +n à toutes les questions sauf rm: remove  ?*. +Autre méthode: utiliser les mécanismes de citation. +

+
+ +

Contourner les jokers : la citation (quotation)

+ +

+Avec tous ces caractères spéciaux, comment faire pour passer des +arguments bizarres à une commande ? Par exemple, comment faire +afficher un point d'interrogation suivi d'une étoile et d'un dollar par +echo ?

+ +

+On ne peut pas les taper directement dans la ligne de commande (ici, +avec le shell zsh), car le shell essaye de les interpréter +comme des jokers : +

+ +
chaland ~ echo ?*$
+zsh: no matches found: ?*$
+ +

Il faut donc indiquer au shell de ne pas interpréter ces caractères +comme des jokers. Pour cela, nous allons utiliser des mécanismes fournis +par le shell : les quotations (mot anglais +signifiant citation). +

+ +

+Les mécanismes de citation sont les suivants : +

+ + -

-Interlude: comment effacer un fichier nommé ?* ? On ne peut -pas taper rm ?* car le shell remplace ?* par la -liste de tous les fichiers du répertoire courant. On peut taper rm -i - * qui supprime tous les fichiers, mais en demandant confirmation à -chaque fichier. On répond n à toutes les questions sauf -rm: remove  ?*. -Autre méthode: utiliser les mécanismes de quotation. -

-

Quotation

- -

-Avec tous ces caractères spéciaux, comment faire pour passer des arguments -bizarres à une commande ? Par exemple, comment faire afficher un point -d'interrogation suivi d'une étoile et d'un dollar par echo ? -Le shell fournit des mécanismes pour ce faire. Ce sont les -quotations. -

-

Le backslash (\)

@@ -372,10 +433,11 @@ de savoir si

Les backquotes (`)

-Dernière forme de quotation: `commande`. Le shell -exécute la commande indiquée entre backquotes, lit la sortie de la -commande mot par mot, et remplace ` commande -` par la liste de ces mots. Exemple : +Dernière forme de citation : `commande`. Le +shell exécute la commande indiquée entre backquotes, lit la +sortie de la commande mot par mot, et remplace ` +commande ` par la liste de ces mots. +Exemple :

@@ -396,9 +458,9 @@ commande it cmd
 /usr/local/bin/emacs
-

Entrée, sortie et redirection

+

Entrée et sortie

-

Entrée et sortie

+

Que sont l'entrée et la sortie d'une commande ?

Un programme consiste à traiter des données, et à renvoyer des données @@ -438,6 +500,9 @@ pas suivi des m sortie standard et la sortie d'erreur.

+ +

Résumé

+

Pour résumer, chaque commande a donc :