1. Description des commandes UNIX.
Un "shell" est un programme exécutable permettant d'interpréter
les commandes du système d'exploitation UNIX. Il existe plusieurs
versions de cet interpréteur : le "shell de Bourne",
le "Korn shell", le "C shell", etc...
On se placera dans le cadre du shell de Bourne.
1.1. Les commandes UNIX les plus utiles.
Dans les six séances de travaux dirigés et les trois séances
de travaux pratiques restantes, trente-cinq commandes UNIX, parmi les plus
utiles, seront décrites. Le tableau ci-dessous donne les noms de ces
trente-cinq commandes, ainsi que les séances de travaux dirigés ou de travaux pratiques où
elles seront décrites :
Le code exécutable de toutes ces commandes est situé dans le répertoire /usr/bin.
Néanmoins, un certain nombre de ces commandes (par exemple : echo)
existent également en tant que "commandes internes",
c'est-à-dire que le code exécutable de ces commandes est également inclus
dans le code de l'interpréteur de commandes lui-même. Dans ce cas, c'est la version "interne"
qui est lancée, sauf si on écrit le chemin absolu de la commande externe
(par exemple : /usr/bin/echo).
C'est ce qui explique que les commandes internes puissent différer
d'un shell à l'autre, alors que les commandes externes sont les mêmes pour tous les shells.
1.2. Format d'une commande UNIX.
Le format d'une commande UNIX suit toujours le modèle suivant
:
Chaque option est précédée d'un
caractère - (plusieurs options peuvent
être précédées d'un seul caractère -,
si elles sont "collées"). Les options
et les arguments forment ce que l'on appelle les "paramètres"
de la commande (la liste des paramètres peut être vide pour
certaines commandes). L'ordre des paramètres d'une commande est relativement
libre, quoique soumis, quand même, à quelques contraintes.
1.3. Les filtres et les autres commandes.
Outre les paramètres (options et arguments), certaines commandes
peuvent recevoir des données par l'intermédiaire d'une "unité
logique" particulière, appelée "entrée standard"
et notée stdin. Par défaut, "l'unité
physique" correspondant à stdin est le clavier,
mais on peut modifier cette unité physique par "redirection
de l'entrée standard" (cf. le paragraphe 9).
Par ailleurs, outre l'effet produit par leur exécution, certaines
commandes peuvent fournir des résultats à deux unités
logiques particulières, appelées "sortie standard"
et "sortie standard des erreurs", et notées respectivement
stdout et stderr. Par défaut, l'unité
physique correspondant à ces deux unités logiques est l'écran,
mais on peut également effectuer des "redirections de la sortie
standard" (cf. le paragraphe 10) et des "redirections de
la sortie standard des erreurs" (cf. le paragraphe 11).
Une commande qui peut recevoir des données par l'intermédiaire de stdin
et fournir des résultats à stdout est appelée
un filtre. Les filtres présentent le gros avantage de pouvoir
être "branchés" les uns à la suite des autres
: en redirigeant la sortie standard du filtre filtre1 sur
l'entrée standard du filtre filtre2, on peut réaliser
un nouveau filtre, dont l'entrée standard
est l'entrée standard de filtre1 et la sortie standard,
la sortie standard de filtre2 (cf. le paragraphe 10).
Remarquons enfin que certaines commandes, bien que ne pouvant pas fournir
de résultats à stdout, peuvent recevoir des
données par l'intermédiaire de stdin. Une telle commande peut être
branchée sur la sortie d'un filtre, mais en aucun cas sur
l'entrée d'un filtre. On dira d'une telle commande "qu'elle
peut apparaître en fin de branchement". De façon équivalente, certaines commandes, bien que ne
pouvant pas recevoir de données par l'intermédiaire de stdin, peuvent
fournir des résultats à stdout. Une telle
commande peut être branchée sur l'entrée d'un
filtre, mais en aucun cas sur la sortie d'un filtre. On dira d'une
telle commande "qu'elle peut apparaître en début de branchement".
1.4. Conventions utilisées pour la description d'une commande
UNIX.
Les conventions suivantes ont été adoptées quant
à la description des commandes UNIX :
Caractéristiques :
- L'étymologie du nom de la commande est indiquée.
- Un descriptif rapide du rôle de la commande est donné.
- Le cas échéant, l'un des trois messages suivants, concernant
la commande, apparaît :
- Cette commande est un filtre.
- Elle peut apparaître en fin de branchement.
- Elle peut apparaître en début de
branchement.
- Le cas échéant, le message suivant peut également apparaître :
- Il s'agit d'une commande interne, qui peut donc
fortement varier d'un shell à l'autre.
Syntaxes :
Le ou les formats standard de la commande sont fournis, en utilisant
les conventions suivantes :
- La présence de crochets [] indique que le ou
les éléments situés à l'intérieur des
crochets sont facultatifs.
- [-ab] ou [-a] [-b] signifient que la
commande peut être tapée
avec les options -a ou -b
, et que ces deux options peuvent être utilisées
simultanément, en écrivant soit -ab
, soit -a -b
- [-c|-d] signifie que la commande peut être
tapée avec les options -c ou -d,
mais que ces options ne peuvent pas être utilisées simultanément.
- Les points de suspension ... indiquent que l'argument
situé juste avant peut être répété autant
de fois que nécessaire. Il faut bien distinguer les deux cas suivants
:
- nom_fichier [...] désigne une liste non vide
de fichiers.
- [nom_fichier ...] désigne une liste de fichiers
éventuellement vide.
- Il peut arriver qu'une option et un argument ne doivent pas être séparés
par un espace. Dans ce cas, l'option est écrite en gras, et l'argument
en "maigre", comme par exemple dans -bliste
- Lorsqu'un argument doit être précédé d'un
caractère -, comme par exemple dans -signal,
l'argument est écrit en "maigre" pour que les caractères
qui le composent ne soient pas confondus avec une liste d'options.
Description :
Exemples :
Un ou plusieurs exemples significatifs d'appels de la commande sont
donnés, suivis d'un commentaire indiquant l'effet produit. Dans
ces exemples, on convient de noter en majuscules les noms de répertoires,
et en minuscules les noms de fichiers.
Codes de retour :
Les codes de retour (entiers) renvoyés par la commande dans les
situations les plus courantes sont explicités.
Remarques :
Pour certaines commandes, des remarques apparaissent en conclusion.
2. Les métacaractères du shell.
Les métacaractères du shell permettent :
- De construire des listes de noms de fichiers dont les noms correspondent à un certain modèle
:
- * désigne une chaîne de caractères
quelconque (éventuellement vide) ne commençant pas par un caractère .
et ne contenant pas de caractère /
- ? désigne un caractère quelconque,
à l'exception d'un caractère . situé en début de nom de fichier
et d'un caractère /
- [...] désigne les caractères entre crochets,
définis par énumération ou par intervalle :
- [Aa] désigne les caractères A
et a
- [0-9a-zA-Z] désigne un caractère
alphanumérique quelconque.
- [!0-9] désigne l'ensemble des caractères
qui ne sont pas des chiffres.
TD/*.??? désigne la liste des fichiers situés dans le sous-répertoire
TD du répertoire courant, dont le nom comporte une extension composée de trois caractères exactement.
- De modifier l'interprétation d'une commande :
- ; sépare deux commandes (ou plus) situées sur une même ligne.
- ' délimite une chaîne de caractères
contenant des espaces (à l'intérieur, tous les métacaractères
perdent leur signification).
- " délimite une chaîne de caractères
contenant des espaces (à l'intérieur, tous les métacaractères
perdent leur signification, à l'exception des métacaractères
`, $ et \).
- ` "capture" la sortie standard pour former
un nouveau paramètre ou une nouvelle commande (cf. le paragraphe 10.4).
- $ retourne la valeur de la variable qui suit (il ne
doit pas y avoir d'espace entre le métacaractère $
et le nom de la variable) et joue également un rôle très
particulier vis-à-vis des "paramètres d'un shell"
(cf. le paragraphe 8 de la séance 12 de travaux dirigés).
- \ protège le caractère qui suit, que ce
soit un caractère normal ou un métacaractère du shell
(sauf à l'intérieur d'une chaîne délimitée par des ').
À l'intérieur d'une chaîne de caractères délimitée par des ", le caractère
\ n'est interprété comme un métacaractère que s'il est suivi de l'un des quatre
métacaractères ", `, $ ou \. Dans tous les
autres cas, il n'est pas interprété comme un métacaractère, c'est-à-dire que, par exemple,
la chaîne "\*" est interprétée de la même façon que la chaîne '\*'.
3. La commande ls.
Caractéristiques :
- ls vient de "list"
("lister").
- Cette commande permet d'afficher le contenu d'un ou de plusieurs répertoires,
ou des renseignements concernant un ou plusieurs fichiers.
- Elle peut apparaître en début de
branchement.
Syntaxes :
- ls [-RadLCxmlnogrtucpFbqisf1AM] [nom_répertoire ...]
- ls [-RadLCxmlnogrtucpFbqisf1AM] [nom_fichier ...]
- S'il n'y a aucun paramètre : la commande affiche le contenu
du répertoire courant.
- Si un nom de répertoire est passé en paramètre : la commande
affiche son contenu.
- Si un nom de fichier est passé en paramètre : la commande indique
si ce fichier est accessible.
Description :
- -a : affiche également les fichiers commençant
par le caractère . (fichiers "cachés").
- -l : affiche une première ligne indiquant la
taille totale du répertoire en nombre de "blocs" puis, pour
chaque sous-répertoire ou fichier accessible, ses principales caractéristiques
sur une ligne : nature (répertoire ou fichier), droits d'accès,
nombre de "liens", nom du propriétaire, nom du groupe du propriétaire, taille en octets,
date et heure de dernière modification, nom (qui est compris entre le 55ème
caractère et le 80ème caractère de la ligne). Si cette option est
utilisée et qu'un fichier est passé en paramètre, alors ces informations ne sont affichées que
pour ce fichier.
- Autres options : cf. la description de la commande ls,
en tapant : man ls
Exemple :
> ls -al
total 1224
drwxr-xr-x 9 durou tci 512
Dec 3 14:58 .
drwxr-xr-x 13 durou tci 512
Oct 6 17:21 ..
-rw-r--r-- 1 durou tci 7940
Sep 20 17:59 biblio.html
-rw-r--r-- 1 durou tci 8639
Oct 4 16:22 contact.html
drwxr-xr-x 2 durou tci 1536
Nov 29 09:17 ICONE
-rw-r--r-- 1 durou tci 11745
Sep 19 11:33 index.html
drwxr-xr-x 2 durou tci 2048
Dec 4 01:42 TD
drwxr-xr-x 2 durou tci 1024
Dec 3 18:12 TP
-rw-r--r-- 1 durou tci 12105
Dec 4 00:45 welcome.html
> |
Les répertoires . et ..
désignent respectivement le répertoire courant et le répertoire
père du répertoire courant. Ce sont des répertoires cachés qui
apparaissent systématiquement
lorsqu'on lance la commande ls -al
Codes de retour :
- Pas d'erreur : 0
- Opération interrompue pour cause d'erreur : > 0
Remarque :
La commande ls affiche un nom de fichier ou de sous-répertoire
par ligne sur sa sortie standard. Néanmoins, lorsque l'affichage s'effectue à l'écran,
c'est-à-dire lorsque la sortie standard n'est pas redirigée, les noms de fichiers et
de sous-répertoires sont alignés en plusieurs colonnes. Le nombre de ces colonnes est
fonction, entre autres, de la taille de la fenêtre système dans laquelle la commande
ls est interprétée.
4. Exercice 1.
1) Écrire la commande permettant d'afficher les noms de fichiers non cachés
dont le nom contient la lettre a.
2) Écrire la commande permettant d'afficher les noms de fichiers dont le
nom comporte quatre caractères exactement.
3) Écrire la commande permettant d'afficher les noms de fichiers dont le
nom comporte au moins cinq caractères.
4) Écrire la commande permettant d'afficher les noms de fichiers dont le
nom commence par une majuscule.
5. La commande mkdir.
Caractéristiques :
- mkdir vient de "make
directory" ("créer répertoire").
- Cette commande permet de créer un ou plusieurs répertoires,
dont les noms sont passés en paramètres. Elle renvoie un
message d'erreur dans les cas où la création est impossible.
Syntaxe :
Description :
- -mmode : indique les droits d'accès au répertoire
à créer.
- -p : crée tous les répertoires intermédiaires,
si nécessaire.
Exemples :
- mkdir -mgo-rw REP1
Cette commande crée le sous-répertoire REP1
dans le répertoire courant, en enlevant les droits en lecture et
en écriture (read et write) à toute
personne non propriétaire du compte (group et
others).
- mkdir -p REP2/SREP2/SSREP2
Cette commande crée le sous-répertoire
REP2 du répertoire courant,
le sous-répertoire SREP2 de REP2
et le sous-répertoire SSREP2 de SREP2.
Codes de retour :
- Pas d'erreur : 0
- Opération interrompue pour cause d'erreur : > 0
6. La commande echo.
Caractéristiques :
- Le mot echo a une signification explicite !
- Cette commande permet d'afficher une ou
plusieurs chaînes de caractères sur la sortie standard. Elle constitue donc, en quelque sorte,
un équivalent de la fonction printf du langage C.
- Elle peut apparaître en début de
branchement.
- Il s'agit d'une commande interne, qui peut donc
fortement varier d'un shell à l'autre.
Syntaxe :
Description :
Exemple :
echo *
Cette commande affiche la liste des noms de fichiers et de sous-répertoires
du répertoire courant (fichiers cachés non compris), séparés par des espaces.
Codes de retour :
- Pas d'erreur : 0
- Opération interrompue pour cause d'erreur : > 0
Remarques :
- La commande echo reconnaît
également certains caractères spéciaux commençant
par \ et appelés "caractères de contrôle", qui rappellent le C :
\n pour le retour-chariot,
\t pour la tabulation, \c
pour supprimer le retour à la ligne, etc...
- Pour qu'un caractère de contrôle soit interprété
en tant que tel, il faut absolument qu'il apparaisse à l'intérieur
d'une chaîne de caractères délimitée par des
guillemets " ou par des apostrophes '.
Par exemple, les commandes :
provoqueront bien l'affichage d'un retour-chariot, mais la commande :
7. Les expressions régulières.
On appelle "expression régulière" une chaîne
de caractères composée de caractères normaux et de
caractères spéciaux, appelés "métacaractères
des expressions régulières" (à ne pas confondre
avec les métacaractères du shell, décrits plus haut !).
Une expression régulière désigne une séquence type de caractères ("pattern")
que l'on recherche sur chaque ligne d'un fichier.
Comme toutes les chaînes de caractères, on peut écrire
une expression régulière entre apostrophes ',
entre guillemets ", ou seule. Sauf dans les cas de nécessité contraire,
on conseille d'utiliser la notation entre apostrophes, car alors les caractères $,
*, \, etc... ne seront pas interprétés comme
des métacaractères du shell. Les principaux métacaractères
des expressions régulières sont les suivants :
- . désigne un caractère quelconque.
- * désigne une répétition
du caractère qui précède, de longueur quelconque éventuellement vide.
- ^ désigne le début d'une ligne.
- $ désigne la fin d'une ligne.
- \ protège le caractère suivant, qu'il
soit caractère normal ou métacaractère des expressions
régulières.
- \{n\} désigne la répétition de n
fois le caractère précédent, qu'il soit caractère
normal ou métacaractère des expressions régulières.
- [...] désigne les caractères entre crochets,
définis par énumération ou par intervalle.
Remarque :
Les expressions régulières servent essentiellement à la commande grep,
qui sera décrite dans le prochain paragraphe.
Exemples :
- '.*' désigne une ligne quelconque.
- '^$' désigne une ligne vide.
- '^debut' désigne une ligne commençant
par debut
- `pwd`\$ désigne une ligne se terminant
par le nom du répertoire courant (dans ce cas, l'utilisation d'apostrophes serait inadaptée).
- '\*.\\' désigne une ligne contenant un caractère
*, suivi d'un caractère quelconque, suivi d'un caractère
\
- '[A-Z][a-z]\{9\}' désigne une ligne contenant
au moins dix lettres successives, la première étant une majuscule,
et les neuf autres étant des minuscules.
- '^[A-Z]' désigne une ligne commençant
par une lettre majuscule.
8. La commande grep.
Caractéristiques :
- grep vient de "global regular
expressions parsing" ("analyse
d'expressions régulières globales").
- Cette commande permet de rechercher une expression régulière
dans chaque ligne d'un ou de plusieurs fichiers passés en paramètres (ou dans chaque ligne
de l'entrée standard) et affiche ces lignes sur la sortie standard.
- Cette commande est un filtre.
Syntaxe :
Description :
- -l : la commande ne renvoie que le nom du fichier où
une occurrence est trouvée (au lieu d'afficher les lignes où
l'occurrence apparaît).
- -c : affiche uniquement, pour chaque fichier, le nombre
de lignes où l'occurrence apparaît.
- -v : affiche les lignes qui ne contiennent pas d'occurrence
de l'expression régulière.
- Autres options : cf. la description de la commande grep,
en tapant : man grep
Exemple :
La commande grep 'grep' * affiche toutes les lignes
de tous les fichiers du répertoire courant qui contiennent une occurrence
au moins de la chaîne de caractères grep
Codes de retour :
- Une occurrence au moins a été trouvée : 0
- Aucune occurrence n'a été trouvée : 1
- Opération interrompue pour cause d'erreur : 2
Remarques :
- Pour toutes les commandes susceptibles d'afficher des caractères sur la sortie
standard (comme ls, echo ou grep), il est possible
d'envoyer ces caractères sur la sortie standard des erreurs, en terminant la ligne de commande
par les trois caractères >&2 comme par exemple dans :
echo "Ceci est une chaîne" >&2
qui réalise donc l'équivalent de l'instruction suivante du langage C :
fprintf(stderr,"Ceci est une chaîne\n");
Les messages d'erreur prédéfinis des commandes UNIX sont d'ailleurs envoyés sur la sortie
standard des erreurs.
- La recherche d'expressions régulières contenant des caractères de contrôle, à l'aide de
la commande grep, pose quelques problèmes. Par exemple, la commande suivante :
recherche, non pas les lignes de l'entrée standard contenant un caractère de tabulation
suivi des trois lettres abc, mais les lignes contenant la séquence de quatre
lettres tabc. Il en serait de même si l'expression régulière était écrite
"\tabc" ou \tabc.
Le seul moyen de rendre correcte cette recherche est de taper
la commande :
c'est-à-dire de taper réellement sur la touche du clavier correspondant au caractère de tabulation
pour signifier que le premier caractère de l'expression régulière doit être un caractère de tabulation.
9. Redirection de l'entrée standard d'une
commande.
9.1. Entrée standard par défaut d'une commande.
Par défaut, l'unité physique correspondant à stdin
est le clavier. La syntaxe permettant de transmettre un texte tapé
au clavier à une commande, par l'intermédiaire de son entrée
standard, est la suivante (les deux caractères <
doivent être "collés") :
La commande nom_commande reçoit le texte situé
entre les deux occurrences du séparateur.
Exemple :
La séquence suivante permet d'afficher, parmi les lignes de texte
tapées au clavier, celles qui contiennent au moins un caractère
e (on rappelle que seuls les caractères tapés par l'utilisateur
apparaissent en gras) :
> grep 'e' << sep
bonjour,
ceci est
un exemple.
sep
ceci est
un exemple.
> |
Il existe une autre manière de fournir du texte à une
commande, par l'intermédiaire de son entrée standard. La
syntaxe est la suivante, en reprenant l'exemple précédent
:
> grep 'e'
bonjour,
ceci est
ceci est
un exemple.
un exemple.
<Ctrl>D |
Remarques sur cette deuxième possibilité
:
- Pour terminer l'exécution de la commande et récupérer
le "prompt", il est nécessaire de taper <Ctrl>D,
caractère non éditable de code ASCII égal à 4
qui simule la fin d'un fichier en mode interactif
(en fait, il faut maintenir appuyée la touche <Ctrl>
du clavier, et taper les caractères D ou d).
- Avec la deuxième syntaxe, le texte tapé au clavier est envoyé à la commande
ligne par ligne, donc c'est une syntaxe qui est inadaptée pour certaines
commandes (par exemple, pour une commande dont le rôle serait
de retourner les deux dernières lignes provenant de l'entrée
standard).
9.2. Redirection de l'entrée standard d'une commande.
Il est possible, sous UNIX, de rediriger l'entrée standard de
la commande nom_commande, grâce à la syntaxe
suivante :
L'entrée standard de nom_commande est maintenant
connectée au fichier nom_fichier
Remarques :
- Une telle redirection occasionne l'ouverture du fichier nom_fichier
en mode "lecture".
Exemple :
10. Redirections de la sortie standard d'une
commande.
Il est également possible de rediriger la sortie standard d'une
commande, qui est connectée par défaut à l'écran.
Contrairement à la redirection de son entrée standard, la
redirection de la sortie standard d'une commande peut être faite de quatre
manières différentes :
10.1. Redirection simple de la sortie standard d'une commande.
La syntaxe est tout à fait similaire à celle de la redirection
de l'entrée standard :
Si le fichier nom_fichier n'existe pas, il est créé.
Sinon, son contenu est écrasé par les affichages produits
par la commande nom_commande
Remarques :
- Une telle redirection occasionne l'ouverture du fichier nom_fichier
en mode "écriture".
Exemple :
grep 'e' > fich_sortie.txt
Cette commande écrit, dans le fichier fich_sortie.txt,
les lignes tapées au clavier qui contiennent au moins un caractère
e
10.2. Redirection de la sortie standard d'une commande avec concaténation.
La syntaxe est la suivante :
nom_commande >> nom_fichier
Si nom_fichier n'existe pas, il est créé.
Dans tous les cas, le résultat de la commande nom_commande
est ajouté ("concaténé") à la fin
du fichier nom_fichier
Remarques :
- Les deux caractères > doivent nécessairement
être "collés".
- Une telle redirection occasionne l'ouverture du fichier nom_fichier
en mode "écriture en fin de fichier".
Exemple :
grep 'e' >> fich_sortie.txt
Cette commande rajoute, à la fin du fichier fich_sortie.txt,
les lignes tapées au clavier qui contiennent au moins un caractère
e
10.3. Redirection de la sortie standard d'une commande vers l'entrée
standard d'une autre commande.
On peut réaliser un "branchement" entre certaines commandes,
selon la syntaxe suivante :
Le métacaractère | est appelé "pipe"
(qui signifie "tube" en anglais).
Exemple :
grep 'e' | grep '2'
Ce branchement affiche à l'écran les lignes tapées
au clavier qui contiennent au moins un caractère e
et au moins un caractère 2, au moment où le caractère
<Ctrl>D est tapé.
Remarque :
Dans la suite de ce polycopié, on utilisera très souvent ce type de redirection.
10.4. Capture de la sortie standard d'une commande.
On peut "capturer" les caractères envoyés par une
commande sur sa sortie standard, pour les
réutiliser dans la ligne de commande où elle apparaît, en entourant cette commande de
métacaractères ` ("apostrophe à gauche", à ne pas confondre
avec l'apostrophe '). Il est important de savoir qu'une capture remplace
tous les caractères retour-chariot par des espaces.
Exemple :
alors la commande suivante :
affichera les lignes du fichier fich1.txt contenant au moins
un caractère e, suivies des lignes du fichier fich2.txt
contenant au moins un caractère e
Remarques :
- La commande qui vient d'être donnée en exemple n'est absolument
pas équivalente à la commande suivante :
puisque cette dernière commande affiche, parmi les noms de fichiers
retournés par la commande ls, ceux qui contiennent
au moins un caractère e (dans leur nom !).
- Rien n'empêche, a priori, que les caractères <,
> ou >> soient suivis d'une "capture",
comme dans l'exemple suivant :
grep 'e' < `ls`(écriture
à éviter)
mais de telles écritures seront incorrectes si la commande "capturée"
(ici, c'est ls) retourne autre chose qu'un nom unique de
fichier. Dans la pratique, on évitera ce genre d'écriture.
- Il existe une différence importante entre les deux commandes
suivantes :
Dans les deux cas, le résultat de la commande ls
est écrit dans le fichier fich.txt, mais cette écriture
se fait de deux manières différentes :
- Dans le premier cas, un seul nom de fichier ou de sous-répertoire
est écrit par ligne.
- Dans le deuxième cas, tous les noms de fichiers et de sous-répertoires
sont écrits sur une même ligne, séparés par des espaces, car la capture transforme
les caractères retour-chariot en espaces.
11. Redirections de la sortie standard des erreurs.
Il est possible de rediriger la sortie standard des erreurs d'une commande
sur un fichier, de l'une des deux manières suivantes :
- Redirection simple de la sortie standard des erreurs sur le fichier
nom_fichier :
nom_commande 2> nom_fichier
- Redirection de la sortie standard des erreurs, avec concaténation,
sur le fichier nom_fichier :
nom_commande 2>> nom_fichier
Remarques :
- Le caractère 2 doit être collé au
caractère > qui le suit et, le cas échéant,
les deux caractères > doivent également
être collés.
- Cette syntaxe varie d'un shell à l'autre.
- Pour que les messages d'erreurs (prédéfinis) des commandes UNIX ne
s'affichent pas à l'écran, on utilise souvent la redirection de la
sortie standard des erreurs vers le "fichier poubelle" /dev/null,
comme dans l'exemple suivant :
- La ligne de commande suivante :
provoque l'écriture de la chaîne de caractères Problème
dans le fichier erreurs.txt
12. Exercice 2.
1) En une seule ligne de commande, créer le sous-répertoire
REP1, et son sous-répertoire SREP1,
dans le répertoire courant.
2) En une seule ligne de commande, créer deux sous-répertoires
REP2 et REP3 dans le répertoire
courant, puis afficher le message : termine
3) Même question, mais en envoyant ce message dans le fichier
liste.txt
Ces pages ont été réalisées
par A. Crouzil, J.D. Durou et Ph. Joly.
Pour tout commentaire, envoyer un mail à
crouzil@irit.fr, à durou@irit.fr ou à Philippe.Joly@irit.fr.