Dans tout environnement d’exploitation, les usagers manipulent des documents et effectuent des actions comme la création, la suppression ou la lecture. Linux ne fait pas exception à cette règle.
Bien qu’il soit possible d’interagir avec des fichiers via une interface graphique sous Linux, la majorité des utilisateurs privilégient l’emploi du terminal pour leurs interactions avec le système.
Linux intègre donc des instructions qui autorisent la manipulation de fichiers directement depuis le terminal. La commande `cat` est l’une d’elles.
Selon la documentation Linux, la commande `cat` sert à regrouper des fichiers et à afficher leur contenu sur la sortie standard. Ces pages de documentation Linux ont pour objectif d’aider les utilisateurs à comprendre les instructions Linux et leur utilisation.
Pour accéder à la page de manuel d’une instruction Linux, il suffit de taper `man nom_de_la_commande`. Par exemple, pour consulter la page de manuel de la commande `cat`, entrez la commande suivante dans le terminal :
man cat
Fonctionnalités de la commande `cat`
Comme mentionné précédemment, `cat` permet de visualiser le contenu d’un fichier à l’écran. Sa seconde fonction est la concaténation de fichiers, permettant d’afficher leur contenu combiné. Ainsi, si plusieurs fichiers sont fournis à la commande `cat`, elle en assemblera le contenu pour l’afficher.
En d’autres termes, `cat` va rassembler le contenu de plusieurs documents et le projeter à l’écran. Toutefois, l’opération n’implique pas la création de nouveaux fichiers, et les fichiers originaux ne subissent aucune altération.
La commande `cat` est également utilisée lors de redirections. La redirection consiste à modifier la source d’entrée standard, ainsi que la destination de la sortie et de l’erreur standard. L’entrée standard, la sortie standard et l’erreur standard sont les flux de communication standard sous Linux.
Par défaut, l’entrée standard est le clavier, tandis que la sortie standard et les erreurs sont affichées à l’écran.
La redirection permet donc, au lieu d’obtenir l’entrée depuis le clavier, de l’obtenir depuis un fichier ou une autre source.
Concernant la sortie et l’erreur standard, affichées par défaut à l’écran, la redirection permet de les diriger vers un fichier.
Syntaxe de la commande `cat`
La syntaxe de la commande `cat` est la suivante :
cat [OPTION]... [FILE]...
Dans la documentation Linux, tout ce qui est entre crochets est facultatif. Ainsi, la commande `cat` n’a pas forcément besoin d’une `OPTION` ou d’un `FILE` comme argument. Elle peut avoir les deux, un seul des deux, ou aucun.
Les points de suspension (…) indiquent qu’un ou plusieurs des opérandes ou arguments précédents sont acceptés. La commande `cat` peut donc accepter une ou plusieurs `OPTIONS` ou `FILE`.
`FILE` représente les fichiers que `cat` doit regrouper et afficher. `OPTION` représente les indicateurs qui modifient le fonctionnement de `cat`. Les options utilisables avec `cat` sont les suivantes :
Le principe de `cat` est de prendre les fichiers fournis, et d’afficher leur contenu sur la sortie standard, qui correspond à la fenêtre du terminal. Si plusieurs fichiers sont fournis, leur contenu est concaténé avant d’être affiché.
Le comportement de `cat` varie selon l’indicateur qui lui est transmis. Par exemple, l’indicateur `-n` fait numéroter toutes les lignes affichées. L’emploi des indicateurs dépendra de l’action souhaitée.
Comment employer la commande `cat`
Pour utiliser `cat`, il suffit de saisir la commande, suivie du ou des noms des fichiers à concaténer et à lire. Pour afficher le contenu d’un fichier nommé `rainbow.txt`, exécutez la commande suivante :
cat rainbow.txt
Il est possible d’ajouter un indicateur pour modifier le comportement de `cat`. L’indicateur `-n` permet par exemple de numéroter les lignes affichées. Dans l’exemple précédent, la numérotation s’effectue avec la commande :
cat -n rainbow.txt
Voici les sorties de ces deux commandes :
Les indicateurs ou options utilisables avec `cat` se combinent, soit en les écrivant à la suite, soit en les espaçant. Les deux méthodes fonctionnent. L’indicateur `-E`, illustré ci-dessous, ajoute un signe dollar ($) à la fin de chaque ligne.
Cette fonctionnalité peut se révéler pratique pour l’affichage de valeurs monétaires. Voici différentes manières de combiner des indicateurs avec la commande `cat` :
Pour concaténer et afficher plusieurs fichiers à l’aide de `cat`, il suffit de spécifier leurs noms, séparés par des espaces. Pour concaténer `rainbow.txt` et `primary.txt`, utilisez :
cat rainbow.txt primary.txt
La sortie de cette commande est illustrée ci-dessous :
Après cette opération, `rainbow.txt` et `primary.txt` restent inchangés. Il est à noter que l’ordre d’apparition des noms de fichier dans la commande détermine l’ordre d’affichage du contenu, du premier fichier au dernier. Il est également possible d’ajouter des indicateurs lors de la concaténation, comme suit :
Enfin, si aucun fichier n’est spécifié, ou si un tiret (-) est fourni, la commande `cat` lira depuis l’entrée standard, et non depuis un fichier. L’entrée standard étant le clavier.
Ainsi, `cat` affichera simplement tout ce que l’utilisateur saisira via le clavier. Pour illustrer cela, exécutez :
cat
Un curseur clignotant apparaîtra, signalant que la commande attend une saisie. Après avoir entré du texte et appuyé sur Entrée, tout ce que vous aurez tapé s’affichera, comme ci-dessous :
Appuyez sur CTRL + C pour quitter et arrêter la transmission de l’entrée à `cat`.
Il est également possible d’utiliser `cat` pour concaténer et afficher le contenu de tous les fichiers d’un certain type dans le répertoire courant. Cela se fait en utilisant un astérisque (*) comme caractère générique. Par exemple, pour afficher le contenu de tous les fichiers texte (.txt), entrez :
cat *.txt
Résultat de la commande :
Exemples d’utilisation de `cat`
Outre les utilisations standard, les capacités de `cat` peuvent être augmentées par la redirection. Par défaut, `cat` affiche sa sortie sur l’écran du terminal.
Grâce à la redirection, il est possible de diriger la sortie vers un autre fichier.
L’opérateur de redirection de sortie sous Linux est `>` (le symbole supérieur à).
cat rainbow.txt
Si nous exécutons :
Le contenu de `rainbow.txt` s’affichera à l’écran.
cat colors.txt > rainbow.txt
En revanche, si nous exécutons :
Le contenu de `rainbow.txt` ne s’affichera pas, il sera redirigé et écrit dans `colors.txt`. Cela permet de copier facilement le contenu d’un fichier vers un autre.
Par défaut, la redirection de sortie sous Linux écrase le contenu du fichier de destination. Ainsi, dans l’exemple précédent, le contenu de `rainbow.txt` sera remplacé par celui de `colors.txt`. Pour conserver le contenu existant et y ajouter le nouveau contenu, utilisez `>>` lors de la redirection.
Notez que `colors.txt` contient à présent les couleurs de `rainbow.txt`, après la redirection de la sortie de `rainbow.txt` vers `colors.txt` via `>>`.
Pour exploiter davantage le potentiel de `cat`, nous pouvons combiner la redirection et son comportement par défaut de lecture depuis l’entrée standard, lorsque aucun fichier n’est spécifié. De cette manière, `cat` peut servir à créer un fichier et à y écrire du texte.
cat > dark.txt
Si vous exécutez :
Nous redirigeons la sortie vers `dark.txt`. En l’absence de fichier dont le contenu sera redirigé vers `dark.txt`, `cat` attendra une saisie au clavier.
Saisissez le texte souhaité pour `dark.txt`, appuyez sur Entrée pour passer à la ligne suivante, puis sur CTRL + D lorsque vous aurez terminé. Cela enregistrera votre saisie dans le fichier de destination.
Puisque nous redirigeons vers un fichier inexistant, `dark.txt` sera créé, et votre saisie y sera enregistrée. `cat` peut ainsi servir à créer et remplir des fichiers.
Voici le résultat de cette opération :
cat >> dark.txt
Il est également possible d’ajouter du texte à la fin d’un fichier avec `cat`. Si l’on prend `dark.txt`, il est possible d’y ajouter des couleurs en exécutant :
Saisissez ensuite le texte souhaité, puis appuyez sur CTRL + D pour enregistrer et ajouter le nouveau contenu à `dark.txt` comme ci-dessous :
cat file1 file2 file3 > file4
Il est également possible de concaténer plusieurs fichiers en un seul grâce à `cat`. La syntaxe d’une telle opération est la suivante :
Le contenu de `file1`, `file2` et `file3` sera concaténé et écrit dans `file4`. Vous pouvez utiliser `>>` si vous ne souhaitez pas écraser le contenu de `file4`. Si `file4` n’existe pas, il sera créé automatiquement.
Voici un exemple de cette opération :
cat colors.txt primary.txt > allColors.txt
Pour écrire le contenu de `colors.txt` et `primary.txt` dans `allColors.txt`, exécutez :
cat primary.txt >> colors.txt
Vous pouvez aussi ajouter le contenu d’un ou plusieurs fichiers à un autre en employant `>>` lors de la redirection de la sortie, afin de ne pas écraser le contenu existant. Pour ajouter le contenu de `primary.txt` à `colors.txt`, saisissez :
Le résultat de cette opération est le suivant :
En conclusion
La commande `cat` est un outil Linux indispensable permettant de concaténer et afficher le contenu des fichiers. Elle propose plusieurs indicateurs pour modifier son fonctionnement.
Grâce à la redirection, les capacités de `cat` sont grandement accrues, permettant de créer et copier des fichiers, de regrouper plusieurs fichiers en un seul, ou encore d’ajouter du contenu à un fichier existant. Pour en savoir plus sur `cat`, consultez sa page de manuel.
Il peut être intéressant d’explorer d’autres commandes Linux utiles aux administrateurs système.