Red Hat Linux 9: Guide de démarrage de Red Hat Linux | ||
---|---|---|
Précédent | Chapitre 13. Éléments de base de l'invite du shell | Suivant |
Nous vous déjà avons parlé de quelques commandes de base de l'invite du shell permettant de lire des fichiers texte au moyen d'éditeurs. Ci-dessous figurent un certain nombre de commandes supplémentaires.
Vous pouvez utiliser la commande head si vous souhaitez afficher le début d'un fichier. La commande se présente comme suit:
head <nom-du-fichier> |
La commande head peut être certes utile, mais comme elle se limite à l'affichage des premières lignes d'un fichier, vous ne pouvez connaître la longueur réelle de celui-ci. Par défaut, seules les dix premières lignes peuvent être lues. Vous pouvez modifier le nombre de lignes à afficher en précisant un nombre en option, comme dans l'exemple ci-dessous:
head -20 <nom-du-fichier> |
La commande head est le contraire de la commande tail. Avec tail, vous pouvez visualiser les dix dernières lignes d'un fichier de journalisation pour des messages système importants. Vous pouvez également utiliser tail pour consulter des fichiers de journalisation lors de leur mise à jour. En utilisant l'option -f, la commande tail imprime automatiquement à l'écran les nouveaux messages d'un fichier ouvert et ce, en temps réel. Par exemple, pour contrôler /var/log/messages de façon active, tapez l'entrée suivante à l'invite du shell, en étant connecté en tant que super-utilisateur:
tail -f /var/log/messages |
La commande grep est utile pour trouver des chaînes de caractères spécifiques dans un fichier. Par exemple, pour trouver toutes les références au mot 'coffee' présentes dans le fichier sneakers.txt, vous taperez la commande:
grep coffee sneakers.txt |
Toutes les lignes contenant le mot 'coffee' seront alors affichées.
![]() | Astuces |
---|---|
Sauf spécification contraire, les recherches de grep sont sensibles à la casse. Par conséquent, une recherche sur le mot 'Coffee' est différente d'une recherche sur le mot 'coffee'. Pour effectuer une recherche insensible à la casse dans un fichier, utilisez l'option -i de grep. Reportez-vous à la page de manuel relative à grep pour obtenir de plus amples informations sur cette commande. |
Vous pouvez utiliser des tubes et des réacheminements de sorties lorsque vous voulez enregistrer et/ou stocker des informations à lire plus tard.
Vous pouvez par exemple utiliser la commande grep pour effectuer une recherche sur le contenu d'un fichier particulier, puis enregistrer les résultats sous forme de fichier ou les envoyer à une imprimante.
Par exemple, pour imprimer les informations relatives aux occurrences du mot 'coffee' dans le fichier sneakers.txt, il suffit de taper:
grep coffee sneakers.txt | lpr |
Que faire si vous avez oublié le nom du fichier que vous recherchez? Grâce aux caractères génériques de recherche et aux expressions régulières, il est possible d'effectuer des tâches se rapportant à un ou plusieur(s) fichier(s), 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. Les caractères génériques de recherche (aussi appelé jokers ou 'wildcards') sont des symboles spéciaux qui peuvent remplacer des lettres, chiffres ou symboles et rendent la recherche de répertoires ou de fichiers spécifiques plus aisée que si le système devait consulter le contenu de longs répertoires à la recherche des informations souhaitées.
![]() | Astuce |
---|---|
Pour en savoir plus sur les caractères génériques de recherche et les expressions régulières, consultez la page de manuel relative à 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. Vous pourrez ensuite l'ouvrir et le lire à l'aide de less ou de vi (vi bash.txt). Si vous souhaitez imprimer le fichier, rappelez-vous que l'opération peut être assez longue. |
Par exemple, nous savons que le fichier s'appelle 'sneak____.txt,'. Il suffit donc de taper:
ls sneak*.txt |
pour que le nom du fichier s'affiche:
sneakers.txt |
Vous utiliserez probablement 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 souhaité. Ainsi, que vous tapiez:
ls *.txt |
ou:
ls sn* |
vous devriez trouver sneakers.txt ainsi que tous les autres fichiers finissant par .txt ou commençant par sn. Il est toutefois très utile de restreindre au maximum votre recherche.
Une façon de le faire consiste à utiliser le point d'interrogation (?). Tout comme l'astérisque, le signe ? peut vous aider à trouver un fichier correspondant à un certain modèle de recherche.
Dans ce cas, cependant, le signe ? permet de remplacer un caractère unique; ainsi, si vous effectuez une recherche sur sneaker?.txt, vous obtiendrez comme résultat sneakers.txt et/ou sneakerz.txt, si un fichier de ce nom existe.
Les expressions régulières sont plus complexes que le simple astérisque ou point d'interrogation.
Les expressions régulières s'avèrent utiles par exemple si un astérisque fait partie du nom du fichier, comme ce serait le cas si par exemple, le fichier sneakers.txt s'appelait en fait sneak*.txt.
La barre oblique inverse (\), permet de spécifier que vous ne voulez pas effectuer de recherche globale à l'aide de l'astérisque, mais que vous recherchez un fichier dont le nom contient un astérisque.
Si par exemple le fichier s'appelle sneak*.txt, tapez:
sneak\*.txt |
Ci-dessous figure une petite liste des caractères génériques de recherche et des expressions régulières:
* — correspond à tous les caractères
? — correspond à un caractère dans une chaîne
\* — correspond au caractère *
\? — correspond au caractère ?
\) — correspond au caractère )
Précédent | Sommaire | Suivant |
Tubes et pageurs | Niveau supérieur | Historique des commandes et complètement à l'aide de la touche Tab |