Visualisation de fichiers texte
La commande cat permet d'afficher le contenu d'un fichier. Voici ses options principales :
# Afficher les fins de ligne avec le caractère $
cat -E fichier.txt
# Numéroter toutes les lignes
cat -n fichier.txt
# Numéroter uniquement les lignes non vides
cat -b fichier.txt
# Compresser les lignes vides successives en une seule
cat -s fichier.txt
La commande tac effectue l'opération inverse en affichant le contenu en partant de la dernière ligne.
Navigation et pagination
Pour les fichiers volumineux, on utilise des outils de pagination :
- less : Le moteur de pagination le plus avancé (utilisé par
man).Espace: Page suivante.Entrée: Ligne suivante./mot: Rechercher un terme (n pour suivant, N pour précédent).q: Quitter.
- more : Version simplifiée qui affiche le pourcentage de progression et quitte automatiquement à la fin du fichier.
Extraction et inspection de contenu
head et tail permettent de lire les extrémités d'un flux :
# Lire les 15 premières lignes
head -n 15 logs.txt
# Lire les 500 premiers octets
head -c 500 image.bin
# Suivre en temps réel les ajouts à un fichier (très utile pour les logs)
tail -f access.log
Traitement et découpage de données
La commande cut segmente les lignes selon des délimiteurs ou des positions :
# Extraire les colonnes 1 et 3 du fichier /etc/passwd (délimiteur :)
cut -d: -f1,3 /etc/passwd
# Extraire du 2ème au 10ème caractère de chaque ligne
cut -c2-10 données.csv
paste fusionne des fichiers horizontalement :
# Fusionner deux fichiers avec un point-virgule comme séparateur
paste -d';' noms.txt ages.txt
# Convertir les lignes d'un fichier en une seule ligne (transposition)
paste -s liste.txt
Statistiques et tris
wc (word count) fournit des métriques sur le texte :
# Retourne : lignes mots octets nom_du_fichier
wc rapport.md
# Options spécifiques
wc -l # Lignes uniquement
wc -w # Mots uniquement
wc -L # Longueur de la ligne la plus longue
sort organise les données :
# Tri numérique inversé sur la 3ème colonne délimitée par ":"
sort -t: -k3 -nr /etc/passwd
# Tri aléatoire
sort -R liste.txt
uniq suppriem les doublons (nécessite un fichier préalablement trié) :
# Compter le nombre d'occurrences de chaque ligne unique
sort logs.txt | uniq -c
Gestion des fichiers et permissions
La modification de la propriété des fichiers se fait via chown et chgrp :
# Changer le propriétaire et le groupe récursivement
chown -R admin:webmasters /var/www/html
# Copier les permissions d'un fichier de référence
chown --reference=config.old config.new
Comprendre les permissions Linux
Les permissions sont représentées par 9 caractères (ex: rwxr-xr-x) divisés en trois groupes : Propriétaire (u), Groupe (g) et Autres (o).
- r (Read) : Lire le fichier ou lister le répertoire (valeur 4).
- w (Write) : Modifier le fichier ou créer/supprimer dans le répertoire (valeur 2).
- x (Execute) : Exécuter le fichier ou traverser le répertoire (valeur 1).
Modification avec chmod :
# Mode symbolique : ajouter l'exécution au groupe
chmod g+x script.sh
# Mode numérique : rwx pour le proprio, rx pour le groupe et les autres
chmod 755 binaire
Attributs spéciaux (Immuabilité)
# Rendre un fichier impossible à modifier ou supprimer (même par root)
chattr +i fichier_sensible
# Permettre uniquement l'ajout de données (mode append)
chattr +a historique.log
Utilisation de l'éditeur Vim
Vim fonctionne selon plusieurs modes : Normal (commandes), Insertion (édition) et Ligne de commande.
Changement de mode
i: Entrer en insertion à la position du curseur.a: Entrer en insertion après le curseur.o: Créer une nouvelle ligne sous le curseur.ESC: Revenir en mode Normal.:: Entrer en mode Ligne de commande.
Navigation en mode Normal
h, j, k, l: Gauche, bas, haut, droite.w: Mot suivant ;b: Mot précédent.0: Début de ligne ;$: Fin de ligne.gg: Début du fichier ;G: Fin du fichier.#G: Aller à la ligne #.
Édition et suppression
x: Supprimer le caractère sous le curseur.dd: Supprimer la ligne actuelle.yy: Copier la ligne ;p: Coller après la ligne.u: Annuler la dernière action (Undo).Ctrl + r: Rétablir (Redo).
Sauvegarde et sortie
:w: Enregistrer.:q!: Quitter sans enregistrer.:wqou:x: Enregistrer et quitter.
Rceherche et remplacement
# Rechercher "motif" depuis le curseur
/motif
# Remplacement global dans tout le fichier
:%s/ancien/nouveau/g
# Remplacement avec confirmation
:%s/erreur/correction/gc