• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 22/11/2023

Editez et supprimez des fichiers

Quoi qu'il en soit, je vais vous présenter ces deux outils indispensables pour l'administrateur Linux, et comme je suis plutôt un utilisateur de vi, je vais commencer par celui-là (gniarc !).

Je vous proposerai aussi un troisième choix : nano. Il a l'avantage d'être assez simple d'utilisation, particulièrement pour les administrateurs qui viennent du monde Windows. 

Je profiterai également de ce chapitre pour évoquer la notion d'inode qui caractérise les fichiers et répertoires sous Linux. Et je vous expliquerai pour finir comment copier, déplacer et supprimer ces objets avec les commandes cpmv et rm.

Utilisez vi, l’éditeur phare de Linux

Alors, certes, ce n'est pas l'éditeur de texte le plus ergonomique qui soit, je veux bien le reconnaître. À chaque séance d'apprentissage de ce logiciel avec des personnes qui ne le connaissent pas du tout, je constate qu’ils ont besoin d’un temps nécessaire, incompressible, avant de se sentir plus à l’aise avec son fonctionnement.

Par contre, je constate aussi presque systématiquement une adoption irrévocable, passée cette petite période d'adaptation !

Alors, attachez vos ceintures, prenez patience et lancez-vous dans l'aventure vi, vous ne le regretterez pas !

Je vous propose de démarrer avec l’introduction dans deux modes de fonctionnement de vi :

  1. le mode commande

  2. et le mode saisie.

Puis je vous montre comment effectuer les opérations de base sur les fichiers (éditer, copier/coller, chercher/remplacer) et quelques commandes utiles au passage ! On y va ?

Je vous l’avais dit, ce n’est pas forcément facile d’accès. Mais une fois en main, vi ne vous décevra jamais !

Dans cette vidéo, nous avons vu de nombreux raccourcis que l'on peut utiliser depuis le mode commande. Voici les principaux à retenir :

Touche

Effet

i

Insertion de texte à partir du curseur.

a

Insertion de texte après le curseur.

x

Suppression du caractère sous le curseur.

cw

Suppression du mot sous le curseur + Insertion.

dd

Suppression de la ligne sous le curseur.

Ndd

Suppression de N lignes à partir de celle sous le curseur.

yy

Copie de la ligne sous le curseur.

Nyy

Copie de N lignes à partir de celle sous le curseur.

p

Colle le buffer sous la position actuelle du curseur.

/

Recherche un pattern dans le fichier.

:

Lance une commande vi.

  • :set number affiche les numéros de ligne ;

  • :s%/patternA/patternB/g cherche et remplace patternA par patternB dans le fichier.

:N

 Déplacement du curseur à la ligne N.

G

Déplacement du curseur en fin de fichier.

Utilisez emacs, l’autre éditeur phare de Linux

Pour être tout à fait honnête, vi est mon éditeur de prédilection lorsqu'il s'agit de :

  • gérer des fichiers de configuration,

  • éditer de simples fichiers de script.

Mais passé un seuil de volume de lignes à écrire, je passe sous emacs (même si ce seuil augmente avec le temps...).

En effet, emacs est bien plus qu'un éditeur de texte en mode terminal. 

Liste des dépendances pour une installation sur une Debian 10 minimale

Le fonctionnement d’emacs s'appuie également sur un jeu de commandes, mais les combinaisons de touches sont toujours associées aux touches CTRL et ALT du clavier, permettant ainsi d'utiliser les touches classiques alphanumériques pour à la fois saisir du texte et déclencher des commandes. 

CTRL x CTRL c : Enregistre les éventuelles modifications et quitte le programme.

emacs fonctionne également avec un "buffer" mémoire ; ainsi, quitter le programme sans enregistrer les modifications sur un fichier vide ne créera pas le fichier dans l'arborescence.

Concernant les fonctions d'édition, emacs se comporte comme un éditeur de texte classique, vous pouvez insérer des caractères à volonté simplement en tapant les touches correspondantes sur le clavier. Vous pouvez aussi utiliser les touches SUPPR ou DEL pour effacer du texte.

Pour déplacer le curseur, il faut utiliser les touches CRTL ou ALT associées aux touches minuscules suivantes :

Touche

Effet

CTRL n

(n pour "next") déplace le curseur sur la ligne suivante.

CTRL p

(p pour "previous") déplace le curseur sur la ligne précédente.

CTRL f

(f pour "forward") déplace le curseur sur le caractère suivant.

CTRL b

(b pour "backward") déplace le curseur sur le caractère précédent. 

CTRL a

Déplace le curseur au début d'une ligne.

CTRL e

(e pour "end") déplace le curseur à la fin d'une ligne.

ALT <

Déplace le curseur au début du fichier.

ALT >

Déplace le curseur à la fin du fichier.

DEL

Supprime le mot avant le curseur.

CTRL d

Efface le caractère après le curseur.

ALT DEL

Supprime le mot avant le curseur.

ALT d

Supprime le mot après le curseur.

CTRL k

Coupe le reste de la ligne après le curseur.

CTRL y

Colle le reste de la ligne ci-après.

