Maîtrise de la manipulation de texte et de la gestion des permissions sous Linux

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.
  • :wq ou :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

Étiquettes: Linux bash vim sysadmin permissions

Publié le 19 juillet à 00h15