Système d’exploitation
Linux
Abderrahmane ELBALAOUI
elbalaoui@[Link]
Chapitre 3 : Les commandes
de gestion des fichiers
Plan
❖ Lien symbolique
❖ Les éditeurs de texte.
✓ Editeurs en mode texte (gedit)
✓ Editeurs en mode console (vi, nano)
❖ Les commandes (head, tail, wc, cut, sort,…)
❖ Exercices d’applications
Lien symbolique
• Un lien symbolique est un type spécial de fichier qui agit comme un raccourci vers un
autre fichier ou répertoire sur le système de fichiers.
Création de liens symboliques :
• Pour créer un lien symbolique, vous utilisez la commande ln avec l'option -s.
• Syntaxe : ln -s cible lien
Par exemple : ln -s /chemin/vers/fichier /chemin/vers/lien
Affichage des liens symboliques :
• Lorsque vous listez le contenu d'un répertoire avec ls -l, les liens symboliques sont indiqués par
un l dans les permissions
Suppression de liens symboliques :
• Pour supprimer un lien symbolique, utilisez la commande rm.
Système d’exploitation Unix Ecole SUP MTI 4
Lien symbolique
Différence entre lien symbolique et lien dur (physique) :
• Un lien symbolique pointe vers un nom de fichier ou de répertoire, tandis qu'un lien
dur pointe directement vers les données du fichier.
• Les liens durs ne peuvent pas référencer des répertoires et ne peuvent pas traverser
les systèmes de fichiers, alors que les liens symboliques peuvent.
Système d’exploitation Unix Ecole SUP MTI 5
ALIAS
Un alias est un raccourci ou un substitut pour une commande ou une série de commandes plus longues.
Création d'un alias :
Pour créer un alias, vous pouvez utiliser la commande alias.
Par exemple, pour créer un alias nommé "ll" pour la commande "ls -l" :
alias ll='ls -l'
Affichage des alias existants :
Pour afficher tous les alias, vous pouvez saisir la commande alias
Suppression d'un alias :
Pour supprimer un alias, vous pouvez utiliser la commande unalias
unalias ll
Système d’exploitation Unix Ecole SUP MTI 6
Les éditeurs de texte
Editeur et traitement de texte :
• Un éditeur de texte est un programme qui permet de modifier des fichiers de texte.
• Sous Windows, l'éditeur de texte le plus simple : le Bloc-Notes.
• Sous Linux, peut utiliser Nano, Vim, Emacs et d'autres.
• Un traitement de texte est fait pour rédiger des documents et mettre en forme le texte.
• Sous Windows, le Word est le logiciel de traitement de texte le plus utilisé.
• Sous Linux, on possède : Open Office Writer. Pas de mode console pour ces logiciels.
Système d’exploitation Unix Ecole SUP MTI 7
Les éditeurs de texte : en mode texte
Editeur de texte gedit :
• gedit est l'éditeur de texte d'Ubuntu installé par défaut. Il permet l'édition et
l'enregistrement de fichiers texte.
Gestion des documents :
• Ctrl + T : Créer un nouveau document.
• Ctrl + O : Ouvrir un fichier
• Ctrl + S : Enregistrer le fichier
• Maj+ Ctrl + S : Enregistrer sous
• Ctrl + W : Fermer le fichier
Edition :
• Ctrl + A : Sélectionner tout.
• Ctrl + C : Copier
• Ctrl + X : Couper
• Ctrl + V : Coller
• Ctrl + Z : Annuler
Système d’exploitation Unix Ecole SUP MTI 8
Les éditeurs de texte : en mode console
L'éditeur de texte nano :
• Nano est un éditeur de texte populaire pour le système d’exploitation Linux.
Nano est doté de nombreuses fonctions puissantes et vous permet d’éditer et
de créer divers fichiers sur votre ordinateur ou votre serveur.
Système d’exploitation Unix Ecole SUP MTI 9
Les éditeurs de texte : en mode console
L'éditeur de texte nano :
Les raccourcis clavier de nano :
• Ctrl + G : affichage de l'aide
• Ctrl + K : couper la ligne
• Ctrl + U : coller la ligne qui se trouve dans le presse-papier
• Ctrl + C : affichage du numéro de la ligne où on se trouve
• Ctrl + W : rechercher du texte dans le fichier
• Ctrl + O : enregistrer le fichier
• Ctrl + X : quitter l'éditeur Nano
• Ctrl + Y : Se déplacer d'une page vers le haut
• Ctrl + U : Se déplacer d'une page vers le bas
Système d’exploitation Unix Ecole SUP MTI 10
Les éditeurs de texte : en mode console
L'éditeur de texte vim :
• Il s'agit d'un des éditeurs de texte les plus puissants existants. En effet, vi implémente
un grand nombre de fonctionnalités qui ne sont pas disponibles dans certains autres
éditeurs simples (comme nano).
• Le gros avantage de cet éditeur, c'est qu'il est présent presque sur toutes les versions
de Linux
Système d’exploitation Unix Ecole SUP MTI 11
Les éditeurs de texte : en mode console
L'éditeur de texte vim :
Les commandes et la navigation dans vim :
• h : à gauche d'un caractère;
• j : en haut d'un caractère;
• k : en bas d'un caractère;
• l : à droite d'un caractère;
• w : à droite d'un mot;
• b : à gauche d'un mot;
• ^ : aller au début de la ligne;
• $ : aller à la fin de la ligne
Système d’exploitation Unix Ecole SUP MTI 12
Les éditeurs de texte : en mode console
L'éditeur de texte vim :
L'insertion et la modification dans vim :
• i : insertion au niveau du curseur;
• x : supprimer le caractère;
• dw : supprimer le mot;
• dd : supprimer la ligne;
• r : remplace le caractère;
• cw : modification du mot actuel;
• cc : modification de la ligne actuelle;
• ~ : modifier les majuscules en minuscules et inversement;
• yy : copie la ligne actuelle;
• p : colle l'élément qui était dans le presse-papier;
• u : undo;
• Ctrl + R : redo
Système d’exploitation Unix Ecole SUP MTI 13
Les éditeurs de texte : en mode console
L'éditeur de texte vim :
Les commandes :
• :w : Sauvegarder le fichier
• :w! : Forcer le fichier à être sauvegardé
• :q : Quitter le fichier
• :q! : Quitter le fichier sans sauvegarder
• :wq! : Sauvegarder et quitter
• :x : équivalent à :wq
• :12 : positionne le curseur à la ligne 12
• :$ : positionne le curseur à la dernière ligne
Système d’exploitation Unix Ecole SUP MTI 14
Les commandes (head, tail, wc, cut, sort,…)
Commandes head et tail :
• La commande head affiche les 10 premières lignes, mais vous pouvez spécifier un nombre
différent de lignes à afficher en utilisant l'option -n.
• Exemple d'utilisation :
head [Link]
• Exemple avec spécification du nombre de lignes :
head -n 20 [Link]
Cela affichera les 20 premières lignes du fichier [Link].
Système d’exploitation Unix Ecole SUP MTI 15
Les commandes (head, tail, wc, cut, sort,…)
Commandes head et tail :
• La commande tail affiche les 10 dernières lignes, mais vous pouvez spécifier un nombre
différent de lignes à afficher en utilisant l'option -n.
• Exemple d'utilisation :
tail [Link]
• Exemple avec spécification du nombre de lignes :
tail -n 15 [Link]
Cela affichera les 15 dernières lignes du fichier [Link].
Système d’exploitation Unix Ecole SUP MTI 16
Les commandes (head, tail, wc, cut, sort,…)
Commandes head et tail :
tail -nN affiche les N dernières lignes du fichier.
tail -n+N affiche de la ligne N jusqu’à la fin du fichier.
En résumé, on obtient :
Système d’exploitation Unix Ecole SUP MTI 17
Les commandes (head, tail, wc, cut, sort, …)
Commande head avec tail :
Pour afficher un nombre spécifique de lignes, vous pouvez simplement combiner les
commandes head et tail avec une pipe (|).
• Exemple 1 :
Head -6 fichier | tail -1 Ligne 6
fichier
Ligne 1
Ligne 2
Head -6 fichier Ligne 3 tail -1 Ligne 6
Ligne 4
Ligne 5
Ligne 6
• Exemple 2 :
Linge 13
Head -15 fichier | tail -3 Ligne 14
Ligne 15
Système d’exploitation Unix Ecole SUP MTI 18
Les commandes (head, tail, wc, cut, sort,…)
Commande wc :
La commande wc (word count) est utilisée pour compter le nombre de lignes, de mots et d'octets
dans un fichier ou dans une entrée standard (stdin).
Options de La commande wc :
wc -l : Compte le nombre de lignes.
wc -w : Compte le nombre de mots.
wc -c : Compte le nombre d'octets.
wc -m : Compte le nombre de caractères.
wc –L : Imprimez la longueur de la ligne la plus longue.
Affiche le nombre de caractères
VirtualBox:~$ head -1 test | wc -m de la ligne 1 de fichier test
Système d’exploitation Unix Ecole SUP MTI 19
Les commandes (head, tail, wc, cut, sort,…)
Commande wc :
Exemples :
• echo "Hello, world!" | wc -m 14
• wc [Link] : Pour compter le nombre de lignes, de mots et d'octets dans un fichier nommé
[Link]
• wc -l [Link] : Pour afficher uniquement le nombre de lignes dans un fichier
• wc -w [Link] : Pour compter le nombre de mots dans un fichier
• head -1 test | wc –m : Pour Affiche le nombre de caractères de la ligne 1 de fichier test
Système d’exploitation Unix Ecole SUP MTI 20
Les commandes (head, tail, wc, cut, sort, ...)
La commande sort
La commande sort permet de trier les lignes d'un fichier.
VirtualBox:~$ sort [Link]
La commande sort -r permet de trier par ordre inverse les lignes de fichier.
VirtualBox:~$ sort -r [Link]
La commande sort -o permet de trier les lignes de fichier ([Link]) dans le fichier (noms-
[Link]).
VirtualBox:~$ sort –o [Link] [Link]
La commande sort –n permet de trier par ordre numérique les lignes de fichier.
VirtualBox:~$ sort -n [Link]
Linux Ecole SUP MTI 21
Les commandes (head, tail, wc, cut, sort,…)
Les commandes uniq, cut
uniq affiche les lignes uniques d'un fichier trié, ne conservant qu'un seul exemplaire de celles
dupliquées.
VirtualBox:~$ uniq prenoms
uniq –u : n'afficher que les lignes uniques .
uniq –d : n'afficher que les lignes dupliquées .
uniq –c : afficher également le nombre d’occurrence de chaque ligne.
cut permet d'afficher des zones spécifiques d'un fichier.
VirtualBox:~$ cut –c1 [Link]
affichera le premier caractère de chaque ligne du fichier [Link]
cut –c1-5 : Permet de sélectionner caractères 1 à 5.
cut –c2- : Permet de sélectionner le caractère 2 au dernier.
cut –d , -f 1 : la commande cut suivi de l’option -d pour spécifier le délimiteur utilisé, puis
l’option -f suivi du numéro de champ.
Linux Ecole SUP MTI 22
Exercice d’application
Exercice 1 :
On suppose que le répertoire courant est votre répertoire personnel.
En une seule commande et sans utiliser d’éditeur de texte, trouvez comment faire pour :
• Créer un répertoire exo3
• Vous y déplacer.
• Créer un fichier vide [Link] dans le répertoire courant.
• Afficher le message “Je suis en SUPMTI ”.
• Ecrire le message précédent dans le fichier [Link]. [Link]
Nom :
• Ajouter au fichier [Link] la ligne “Et j’aime ça !”.
Prénom :
En utilisant l’éditeur de texte nano, créez le fichier [Link] ayant le contenu suivant : Age :
En utilisant l’éditeur de texte vim, Créez aussi le fichier [Link] ayant le contenu suivant : [Link]
Je suis un étudiant en 2ème
• Dupliquer [Link] sous le nom [Link].
année ISI à SUPMTI Beni mellal
• Déplacer tous les fichiers sauf [Link] dans votre répertoire personnel.
• Revenir dans votre répertoire personnel.
• Supprimer les fichiers créés précédemment.
• Supprimer le répertoire exo3.
• Réinitialiser le contenu de la console.
Système d’exploitation Unix Ecole SUP MTI 23
Exercices d’application
Exercice 2 :
1. comptez le nombre de fichiers présents dans le dossier /etc
2. donnez une ligne de commande permettant d'afficher le contenu du fichier /etc/passwd à
partir de la ligne 5
3. donnez une ligne de commande permettant d'afficher le contenu du fichier /etc/passwd
jusqu'à la ligne 12
4. donnez une ligne de commande permettant d'afficher les lignes 5 à 12 du fichier /etc/passwd
5. le fichier /etc/passwd est constitué de champs séparés par le caractère :. Le dernier champ
contient le shell de l'utilisateur. Donnez une commande permettant de connaitre le nombre de
shells différents utilisés par les utilisateurs présents dans /etc/passwd. Un même shell utilisé
par plusieurs utilisateurs ne doit être compté qu'une seule fois.
Système d’exploitation Unix Ecole SUP MTI 24
Correction de l’exercice d’application
Exercice 2 :
1. comptez le nombre de fichiers présents dans le dossier /etc
ls /etc | wc -l
2. donnez une ligne de commande permettant d'afficher le contenu du fichier /etc/passwd à partir de la ligne 5
tail +5 /etc/passwd
3. donnez une ligne de commande permettant d'afficher le contenu du fichier /etc/passwd jusqu'à la ligne 12
head -12 /etc/passwd
4. donnez une ligne de commande permettant d'afficher les lignes 5 à 12 du fichier /etc/passwd
head -12 /etc/passwd | tail -8
5 . le fichier /etc/passwd est constitué de champs séparés par le caractère :. Le dernier champ contient le shell
de l'utilisateur. Donnez une commande permettant de connaitre le nombre de shells différents utilisés par les
utilisateurs présents dans /etc/passwd. Un même shell utilisé par plusieurs utilisateurs ne doit être compté
qu'une seule fois.
cut –d : -f 7 /etc/passwd |sort | uniq | wc -l
Système d’exploitation Unix Ecole SUP MTI 25
Exercices d’application
Exercice 3 :
1. Afficher la liste des répertoires personnels des utilisateurs déclarés dans le fichier /etc/passwd.
2. On rappelle qu’à chaque utilisateur est associé un interpréteur de commandes (shell) lancé lors de
son login. La commande correspondante est indiquée dans le 7ième champ du fichier /etc/passwd.
Afficher le nombre d’interpréteurs de commandes différents mentionnés dans /etc/passwd.
3. On dispose d’un fichier texte [Link] contenant un petit carnet d’adresses. Chaque ligne est
de la forme « nom prenom numero telephone ». Les champs sont séparés par des « ; ».
Répondre aux questions suivantes en utilisant à chaque fois une ligne de commande shell:
4. Afficher le carnet d’adresse trié par ordre alphabétique de noms.
5. Afficher le nombre de personnes dans le répertoire.
6. Afficher toutes les lignes concernant les “karim”.
7. Afficher toutes les lignes ne concernant pas les “karim”.
8. Afficher le numéro de téléphone (sans le nom) du premier “karim” apparaissant dans le
répertoire.
9. Afficher le numéro de téléphone (sans le nom) du premier “karim” dans l’ordre alphabétique
(ordre basé sur les prénoms).
Système d’exploitation Unix Ecole SUP MTI 26
Les commandes (grep, find )
La commande grep
La commande grep permet de rechercher une chaîne de caractères dans un fichier.
La syntaxe :
grep texte nom_fichier
Les options sont les suivantes :
• -i : recherche sans distinction entre majuscule et minuscule
• -v : affiche les lignes ne contenant pas la chaîne
• -c : compte le nombre de lignes contenant la chaîne
• -n : chaque ligne contenant la chaîne est numérotée
• -x : ligne correspondant exactement à la chaîne
• -r : recherche le texte dans tous les fichiers qui se trouve dans un dossier
Système d’exploitation Unix Ecole SUP MTI 27
Les commandes (grep, find )
Les différentes expressions régulières sont :
• ^ le début de ligne
• . un caractère quelconque
• $ la fin de ligne
• x* zéro ou plus d'occurrences du caractère x ( « » ou « x » ou « xx »…)
• x+ une ou plus occurrences du caractère x. (« x » ou « xx » ou « xxx »…)
• x? une occurrence unique du caractère x
• [...] plage de caractères permis
• [^...] plage de caractères interdits
• {n} pour définir le nombre de répétition n du caractère placé devant
Système d’exploitation Unix Ecole SUP MTI 28
Les commandes (grep, find )
Utilisation de la commande grep avec Les expressions régulière
➢ [aeiouy] une des caractères (voyelles)
➢ [a-z] une lettre minuscule
➢ [0-9] un chiffre
➢ [a-z][0-9] une lettre minuscule suivie d’un chiffre
➢ ^A commence par A
➢ A$ finit par A
➢ [0-9]{2,5} entre 2 et 5 chiffres
➢ [0-9]{3,} au moins 3 chiffres
➢ [0-9]{,7} au plus 7 chiffres
➢ A? signifie A{0,1}
➢ A* signifie A{0,}
➢ A+ signifie A{1,}
➢ ^[A-Z]+$ ne contient que des lettres majuscules
Système d’exploitation Unix Ecole SUP MTI 29
Les commandes (grep, find )
Exercice : (la commande grep)
Déterminer les commandes permettant de réaliser les actions suivantes:
1. Chercher toutes les lignes commençant par «a» ou «A».
2. Chercher toutes les lignes finissant par «rs».
3. Chercher toutes les lignes contenant au moins un chiffre.
4. Chercher toutes les lignes commençant par une majuscule.
5. Chercher toutes les lignes commençant par «B», «E» ou «Q».
6. Chercher toutes les lignes finissant par un point d’exclamation.
7. Chercher toutes les lignes ne finissant pas par un signe de ponctuation (point,
virgule, point-virgule, deux-points, point d’interrogation, point d’exclamation).
8. Chercher tous les mots contenant un «r» précédé de n’importe quelle lettre
majuscule ou minuscule.
9. Chercher tous les mots dont la seconde lettre est un «r».
Système d’exploitation Unix Ecole SUP MTI 30
Correction :
1. Chercher toutes les lignes commençant par «a» ou «A».
grep -i ‘^a’ fichier ou grep ‘^[aA]’ fichier
2. Chercher toutes les lignes finissant par «rs».
grep ‘rs$’ fichier
3. Chercher toutes les lignes contenant au moins un chiffre.
grep ‘[0-9]’ fichier
4. Chercher toutes les lignes commençant par une majuscule.
grep ‘^[A-Z]’ fichier
5. Chercher toutes les lignes commençant par «B», «E» ou «Q».
grep ‘^[BEQ]’ fichier
6. Chercher toutes les lignes finissant par un point d’exclamation.
grep ‘!$’ fichier
7. Chercher toutes les lignes ne finissant pas par un signe de ponctuation (point, virgule, point-
virgule, deux-points, point d’interrogation, point d’exclamation).
grep ‘[^.,;:?!]$’ fichier ou grep -v ‘[.,;:?!]$’ fichier
8. Chercher tous les mots contenant un «r» précédé de n’importe quelle lettre majuscule ou
minuscule. grep ‘[a-zA-Z]r’ fichier’
9. Chercher tous les mots dont la seconde lettre est un «r».
grep ‘\<.r’ fichier
Système d’exploitation Unix Ecole SUP MTI 31
Les commandes (grep, find )
La commande find
la commande find est une commande très pratique pour chercher des fichiers à
partir de la ligne de commande. Il peut être utilisé pour chercher des fichiers en
fonction de différents critères de recherche tels que les autorisations, le
propriétaire, la date/heure de modification, la taille, etc.
Option Signification
-name Recherche par nom de fichier.
Recherche par type de fichier. d : répertoire, f : fichier
-type
ordinaire, l : lien symbolique
-size Recherche par taille de fichier. K : Ko, M : Mo, G : Go
-atime Recherche par date de dernier accès.
-mtime Recherche par date de dernière modification.
-ctime Recherche par date de création.
-links Recherche par nombre de liens au fichier.
Système d’exploitation Unix Ecole SUP MTI 32
5. Commandes pour manipuler les fichiers
Exemple de La commande find
▪ Pour afficher tous les fichiers se terminant par ".c''
VirtualBox:~$ find –name " *.c" -print
▪ Pour afficher tous les répertoires dont le nom se termine par "s''
VirtualBox:~$ find –type d –name "*s" -print
▪ Pour afficher tous les fichiers ayant une taille ≥ 10Mo
VirtualBox:~$ find –size +10M -print
▪ Pour afficher tous les fichiers modifies depuis 10 jours :
VirtualBox:~$ find –mtime 10
▪ Pour afficher tous les fichiers consultés au cours des 3 derniers jours :
VirtualBox:~$ find –atime 3
▪ Pour trouver des fichiers vides dans le répertoire /home :
VirtualBox:~$ find ./home –type f -empty
Système d’exploitation Unix Ecole SUP MTI 33
1. Créez un fichier dont chaque ligne commence par un chiffre, suivi d'un slash (/), puis d'un ou plusieurs
mots.
a) Affichez les lignes de ce fichier triées en ordre croissant, suivant le nombre placé en début de
ligne;
b) Éliminez de chaque ligne le chiffre et le caractère «/»;
c) Triez ces lignes par ordre alphabétique inverse.
2. Combien de fichiers de configuration avez-vous ?
3. Combien de répertoires de configuration avez-vous ?
4. Comment mettre dans un fichier la liste de tous les fichiers de l'arborescence à partir du répertoire
courant?
5. Créez un fichier liste contenant la liste de tous vos fichiers, avec leur taille, leurs droits, etc.
6. Comment afficher uniquement les fichiers du répertoire courant qui sont des liens symboliques ?
7. Combien de lignes contiennent le mot «file» dans la page de man de syst ?
8. Quels sont les dix plus gros fichiers de /usr/bin/ ?
9. Pour chaque ligne du fichier /etc/hosts, affichez :
* Le cinquième caractère;
* Les caractères 5 à 10, et le treizième;
* Tous les caractères à partir du quinzième.
Système d’exploitation Unix Ecole SUP MTI 34
1. Créez un fichier dont chaque ligne commence par un chiffre, suivi d'un slash (/), puis d'un ou plusieurs
mots.
a) Affichez les lignes de ce fichier triées en ordre croissant, suivant le nombre placé en début de
ligne;
b) Éliminez de chaque ligne le chiffre et le caractère «/»;
c) Triez ces lignes par ordre alphabétique inverse.
2. Combien de fichiers de configuration avez-vous ?
3. Combien de répertoires de configuration avez-vous ?
4. Comment mettre dans un fichier la liste de tous les fichiers de l'arborescence à partir du répertoire
courant?
5. Créez un fichier liste contenant la liste de tous vos fichiers, avec leur taille, leurs droits, etc.
6. Comment afficher uniquement les fichiers du répertoire courant qui sont des liens symboliques ?
7. Combien de lignes contiennent le mot «file» dans la page de man de syst ?
8. Quels sont les dix plus gros fichiers de /usr/bin/ ?
9. Pour chaque ligne du fichier /etc/hosts, affichez :
* Le cinquième caractère;
* Les caractères 5 à 10, et le treizième;
* Tous les caractères à partir du quinzième.
Système d’exploitation Unix Ecole SUP MTI 35