Voilà, nous avons fait le tour des fonctionnalités équivalentes à vi pour emacs

Bien entendu, ce petit résumé présente simplement les bases permettant de manipuler facilement les fichiers sous Linux.

emacs est un outil permettant bien plus que ces fonctions de base, je connais des développeurs qui s'en servent comme IDE !

Utilisez nano, l’éditeur de transition avec le monde Windows

Si vous n'avez pas l'habitude d'utiliser les deux mastodontes ci-dessus, il est toujours possible de vous rapatrier vers nano, un éditeur de texte en mode terminal bien sympathique !

Ce petit programme très léger plaît particulièrement aux administrateurs venant du monde Windows, car il propose un mode de fonctionnement similaire à ses collègues Notepad, Ultraedit, ou autre bloc-notes. 

En effet :

  • les fonctionnalités d'édition sont classiques,

  • pas de distinction entre mode commande et mode saisie,

  • à l'ouverture de nano, vous êtes prêt à saisir,

  • et les touches de direction fonctionnent !

Allez, c’est parti pour un screencast qui vous montre le fonctionnement de nano !

Copiez, déplacez et supprimez des fichiers sous Linux 

Vous voilà équipé pour éditer un fichier sous Linux. Il est temps de se pencher sur la manipulation des fichiers, c'est-à-dire :

  1. la copie

  2. le déplacement 

  3. la suppression

Pour bien comprendre ces manipulations et les commandes associées, une petite introduction sur le concept de fichier sous Linux me paraît nécessaire.

Regardons de près l'inode, le fichier donc. On y voit ses informations (sa taille, son propriétaire et groupe propriétaire, ses permissions, la date de ses derniers accès (lecture, modification), etc.) :

Dans ce graphique, on peut voir les métadonnées de l'inode et donc du fichier. Il y a 12 blocs de données directes et 3 adresses de blocs indirects.

Dans cet inode, il y a :

  • les adresses de blocs directes. Ces 12 champs contiennent les adresses directes des données du fichier sur les périphériques de type blocs les contenant (disque dur, périphériques externes type clé USB, etc.) :

Les 12 blocs de données directes contiennent les adresses directes des données du fichiers. Les 3 adresses de blocs indirects contiennent des pointeurs vers d'autres inodes.

  • les adresses de blocs indirects. Ces champs contiennent simplement des pointeurs vers d'autres inodes dont la totalité des champs est adressée pour des blocs de données.

L’adresse contenue dans la ligne 13 renvoie à un nouvel inode ou bloc de pointeurs. Ce nouvel inode contient, lui, 128 lignes. Chacune des adresses contenues dans ces lignes renvoient vers un bloc de données. On dit que ces blocs de donnés sont indirects :

L’adresse contenue dans la ligne 13 renvoie à un nouvel inode ou bloc de pointeurs. Ce nouvel inode contient, lui, 128 lignes. Chacune des adresses contenues dans ces lignes renvoient vers un bloc de données.

L’adresse contenue dans la ligne 14 renvoie à un nouvel inode ou bloc de pointeurs de 128 lignes.  Chacune des adresses contenues dans ces lignes renvoient vers un nouvel inode contenant à nouveau 128 lignes (oui c’est énorme !) Et chaque adresse contenue dans chaque ligne renvoie vers un bloc de données. On dit que ces blocs de donnés sont doublement indirects :

L’adresse contenue dans la ligne 14 renvoie à un nouvel inode ou bloc de pointeurs de 128 lignes.  Chacune des adresses contenues dans ces lignes renvoient vers un nouvel inode contenant à nouveau 128 lignes.

Je vous laisse déduire pour la ligne 15... on parle ici de triple redirection !

Très simplement, on pourrait résumer la chose comme ça :

Plus il y a de redirections, plus le fichier grossit

En fait, il faut se rendre compte que toutes ces différentes vues sont des niveaux de zoom sur un même fichier, qui grossit au fur et à mesure qu’on va loin dans les redirections.

Allez, ça suffit comme ça pour la théorie, je vous montre tout ça dans un screencast qui vous montre les inodes sur vos disques. J’en profite également pour vous montrer les opérations de copie/déplacement et suppression. Et puis au passage, je vous montre également le système de lien dur et lien symbolique. C’est parti !

En résumé

  • vi est l'éditeur de texte en mode terminal de référence sous Linux

  • emacs intègre des extensions en langage lips qui font de lui bien plus d'un simple éditeur de texte 

  • nano est un éditeur très intéressant pour faire la transition depuis le monde Windows

  • Les fichiers sont représentés dans le noyau Linux par des structures nommées inode

  • Les opérations classiques de Copie/Déplacement/Suppression de fichier sous Linux sont exécutées sur les inodes avec les commandes cp/mv/rm

  • Les liens durs/symboliques sous Linux représentent des pointeurs entre inodes et sont gérés avec la commande ln

Il ne vous manque plus que les concepts fondamentaux de gestion des droits d'accès à ces objets sous Linux, et c'est justement le sujet du chapitre suivant. On y va ?

Exemple de certificat de réussite
Exemple de certificat de réussite