Linux-Mandrake: |
Guide de l'utilisateur |
et Manuel de référence |
MandrakeSoft
Janvier 2000 http://www.linux-mandrake.com
Dans le chapitre 4.0, nous avons vu comment lancer un shell et ses principes de base, mais nous ne l'avons pas mis au travail, et c'est ce que nous allons faire dans ce chapitre.
Le principal avantage du shell est le nombre d'utilitaires existants: il en existe des milliers, et chacun est dédié à une tâche particulère. Nous n'en verrons qu'un petit nombre ici. L'une des grandes forces d'Unix est la possibilité de combiner ces utilitaires, comme nous allons le voir un peu plus tard.
La manipulation de fichiers signifie ici copier, déplacer et effacer des fichiers. Après ceci, nous verrons des manières de changer leurs attributs (propriétaire, permissions associées).
mkdir
, touch
: création de répertoires et fichiers vides (MaKe DIRectory, « créer un répertoire », « toucher »)mkdir
est utilisé pour créer des répertoires. Sa syntaxe est
simple:
mkdir [options] <répertoire> [répertoire ...]
Une seule option est digne d'intérêt: l'option -p
. Si cette
option est passée en argument, mkdir
créera les répertoires
parents s'il n'existaient pas avant. Si elle ne l'est pas et que les
répertoires parents n'existent pas, mkdir
renverra une erreur.
Exemples:
mkdir toto
: crée un répertoire du nom de toto
dans le répertoire courant.
mkdir -p images/divers docs
: crée un répertoire
divers
dans le répertoire images
en créant ce dernier
auparavant s'il n'existait pas, et crée aussi un répertoire
docs
.Initialement, la commande touch
n'a pas pour but de créer des
fichiers mais de mettre à jour les temps d'accès et de
modification[3]. Toutefois, l'un
de ses effets de bord est de créer les fichiers mentionnés s'ils
n'existaient pas déjà. La syntaxe est:
touch [options] fichier [fichier...]
Donc, lancer la commande:
touch fichier1 images/fichier2
créera un fichier appelé fichier1
dans le répertoire courant et
un fichier appelé fichier2
dans le répertoire images
.
rm
: supprimer des fichiers ou des répertoires (ReMove, « ôter »)Cette commande joue le rôle des del
et deltree
du
DOS, et plus encore. Sa syntaxe est:
rm [options] <fichier|répertoire> [fichier|répertoire...]
Parmi les options, on trouve:
-r
ou -R
: Supprimer récursivement. Cette option
est obligatoire pour supprimer un répertoire, même vide.
Toutefois, il existe aussi la commande rmdir
pour effacer des
répertoires vides.
-i
: Demander confirmation avant chaque effacement. Il
est recommandé de placer un alias de rm
vers
rm-i
dans votre shell, et de même pour les commandes
cp
et mv
.
-f
: Le contraire de -i
, force la suppression
des fichiers ou répertoires, même si l'utilisateur n'a pas
d'autorisation en écriture sur les fichiers[4].Quelques exemples:
rm -i images/*.jpg fichier1
: Supprimer tous les
fichiers dont le nom se termine par .jpg
dans le répertoire
images
ainsi que le fichier fichier1
dans le répertoire
courant, en demandant confirmation pour chacun des fichiers. Répondez
'o'
ou 'y'
pour confirmer, 'n'
pour annuler.
rm -Rf images/divers/ file*
: Suppression sans demande de
confirmation de tout le répertoire divers/
dans le répertoire
images/
en plus de tous les fichiers du répertoire courant dont
le nom commence par file
.Attention: un fichier effacé avecrm
est effacé de façon irrévocable. Il n'y a aucun moyen de récupérer les fichiers! N'hésitez donc pas à utiliser l'option-i
...
mv
: déplacer ou changer le nom des fichiers (MoVe, « déplacer »)La syntaxe de la commande mv
est la suivante:
mv [options] <fichier|rép.> [fichier|rép...] <destination>
Quelques options:
-f
: Forcer le déplacement de fichiers --- aucun
avertissement en cas d'écrasement d'un fichier au cours de l'opération.
-i
: Le contraire --- demander confirmation à
l'utilisateur avant d'écraser un fichier existant.
-v
: Mode verbeux, rapporter tous les changements.Quelques exemples:
mv -i /tmp/pics/*.gif .
: Déplacer tous les fichiers du
répertoire /tmp/pics/
dont le nom se termine par .gif
vers le répertoire courant (.
), en demandant confirmation avant
d'écraser un fichier existant.
mv toto titi
: Renommer le fichier toto
en titi
.
mv -vf fichier* images/ trash/
: Déplacer, sans demander
confirmation, tous les fichiers dans le répertoire courant dont le nom
commence par fichier
ainsi que tout le répertoire
images/
vers le répertoire trash/
, et rapporter tous les
changements effectués.cp
: copier des fichiers et des répertoires (CoPy, « copier »)cp
est un remplacement pour les commandes copy
,
xcopy
de DOS et plus. Sa syntaxe est la suivante:
cp [options] <fichier|rép.> [fichier|rép...] <destination>
Il existe une myriade d'options. Voici les plus utilisées:
-R
: Copier récursivement; obligatoire pour
copier un répertoire, même vide.
-i
: Demander confirmation avant d'écraser des fichiers
qui pourraient l'être.
-f
: Le contraire de -i
, remplacer d'éventuels
fichiers existants sans demander confirmation.
-v
: Mode verbeux, rapporter toutes les actions effectuées
par cp
.Quelques exemples:
cp -i /tmp/images/* images/
: Copier tous les fichiers
du répertoire /tmp/images
dans le répertoire images/
du
répertoire courant, en demandant confirmation si un fichier peut être
écrasé.
cp -vR docs/ /shared/mp3s/* mystuff/
: Copie tout le
répertoire docs
dans le répertoire courant plus tous les fichiers
dans le répertoire /shared/mp3s
dans le répertoire mystuff
situé dans le répertoire courant.
cp toto titi
: Faire une copie du fichier toto
sous le nom de titi
dans le répertoire courant.La série de commandes présentée ici est utilisée pour changer le propriétaire ou groupe propriétaire d'un fichier ou ses droits d'accès. Nous avons vu les différents droits d'accès dans le chapitre 4.0.
chown
, chgrp
: changer l'utilisateur et le groupe propriétaires d'un ou plusieurs fichiers (CHange OWNer, « changer de propriétaire »; CHange GRouP) « changer de groupe »La syntaxe de la commande chown
est la suivante:
chown [options] <utilisateur[.groupe]> <fichier|rép.> [fichier|rép...]
Entre autres options, on trouve:
-v
: Mode verbeux; décrit toutes les actions effectuées
par chown
; rapporte quels fichiers ont changé de propriétaire à
la suite de la commande et lesquels n'ont pas changé.
-c
: Comme -v
, mais ne rapporte que les fichiers
pour lesquels un changement a eu lieu.Quelques exemples:
chown nobody /shared/book.tex
: Changer le propriétaire
du fichier /shared/book.tex
en nobody
.
chown -Rc jean.musique *.mid concerts/
: Donner la
propriété de tous les fichiers dans le répertoire courant se terminant
par .mid
et de tous les fichiers et sous-répertoires du
répertoire concerts/
à jean
et au groupe musique
,
en ne rapportant que les fichiers affectés par la commande.La commande chgrp
ne vous laisse changer que le groupe
propriétaire d'un fichier ou d'un groupe de fichiers; sa syntaxe est
très semblable à celle de la commande chown
:
chgrp [options] <groupe> <fichier|rép.> [fichier|rép...]
Les options de cette commande sont les mêmes que pour chown
,
et elle est utilisée de façon très similaire. Ainsi, la commande:
chgrp disk /dev/hd*
attribue au groupe disk
tous les fichiers du répertoire
/dev
dont le nom commence par hd
.
chmod
: changer les permissions sur des fichiers et des répertoires (CHange MODe, « changer le mode »)La commande chmod
a une syntaxe bien particulière. La syntaxe
générale est:
chmod [options] <changement de mode> <fichier|rép.> [fichier|rép...]
mais ce qui la distingue, ce sont les différentes formes que peut prendre le changement de mode. Il peut être spécifié de deux façons:
<x>00
, où
<x>
correspond au droit assigné: 4 pour lecture, 2 pour
écriture, 1 pour exécution; de même, les droits d'accès du groupe
propriétaire sont de la forme <x>0
et ceux des
« autres » sont de la forme x
. Tout ce qui
reste alors à faire est d'additionner ensemble les droits d'accès
assignés pour obtenir le bon chiffre. Ainsi, les permissions
rwxr-xr--
correspondent à 400+200+100 (droits d'accès de
l'utilisateur propriétaire,rwx
) +40+10 (droits d'accès du
groupe, r-x
) +4 (droits d'accès des autres, r--
) =
754; de cette façon, les droits d'accès sont exprimés de manière
absolue: les droits d'accès précédents sont remplacés
inconditionnellement.
[catégorie]<+|-><droits d'accès>
. La catégorie peut être
une combinaison de u
(pour user,
« utilisateur »), g
(pour
Group, « groupe ») ou o
(Others, « les autres »). Si aucune
catégorie n'est spécifiée, le changement s'applique à toutes les
catégories. Un +
appose un droit d'accès et un -
le
retire. Pour finir, les droits d'accès sont l'un de r
(pour
Read, « lecture »), w
(pour
Write, « écriture ») ou x
(pour eXecute, « exécution »).Les options principales sont très similaires à celles de chown
ou chgrp
:
-R
: Changer les droits d'accès récursivement.
-v
: Mode verbeux, décrire les actions effectuées pour
chaque fichier.
-c
: Comme -v
mais ne rapporte que les fichiers
dont les droits d'accès ont changé.Exemples:
chmod -R o-w /shared/docs
: Enlever de façon récursive
le droit d'accès en écriture aux « autres » sur tous les fichiers
et sous-répertoires du répertoire /shared/docs/
.
chmod -R og-w,o-x prive/
: Enlever de façon récursive
le droit d'accès en écriture pour le groupe et les autres sur tout le
répertoire prive/
, et retire le droit d'accès en exécution pour
les autres.
chmod -c 644 divers/fichier*
: Changer les droits
d'accès de tous les fichiers du répertoire divers/
dont les noms
commencent par fichiers
en rw-r--r--
(droit d'accès
en lecture pour tout le monde et droit d'accès en écriture pour le
propriétaire du fichier seulement), et ne rapporter que les fichiers
affectés par l'opération.Vous utilisez sans doute déjà des caractères d'englobement sans
le savoir. Quand vous enregistrez un fichier dans une application sous
Windows, quand vous recherchez un fichier, vous utilisez
*
pour désigner une suite de caractères quelconque. Par
exemple, *.txt
désigne l'ensemble des fichiers dont le nom se
termine par .txt
. Nous l'avons également beaucoup utilisé dans
la section précédente. Mais l'englobement va beaucoup plus loin que le
seul *
.
Quand vous tapez une commande comme ls *.txt
et tapez
Entrée
, la tâche de trouver quels fichiers correpondent au motif
*.txt
n'est pas du ressort de ls
, mais par le
shell lui-même. Cela requiert une petite explication sur la
façon dont le shell interprète une ligne de commande. Quand vous
tapez:
$ ls *.txt
readme.txt recettes.txt
la ligne de commande est tout d'abord séparée en mots (ls
et
*.txt
en l'occurrence). Quand le shell voit le
*
dans un des mots, il interprète le mot comme étant un motif
englobant et le remplace dans la ligne de commande par les noms de tous
les fichiers correspondant au motif. La ligne juste avant exécution par
le shell est donc devenue ls readme.txt recettes.txt
, ce qui
donne le résultat recherché. Le shell réagit aussi à la vue
d'autres caractères:
?
: correspond à un et un seul caractère, quel qu'il
soit;
[...]
: correspond à un des caractères entre les
crochets; les caractères peuvent être désignés en intervalles (par
exemple, 1-9
) ou des valeurs discrètes, ou un mélange
des deux. Exemple: [a-zBE5-7]
correspond à tous les
caractères de a
à z
, un B
, un E
,
un 5
, un 6
ou un 7
;
[!...]
: correspond à tous les caractères qui ne se
trouvent pas entre les crochets; [!a-z]
, par exemple,
correspond à tout caractère qui n'est pas une lettre minuscule;
c1,c2
: correspond à c1
ou c2
, où
c1
et c2
sont eux-même des motifs d'englobement.Voici quelques exemples de motifs et leurs significations:
/etc/*conf
: Tous les fichiers du répertoire /etc
dont le nom se termine par conf
. Cela peut correspondre au
fichier
/etc/inetd.conf
, mais aussi à /etc/conf.linuxconf
, et à
/etc/conf
si un tel fichier existe. Souvenez-vous que *
peut correspondre à une chaîne vide.
image/cars,space[0-9]/*.jpg
: Tous les fichiers dont
le nom se termine par .jpg
dans les répertoires
image/cars
, image/space0
, ... , image/space9
, s'ils
existent.
/usr/doc/*/README
: Tous les fichiers de nom
README
dans tous les sous-répertoires immédiats de
/usr/doc
. Cela correspondra à /usr/doc/mandrake/README
par
exemple, mais pas à /usr/doc/myprog/doc/README
.
*[!a-z]
: Tous les fichiers du répertoire courant dont
le nom ne finit pas par une lettre minuscule.Pour comprendre le principe des redirections et des tubes, nous avons besoin d'expliquer une notion sur les processus qui n'a pas encore été introduite. Chaque processus sous Unix (y compris les applications graphiques) ouvre un minimum de trois descripteurs de fichiers: l'entrée standard, la sortie standard et le canal d'erreur standard. Leurs numéros respectifs sont 0, 1 et 2. En général, ces trois descripteurs sont associés au terminal depuis lequel le processus a été lancé, l'entrée standard étant lue depuis le clavier. Le but des redirections et des tubes est de rediriger ces descripteurs. Les exemples dans cette section vont vous aider à mieux comprendre.
Supposons par exemple que vous vouliez connaître la liste des fichiers
se terminant par .gif
[5] dans le répertoire
images
, mais cette liste est très longue, vous avez donc intérêt
à la stocker dans un fichier pour la consulter à loisir ensuite. Vous
pouvez alors taper ceci:
ls images/*.gif 1>liste_fichiers
Ce qui signifie que la sortie standard de cette commande (1
)
est redirigée (>
) vers le fichier de nom
liste_fichiers
. L'opérateur >
est l'opérateur de
redirection de sortie. Si le fichier de redirection n'existait pas, il
est créé, mais s'il existait son ancien contenu sera écrasé. Cependant,
par défaut, le descripteur redirigé par cet opérateur est la sortie
standard, il n'est pas besoin de le spécifier sur la ligne de commande.
Vous pouvez donc écrire plus simplement:
ls images/*.gif >liste_fichiers
et le résultat sera exactement le même. Vous pouvez ensuite consulter le
fichier à l'aide d'un visualisateur de fichiers texte tel que
less
.
Supposons maintenant que vous vouliez savoir le nombre de ces fichiers.
Au lieu de compter à la main, vous utilisez le bien nommé wc
(Word Count, « compter les mots »)
avec l'option -l
, qui écrit sur la sortie standard le nombre de
lignes du fichier. Une solution est la suivante:
wc -l 0<liste_fichiers
et cela donne le résultat voulu. L'opérateur <
est l'opérateur
de redirection d'entrée, et de même le descripteur redirigé par défaut
est celui de l'entrée standard, donc 0, et la ligne s'écrit simplement:
wc -l <liste_fichiers
Supposons maintenant que vous vouliez consulter cette liste en retirant
toutes les « extensions » des fichiers et mettre le résultat dans
un autre fichier. Un outil pour se faire est sed
, pour
Stream EDitor (« éditeur de flux »).
Il suffit de rediriger l'entrée standard de sed
vers le
fichier liste_fichiers
et de rediriger sa sortie vers le fichier
résultat, par exemple la_liste
:
sed -e 's/.gif$//g' <liste_fichiers >la_liste
et voilà votre liste créée, que vous pouvez de même consulter à loisir avec un visualisateur.
Il peut aussi s'avérer utile de rediriger l'erreur standard. Par
exemple, vous voulez savoir quels répertoires dans /shared
ne
vous sont pas accessibles: une solution est de lister récursivement ce
répertoire et de rediriger les erreurs vers un fichier, tout en
n'affichant pas le canal de sortie standard:
ls -R /shared >/dev/null 2>erreurs
ce qui signifie que la sortie standard sera redirigée (>
) vers
/dev/null
, fichier spécial dans lequel tout ce qu'on écrit est
perdu (donc par effet de bord la sortie standard n'est pas affichée) et
que le canal d'erreur standard (2
) est redirigé (>
)
vers le fichier erreurs
.
Les tubes (pipes en anglais) sont en quelque sorte une
combinaison des redirections d'entrée et de sortie. Son principe est
celui d'un tube même, d'où son nom: un processus envoie des données dans
le tube par un bout et un autre processus lit les données par l'autre
bout. L'opérateur tube est |
. Reprenons l'exemple de la liste
des fichiers ci-dessus. Supposons que vous vouliez savoir directement le
nombre de fichiers correspondants sans avoir à stocker la liste dans un
fichier temporaire, vous utiliserez alors la commande suivante:
ls images/*.gif | wc -l
ce qui signifie que la sortie standard de la commande ls
(donc
la liste des fichiers) est redirigée vers l'entrée standard de la
commande wc
. Vous obtenez donc le résultat désiré.
Vous pouvez de même construire directement la liste des fichiers « sans les extensions » avec la commande suivante:
ls images/*.gif | sed -e 's/.gif$//g' >la_liste
ou, si vous voulez consulter directement la liste sans la stocker dans un fichier:
ls images/*.gif | sed -e 's/.gif$//g' | less
Les tubes et les redirections ne sont pas limités au seul texte lisible par les humains. Ainsi, la commande suivante, lancée à partir d'un xterm:
xwd -root | convert - /mon_bureau.gif
fera une capture d'écran de votre bureau dans le fichier intitulé
mon_bureau.gif
[6]
dans votre répertoire personnel.
Le complètement est une fonctionnalité des plus pratiques, et tous les
shells modernes (dont bash
) l'incluent. Son but est de
faire travailler l'utilisateur le moins possible. Le mieux pour
illustrer ce qu'est le complètement est un exemple.
Supposons que vous ayez dans votre répertoire personnel un fichier
fichier_au_nom_très_long_impossible_à_taper
, et vous
voulez le consulter. Supposons que vous ayez également dans ce même
répertoire un autre fichier appelé fichier_texte
. Vous vous
trouvez dans votre répertoire personnel. Vous tapez alors la séquence
suivante:
$ less fi<TAB>
(c'est-à-dire, tapez less fi
suivi d'une pression sur la
touche TAB
). Le shell aura alors étendu la ligne de
commande pour vous:)
$ less fichier_
et aura également marqué la liste des choix possibles (dans sa configuration par défaut, qui peut être personnalisée). Tapez alors la séquence de touches suivante:
less fichier_a<TAB>
et le shell aura étendu la ligne de commande pour obtenir le résultat que vous souhaitiez:
less fichier_au_nom_très_long_impossible_à_taper
Il ne vous reste plus alors qu'à taper sur la touche Entrée
pour
valider et consulter le fichier.
La touche TAB
n'est pas le seul moyen d'activer le complètement,
bien que ce soit la façon la plus courante de faire. De façon générale,
le mot à compléter sera un nom de commande pour le premier mot de la
ligne de commande (nsl<TAB>
donnera nslookup
), et un
nom de fichier pour tous les autres, à moins que le mot ne soit précédé
d'un caractère « magique » parmi
, @
ou
$
, auquel cas le shell essaiera de compléter respectivement un
nom d'utilisateur, un nom de machine ou une variable
d'environnement[7]. Il existe également
un caractère magique pour compléter un nom de commande (!
) ou
un nom de fichier (/
).
Les deux autres façons d'activer le complètement sont les séquences
Esc-<x>
et C-x <x>
(Esc
pour la touche Échap
,
C-x
voulant dire Control
+<x>
) où <x>
est
l'un des caractères magiques déjà mentionnés). Taper Esc-<x>
tentera le complètement de façon unique, et en cas d'échec complètera le
mot à la plus grande sous-chaîne possible dans la liste des choix. Un
bip signifie soit que le choix n'est pas unique, soit qu'il n'y
a tout simplement pas de choix correspondant. La séquence C-x <x>
affichera la liste des choix possibles sans tenter aucun complètement.
La pression sur la touche TAB
est équivalente à une pression
successive de Esc-<x>
et de C-x <x>
, le caractère magique
dépendant du contexte.
Ainsi, une façon de voir toutes les variables d'environnement définies
est de taper sur une ligne vierge la séquence C-x $
. Un autre
exemple: si on veut voir la page de manuel de la commande
nslookup
, il suffit de taper man nsl
puis
Esc-!
, et le shell complétera automatiquement en
man nslookup
.
Vous aurez remarqué que quand vous lancez une commande à partir d'un terminal, vous devez normalement attendre que la commande soit terminée pour que le shell vous rende la main: vous avez lancé la commande au premier plan. Il y a des situations, cependant, où cela n'est pas souhaitable.
Supposons, par exemple, que vous ayez entrepris de copier récursivement
un gros répertoire vers un autre. Vous décidez également d'ignorer les
erreurs, donc vous redirigez le canal d'erreur vers /dev/null
:
cp -R images/ /shared/ 2>/dev/null
Une telle commande peut prendre plusieurs minutes avant de se terminer.
Vous disposez alors de deux solutions: la première, brutale, est
d'interrompre (de tuer) la commande pour la relancer plus tard, quand
vous aurez le temps. Pour ce faire, tapez C-c
(Control
+'c'
): vous reviendrez alors à l'invite.
Mais vous souhaiteriez quand même que la commande s'exécute tout en
faisant autre chose. La solution est alors de mettre le processus en
arrière-plan. Pour ce faire, tapez C-z
pour suspendre le
processus:
$ cp -R images/ /shared/ 2>/dev/null
# Tapez C-z
[1]+ Stopped cp -R images/ /shared/ 2>/dev/null
$
et vous revoilà devant le prompt. Le processus est alors suspendu en
attente que vous le relanciez (comme l'indique le mot-clé
Stopped
, « arrêté »). C'est ce que vous voulez
faire, bien sûr, mais à l'arrière-plan. Tapez bg
(pour
BackGround, « arrière-plan »), cela
aura l'effet escompté:
$ bg
[1]+ cp -R images/ /shared/ 2>/dev/null &
$
Le processus aura alors repris son exécution en tâche de fond, ce
qu'indique le signe &
(esperluette) à la fin de la ligne. Vous
vous retrouvez alors en face de l'invite et pouvez continuer à
travailler. Un processus qui tourne en tâche de fond, ou
arrière-plan, est appelé un job.
Vous pouvez bien sûr lancer directement des processus en tâche de fond,
justement en ajoutant une '&'
à la fin de la commande. Ainsi vous
pouvez lancer la copie du répertoire en arrière-plan en écrivant:
cp -R images/ /shared/ 2>/dev/null &
Si vous le souhaitez, vous pouvez également remettre ce processus au
premier plan et attendre qu'il se termine en tapant fg
(pour
ForeGround, « premier plan »).
Répétez alors la séquence C-z
, bg
pour le remettre à
l'arrière-plan.
Vous pouvez lancer plusieurs jobs de cette façon: chacune de
ces commandes recevra alors un numéro de job. La commande
jobs
du shell indique la liste de tous les
jobs associés au shell courant. Le job
précédé d'un signe +
désigne le dernier processus mis en tâche
de fond. Pour remettre au premier plan un job en particulier,
vous pourrez alors taper fg <n>
où <n>
désigne le
numéro de job, par exemple fg 5
.
Notez que vous pouvez également suspendre ou lancer de cette façon des
applications plein écran (si elles sont correctement
programmées), telles que less
ou un éditeur de texte comme
VI, et les remettre au premier plan quand vous le voulez.
Vous avez pu vous en rendre compte, le shell est très complet, et l'utiliser efficacement est avant tout une question de pratique. Il n'a été fait mention dans ce chapitre relativement long que de quelques-unes des commandes disponibles: Linux-Mandrake comporte des milliers d'utilitaires, et même les utilisateurs les plus expérimentés n'en utilisent qu'une centaine au grand maximum.
Il existe des utilitaires pour tous les goûts et toutes les
utilisations: vous avez des utilitaires de manipulation d'images (tels
que convert
mentionné plus haut, mais aussi le mode
batch de GIMP et tous les utilitaires de
manipulation de pixmaps), de sons (encodeurs MP3,
lecteurs de CD audio), de gravure de CD-ROM, des programmes de
courrier électronique, des clients FTP et même des navigateurs
web (lynx
ou w3m
), sans oublier tous les
outils d'administration.
Même s'il existe des applications graphiques aux fonctionnalités
équivalentes, ce sont le plus souvent des interfaces graphiques faites
autour de ces mêmes utilitaires; en plus de cela, les utilitaires en
ligne de commande ont l'avantage de pouvoir fonctionner en mode non
interactif: vous pouvez lancer une gravure de CD et vous délogguer du
système ensuite en étant sûr que la gravure s'effectuera (voir la page
de manuel de la commande nohup(1)
).