Linux-Mandrake: |
Guide de l'utilisateur |
et Manuel de référence |
MandrakeSoft
Janvier 2000 http://www.linux-mandrake.com
Le but de ce chapitre est d'introduire un petit nombre d'outils en ligne
de commande qui peuvent s'avérer utiles au quotidien. Bien sûr, vous
pouvez passer ce chapitre si vous avez l'intention de n'utiliser qu'un
environnement graphique, mais un rapide coup d'oeil peut vous faire
changer d'avis :)
Ce chapitre n'est pas vraiment organisé. Les utilitaires sont listés comme ils viennent, des plus utilisés aux plus obscurs. Chaque commande sera illustrée par un exemple, mais il vous est laissé à titre d'exercice de lui trouver des usages plus utiles.
grep
: General Regular Expression Parser (« analyseur syntaxique général d'expressions rationnelles »)D'accord, le nom n'est pas très intuitif, pas plus que son acronyme, mais son utilisation est simple: chercher un motif donné en argument dans un ou plusieurs fichiers. Sa syntaxe est:
grep [options] <motif> [un ou plusieurs fichier(s)]
Si on a précisé plusieurs noms de fichiers, leur nom apparaît en début
des lignes remplissant les critères du motif, à moins qu'on n'ait
utilisé l'option -h
. L'option -l
a pour effet de
n'afficher que le nom des fichiers dont au moins une ligne remplit les
conditions du motif. Il est parfois utile, lorsque la liste des
arguments est longue, de parcourir les fichiers à l'intérieur d'une
boucle du shell et d'utiliser le truc suivant:
grep <motif> <nom_de_fichier> /dev/null
.
Le motif est une expression rationnelle, bien que la plupart du temps il ne consiste qu'en un simple mot. Les options les plus couramment utilisées sont les suivantes:
-i
: Rechercher en ignorant la casse
(ou capitalisation).
-v
: Inverser la recherche: trouver les lignes ne
correspondant pas au motif.
-n
: Afficher le numéro de ligne pour chaque ligne
trouvée.
-w
: Dit à grep
que le motif doit correspondre à
un mot entier. Attention, les caractères considérés comme pouvant faire
partie d'un mot dépendent du réglage de la langue.Voici un exemple d'utilisation:
$ cat victim
Hello dad
Hi daddy
So long dad
# Chercher la chaîne "hi", peu importe la casse
$ grep -i hi victim
Hi daddy
# Chercher "dad" comme un mot entier, et afficher
# le numéro de ligne en face de chaque ligne
# correspondante
$ grep -nw dad victim
1:Hello dad
3:So long dad
# Chercher toutes les lignes ne commençant pas
# par un "H"
$ grep -v "^H" victim
So long dad
$
Si vous voulez utiliser grep
dans un tube, vous n'avez pas à
spécifier de nom de fichier, car par défaut, il prend son entrée depuis
l'entrée standard. De même, par défaut, il affiche les résultats
sur la sortie standard, donc vous pouvez sans crainte mettre la
sorte de grep
dans un autre tube. Par exemple:
$ cat /usr/doc/HOWTO/Parallel-Processing-HOWTO | \
grep -n thread | less
find
: trouver des fichiers en fonction de certains critèresfind
est un utilitaire Unix de longue date. Son but
est de parcourir récursivement un ou plusieurs répertoires et d'y
trouver des fichiers correspondant à un certain ensemble de critères.
Bien qu'il soit très utile, sa syntaxe est vraiment complexe, et
l'utiliser requiert une certaine habitude. La syntaxe générale est:
find [options] [répertoires] [critère] [action]
Si vous ne spécifiez aucun répertoire, find
recherchera dans
le répertoire courant. Si vous ne spécifiez pas de critère, c'est
équivalent à « vrai », et donc tous les fichiers seront trouvés.
Les options, critères et actions sont si nombreux que nous n'en
mentionnerons que quelques-uns ici. Commençons par les options:
-xdev
: Ne pas étendre la recherche aux répertoires se
trouvant sur d'autres systèmes de fichiers.
-mindepth <n>
: Descendre d'au moins <n>
niveaux en-dessous du répertoire de recherche avant de chercher des
fichiers.
-maxdepth <n>
: Rechercher les fichiers se
trouvant au plus n
niveaux en-dessous du répertoire de
recherche.
-follow
: Suivre les liens symboliques s'il pointent vers
des répertoires. Par défaut, find
ne les suivra pas.
-daystart
: Quand il est fait usage de tests relatifs à la
date et l'heure, (voir ci-dessous), prendre le début de la journée
courante comme repère au lieu de la marque par défaut (24 heures avant
l'heure courante).Un critère peut être un ou plusieurs tests atomiques; quelques tests utiles sont:
-type <type>
: Rechercher un type de fichiers donné;
<type>
peut être: f
(fichier régulier), d
(répertoire), l
(lien symbolique), s
(socket), b
(fichier en mode bloc), c
(fichier en mode caractère) or p
(tube nommé).
-name <motif>
: Trouver les fichiers dont les noms
correspondent au <motif>
donné. Avec cette option, <motif>
est traité comme un motif d'englobement du shell (voyez
le chapitre 32.0).
-iname <motif>
: Comme -name
, mais
ne tient pas compte de la casse.
-atime <n>
, -amin <n>
: Trouver
les fichiers dont la dernière date d'accès remonte à <n>
jours
(-atime
) ou <n>
minutes (-amin
). Vous pouvez
aussi spécifier +<n>
ou -<n>
, auquel cas la recherche
sera effectuée sur les fichiers accédés au plus ou au moins <n>
jours/minutes auparavant.
-anewer <fichier>
: Trouver les fichiers dont la
dernière date d'accès est plus récente que celle du fichier
<fichier>
-ctime <n>
, -cmin <n>
,
-cnewer <fichier>
Même chose que pour
-atime
, -amin
et -anewer
, mais s'applique à
la dernière date de changement du contenu des fichiers.
-regex <motif>
: Comme pour -name
, mais
motif
est traité comme une expression rationnelle.
-iregex <motif>
: Comme -regex
, mais
sans tenir compte de la casse.Beaucoup d'autres tests existent, référez-vous à la page de manuel pour plus de détails. Pour combiner ces tests, vous pouvez utiliser:
<c1> -a <c2>
: Vrai si <c1>
and
<c2>
sont vrais tous les deux; -a
est implicite, donc
vous pouvez utiliser <c1> <c2> <c3> ...
si vous voulez que tous les tests <c1>
, <c2>
, ... soient
vérifiés.
<c1> -o <c2>
: Vrai si l'un de
<c1>
ou <c2>
est vrai, ou les deux. Notez que
-o
a une priorité moins grande que -a
, donc si
vous voulez, par exemple, que les fichiers correspondant aux critères
<c1>
ou <c2>
et qu'ils vérifient obligatoirement le
critère <c3>
, vous devrez utiliser des parenthèses et écrire
( <c1> -o <c2> ) -a <c3>
. Vous
devez échapper (désactiver) les parenthèses, sans quoi
le shell les interprétera!
-not <c1>
: Inverse le test <c1>
, donc
-not <c1>
est vrai si <c1>
est faux.Enfin, vous pouvez spécifier une action pour chaque fichier trouvé. Les plus fréquentes sont:
-print
: Ne fait qu'écrire le nom de chaque fichier sur la
sortie standard. C'est l'action par défaut si vous n'en spécifiez
aucune.
-ls
: Affiche l'équivalent d'un ls -ilds
sur
chaque fichier trouvé sur la sortie standard.
-exec <command>
: Exécute la commande
<command>
sur chaque fichier trouvé. La ligne de commande
<command
> doit se terminer par un ;
, que vous devez
désactiver de telle sorte que le shell ne l'interprète pas; la
position du fichier est repérée par {}
.
Regardez les exemples d'utilisation pour comprendre.
-ok <command>
: Même chose que -exec
mais
demander confirmation pour chaque commande.Toujours là? Alors, maintenant entraînons-nous un peu, car c'est
toujours la meilleure façon de comprendre le monstre. Supposons que vous
vouliez trouver tous les répertoires dans /usr/share
. Vous
taperez alors:
find /usr/share -type d
Supposons que vous ayez un serveur HTTP, tous vos fichiers HTML
sont dans /home/httpd/html
, qui est aussi votre répertoire
courant. Vous voulez trouver tous les fichiers qui n'ont pas été
modifiés depuis un mois. Comme vous avez des pages de différents
auteurs, certains fichiers ont une extension html
et d'autres
l'extension htm
. Vous voulez lier ces fichiers dans le
répertoire /home/httpd/obsolete
. Vous taperez alors:
find ( -name "*.htm" -o -name "*.html"
) -a -ctime -30 -exec ln {}
/home/httpd/obsolete ;
[33]
D'accord, cette exemple est un peu compliqué et requiert quelques explications. Le critère est:
( -name "*.htm" -o -name "*.html" ) -a
-ctime -30
qui fait ce que l'on veut: il recherche tous les fichiers dont le nom se
termine soit par .htm
, soit par .html
(( -name "*.htm" -o -name "*.html" )
),
et (-a
) qui n'ont pas été modifiés dans les 30
derniers jours, ce qui représente en gros un mois (-ctime
-30
). Notez les parenthèses: elles sont nécessaires ici, parce que
-a
a une priorité plus grande. S'il n'y en avait pas, tous les
fichiers se terminant par .htm
auraient été trouvés, plus
tous les fichiers se terminant par .html
et qui n'ont pas été
modifiés depuis un mois, ce qui n'est pas ce que nous voulons. Notez
également que les parenthèses sont désactivées par rapport au
shell: si nous avions mis ( .. )
à la place de
( .. )
, le shell les aurait
interprétées et essayé d'exécuter -name "*.htm" -o -name
"*.html"
dans un sous-shell... Une autre solution aurait été de mettre
les parenthèses entre doubles apostrophes ou simples apostrophes, mais
une anti-barre oblique (backslash) est préférable ici dans la
mesure où nous ne devons isoler qu'un seul caractère.
Et enfin, il y a la commande à exécuter pour chacun des fichiers:
-exec ln {} /home/httpd/obsolete ;
Ici aussi, vous devez désactiver le ;
par rapport au
shell, car autrement le shell l'interprétera comme un
séparateur de commandes. Si vous ne le faites pas, find
se
plaindra qu'il manque un argument à -exec
.
Un dernier exemple: vous avez un gros répertoire nommé
/shared/images
, avec toutes sortes d'images dedans.
Régulièrement, vous utilisez la commande touch
pour mettre à
jour les dates d'un fichier nommé stamp
dans ce répertoire, de
façon à avoir une référence dans le temps. Vous voulez trouver tous les
fichiers JPEG dans ce répertoire qui sont plus récents que le
fichier stamp
, et comme vous avez des images de diverses sources,
ces fichiers ont des extensions jpg
, jpeg
,
JPG
ou JPEG
. Vous voulez aussi éviter de rechercher
dans le répertoire old
. Vous voulez vous faire envoyer la liste
de ces fichiers par courrier électronique, et votre nom d'utilisateur
est jean
:
find /shared/images -cnewer \
/shared/images/stamp \
-a -iregex ".*\.jpe?g" \
-a -not -regex ".*/old/.*" \
| mail jean -s "Nouvelles images"
Et voilà! Bien sûr, cette commande n'est pas très utile si vous devez la taper à chaque fois, et vous voudriez l'exécuter régulièrement. Vous pouvez le faire:
crontab
: afficher ou éditer votre fichier crontab
crontab
est une commande qui vous permet d'exécuter des
commandes à des intervalles de temps réguliers, avec l'avantage
supplémentaire que vous n'avez pas à être connecté au système et que la
sortie de ces commandes vous est envoyée par courrier électronique. Vous
pouvez spécifier les intervalles en minutes, en heures, en jours et même
en mois. crontab
agira différemment en fonction des options:
-l
: Affiche votre fichier crontab
courant.
-e
: Édite votre fichier crontab
.
-r
: Elimine votre fichier crontab
courant.
-u <utilisateur>
: Applique l'une des options ci-dessus
à l'utilisateur <utilisateur>
. Seul root
est
autorisé à faire cela.Commençons par éditer un fichier crontab
. Si vous tapez
crontab -e
, vous vous trouverez en face de votre éditeur de
texte favori si vous avez initialisé la variable d'environnement
'EDITOR'
ou 'VISUAL'
, autrement VI sera
utilisé. Une ligne dans un fichier crontab
est composée de six
champs. Les cinq premiers sont les intervalles de temps en minutes,
heures, jours dans le mois, mois et jours dans la semaine. Le sixième
champ est la commande à exécuter. Les lignes commençant par un
#
sont considérées comme des commentaires et seront ignorées
par crond
(le programme en charge d'exécution des fichiers
crontab
). Voici un exemple de fichier crontab
:
Note: afin de pouvoir imprimer l'extrait qui suit dans une police de caractères lisible, il nous a fallu ventiler les lignes les plus longues. C'est pourquoi certaines portions du texte doivent en réalité n'occuper qu'une seule ligne. Quand vous verrez le caractère''
terminer une ligne, cela signifiera que c'est en réalité la même ligne qui continue. Cette convention fonctionne dans les fichiers de typeMakefile
et dans le shell, ainsi que dans d'autres cadres.
# Si vous ne voulez pas recevoir de courrier,
# « décommentez » la ligne suivante
#MAILTO=""
#
# Faire un rapport de toutes les nouvelles images
# à 14h tous les deux jours, en partant de
# l'exemple ci-dessus --- après ceci,
# « retoucher » le fichier "stamp". Le « % » est
# traité comme un retour chariot, cela vous
# permet de mettre plusieurs commandes sur la
# même ligne.
0 14 */2 * * find /shared/images \
-cnewer /shared/images/stamp \
-a -iregex ".*\.jpe?g" \
-a -not -regex \
".*/old/.*"%touch /shared/images/stamp
#
# Jouer une mélodie tous les and à Noël :)
0 0 25 12 * mpg123 $HOME/musiques/joyeux_noel.mp3
#
# Imprimer la liste des courses tous les mardis
# à 17 heures...
0 17 * * 2 lpr $HOME/liste-courses.txt
Il y a plusieurs autres moyens de spécifier des intervalles que ceux
mentionnés dans l'exemple. Par exemple, vous pouvez spécifier un
ensemble de valeurs discrètes séparées par des virgules
(1,14,23
) ou un intervalle (1-15
), ou même combiner
les deux (1-10,12-20
), optionnellement avec un pas
(1-12,20-27/2
). Maintenant, il vous reste à trouver des
commandes utiles à y mettre :)
at
: programmer une commande, mais seulement une foisVous pouvez aussi vouloir exécuter une commande à un jour donné, mais
pas régulièrement. Par exemple, vous voulez vous rappeler un
rendez-vous, aujourd'hui à 18 heures. Vous employez X, et vous
aimeriez être prévenu à 17h30, par exemple, que vous devez y aller.
at
est ce qu'il vous faut ici:
$ at 5:30pm
# Vous vous retrouvez en face de l'invite de at
at> xmessage "C'est l'heure! rendez-vous à 18h"
# Tapez C-d pour sortir
at> <EOT>
$
Vous pouvez spécifier la date de différentes manières:
now +<interval>
: Signifie « maintenant », plus
un intervalle optionnel. Aucun intervalle signifie
« maintenant »). La syntaxe pour l'intervalle est
<n> (minutes|hours|days|weeks|months)
(« minutes, heures, jours, semaines, mois » --- en
anglais uniquement). Par exemple, vous pouvez spécifier now + 1
hour
(dans une heure), now + 3 days
(dans trois jours) et
ainsi de suite.
<heure> <jour>
: Spécifier la date en
entier. Le paramètre <heure>
est obligatoire. at
est
très libéral dans ce qu'il accepte: vous pouvez par exemple taper
0100
, 04:20
, 2am
, 0530pm
,
1800
, ou une des trois valeurs spéciales: noon
(« midi »), teatime
(« l'heure du
thé, 16h ») ou midnight
(« minuit »). Le paramètre
<jour>
est optionnel. Vous pouvez aussi le spécifier de
différentes manières: 12/20/2001
par exemple, notation
américaine pour le 20 décembre 2001, ou à l'européenne,
20.12.2001
. Vous pouvez ne pas mettre l'année, mais dans ce
cas seule la notation européenne est acceptée: 20.12
. Vous
pouvez aussi spécifier le mois par son abréviation en anglais:
Dec 20
ou 20 Dec
sont tous les deux valides.at
accepte aussi différentes options:
-l
: Affiche la liste des commandes déjà programmées; le
premier champ est le numéro de la commande. C'est équivalent à la
commande atq
.
-d <n>
: Enlever la commande numéro <n>
de la
liste. Vous pouvez obtenir les numéros avec atq
. C'est
équivalent à la commande atrm <n>
.Comme d'habitude, voyez la page de manuel de at(1)
pour
plus d'options.
tar
: Tape ARchiver (« archiveur sur bandes »)Bien que nous ayons déjà vu une utilisation de tar
dans le
chapitre 18.0, nous n'avons pas expliqué son
fonctionnement. C'est ce à quoi va s'employer cette section. De même que
find
, tar
est un utilitaire Unix de longue
date, et sa syntaxe est un peu spéciale:
tar [options] [fichiers...]
Voici maintenant une liste d'options. Notez que toutes celles-ci ont une
option longue équivalente, mais vous devrez vous référer à la page de
manuel pour cela car elles ne sont pas listées ici. Et bien sûr, toutes
les options ne sont pas listées non plus :)
Note: le tiret initial (-
) des options courtes est maintenant désuet pour la commandetar
, sauf après une option longue.
c
: Cette option est utilisée dans le but de créer de
nouvelles archives.
x
: Cette option est utilisée pour extraire des fichiers
depuis une archive existante.
t
: Affiche la liste des fichiers d'une archive
existante.
v
: Cette option affichera simplement la liste des
fichiers au fur et à mesure qu'ils sont ajoutés à une archive ou
extraits d'une archive, ou, en conjonction avec l'option t
ci-dessus, produira un affichage long des fichiers au lieu d'un affichage
court.
f <fichier>
: Créer une archive de nom <fichier>
,
extraire depuis l'archive <fichier>
ou faire un liste des
fichiers de l'archive <fichier>
. Si cette option n'est pas
fournie, le fichier par défaut sera /dev/rmt0
, qui est
généralement le fichier spécial associé à un streamer.
Si le paramètre fichier
est un tiret (-
), l'entrée
ou la sortie (selon que vous extrayez depuis une archive ou en créez
une), sera associée à l'entrée standard ou la sortie standard.
z
: Dit à tar
que l'archive à créer devra être
compressée avec gzip
, ou que l'archive depuis laquelle on
extrait est compressée avec gzip
.
y
: Même chose que pour z
, mais le programme
utilisé pour la compression est bzip2
.
p
: Lors de l'extraction des fichiers d'une archive,
préserver tous les attributs de fichiers, y compris la propriété, la
dernière date d'accès et ainsi de suite. Très utile pour les sauvegardes
de systèmes de fichiers.
r
: Ajouter la liste des fichiers donnée sur la liste de
commande à une archive existante. Notez que l'archive à laquelle vous
voulez ajouter des fichiers ne doit pas être compressée!
A
: Fusionner les archives données sur la ligne de
commande à celle mentionnée avec l'option f
. De même que pour
l'option r
, les archives ne doivent pas être compressées pour
que cela fonctionne.Il y a beaucoup, beaucoup d'autres options, vous vous référerez à la
page de manuel de tar(1)
pour en obtenir une liste
complète. Voyez, par exemple, l'option d
. Maintenant, un peu
de pratique. Supposons que vous vouliez créer une archive de toutes les
images dans le répertoire /shared/images
, compressée avec
bzip2
, de nom images.tar.bz2
et située dans votre
répertoire personnel. Vous taperez alors:
#
# Note: vous devez être dans le répertoire
# contenant les fichiers de l'archive!
#
$ cd /shared
$ tar cyf ~/images.tar.bz2 images/
Comme vous pouvez le voir, nous avons utilisé trois options ici:
c
a dit à tar
de créer une archive, y
lui a
dit que nous la voulions compressée avec bzip2
, et f
/images.tar.bz2
lui a dit que l'archive devait être créée dans notre
répertoire personnel, avec le nom images.tar.bz2
. Maintenant, on
peut vouloir vérifier si l'archive est valide. Nous pouvons simplement
le vérifier en affichant la liste de ses fichiers:
#
# Retour à notre répertoire personnel
#
$ cd
$ tar tyvf images.tar.bz2
Ici, nous avons dit à tar
d'afficher la liste (t
) des
fichiers de l'archive images.tar.bz2
(f images.tar.bz2
),
en ayant averti que cette archive était compressée avec bzip2
(y
), et que nous voulions un format d'affichage long
(v
). Maintenant, supposons que vous ayez effacé le répertoire
des images. Heureusement, votre archive est intacte, et maintenant vous
voulez l'extraire à sa place originelle, dans /shared
. Mais comme
vous ne voulez pas casser votre commande find
pour trouver les
nouvelles images, vous devez préserver les attributs de tous les
fichiers:
#
# Rendez-vous dans le répertoire où vous voulez
# extraire
#
$ cd /shared
$ tar yxpf ~/images.tar.bz2
Et voilà le travail!
Maintenant, supposons que vous vouliez seulement extraire le répertoire
images/cars
de l'archive. Vous pouvez alors taper ceci:
$ tar yxf ~/images.tar.bz2 images/cars
Au cas où cela vous inquiéterait, n'en faites rien: non; si vous essayez
d'archiver des fichiers spéciaux, tar
les prendra tels qu'ils
sont, des fichiers spéciaux, et n'ira pas chercher leur contenu. Donc
oui, vous pouvez mettre sans risque /dev/mem
dans une archive
:)
Oh, et il gère aussi les liens correctement, donc ne vous en
inquiétez pas non plus. Pour les liens symboliques, regardez également
l'option h
dans la page de manuel.
bzip2
et gzip
: programmes de compression de donnéesVous avez vu que nous avons déjà parlé de ces deux programmes quand nous
avons évoqué tar
. Contrairement à WinZip sous
Windows, l'archivage et la compression sont faits en utilisant
deux programmes séparés --- tar
pour l'archivage, et
les deux programmes que nous allons maintenant introduire pour la
compression, bzip2
et gzip
.
En premier lieu, bzip2
a été écrit en tant que remplacement
pour gzip
. Ses possibilités de compression sont en général
meilleures, mais d'un autre côté il consomme plus de mémoire. La raison
pour laquelle gzip
est encore là est qu'il est encore beaucoup
plus répandu que bzip2
. Peut-être qu'un jour bzip2
remplacera complètement gzip
, mais peut-être pas.
Les deux commandes ont une syntaxe similaire:
gzip [options] [fichier(s)]
Si aucun nom de fichier n'est donné, gzip
comme
bzip2
attendra des données sur l'entrée standard et enverra le
résultat sur la sortie standard. Donc les deux programmes sont
utilisables avec des tubes. Les deux commandes ont aussi un ensemble
d'options similaires:
-1
, ..., -9
: Régler la capacité de compression.
Plus le nombre est haut, plus la compression sera élevée, mais mieux
signifie aussi plus lent: on n'a rien sans rien.
-d
: Décompresser un ou des fichier(s). C'est équivalent à
utiliser gunzip
ou bunzip2
.
-c
: Envoyer le résultat de la compression/décompression
des fichiers donnés en paramètre sur la sortie standard.Attention! Par défaut, gzip
et bzip2
effaceront le
ou les fichier(s) qu'ils ont compressés (ou décompressés) si vous
n'utilisez pas l'option -c
. Vous pouvez l'éviter avec
bzip2
en utilisant l'option -k
, mais gzip
n'a aucune option de la sorte!
Quelques exemples, maintenant. Supposons que vous vouliez compresser
tous les fichiers se terminant par .txt
dans le répertoire
courant avec bzip2
, vous utiliserez alors:
$ bzip2 -9 *.txt
Supposons que vous vouliez partager votre archive d'images avec
quelqu'un, mais il ne dispose pas de bzip2
, uniquement de
gzip
. Vous n'avez pas besoin de décompresser l'archive et de
la recompresser, vous pouvez juste la décompresser sur la sortie
standard, utiliser un tube, compresser depuis l'entrée standard et
rediriger le résultat vers la nouvelle archive:
bzip2 -dc images.tar.bz2 | gzip -9 >images.tar.gz
Et voilà le travail. Vous pourriez avoir tapé bzcat
au lieu de
bzip2 -dc
. Il existe un équivalent pour gzip
mais
son nom est zcat
, et non pas gzcat
. Vous disposez
aussi de bzless
(resp. zless
) si vous voulez
directement visualiser des fichiers compressés sans avoir à les
décompresser avant. Comme exercice, essayez de trouver la commande que
vous auriez à taper pour voir des fichiers sans les décompresser, et
sans utiliser bzless
or zless :)
Il existe tellement de commandes que si quelqu'un faisait un livre sur
la totalité, vous auriez une encyclopédie en face de vous. Ce chapitre
n'a même pas traité un dixième de pourcent, mais vous pouvez déjà faire
beaucoup avec ce qui a été dit ici. Quelques pages de manuel que vous
pourrez regarder si vous le souhaitez: sort(1)
,
sed(1)
, zip(1)
(oui, c'est bien ce que vous
pensez, vous pouvez extraire/fabriquer des archives ZIP sous
Linux), convert(1)
, et ainsi de suite.
L'expérimentation reste le meilleur moyen de se familiariser avec ces
outils, et vous leur trouverez probablement beaucoup d'utilisations
auquelles vous n'auriez pas pensé au premier coup d'oeil. Amusez-vous
bien :)