Site perso d'un administrateur systèmes & réseaux

Catégorie : Exploiter des serveurs Linux

Comment utiliser vi pour éditer un fichier sur Linux ? (Utile pour Alma Linux)

L’éditeur de texte vi est un incontournable sur les systèmes Unix et Linux. Son interface en mode texte et ses nombreuses commandes en font un outil puissant, bien que parfois complexe pour les nouveaux utilisateurs. Voici un guide simple pour vous aider à prendre en main vi sur Linux.

Ouvrir un fichier avec vi

Pour ouvrir un fichier, ouvrez le terminal et tapez vi suivi du nom du fichier :

vi fichier.txt

Comprendre les modes de vi

vi fonctionne avec deux modes principaux :

  • Mode Normal : il permet de naviguer dans le fichier, de supprimer du texte, de copier et coller, etc.
  • Mode Insertion : il permet de saisir du texte.

À l’ouverture d’un fichier, vous êtes en mode Normal. Pour passer en mode Insertion, appuyez sur i. Une fois en mode Insertion, vous pouvez taper du texte normalement. Pour revenir en mode Normal, appuyez sur Échap.

Sauvegarder et quitter vi

  • Pour sauvegarder vos modifications et quitter vi, tapez :wq puis Entrée en mode Normal.
  • Pour quitter sans sauvegarder, tapez :q! puis Entrée.

Quelques commandes utiles en mode Normal

  • h, j, k, l : se déplacer à gauche, en bas, en haut, et à droite.
  • x : supprimer le caractère sous le curseur.
  • dd : supprimer une ligne.
  • yy : copier une ligne.
  • p : coller une ligne copiée.
  • /mot : rechercher « mot » dans le fichier.
  • n : aller à la prochaine occurrence du mot recherché.
  • N : aller à l’occurrence précédente du mot recherché.

Pour en savoir plus

vi est un outil très puissant avec beaucoup de fonctionnalités. N’hésitez pas à consulter le manuel de vi pour plus d’informations :

man vi

En suivant ces étapes simples, vous devriez être capable de prendre en main vi et de commencer à éditer des fichiers texte sur votre système Linux. Bonne chance!

Fiche de Révision: Syntaxe du Shell Scripting

Introduction

  • Shell scripting permet d’automatiser des commandes Unix/Linux.
  • Les scripts shell se terminent généralement par .sh.
  • Le shebang #!/bin/bash en début de script indique l’interpréteur à utiliser.

Variables

  • Déclaration: variable_name=value
  • Accès: $variable_name ou ${variable_name}

Exemple:

name="ChatGPT" echo "Hello, $name!"

Commandes

  • Exécution de commandes: command arguments
  • Exécution de commandes et stockage de la sortie: output=$(command arguments)

Conditions

  1. Test simple:
if [ condition ]; then # code fi
  1. If-else:
if [ condition ]; then # code else # code fi
  1. If-elif-else:
if [ condition1 ]; then # code elif [ condition2 ]; then # code else # code fi

Opérateurs courants:

  • Égalité numérique: -eq
  • Non égalité numérique: -ne
  • Supérieur: -gt
  • Inférieur: -lt
  • Égalité de chaîne: =
  • Non égalité de chaîne: !=

Boucles

  1. for:
for variable in list; do # code done
  1. while:
while [ condition ]; do # code done

Fonctions

Déclaration:

