Ceci est une ancienne révision du document !
Table des matières
Version : 2023.01
Dernière mise-à-jour : 2023/06/09 05:16
Topic 3 : GNU and Unix Commands
Contenu du Module
- Topic 3 : GNU and Unix Commands
- Contenu du Module
- Présentation de VI
- LAB #1 - Créer, ouvrir et fermer des fichiers
- 1.1 - Commandes
- 1.2 - Créer un nouveau fichier avec VI
- 1.3 - Ouvrir un fichier en mode lecture seule avec la commande view
- 1.4 - Ouvrir un fichier en mode lecture-écriture avec la commande vi
- LAB #2 - La Commande set
- 2.1 - Commandes
- 2.2 - Activer la numérotation des lignes avec la commande set
- LAB #3 - Se Déplacer dans un Fichier
- 3.1 - Commandes
- LAB #4 - Insertion de Texte
- 4.1 - Commandes
- 4.2 - Insérer du texte
- LAB #5 - Recherche de Texte
- 5.1 - Commandes
- 5.2 - Rechercher et remplacer du texte
- LAB #6 - Suppression de Texte
- 6.1 - Commandes
- 6.2 - Supprimer des lignes
- LAB #7 -Copier, Couper et Coller
- 7.1 - Commandes
- 7.2 - Copier, couper et coller du texte
- LAB #8 -Configuration d'une Interface VI Personnelle
- LAB #9 - 38 Commandes de Base
- 9.1 - La commande stty
- 9.2 - La commande date
- 9.3 - La commande who
- 9.4 - La commande df
- 9.5 - La commande free
- 9.6 - La commande whoami
- 9.7 - La commande pwd
- 9.8 - La commande cd
- 9.9 - La commande ls
- 9.10 - La commande lsof
- 9.11 - La commande touch
- 9.12 - La commande echo
- 9.13 - La commande cp
- 9.14 - La commande file
- 9.15 - La commande cat
- 9.16 - La commande mv
- 9.17 - La commande mkdir
- 9.18 - La commande rmdir
- 9.19 - La commande rm
- 9.20 - La commande sort
- 9.21 - La commande more
- 9.22 - La commande less
- 9.23 - La commande find
- 9.24 - La commande su
- 9.25 - Les commandes locate et updatedb
- 9.26 - La commande whereis
- 9.27 - La commande which
- 9.28 - La commande uptime
- 9.29 - La commande w
- 9.30 - La commande uname
- 9.31 - La commande du
- 9.32 - La commande clear
- 9.33 - La commande exit
- 9.34 - La commande logout
- 9.35 - La commande sleep
- 9.36 - La Commande wall
- 9.37 - The seq Command
- 9.38 - La Commande screen
- LAB #10 - Options et Arguments
- LAB #11 - Expressions Régulières
- ERb
- ERe
- Outils de Manipulation de Fichiers Texte
- Présentation des Commandes grep, egrep et fgrep
- La commande grep
- La Commande egrep
- La Commande fgrep
- LAB #12 - Utiliser grep, egrep et fgrep
- Présentation de la Commande sed
- LAB #13 - Utiliser la Commande sed
- Présentation de La Commande awk
- Découpage en champs
- Critères
- Une expression régulière valide pour la ligne
- Une expression régulière valide pour un champ
- Une comparaison
- Un opérateur logique
- Une variable interne
- Scripts awk
- La Fonction printf
- Structures de Contrôle
- if
- for
- while
- do-while
- LAB #14 - Utiliser la Commande awk
- LAB #15 -Autres Commandes Utiles
- 15.1 - La Commande expand
- 15.2 - La Commande unexpand
- 15.3 - La Commande cut
- 15.4 - La Commande uniq
- 15.5 - La Commande tr
- 15.6 - La Commande paste
- 15.7 - La Commande split
- 15.8 - La Commande diff
- 15.9 - La Commande cmp
- 15.10 - La commande patch
- 15.11 - La commande strings
- 15.12 - La commande comm
- 15.13 - La commande head
- 15.14 - La commande tail
- LAB #16 - Utiliser les commandes ifconfig, grep, tr et cut pour isoler l'adresse IPv4
- LAB #17 - Utiliser les commandes ip, grep, awk et sed pour isoler l'adresse IPv4
- Le Shell
- Le Shell /bin/bash
- Les Commandes Internes et Externes au shell
- Les alias
- Le Prompt
- Rappeler des Commandes
- Générer les fins de noms de fichiers
- Le shell interactif
- Caractère *
- Caractère ?
- Caractères [ ]
- L'option extglob
- ?(expression)
- *(expression)
- +(expression)
- @(expression)
- !(expression)
- Caractères d'Échappement
- Codes Retour
- Redirections
- Pipes
- Substitutions de Commandes
- Chaînage de Commandes
- Affichage des variables du shell
- Les variables principales
- Les Variables de Régionalisation et d'Internationalisation
- Les variables spéciales
- La Commande env
- Options du Shell Bash
- Exemples
- noclobber
- noglob
- nounset
- Les Scripts Shell
- Exécution
- La commande read
- Code de retour
- La variable IFS
- La commande test
- Tests de Fichiers
- Tests de chaînes de caractère
- Tests sur des nombres
- Les opérateurs
- Tests d'environnement utilisateur
- La commande [[ expression ]]
- Opérateurs du shell
- L'arithmétique
- La commande expr
- Opérateurs Arithmétiques
- Opérateurs de Comparaison
- Opérateurs Logiques
- La commande let
- Opérateurs Arithmétiques
- Opérateurs de comparaison
- Opérateurs Logiques
- Opérateurs travaillant sur les bits
- Structures de contrôle
- If
- case
- Exemple
- Boucles
- for
- while
- Exemple
- Scripts de Démarrage
- LAB #1- Scripts de Démarrage
- ~/.bash_profile
- ~/.bashrc
- Les Types de Processus
- Les Commandes relatives aux Processus
- La Commande ps
- La Commande pgrep
- La Commande pstree
- La Commande top
- Les Commandes fg, bg et jobs
- La Commande wait
- La Commande nice
- La Commande renice
- La Commande nohup
- La Commande kill
- La Commande pkill
Présentation de VI
VI est un éditeur de texte puissant qui dispose de trois modes :
- Commande
- Ex-mode
- Insertion
En mode commande, il est possible de saisir des commandes telles i pour insérer du texte.
En mode Ex-Mode, la plupart des commandes VI sont précédées par la touche :, par exemple :q pour quitter.
En mode insertion, il est possible :
- d'éditer le texte,
- ajouter du texte,
- rechercher du texte,
- copier du texte,
- coller du texte,
- couper du texte,
- remplacer du texte.
LAB #1 - Créer, ouvrir et fermer des fichiers
1.1 - Commandes
Commande | Description |
---|---|
vi nomFichier | Ouverture ou création d'un fichier |
vi | Ouverture d'un nouveau fichier |
vi -r nomFichier | Récupération d'un fichier après une panne |
view nomFichier | Ouverture d'un fichier en mode lecture seule |
:wq | Quitter en sauvegardant et en modifiant la date de modification |
ZZ | La même chose que :wq |
:x | Quitter en sauvegardant sans modifier la date de modification en cas de non-modification du fichier |
:q | Quitter en cas de non-modification du fichier ou suite à l'utilisation de la commande view |
u | Annulation de la dernière commande |
U | Annulation des modifications apportées à la ligne en cours |
:q! | Quitter sans sauvegarder |
1.2 - Créer un nouveau fichier avec VI
Copiez les 25 lignes ci-dessous :
This is line 1 This is line 2 This is line 3 This is line 4 This is line 5 This is line 6 This is line 7 This is line 8 This is line 9 This is line 10 This is line 11 This is line 12 This is line 13 This is line 14 This is line 15 This is line 16 This is line 17 This is line 18 This is line 19 This is line 20 This is line 21 This is line 22 This is line 23 This is line 24 This is line 25
Créez un nouveau fichier appelé vitext en utilisant la commande vi:
[trainee@centos7 ~]$ vi vitext
A faire - Appuyez sur la touche i de votre clavier pour basculer en mode insertion. Cliquez le bouton central ( la roue ) de votre souris afin de coller dans le fichier les lignes 1 à 25. Utilisez ensuite la touche Echap pour basculer en mode Commande. Appuyez sur la touche : suivi par la touche X pour sauvegarder et quitter VI.
1.3 - Ouvrir un fichier en mode lecture seule avec la commande view
Ouvrez maintenant le fichier /home/trainee/vitext en lecture seule :
[trainee@centos7 ~]$ view vitext
Vous obtiendrez un résultat similaire à celui-ci :
This is line 1 This is line 2 This is line 3 This is line 4 This is line 5 This is line 6 This is line 7 This is line 8 This is line 9 This is line 10 This is line 11 This is line 12 This is line 13 This is line 14 This is line 15 This is line 16 This is line 17 This is line 18 This is line 19 This is line 20 This is line 21 This is line 22 This is line 23 This is line 24 This is line 25 ~ "vitext" [readonly] 25L, 391C
Attention : Assurez-vous que vous ne voyez que les 25 premières lignes de ce fichier.
Important : Notez la présence de la dernière ligne avec la mention [readonly].
1.4 - Ouvrir un fichier en mode lecture-écriture avec la commande vi
Quittez view avec la commande :q et ouvrez le fichier /home/trainee/vitext en mode lecture-écriture :
[trainee@centos7 ~]$ vi vitext
Vous obtiendrez un résultat similaire à celui-ci :
This is line 1 This is line 2 This is line 3 This is line 4 This is line 5 This is line 6 This is line 7 This is line 8 This is line 9 This is line 10 This is line 11 This is line 12 This is line 13 This is line 14 This is line 15 This is line 16 This is line 17 This is line 18 This is line 19 This is line 20 This is line 21 This is line 22 This is line 23 This is line 24 This is line 25 "vitext" 25L, 391C 25,1 All
Important : Notez que vi est lancé en mode Commande.
LAB #2 - La Commande set
2.1 - Commandes
Commande | Description |
---|---|
:set nu | Visualisation de la numérotation des lignes |
:set number | Visualisation de la numérotation des lignes |
:set nonu | Suppression de la numérotation des lignes |
:set nonumber | Suppression de la numérotation des lignes |
:set ic | Rechercher sans tenir compte de la casse |
:set noic | Rechercher en tenant compte de la casse |
2.2 - Activer la numérotation des lignes avec la commande set
Activer la numérotation des lignes avec la commande :set nu ou la commande :set number. Vous obtiendrez un résultat similaire à celui-ci :
1 This is line 1 2 This is line 2 3 This is line 3 4 This is line 4 5 This is line 5 6 This is line 6 7 This is line 7 8 This is line 8 9 This is line 9 10 This is line 10 11 This is line 11 12 This is line 12 13 This is line 13 14 This is line 14 15 This is line 15 16 This is line 16 17 This is line 17 18 This is line 18 19 This is line 19 20 This is line 20 21 This is line 21 22 This is line 22 23 This is line 23 24 This is line 24 25 This is line 25 :set nu 25,1 All
1 This is line 1 2 This is line 2 3 This is line 3 4 This is line 4 5 This is line 5 6 This is line 6 7 This is line 7 8 This is line 8 9 This is line 9 10 This is line 10 11 This is line 11 12 This is line 12 13 This is line 13 14 This is line 14 15 This is line 15 16 This is line 16 17 This is line 17 18 This is line 18 19 This is line 19 20 This is line 20 21 This is line 21 22 This is line 22 23 This is line 23 24 This is line 24 25 This is line 25 :set number 25,1 All
LAB #3 - Se Déplacer dans un Fichier
3.1 - Commandes
Commande | Description |
---|---|
h ou ← ou Backspace | Déplacement du curseur un caractère vers la gauche |
j ou ↓ ou ↵ Entrée | Déplacement du curseur une ligne vers le bas |
k ou ↑ | Déplacement du curseur une ligne vers le haut |
l ou → ou Barre d'espacement | Déplacement du curseur un caractère vers la droite |
b | Déplacement du curseur un mot vers la gauche |
w | Déplacement du curseur un mot vers la droite |
e | Déplacement du curseur vers la fin du mot en cours |
H | Déplacement du curseur en haut de l'écran |
M | Déplacement du curseur au milieu de l'écran |
L | Déplacement du curseur en bas de l'écran |
G ou :$ | Déplacement du curseur vers la dernière ligne du fichier |
1G ou :0 | Déplacement du curseur vers la première ligne du fichier |
27G | Déplacement du curseur vers la ligne 27 |
Ctrl+f | Défilement d'une page-écran vers l'avant |
Ctrl+d | Défilement d'une demi-écran vers l'avant |
Ctrl+b | Défilement d'une page-écran vers l'arrière |
Ctrl+u | Défilement d'une demi-écran vers l'arrière |
A faire : Testez chaque commande afin de visualiser les résultats. Revenez ensuite à la première page-écran et positionnez votre curseur au début de la ligne 13.
Important : Pour savoir pourquoi les touches H, J, K et L sont utilisés comme un pavé directionnel, consultez cette page.
LAB #4 - Insertion de Texte
4.1 - Commandes
Touche(s) | Description |
---|---|
i | Insertion du texte avant le curseur |
I | Insertion du texte en début de ligne |
a | Insertion du texte après le curseur |
A | Insertion du texte en fin de ligne |
o | Insertion d'une ligne après la ligne courante |
O | Insertion d'une ligne avant la ligne courante |
R | Remplacement du texte existant |
Echap | Passage du mode Insertion en mode Commande |
4.2 - Inserer du texte
Insérez une ligne en dessous de la ligne courante en utilisant le commande o. Notez que vous êtes maintenant en mode Insertion. Tapez ensuite Linux is super. Vous obtiendrez un résultat similaire à celui-ci :
1 This is line 1 2 This is line 2 3 This is line 3 4 This is line 4 5 This is line 5 6 This is line 6 7 This is line 7 8 This is line 8 9 This is line 9 10 This is line 10 11 This is line 11 12 This is line 12 13 This is line 13 14 Linux is super 15 This is line 14 16 This is line 15 17 This is line 16 18 This is line 17 19 This is line 18 20 This is line 19 21 This is line 20 22 This is line 21 23 This is line 22 24 This is line 23 25 This is line 24 -- INSERT -- 14,15 Top
Attention - Ne changez pas la taille de votre terminal. Vous ne devez visualiser QUE les premières 25 lignes.
Passez maintenant en mode Commande en appuyant sur la touche Echap puis placez-vous sur la dernière ligne de l'écran en utilisant le commande L. Positionnez-vous à la fin de la ligne en mode Insertion en utilisant la commande A et saisissez de nouveau la phrase Linux is super. Vous obtiendrez un résultat similaire à celui-ci :
1 This is line 1 2 This is line 2 3 This is line 3 4 This is line 4 5 This is line 5 6 This is line 6 7 This is line 7 8 This is line 8 9 This is line 9 10 This is line 10 11 This is line 11 12 This is line 12 13 This is line 13 14 Linux is super 15 This is line 14 16 This is line 15 17 This is line 16 18 This is line 17 19 This is line 18 20 This is line 19 21 This is line 20 22 This is line 21 23 This is line 22 24 This is line 23 25 This is line 24Linux is super -- INSERT -- 25,30 Top
Passez maintenant en mode Commande en appuyant sur la touche Echap puis placez-vous au début de la première ligne de l'écran en utilisant le commande H. Positionnez-vous au quatrième mot en utilisant la commande w trois fois. Passez en mode Insertion en utilisant la commande i puis saisissez de nouveau la phrase Linux is super. Vous obtiendrez un résultat similaire à celui-ci :
1 This is line Linux is super1 2 This is line 2 3 This is line 3 4 This is line 4 5 This is line 5 6 This is line 6 7 This is line 7 8 This is line 8 9 This is line 9 10 This is line 10 11 This is line 11 12 This is line 12 13 This is line 13 14 Linux is super 15 This is line 14 16 This is line 15 17 This is line 16 18 This is line 17 19 This is line 18 20 This is line 19 21 This is line 20 22 This is line 21 23 This is line 22 24 This is line 23 25 This is line 24Linux is super -- INSERT -- 1,28 Top
Passez maintenant en mode Commande en appuyant sur la touche Echap puis placez-vous au début de la première ligne de l'écran en utilisant le commande H.
LAB #5 - Recherche de Texte
5.1 - Commandes
Touche(s) | Description |
---|---|
/ chaîne | Recherche chaîne vers le bas |
// | Recherche l'occurence suivante vers le bas de la dernière recherche |
? chaîne | Recherche chaîne vers le haut |
?? | Recherche l'occurence suivante vers le haut de la dernière recherche |
n | Recherche l'occurence suivante de chaîne dans le sens de la recherche |
N | Recherche l'occurence précédente de chaîne dans le sens de la recherche |
:g/chaîne/s//chaîne1/g | Recherche et remplace chaîne par chaîne1 |
5.2 - Rechercher et remplacer du texte
Recherchez maintenant la chaîne super grâce à la commande /super suivez par la touche ↵ Entrée. Recherchez ensuite les deux occurrences suivantes en utilisant la commande // suivez par la touche ↵ Entrée puis // suivez par la touche ↵ Entrée. A ce stade votre curseur doit se trouver sur le dernier mot de la dernière ligne de votre écran.
Recherchez ensuite la chaîne super vers le haut en utilisant la commande ?super suivez par la touche ↵ Entrée. Votre curseur doit se trouver sur la ligne 14.
Appuyez maintenant sur la touche n. Votre curseur doit se trouver sur la première ligne. Appuyez ensuite sur la touche N. Votre curseur doit se trouver sur la ligne 14.
Appuyez sur la commande H. Remplacez maintenant le mot super par wonderful en utilisant la commande :g/super/s//wonderful/g suivez par la touche ↵ Entrée. VI vous confirme le remplacement :
1 This is line Linux is wonderful1 2 This is line 2 3 This is line 3 4 This is line 4 5 This is line 5 6 This is line 6 7 This is line 7 8 This is line 8 9 This is line 9 10 This is line 10 11 This is line 11 12 This is line 12 13 This is line 13 14 Linux is wonderful 15 This is line 14 16 This is line 15 17 This is line 16 18 This is line 17 19 This is line 18 20 This is line 19 21 This is line 20 22 This is line 21 23 This is line 22 24 This is line 23 25 This is line 24Linux is wonderful 3 substitutions on 3 lines 25,1 Top
LAB #6 - Suppression de Texte
6.1 - Commandes
Touche(s) | Description |
---|---|
x | Suppression du caractère courant |
X | Suppression du caractère à gauche du curseur |
5x | Suppression de 5 caractères à partir du caractère courant |
dw | Suppression du mot courant |
5dw | Suppression de 5 mots à partir du caractère courant |
dd ou :d | Suppression de la ligne courante |
5dd | Suppression de 5 lignes à partir de la ligne courante |
:5,7 d | Suppression des lignes 5, 6 et 7 |
6.2 - Supprimer des lignes
Placez-vous sur la ligne 14 et supprimez-la grâce à la commande dd. Vous obtiendrez donc un résultat similaire à celui-ci :
1 This is line Linux is wonderful1 2 This is line 2 3 This is line 3 4 This is line 4 5 This is line 5 6 This is line 6 7 This is line 7 8 This is line 8 9 This is line 9 10 This is line 10 11 This is line 11 12 This is line 12 13 This is line 13 14 This is line 14 15 This is line 15 16 This is line 16 17 This is line 17 18 This is line 18 19 This is line 19 20 This is line 20 21 This is line 21 22 This is line 22 23 This is line 23 24 This is line 24Linux is wonderful 25 This is line 25 14,1 All
Supprimez maintenant les lignes 4, 5 et 6 grâce à la commande :4,6 d. Vous obtiendrez un résultat similaire à celui-ci :
1 This is line Linux is wonderful1 2 This is line 2 3 This is line 3 4 This is line 7 5 This is line 8 6 This is line 9 7 This is line 10 8 This is line 11 9 This is line 12 10 This is line 13 11 This is line 14 12 This is line 15 13 This is line 16 14 This is line 17 15 This is line 18 16 This is line 19 17 This is line 20 18 This is line 21 19 This is line 22 20 This is line 23 21 This is line 24Linux is wonderful 22 This is line 25 ~ ~ ~ 3 fewer lines 4,1 All
LAB #7 -Copier, Couper et Coller
7.1 - Commandes
Touche(s) | Description |
---|---|
yy ou Y | Copie la ligne courante |
V | Sélectionner un bloc |
p | Colle la ligne couper ou copier en dessous de la ligne courante |
P | Colle la ligne couper ou copier en dessus de la ligne courante |
:2,3 co 7 | Copie des lignes 2 à 3 à la ligne située en dessous de la ligne 7 |
:2,3 m 7 | Déplace les lignes 2 à 3 à la ligne en dessous de la ligne 7 |
7.2 - Copier, couper et coller du texte
Placez votre curseur sur la ligne 3. Copiez celle-ci grâce à la commande yy. Placez votre curseur sur la ligne 5 et utilisez la commande p. Vous obtiendrez le résultat suivant :
1 This is line Linux is wonderful1 2 This is line 2 3 This is line 3 4 This is line 7 5 This is line 8 6 This is line 3 7 This is line 9 8 This is line 10 9 This is line 11 10 This is line 12 11 This is line 13 12 This is line 14 13 This is line 15 14 This is line 16 15 This is line 17 16 This is line 18 17 This is line 19 18 This is line 20 19 This is line 21 20 This is line 22 21 This is line 23 22 This is line 24Linux is wonderful 23 This is line 25 ~ ~ 3 fewer lines 6,1 All
Placez votre curseur sur la ligne 4 et utilisez la commande Y. Placez votre curseur sur la ligne 6 et utilisez la commande P. Vous obtiendrez le résultat suivant :
1 This is line Linux is wonderful1 2 This is line 2 3 This is line 3 4 This is line 7 5 This is line 8 6 This is line 7 7 This is line 3 8 This is line 9 9 This is line 10 10 This is line 11 11 This is line 12 12 This is line 13 13 This is line 14 14 This is line 15 15 This is line 16 16 This is line 17 17 This is line 18 18 This is line 19 19 This is line 20 20 This is line 21 21 This is line 22 22 This is line 23 23 This is line 24Linux is wonderful 24 This is line 25 ~ 3 fewer lines 6,1 All
Utilisez la commande :4,5 co 15. Vous obtiendrez le résultat suivant :
1 This is line Linux is wonderful1 2 This is line 2 3 This is line 3 4 This is line 7 5 This is line 8 6 This is line 7 7 This is line 3 8 This is line 9 9 This is line 10 10 This is line 11 11 This is line 12 12 This is line 13 13 This is line 14 14 This is line 15 15 This is line 16 16 This is line 7 17 This is line 8 18 This is line 17 19 This is line 18 20 This is line 19 21 This is line 20 22 This is line 21 23 This is line 22 24 This is line 23 25 This is line 24Linux is wonderful :4,5 co 15 17,1 Top
Notez que les lignes 4 et 5 ont été copiées après la ligne 15 :
... 15 This is line 16 16 This is line 7 17 This is line 8 18 This is line 17 ...
Utilisez la commande :4,6 m 20. Vous obtiendrez le résultat suivant :
1 This is line Linux is wonderful1 2 This is line 2 3 This is line 3 4 This is line 3 5 This is line 9 6 This is line 10 7 This is line 11 8 This is line 12 9 This is line 13 10 This is line 14 11 This is line 15 12 This is line 16 13 This is line 7 14 This is line 8 15 This is line 17 16 This is line 18 17 This is line 19 18 This is line 7 19 This is line 8 20 This is line 7 21 This is line 20 22 This is line 21 23 This is line 22 24 This is line 23 25 This is line 24Linux is wonderful 3 lines moved 20,1 Top
Notez qu'en supprimant les lignes 4 à 6, la ligne 20 est devenue la ligne 17. Les trois lignes coupées apparaissent donc après la ligne 17 et non après la ligne 20 :
... 17 This is line 19 18 This is line 7 19 This is line 8 20 This is line 7 ...
LAB #8 -Configuration d'une Interface VI Personnelle
VI peut être configuré par chaque utilisateur en créant un fichier dénommé ~/.exrc. Ce fichier doit contenir les commandes des options comme celles-ci sont tapées sur la ligne de commande mais sans le caractère :. Le fichier ~/.exrc est lu par VI lors de son lancement et les options mises en place. Par exemple le fichier suivant activera les options de la numérotation des lignes et la visibilité des caractères cachés :
set nu set list
A faire - Sauvegardez votre fichier vitext et quitter VI. Copiez le texte ci-dessus puis collez-le dans un nouveau fichier dénommé .exrc dans votre répertoire personnel.
Ouvrez maintenant le fichier /home/trainee/vitext avec VI:
[trainee@centos7 ~]$ vi vitext
1 This is line Linux is wonderful1$ 2 This is line 2$ 3 This is line 3$ 4 This is line 3$ 5 This is line 9$ 6 This is line 10$ 7 This is line 11$ 8 This is line 12$ 9 This is line 13$ 10 This is line 14$ 11 This is line 15$ 12 This is line 16$ 13 This is line 7$ 14 This is line 8$ 15 This is line 17$ 16 This is line 18$ 17 This is line 19$ 18 This is line 7$ 19 This is line 8$ 20 This is line 7$ 21 This is line 20$ 22 This is line 21$ 23 This is line 22$ 24 This is line 23$ 25 This is line 24Linux is wonderful$ "vitext" 26L, 442C 20,1 Top
Copyright © 2023 Hugh Norris.