Cette commande permet d'afficher le contenu d'un ou des fichiers sélectionnés, de plus, comme nous le verrons dans ce tuto, elle reste tellement simple et efficace que son emploi est très large et très étalé dans le temps avec très peu de modification.
Merci à Haricophile pour cette indication !
cat <nom du fichier>
cat test.txt
Grâce à cette commande je peux voir le contenu du fichier test.txt
Si vous avez un fichier plus long que la taille de votre écran, alors je vous conseille d'utiliser l'option less, cette option vous permettra de stopper la lecture du fichier dans les limites de votre écran.
cat test.txt | less
La commande cat
contient d'autres options mais j'ai mis juste l’essentiel.
Vous pouvez aussi obtenir la page de man
de la commande avec
man cat
cat permet d'afficher le contenu de plusieurs fichiers, les uns à la suite des autres, c'est-à-dire de les concaténer !
Créez 3 fichiers avec la Commande Echo.
echo salut > test1.txt
echo mon > test2.txt
echo coco > test3.txt
D'une seule commande cat
, vous pouvez afficher le contenu des trois fichiers .txt
les uns à la suite des autres ainsi :
cat test1.txt test2.txt test3.txt
Vous obtenez :
salut mon coco
Intéressant !
La commande cat
, combinée avec la commande Echo et la commande Chevron " > ", permet de créer un seul fichier rassemblant les informations d'un ou de plusieurs fichiers d'informations ou de sécurité.
Exemple :
cat /proc/cpuinfo > info_cpu.txt
Le fichier info_cpu.txt
sera créé et rempli des informations concernant le cpu
à fin de communication par réseau ou autres utilisations nécessitant de s'y référer.
Ces commandes sont à faire en session user.
On tape :
cat > ~/test4.txt <<EOF Salut mon coco ! EOF
Nota :
À l'intérieur de la ligne de commande cat
, EOF
est utilisée pour encadrer le début et la fin de “la partie rédactionnelle du texte”.
Les termes EOF
(End Of File) sont conventionnels.
Vous pouvez tout aussi bien utiliser n'importe quoi comme chaîne_de_caractère, pourvu qu'elle soit répétée au début et à la fin de l'écrit proprement dit.
FDP
par exemple (Fin Du Poteau)…
Mais en ce cas, vous risquez de se faire pas mal interroger sur vos intentions d'écriture une personne contemplant la rédaction d'un de vos script
Toutefois, un peu d'humour ne nuit pas, hein ?
Le fichier sera créé dans mon /home/user
grâce au signe2) ~
placé après le signe3) >
.
Voir les tutos tilde
et chevron
par ces liens :
Nous visionnons le contenu de ce nouveau fichier avec la Commande less :
less test4.txt
On obtient :
Salut mon coco !
Et voilà, magique !
Par la suite, pour rajouter des lignes supplémentaires sans effacer le contenu déjà rédigé, après la commande cat
il faut doubler le chevron
devant cat
comme ceci :
cat >> ~/test4.txt <<EOF Comment vas-tu 'yau d'poële ? EOF
Et nous obtenons :
less test4.txt
Donne :
Salut mon coco ! Comment vas-tu 'yau d'poële ?
Hop !
L'exercice fini, la destruction de ce moment de poésie se fera par la Commande rm ainsi :
rm test4.txt
Ouf !
On peut utiliser la commande cat et le chevron pour réécrire son sources.list :
cat > /etc/apt/sources.list.d/test.list <<EOF # Debian Stretch, dépôt principal + paquets non libres deb http://deb.debian.org/debian/ stretch main contrib non-free # Debian Stretch, mises à jour de sécurité + paquets non libres deb http://security.debian.org/ stretch/updates main contrib non-free # Debian Stretch, mises à jour "volatiles" + paquets non libres deb http://deb.debian.org/debian/ stretch-updates main contrib non-free EOF
sudo cat > /etc/apt/sources.list.d/test.list <<EOF # Debian Stretch, dépôt principal + paquets non libres deb http://deb.debian.org/debian/ stretch main contrib non-free # Debian Stretch, mises à jour de sécurité + paquets non libres deb http://security.debian.org/ stretch/updates main contrib non-free # Debian Stretch, mises à jour "volatiles" + paquets non libres deb http://deb.debian.org/debian/ stretch-updates main contrib non-free EOF
ne fonctionnera pas car le shell courant, c'est celui de l'utilisateur courant, donc sans les droits root. Le moyen le plus simple est d'utiliser d'abord la commande
sudo -i
qui permet de passer en root avec le shell courant de root puis de faire la commande en commençant directement avec cat …
“Concaténation verticale” : drôle d'expression, mais c'est facile ! Il s'agit de fusionner le contenu de deux (ou plus) fichiers dans un nouveau fichier.
Reprenons l'exemple précédent :
cat > ~/test4.txt <<EOF > Salut > mon > coco ! > EOF
Faisons de même pour un fichier “test5.txt :
cat > ~/test5.txt <<EOF > Comment > ça > va? > EOF
Concaténons-les en un fichier “test4-et-5.txt” :
cat ~/test4.txt ~/test5.txt > test4-et-5.txt
Et voilà :
less ~/test4-et-5.txt
Salut mon coco ! Comment ça va?
Et Encore Hop !
Combiné avec ffmpeg, cat permet de convertir les fichiers vidéo.
Exemple :
cat fichier video_test.vob | ffmpeg -i - 1.mp4
Voir le tuto ffmpeg : encoder-en-mkv