function_name() { # code }

Appel:

function_name arguments

Paramètres script

  • $0: Nom du script.
  • $1, $2, ...: Arguments positionnels.
  • $#: Nombre d’arguments.
  • $@: Tous les arguments.
  • $?: Code de sortie de la dernière commande exécutée.

Redirections

  • Rediriger la sortie standard: command > file
  • Rediriger la sortie d’erreur: command 2> file
  • Rediriger la sortie standard et d’erreur: command &> file

Pipes

  • Passer la sortie d’une commande à une autre: command1 | command2

Arithmétique

  • Utiliser la double parenthèse: result=$((expression))

Exemple:

a=5 b=10 sum=$((a + b))

Conseils

  • Toujours utiliser des guillemets doubles autour des variables pour éviter des problèmes avec les espaces: echo "$variable"
  • Pour les tests, préférez [[ ... ]] (test avancé) à [ ... ] pour plus de flexibilité et moins d’erreurs.

Fiche de révision sur la création d’une tâche Cron

Qu’est-ce que cron ?

Cron est un outil sous Unix/Linux qui permet de planifier l’exécution automatique de commandes à des dates et heures spécifiées.


Structure d’une entrée cron

Une entrée dans le fichier crontab se présente généralement comme suit:

* * * * * /chemin/vers/commande arguments
- - - - -
| | | | | 
| | | | +-- Jour de la semaine (0 - 7) [0 et 7 représentent Dimanche]
| | | +---- Mois (1 - 12)
| | +-------- Jour du mois (1 - 31)
| +---------- Heure (0 - 23)
+----------- Minute (0 - 59)

Éditer le fichier crontab

Pour éditer la table de l’utilisateur actuel:

crontab -e

Pour afficher les tâches cron de l’utilisateur actuel:

crontab -l

Exemples d’entrées cron

Exécuter ma-commande tous les jours à 3h15:

15 3 * * * /chemin/vers/ma-commande

Exécuter ma-commande tous les lundis à minuit:

0 0 * * 1 /chemin/vers/ma-commande

Exécuter ma-commande toutes les heures:

0 * * * * /chemin/vers/ma-commande

Spécificateurs spéciaux

Il existe des spécificateurs spéciaux pour simplifier la planification:

  • @reboot : Exécute la commande au démarrage.
  • @yearly ou @annually : Exécute une fois par an.
  • @monthly : Exécute une fois par mois.
  • @weekly : Exécute une fois par semaine.
  • @daily ou @midnight : Exécute une fois par jour.
  • @hourly : Exécute une fois par heure.

Logs et redirections

Pour rediriger la sortie et les erreurs d’une tâche cron vers un fichier:

* * * * * /chemin/vers/ma-commande >> /chemin/vers/mon-log.log 2>&1

Conseils

  • Assurez-vous que les scripts ou les commandes exécutées par cron ont les autorisations d’exécution appropriées.
  • Spécifiez toujours le chemin complet vers les commandes ou les scripts.
  • Pensez à utiliser des logs pour suivre les exécutions des tâches.
yellow sticky notes on white wall

Qu’est-ce qu’un sticky-bit linux et comment l’utilise-t-on ?

Le « sticky bit » est une fonction de permission sur les systèmes de fichiers Unix et Linux qui est principalement utilisée sur les répertoires. Lorsqu’il est défini, il a un comportement spécial pour les répertoires.

Sticky Bit sur un répertoire:

Quand le sticky bit est appliqué à un répertoire, cela signifie que seul le propriétaire du fichier à l’intérieur de ce répertoire (ou le propriétaire du répertoire lui-même ou root) est autorisé à supprimer ou renommer le fichier. C’est souvent utilisé sur des répertoires tels que /tmp où les utilisateurs ont la permission de créer des fichiers, mais il ne devrait pas être possible pour un utilisateur de supprimer ou de renommer les fichiers d’un autre utilisateur.

Par exemple, le répertoire /tmp a généralement les permissions drwxrwxrwt. Le t à la fin indique que le sticky bit est activé.

Comment définir le sticky bit:

Pour définir le sticky bit sur un répertoire, utilisez la commande chmod avec la lettre t. Par exemple:


chmod +t /chemin/vers/le/repertoire

Pour vérifier si le sticky bit est activé, utilisez ls -l. Si le sticky bit est activé, un t apparaîtra à la fin des permissions du répertoire.

Sticky Bit sur un fichier:

Historiquement, le sticky bit avait un autre usage sur les fichiers exécutables. Lorsqu’il était appliqué à un fichier exécutable, le système gardait le fichier en mémoire après son exécution, permettant ainsi de le démarrer plus rapidement à la prochaine exécution. Cependant, cet usage est devenu obsolète avec l’amélioration des algorithmes de cache et de gestion de la mémoire des systèmes modernes, et aujourd’hui, le sticky bit n’a pas vraiment de sens pour les fichiers.

Il est important de noter que sur la plupart des systèmes modernes, définir le sticky bit sur un fichier n’aura pas d’effet perceptible.

Enlever le Sticky Bit

Pour enlever le sticky bit d’un répertoire ou d’un fichier, vous pouvez utiliser la commande chmod avec la lettre t précédée d’un signe moins (-).

Voici comment vous le faites pour un répertoire :


chmod -t /chemin/vers/le/repertoire

Après avoir exécuté cette commande, le sticky bit sera retiré du répertoire spécifié.

Vous pouvez également utiliser la notation numérique pour changer les permissions. Le sticky bit est représenté par le chiffre 1 à l’extrême gauche. Donc, si vous avez un répertoire avec des permissions de 1777 (ce qui signifie qu’il a le sticky bit ainsi que des permissions de lecture, écriture et exécution pour le propriétaire, le groupe et les autres), vous pouvez enlever le sticky bit en changeant la permission à 777 :


chmod 777 /chemin/vers/le/repertoire

Pour vérifier que le sticky bit a bien été retiré, utilisez la commande ls -ld /chemin/vers/le/repertoire. Vous devriez voir que le t à la fin des permissions a disparu.

Page 2 of 2