Si vous débutez avec Linux, vous ne tarderez pas à
voir des fichiers dont les extensions vous sont
étrangères. L'extension d'un fichier est la
dernière partie de son nom située derrière
le point final (pour le fichier tennis.txt,
"txt" est l'extension).
.h -- fichier d'en-tête de
langage de programmation C et C++
.c -- fichier de code source de
langage de programmation C
.cpp -- fichier de code source de
langage de programmation C++
.o -- fichier objet de programme
.pl -- script Perl
.tcl -- script TCL
.so -- fichier de bibliothèque
Mais les extensions de fichier ne sont pas forcément
utilisées ou utilisées de façon
incohérente. Dès lors, que se passe-t-il si un
fichier ne porte pas d'extension, ou lorsqu'il semble ne pas
correspondre à ce qu'indique l'extension ?
C'est alors que la commande file peut
s'avérer utile.
Dans le Chapitre 13, nous avons
créé un fichier appelé
samedi, sans extension. La commande
file nous permet de connaître le type
de ce fichier en entrant :
Nous constatons qu'il s'agit d'un fichier texte. Tout fichier
désigné comme fichier texte doit être
lisible à l'aide de la commande cat,
more ou less.
 | Lisez la page de manuel |
|---|
| | Pour plus de détails sur la commande
file, consultez la page de manuel
file en entrant man
file.
|
A propos de la lecture des fichiers…
Il y a de nombreuses façons de lire des fichiers dans
Linux. Dans le Chapitre 13, par exemple,
nous avons évoqué les "pagers"
more et less (on les
appelle "pagers" parce qu'ils permettent de
feuilleter des documents "page à page"). Nous
avons également appris non seulement à afficher,
mais aussi à manipuler des fichiers à l'aide de
la commande cat.
Mais il existe bien d'autres options applicables à la
lecture de fichiers README, de pages de manuel ou de documents
créés.
Plusieurs outils vous aident à lire des fichiers texte,
parmi lesquels les éditeurs de texte pico
, emacs et
vim, les "pagers"
more et less, ainsi que
les utilitaires de visualisation head,
tail, cat et
grep.
Examinons certaines fonctions de ces outils.
Dans le Chapitre 13, nous avons
présenté le "pager"
less. Less est utilisé pour
afficher des pages de manuel.
Examinons la page de manuel less pour
voir less en action.
Pour avancer d'un écran, appuyez sur la barre
d'espacement ; pour reculer d'un écran,
appuyez sur B et pour quitter, appuyez sur
Q.
La commande less offre également
d'autres fonctions performantes, notamment la
possibilité de faire défiler un texte
horizontalement en spécifiant le nombre de lignes
à faire défiler.
Curieusement, la commande more offre
moins de possibilités que la commande
less (en réalité, la
commande less est inspirée de la
commande more).
Examinons la page de manuel pour la commande
more, mais cette fois, ouvrons la page
à l'aide de more (en redirigeant
la sortie de la commande man vers
more).
A première vue, le résultat ne semble pas
très différent, mais la commande
more est moins riche que la commande
less. La différence la plus
frappante est peut-être l'impossibilité de
revenir en arrière dans un document (alors que les
fonctions permettant d'avancer à l'aide de la
barre d'espacement et de quitter en
appuyant sur Q sont identiques).
Vous pouvez utiliser la commande head
simplement pour afficher le début d'un fichier. La
commande est :
Head peut être utile, mais
étant donné qu'elle est limitée aux
quelques premières lignes du fichier, elle ne permet
pas d'en connaître la longueur réelle. Par
défaut, vous pouvez uniquement lire les 10
premières lignes d'un fichier, bien qu'il soit
possible de spécifier le nombre de lignes
supplémentaires à afficher en entrant :
Lisez la page de manuel de la commande
head (man head) pour
plus de détails. Les commandes
less ou more vous
sembleront probablement plus utiles parce qu'elles
permettent de "feuilleter" le fichier si vous
réalisez que les informations recherchées se
situent plus loin dans le fichier que vous ne le pensiez.
La commande tail a la fonction inverse de
la commande head. La commande
(tail ) permet de consulter les 10
dernières lignes d'un fichier.
La commande cat, acronyme de
concaténation, affiche le contenu de tout le fichier
à l'écran. cat peut
s'avérer utile si le fichier est très court,
comme dans le cas du fichier tennis.txt
que nous avons créé. Mais si un fichier est
assez long, il risque de défiler très
rapidement à l'écran car la commande
cat affiche le fichier tout entier.
La commande grep est très utile
pour rechercher des chaînes de caractère
particulières dans un fichier. Imaginons que nous
recherchions chaque occurrence du mot
"café" dans le fichier
tennis.txt, créé dans
notre répertoire de connexion. Nous pourrions
entrer :
Nous obtiendrions alors toutes les lignes contenant le mot
"café".
 | Pensez à la casse |
