Manipuler les fichiers texte (Editeur vi)
Lorsque le système UNIX, sur lequel Linux était basé, a été créé, la plupart des informations étaient gérées sur le système dans des fichiers en texte brut. Ainsi, il était essentiel pour les utilisateurs de savoir comment utiliser les outils de recherche dans les fichiers texte et de pouvoir modifier et configurer ces fichiers.
Il est presque impossible d'utiliser Linux pendant un certain temps et de ne pas avoir besoin d'un éditeur de texte car, comme indiqué précédemment, la plupart des fichiers de configuration Linux sont des fichiers en texte brut que vous devrez presque certainement modifier manuellement à un moment donné.
Si vous utilisez un bureau GNOME, vous pouvez exécuter gedit, qui est assez intuitif pour éditer du texte.
Vous pouvez également exécuter un simple éditeur de texte appelé nano à partir du shell. Cependant, la plupart des utilisateurs du shell Linux utilisent la commande vi ou emacs pour éditer les fichiers texte.
L'avantage de vi ou emacs par rapport à un éditeur graphique est que vous pouvez utiliser la commande à partir de n'importe quel shell, terminal à caractères ou connexion à caractères sur un réseau (en utilisant telnet ou ssh, par exemple) - aucune interface graphique n'est nécessaire.
Commande vi
Pour ouvrir un fichier nommé /tmp/test par exemple, tapez la commande suivante :
vi /tmp/test
S'il s'agit d'un nouveau fichier, vous devriez voir quelque chose similaire à ce qui suit :
□ ~ ~ ~ ~ ~ "/tmp/test" [New File]
Une case clignotante en haut représente l'emplacement de votre curseur. La ligne du bas vous tient informé de ce qui se passe avec votre édition (ici, vous venez d'ouvrir un nouveau fichier). Entre les deux, il y a des tildes (~) comme remplissage car il n'y a pas encore de texte dans le fichier.
Tout d'abord, vous devez connaître les deux principaux modes de fonctionnement : commande et saisie. L'éditeur vi démarre toujours en mode commande. Avant de pouvoir ajouter ou modifier du texte dans le fichier, vous devez taper une commande (une ou deux lettres, parfois précédées d'un nombre facultatif) pour indiquer à vi ce que vous voulez faire. les commandes vi sont sensibles à la casse.
Ajouter du texte
Pour entrer en mode de saisie, tapez une lettre de commande de saisie. Pour commencer, tapez l'une des lettres suivantes. Lorsque vous avez terminé de saisir du texte, appuyez sur la touche Echap (parfois deux fois) pour revenir au mode commande.
- a - La commande ajouter. Avec cette commande, vous pouvez saisir du texte qui commence à droite du curseur.
- A - La commande ajouter à la fin. Avec cette commande, vous pouvez saisir du texte en commençant à la fin de la ligne courante.
- i - La commande d'insertion. Avec cette commande, vous pouvez saisir du texte qui commence à gauche du curseur.
- I - La commande d'insertion au début. Avec cette commande, vous pouvez saisir du texte qui commence au début de la ligne actuelle.
- o - Cette commande ouvre une ligne sous la ligne courante et vous met en mode insertion.
- O - Cette commande ouvre une ligne au-dessus de la ligne courante et vous met en mode insertion.
Se déplacer dans le texte
Pour vous déplacer dans le texte, vous pouvez utiliser les flèches haut, bas, droite et gauche. Cependant, il existe de nombreuses touches pour se déplacer.
- w - Déplace le curseur au début du mot suivant (délimité par des espaces, des tabulations ou des signes de ponctuation).
- W - Déplace le curseur au début du mot suivant (délimité par des espaces ou des tabulations).
- b - Déplace le curseur au début du mot précédent (délimité par des espaces, des tabulations ou des signes de ponctuation).
- B - Déplace le curseur au début du mot précédent (délimité par des espaces ou des tabulations).
- 0 (zero) - Déplace le curseur au début de la ligne courante.
- $ - Déplace le curseur à la fin de la ligne courante.
- H - Déplace le curseur dans le coin supérieur gauche de l'écran (première ligne de l'écran).
- M - Déplace le curseur sur le premier caractère de la ligne médiane à l'écran.
- L - Déplace le curseur dans le coin inférieur gauche de l'écran (dernière ligne de l'écran).
- Ctrl+f - Avance d'une page à la fois.
- Ctrl+b - Permet de revenir en arrière d'une page à la fois.
- Ctrl+d - Avance d'une demi-page à la fois.
- Ctrl+u - Retourne d'une demi-page à la fois.
- G - Aller à la dernière ligne du fichier.
- 1G - Aller à la première ligne du fichier.
- 35G - Aller à n'importe quel numéro de ligne (35, dans ce cas).
Supprimer, copier et modifier du texte
La seule autre édition que vous devez savoir est comment supprimer, copier ou modifier du texte. Les commandes x, d, y et c peuvent être utilisées pour supprimer et modifier du texte. Elles peuvent être utilisées avec les touches de déplacement et les chiffres pour indiquer exactement ce que vous supprimez, copiez ou modifiez. Considérez les exemples suivants :
- x - Supprime le caractère situé sous le curseur.
- X - Supprime le caractère situé juste avant le curseur.
- d<?> - Supprime du texte.
- c<?> - Modifie du texte.
- y<?> - Copie du texte.
Le <?> après chaque lettre de la liste précédente identifie l'endroit où vous pouvez utiliser une commande de mouvement pour choisir ce que vous supprimez, modifiez ou copiez. Par exemple :
- dw - Supprime (d) un mot (w) après la position actuelle du curseur.
- db - Supprime (d) un mot (b) avant la position actuelle du curseur.
- dd - Supprime (d) toute la ligne actuelle (d).
- c$ - Modifie (c) les caractères (en fait, les efface) du caractère actuel à la fin de la ligne actuelle ($) et passe en mode saisie.
- c0 - Modifie (c) (encore une fois, efface) les caractères du caractère précédent au début de la ligne actuelle (0) et passe en mode de saisie.
- cl - Efface la lettre actuelle (l) et passe en mode de saisie.
- cc - Efface (c) la ligne (c) et passe en mode de saisie.
- yy - Copie la ligne courante (y) dans le tampon.
- y) - Copie la phrase courante ( ) ), à droite du curseur, dans le tampon.
- y} - Copie le paragraphe courant ( } ), à la droite du curseur, dans le tampon.
Toutes les commandes présentées peuvent être modifiées à l'aide de chiffres, comme vous pouvez le voir dans les exemples suivants les exemples suivants :
- 3dd - Supprime (d) trois (3) lignes (d), en commençant par la ligne actuelle.
- 3dw - Supprime (d) les trois (3) mots suivants (w).
- 5cl - Modifie (c) les cinq (5) lettres suivantes (l) (c'est-à-dire, supprime les lettres et entre en mode de saisie).
- 12j - Descend (j) de 12 lignes (12).
- 5cw - Efface (c) les cinq (5) mots suivants (w) et passe en mode saisie.
- 4y) - Copie (y) les quatre (4) phrases suivantes ( ) ).
Coller du texte
Après avoir copié du texte dans la mémoire tampon (en le supprimant, en le modifiant ou en le copiant), vous pouvez replacer ce texte dans votre fichier en utilisant la lettre p ou P. Avec ces deux commandes, le texte le plus récemment stocké dans la mémoire tampon est placé dans le fichier de différentes manières.
- P - place le texte copié à gauche du curseur si le texte copié est composé de lettres ou de mots ; place le texte copié au-dessus de la ligne courante si le texte copié contient des lignes de texte.
- p - Place le texte copié à droite du curseur si le texte est composé de lettres ou de mots. mots ; place le texte copié sous la ligne courante si le texte copié contient des lignes de texte.
Enregistrer/Quitter vi
Utilisez les commandes suivantes pour enregistrer ou quitter le fichier :
- ZZ - Enregistre les modifications en cours dans le fichier et quitte vi.
- :w - Enregistre le fichier actuel, mais vous pouvez continuer à l'éditer.
- :wq - Fonctionne de la même manière que ZZ.
- :q - Quitte le fichier en cours. Cela ne fonctionne que si vous n'avez pas de modifications non enregistrées.
- :q! - Quitte le fichier actuel et n'enregistre pas les modifications que vous venez d'apporter au fichier.
Recherche de texte
Pour rechercher l'occurrence suivante ou précédente de texte dans le fichier, utilisez la barre oblique (/) ou le point d'interrogation (?). Suivez la barre oblique ou le point d'interrogation avec un motif (chaîne de texte) pour rechercher respectivement vers l'avant ou vers l'arrière pour ce motif. Dans la recherche, vous pouvez également utiliser des métacaractères. Voici quelques exemples:
- /linux - recherche vers l'avant le mot linux.
- ?java - recherche en arrière le mot java.
- /cours.*linux - recherche vers l'avant une ligne contenant le mot cours et aussi, après cela, à un moment donné, le mot linux./span>
- ?[mM]aroc - recherche vers l'arrière pour maroc ou Maroc. N'oubliez pas que la casse compte dans Linux, utilisez donc des crochets pour rechercher des mots qui pourraient avoir des casses différentes.
Après avoir entré un motif, tapez simplement n ou N pour rechercher à nouveau dans la même direction (n) ou dans la direction opposée (N) pour le même motif.
Autres commandes
- u - Appuyez sur u pour annuler la modification précédente que vous avez effectuée. Continuez à appuyer sur u pour annuler la modification précédente et la précédente.
- :!commande - Vous pouvez exécuter une commande shell pendant que vous êtes dans vi en utilisant :! suivi d'un nom de commande shell. Par exemple, tapez :!date pour voir la date et l'heure actuelles, tapez :!pwd pour voir quel est votre répertoire actuel, ou tapez :!jobs pour voir si vous avez des tâches en cours d'exécution en arrière-plan. Une fois la commande terminée, appuyez sur Entrée et vous revenez à l'édition du fichier. Vous pouvez même utiliser cette technique pour lancer un shell (:!bash) à partir de vi, exécuter quelques commandes à partir de ce shell, puis taper exit pour revenir à vi.
- Ctrl+R - si vous décidez que vous ne voulez pas annuler la commande d'annulation précédente, utilisez Ctrl+R pour Rétablir. Essentiellement, cette commande annule votre annulation.
- Ctrl+g - Si vous oubliez ce que vous êtes en train d'éditer, l'appui sur ces touches affiche le nom du fichier que vous êtes en train d'éditer et la ligne actuelle sur laquelle vous vous trouvez en bas de l'écran. Elle affiche également le nombre total de lignes du fichier, le pourcentage d'avancement dans le fichier et le numéro de la colonne sur laquelle se trouve le curseur.