|---|
| | Sauf spécification contraire, les recherches de la
commande grep sont sensibles à
la casse. Cela signifie que si vous
recherchez Café, vous
n'obtiendrez pas le même résultat qu'en
recherchant le mot café. L'une
des options de la commande grep,
-i, permet aussi d'effectuer une
recherche dans un fichier sans tenir compte de la casse.
Pour plus d'informations sur cette commande, reportez-vous
à la page de manuel grep .
|
N'oubliez pas d'utiliser des "pipes" et la
redirection de sortie lorsque vous voulez stocker et/ou
imprimer des informations à lire
ultérieurement.
Vous pouvez par exemple utiliser la commande
grep pour effectuer une recherche sur le
contenu d'un fichier particulier, puis enregistrer les
résultats ou les envoyer à une imprimante.
Pour imprimer les informations relatives aux occurrences du
mot "café" dans le fichier
tennis.txt, entrez simplement :
grep café tennis.txt | lpr
|
Cette commande se comporte de la même façon que
la commande ls -al /etc | more que vous
avez peut-être utilisée dans le Chapitre 13 pour visualiser le contenu du
répertoire /etc, puis envoyer
les résultats à l'aide de la commande
more afin de les afficher à
l'écran.
 | Il est plus sûr d'utiliser >> |
|---|
| | N'oubliez pas la distinction entre l'utilisation de >
et de >> : le signe > entraîne
l'écrasement du fichier, tandis que le signe
>> ajoute des informations au fichier.
Habituellement (sauf si vous êtes certain de ce que
vous voulez), il est plus sûr d'utiliser >>
pour éviter tout risque de perte d'informations
précieuses (même s'il vous faudra
peut-être éditer ensuite le fichier si vous
ne souhaitez pas y ajouter d'informations).
|
Que se passe-t-il si vous avez oublié le nom du
fichier recherché ? Vous ne pouvez pas dire
à votre ordinateur : rechercher un fichier
nommé "tenn" ou "tenn-quelque
chose".
Et pourtant si, en quelque sorte. Les
caractères
génériques ou les
expressions régulières
permettent d'agir sur un ou plusieurs fichiers sans en
connaître le nom complet. Il suffit de saisir les
caractères que vous connaissez et de remplacer les
autres par un caractère générique.
 | Informations complémentaires sur les caractères génériques et les expressions régulières |
|---|
| | Pour en savoir plus sur les caractères
génériques et les expressions
régulières, consultez la page de manuel
bash (man
bash). N'oubliez pas que vous pouvez enregistrer
le fichier sous la forme d'un fichier texte en entrant
man bash | col -b > bash.txt.
Ensuite, vous pouvez l'ouvrir et le lire à l'aide
de less ou de pico
(pico bash.txt). Si vous voulez
imprimer le fichier, prenez garde à sa longueur.
|
Vous savez que le fichier s'appelle "tenn-quelque
chose.txt". Entrez simplement :
Le nom du fichier s'affiche :
Il est probable que vous utiliserez très
fréquemment l'astérisque
(*) pour effectuer de telles recherches.
L'astérisque permet de rechercher tout ce qui
correspond au modèle recherché. Vous pouvez
donc même entrer :
ou :
Vous trouverez également
tennis.txt ; la différence
est que la liste contiendra davantage de fichiers
correspondant au modèle recherché.
Il est donc utile de limiter la recherche au maximum.
Une façon de limiter la recherche consiste à
utiliser le point d'interrogation (?).
Tout comme l'astérisque, le signe
? peut vous aider à retrouver un
fichier correspondant à un certain modèle de
recherche.
Dans ce cas, cependant, le signe ? permet
de remplacer un seul caractère inconnu ; ainsi,
si vous recherchez tenni?.txt, vous
trouverez tennis.txt, de même que
tenniz.txt s'il existe un fichier de ce
nom.
Si un astérisque fait partie du nom du fichier, comme
ce serait le cas si le fichier
tennis.txt s'appelait plutôt
tenn*.txt, les expressions
régulières s'avèrent utiles.
Les expressions régulières sont plus complexes
que l'astérisque ou le point d'interrogation.
La barre oblique inverse (\) permet de
spécifier que vous ne voulez pas rechercher
tout ce que remplace
l'astérisque, mais plutôt un fichier dont le
nom contient une astérisque.
Si le fichier s'appelle tenn*.txt,
entrez :
Voici une courte liste des caractères
génériques et des expressions
régulières :
* -- Correspond à tous les
caractères
? -- Correspond à un
caractère dans une chaîne (par exemple
tenni?.txt )
\* -- Correspond au caractère *
\? -- Correspond au caractère ?
\) -- Correspond au caractère )
Vous pouvez également utiliser les caractères
génériques pour d'autres fonctions que la
recherche : ils s'avèrent utiles pour
déplacer ou renommer des fichiers. Les expressions
régulières peuvent également vous aider
à renommer des fichiers contenant des
caractères tels que * et ? .
Pour en savoir plus à ce sujet, poursuivez la lecture.