0% ont trouvé ce document utile (0 vote)
4 vues64 pages

Système de fichiers Linux : Guide complet

Le document traite du système de fichiers sous Linux, expliquant son organisation hiérarchique et les différents types de fichiers. Il décrit également les chemins d'accès, les règles de nomenclature des fichiers, ainsi que les commandes de base pour gérer les fichiers et répertoires. Enfin, il aborde les concepts de liens et d'utilisation de caractères de substitution pour filtrer les résultats de commandes.

Transféré par

yangui.rania
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues64 pages

Système de fichiers Linux : Guide complet

Le document traite du système de fichiers sous Linux, expliquant son organisation hiérarchique et les différents types de fichiers. Il décrit également les chemins d'accès, les règles de nomenclature des fichiers, ainsi que les commandes de base pour gérer les fichiers et répertoires. Enfin, il aborde les concepts de liens et d'utilisation de caractères de substitution pour filtrer les résultats de commandes.

Transféré par

yangui.rania
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Préparation à la certification

LPI 101
Dr. Manel Elleuchi

1
Chapitre 2: Système de fichiers

2
Le système de fichiers
➢ Un système de fichiers, appelé communément File System ou FS,
définit l’organisation des données sur un support de stockage,
donc comment sont gérés et organisés les fichiers par le système
d’exploitation.

➢ Linux est un système d’exploitation entièrement orienté fichier.

➢ Tout est représenté par un fichier (les données (fichiers de


données de tout type comme une image ou un programme), les
périphériques (terminaux, souris, clavier, carte son, etc.) ou
encore les moyens de communication )

➢ le système de fichier est le coeur de tout système Unix.

3
Le système de fichiers
Le système de fichiers de Linux est hiérarchique. Il décrit une arborescence de
répertoires et de sous-répertoires, en partant d’un élément de base appelé la
racine ou root directory (/).

4
Les divers types de fichiers
➢ On distingue trois types de fichiers : ordinaires, catalogue, spéciaux.
a. Les fichiers ordinaires ou réguliers: Ce sont des fichiers qui contiennent
des données ( texte, image, audio, script, …)

b. Les catalogues : sont les répertoires, dossiers ou directory:


permettent d’organiser le disque dur en créant une hiérarchie.
o Un répertoire peut contenir des fichiers normaux, des fichiers spéciaux et
d’autres répertoires, de manière récursive.
o Un répertoire n’est rien d’autre qu’un fichier particulier contenant la liste des
fichiers eux-mêmes présents dans ce répertoire

c. Les fichiers spéciaux: Ils se trouvent principalement dans le répertoire /dev


s’ils représentent des périphériques. Ce sont principalement des fichiers servant
d’interface pour les divers périphériques.

5
Nomenclature des fichiers
➢ Sur les anciens systèmes Unix un nom de fichier ne pouvait pas dépasser 14
caractères. Sur les systèmes actuels, dont Linux, on peut aller jusqu’à 255
caractères.

➢ On ne peut pas donner n’importe quel nom à un fichier, il faut pour cela suivre
quelques règles simples:

▪ Linux fait la distinction entre les noms de fichiers en minuscules et en


majuscules.
▪ La plupart des caractères acceptés : es chiffres, les lettres, les majuscules, les
minuscules, certains signes, les caractères
accentués.
▪ Les caractères à éviter car ils ont une signification particulière au sein du
shell : & ( ) ~ <espace> \ / | ` ? - (en début de nom).

➢ Les noms suivants sont valides : Fichier1, [Link], Paie_juin_2002.xls, 8


➢ Ces noms peuvent poser des problèmes : Fichier*, Paie(decembre),
Ben&Nuts, Paie juin [Link], -f
- 6
Les chemins
➢ Les chemins permettent de définir un emplacement au sein du système de
fichiers. C’est la liste des répertoires et sous-répertoires empruntés pour
accéder à un endroit donné de l’arborescence jusqu’à la position souhaitée
(répertoire, fichier)
➢ Le nom de chemin ou path name d’un fichier est la concaténation, depuis la
racine, de tous les répertoires qu’il est nécessaire de traverser pour y accéder,
chacun étant séparé par le caractère /.
➢ Un chemin absolu ou complet :
• démarre de la racine, donc commence par un /,
• décrit tous les répertoires à traverser pour accéder à l’endroit voulu

Répertoire personnel: Lors de la création d’un utilisateur, l’administrateur lui


alloue un répertoire personnel appelé home directory. Lorsqu’il se connecte,
l’utilisateur arrive directement dans ce répertoire, qui est son répertoire
personnel. C’est dans ce
répertoire que l’utilisateur pourra créer ses propres fichiers et répertoires.
Login : manel
Password : xxxxxxxxxx
$ pwd
/home/manel 7
Les chemins
Les chemins
Chemin relatif:
➢ Décrit un chemin relatif à une position donnée dans l’arborescence, généralement (mais
pas toujours) depuis la position courante
➢ Peut contenir des points ou des doubles points
Le point . représente le répertoire courant, actif. Il est généralement implicite.
Les doubles points .. représentent le répertoire de niveau inférieur.
▪ /usr/local/bin est un chemin complet ou absolu
▪ Documents/Photos est un chemin relatif : le répertoire Documents est considéré
comme existant dans le répertoire courant
▪ ./Documents/Photos est un chemin relatif parfaitement identique au précédent, sauf
que le répertoire actif (courant) est explicitement indiqué par le point. « ./Documents »
indique explicitement le répertoire Documents dans le répertoire actif
▪ /usr/local/../bin est un chemin relatif : les .. sont relatifs à /usr/local et descendent
d’un niveau vers /usr. Le chemin final est donc /usr/bin.

8
Les chemins

Le tilde:

➢Le bash interprète le caractère tilde ~ comme un alias du répertoire


personnel.

➢Les chemins peuvent être relatifs au tilde, mais le tilde ne doit être
précédé d’aucun caractère.

Pour vous déplacer dans le répertoire tmp de votre dossier personnel


d’où que vous soyez :
$ cd ~/tmp

9
Arborescence du système
/ la racine du système. C'est à partir de ce point qu‘on peut accéder
à tous les dossiers et les fichiers ainsi qu'aux disques qu‘on a pu
monter dans une arborescence.
/bin Contient les programmes utilisés à la fois par les utilisateurs et
les administrateurs (par exemple, les
commandes ls, rm, cp, chmod, mount, ...).
/boot contient le noyau Linux et autres fichiers nécessaires à son
démarrage.
/dev contient les fichiers de périphériques.
/etc contient les fichiers de configuration.
/home contient les répertoires personnels des utilisateurs
/lib contient des bibliothèques partagées essentielles au système lors
du démarrage
/media points de montage pour des périphériques amovibles (CD-Rom,
clé USB, etc.)
/mnt point de montage "historique" sur unix
/opt lieu d'installation d'applications supplémentaires (comme java ..)
10
Arborescence du système
/proc contient des fichiers permettant d’accéder aux informations sur le
matériel, la configuration du noyau et sur les processus en cours
d’exécution.
/root répertoire personnel de l’administrateur.
/sbin contient les programmes systèmes essentiels (ex : La commande
adduser).
/srv contient les données pour les services hébergés par le système,
comme du contenu http/ftp (l'arborescence complète d'un site
web), une base de données.
/sys permet à l’administrateur de l’ordinateur d’activer et de désactiver
des fonctions du noyau et fournit également des informations sur
le système.
/tmp contient les fichiers temporaires ; ce répertoire étant souvent vidé
au démarrage du système
/usr contient les fichiers du système partageables en réseau ( les
données et des programmes communs aux utilisateurs).
/var contient les fichiers dont le contenu varie. Ceci inclut les fichiers
de traces, les files d‘attente, les caches, etc.
11
Accès aux périphériques
Chaque périphérique du système (souris, disque dur, lecteur de cd, carte son, etc.) est
représenté par un fichier spécial.

Fichier périphérique
/dev/input/mouse0 souris
/dev/fd0 lecteur de disquettes
/dev/hda premier disque dur ide
/dev/hdb second disque dur ide
/dev/hdc troisième disque dur ide
/dev/hdd quatrième disque dur ide
/dev/sda premier disque dur sata, scsi ou usb
/dev/sdb second disque dur sata, scsi ou usb
/dev/ttyS0 premier port série ou infrarouge
/dev/ttyS1 second port série ou infrarouge
/dev/parport0 port parallèle
/dev/lp0 imprimante parallèle
/dev/usb/lp0 imprimante usb
/dev/sdc0 premier CD-ROM SCSI

12
Les commandes de base
➢ L'exécution des commandes Unix s'effectue par la saisie des commandes sur l'invite
de commande (appelée aussi terminal).
➢ Ces commandes sont interprétées par un interpréteur de commandes appelé shell
(sur les distributions ubuntu, le shell par défaut est le shell bash).
➢ Les commandes Unix s'exécutent d'une façon simple: on saisit la commande sur la
console et on appuie la touche entrée pour avoir le résultat sur le terminal.
➢ On peut faire l'exécution d'une suite de commandes. Il suffit de les taper les unes à
la suite des autres séparées par ;.
➢ On distingue deux manières d'exécution: certaines commandes peuvent s'exécuter
avec ou sans arguments. Les arguments sont les entités sur lesquelles s'appliquent
l'action. Un argument peut être un fichier, un texte, un dossier...
➢ Certaines commandent nécessitent l'utilisation de plusieurs arguments.

D'une façon générale, la syntaxe des commandes Unix s'écrit comme suit:

nom_commande [-options] argument1 argument2 .....


13
Les commandes de base
Lister les fichiers et les répertoires
La commande ls permet de lister le contenu d’un répertoire en lignes ou colonnes.
Elle supporte plusieurs paramètres dont voici les plus pertinents.
Syntaxe: ls [-options] [noms]

14
Les commandes de base

Gérer les fichiers et les répertoires

▪ Créer des fichiers vides: La commande Touch

Syntaxe : touch [chemin du fichier à créer]

Exemples :

▪ touch /home/manel/file_1: créer le fichier file_1 sous


l’arborescence /home/manel

▪ touch file_1 : créer le fichier mon_cv sous le répertoire actuel

15
Les commandes de base
Gérer les fichiers et les répertoires

▪ Créer des répertoires: La commande mkdir (make directory)

Permet de créer un ou plusieurs répertoires, ou une arborescence complète

Syntaxe : mkdir <-p> [chemin du répertoire à créer]

Exemples :

• mkdir rep_1 : créer un répertoire rep_1 dans le répertoire courant


• mkdir /home/manel/rep_1 : créer le répertoire rep_1 sous l’arborescence /
home/manel
• mkdir -p /home/manel/rep_1/pm _1: créer les répertoires rep et pm en même
temps sous l’arborescence /home/manel

16
Les commandes de base
Gérer les fichiers et les répertoires

▪ Supprimer un fichier ou une arborescence: La commande rm


(remove) supprime un ou plusieurs fichiers, et éventuellement une
arborescence complète. La suppression est définitive.

Syntaxe :rm [Options] fich1 [fich2...]

Options:

17
Les commandes de base

Gérer les fichiers et les répertoires

▪ Supprimer des répertoires: La commande rmdir (remove


directory) supprime un ou plusieurs répertoires vides.

Syntaxe :rmdir rep1 [rep2] ... [repn]

Exemples :

✓ rmdir /home/manel/rep_1 : supprimer le répertoire rep_1 sous


l’arborescence /home/manel s’il est vide

✓ rmdir -p rep_1/rep_2/rep_3 :supprimer le répertoire rep_1


rep_2 et rep_3
18
Les commandes de base
Gérer les fichiers et les répertoires

▪ Copier des fichiers: La commande cp (copy) copie un ou plusieurs fichiers vers


un autre fichier ou vers un répertoire.

Syntaxe :cp fic1 [fic2 ... ficn] Destination

Les chemins peuvent êtres absolus ou relatifs. La commande peut prendre les
options suivantes :

19
Les commandes de base
Gérer les fichiers et les répertoires

▪ Copier des fichiers: La commande cp (copy) copie un ou plusieurs fichiers vers


un autre fichier ou vers un répertoire.

Syntaxe :cp fic1 [fic2 ... ficn] Destination

Exemples :
▪ cp /home/manel/file_1 /home/emna/file_1 : copier sous /home/emna avec
le même nom
▪ cp /home/manel/file_1 /home/emna/file1_copie : copier sous /home/emna
avec un nom différent
▪ cp –r /home/manel/rep _1 /home/emna/rep_1 : copier le répertoire avec le
même nom
▪ cp –r /home/manel/rep_1 /home/emna/rep_1_copie: copier avec un nom
différent
▪ cp –ir /home/manel /rep /home/emna/rep : copier d’une façon interactive,
demander la confirmation pour chaque fichier du répertoire.
20
Les commandes de base
Gérer les fichiers et les répertoires

▪ Déplacer et renommer un fichier : La commande mv (move)


permet de déplacer, de renommer un fichier, ou les deux en même
temps. Elle fonctionne comme la commande cp.

Syntaxe :mv fic1 [fic2 ... ficn] Destination

$ mv txt1 txt1_new: txt1 est renommé en txt1_new


$ mv txt2 rep1/txt2 : txt2 est déplacé dans rep1
$ mv txt3 rep1/txt3_new : txt3 est déplacé dans rep1 et renommé en txt3_new
$ mv fich* Rep : déplacer tous les fichiers dont le nom commence par fich sous le
répertoire Rep

21
Les commandes de base
Gérer les fichiers et les répertoires
Les liens:
➢ Un lien est un fichier spécial contenant comme information un chemin vers un
autre fichier (comme des raccourcis). C’est une sortie d’alias.
➢ Il existe deux types de liens : le lien dur (hard link) et le lien symbolique (soft
link) qui correspond à la définition donnée.
➢ le lien se comportera à l’identique du fichier pointé avec les mêmes
permissions :
• si le fichier pointé est un programme, lancer le lien lance le programme
• si le fichier pointé est un répertoire, un cd sur le lien rentre dans ce
répertoire
• si le fichier pointé est un fichier spécial (périphérique), le lien est vu
comme périphérique

Syntaxe : ln -s fichier lien

22
Les commandes de base
Wildcards : caractères de substitution
➢ Lors de l’utilisation de commandes en rapport avec le système de fichier, il peut
devenir intéressant de filtrer la sortie de noms de fichiers à l’aide de certains
critères, par exemple avec la commande ls.
➢ Au lieu d’afficher toute la liste des fichiers, on peut filtrer l’affichage à l’aide de
divers critères et caractères spéciaux

23
Les commandes de base
Wildcards : caractères de substitution
Soit le contenu suivant :
$ ls
afic afic2 bfic bfic2 cfic cfic2 dfic dfic2
afic1 afic3 bfic1 bfic3 cfic1 cfic3 dfic1 dfic3

1) Vous obtenez tous les fichiers commençant par a :


$ ls a*
afic1 afic2 afic3 afic

2) Tous les fichiers de quatre caractères commençant par a :


$ ls a???
Afic

3) Tous les fichiers d’au moins trois caractères et commençant par b :


$ ls b??*
bfic bfic1 bfic2 bfic3
24
Les commandes de base
Wildcards : caractères de substitution

4) Tous les fichiers finissant par 1 ou 2 :


$ ls *[12]
afic1 afic2 bfic1 bfic2 cfic1 cfic2 dfic1 dfic2

5)Tous les fichiers commençant par les lettres de a à c, possédant au moins un


second caractère avant la terminaison 1 ou 2 :
$ ls [a-c]?*[12]
afic1 afic2 bfic1 bfic2 cfic1 cfic2

6)Tous les fichiers ne finissant pas par 3 :


$ ls *[ !3]
afic afic1 afic2 bfic bfic1 bfic2 cfic cfic1 cfic2 dfic
dfic1 dfic2

25
Les commandes de base
Visualisation de texte

➢ en bloc : cat

➢ à l’envers : tac

➢ page par page : more, less

➢ formatage pour impression : pr

26
Les commandes de base
Visualisation de texte
La commande cat
▪ La commande cat permet d’afficher un fichier textuel en intégralité sur la
console.
Syntaxe : cat [chemin du fichier]
Exemple : cat /etc/passwd
Les options sont :
-n: numéroter chaque ligne de la sortie
-b: numéroter uniquement les lignes non vides
-A: afficher le retour charriot
La commande tac
▪ La commande tac est identique à la commande cat sauf que cette commande
affiche les fichiers à l’envers sur la console.
Syntaxe : tac [chemin du fichier]
Exemple : tac /etc/passwd
27
Les commandes de base
Visualisation de texte

La commande less
▪ affiche progressivement le contenu du fichier, page par page

Syntaxe : less [chemin du fichier]


Exemple : less /etc/passwd

La commande more
▪ De même que la commande less, la commande more permet d’afficher un
fichier textuel d’une façon progressive et en permettant la navigation dans le
fichier mais dans un seul sens, de haut en bas.
Syntaxe : more [chemin du fichier]
Exemple : more /etc/passwd

28
Les commandes de base
Visualisation de texte
La commande pr

La commande pr permet de mettre en forme un fichier textuel pour le préparer à

l’impression

Exemples:

pr /etc/passwd : ajouter une entête et un pied de page au fichier /etc/passwd

pr –hAttestation /etc/passwd : pour modifier le titre du fichier /etc/passwd

pr -o 2 /etc/passwd : modifier la marge du fichier /etc/passwd

29
Les commandes de base
Début d’un fichier
Pour voir le début d’un fichier utilisez la commande head.

Syntaxe : head [-c nbcar] [-n nblignes] [fic1...]

▪ Le paramètre -c permet de préciser un nombre d’octets d’en-tête à afficher.


▪ Par défaut dix lignes sont affichées.
▪ Le paramètre -n permet d’indiquer le nombre de lignes à afficher.
▪ Vous pouvez indiquer directement le nombre de lignes :

Exemple:
$ head -3 liste
Produit objet prix quantites
souris optique 30 15
dur 30giga 100 30

30
Les commandes de base
Fin de fichier
Pour voir les dernières lignes d’un fichier, utilisez la commande tail.
Syntaxe : tail [+/-valeur[b/c]] [-f] [fic1...]
▪ Comme pour head, par défaut les dix dernières lignes sont affichées.
▪ Un c pour indiquer un nombre de caractères.
▪ Un b indique un nombre de blocs (512 octets par bloc).
▪ Un + inverse l’ordre de la commande, permet d'afficher la fin d'un texte en
commençant par une ligne donnée.
▪ l’option -f laisse le fichier ouvert. Ainsi si le fichier continue d’être rempli (par
exemple un fichier trace), son contenu s’affichera en continu sur l’écran jusqu’à
interruption volontaire par l’utilisateur ([Ctrl] C).

Exemples :
tail /etc/passwd : afficher les 10 dernières lignes du fichier /etc/passwd
tail -n 3 /etc/passwd : afficher les 3 dernières lignes du fichier /etc/passwd
tail -4 /etc/passwd : afficher les 4 dernières lignes du fichier /etc/passwd

31
Les commandes de base
Compter les lignes, les mots et les octets
La commande wc compte le nombre d'octets, de mots et de lignes dans les fichiers.
Les options suivantes vous permettent de sélectionner ce qui vous intéresse :
Syntaxe : wc <-l><-c><-w> [chemin du fichier]
Options de wc
-l compte le nombre de lignes
-w compte le nombre de mots (words)
-c compte le nombre d'octets
-m compte le nombre de caractères

Numérotation des lignes


La commande nl pour numéroter les lignes (même chose que cat –b)

Syntaxe : nl [chemin du fichier]


Exemples :
nl -ba /etc/passwd: numéroter toutes les lignes y compris les lignes vides

32
nl -bt /etc/passwd: numéroter uniquement les lignes avec du texte
Les commandes de base
Colonnes et champs
La commande cut permet de sélectionner des colonnes et des champs dans un fichier.
Syntaxe : cut -d {séparateur} -f {numéro de colonne} [chemin du fichier]

Exemples :
cut -d : -f 3 /etc/passwd : afficher la colonne 3 du fichier /etc/passwd
cut -d : -f 1-4 /etc/passwd : afficher les colonnes de 1 à 4 du fichier /etc/passwd
cut -d : -f 3,5 /etc/passwd : afficher les colonnes 3 et 5 du fichier /etc/passwd

33
Les commandes de base
Tri de lignes
La commande sort permet de trier des lignes. Par défaut le tri s’effectue sur tout le
tableau et en ordre croissant. Le tri est possible sur un ou plusieurs champs.
Syntaxe : sort <-t> [séparateur] <-k> [numéro de colonne] <-n><-r> /etc/passwd

Exemples :
sort -t : -k 3 –n -r /etc/passwd : faire le tri numérique décroissant selon la colonne 3 le
fichier /etc/passwd 34
Les commandes de base
Jointure de deux fichiers
Sur des champs communs
➢ La commande join permet d’effectuer une jointure de deux fichiers en
fonction d’un champ commun. Les deux fichiers doivent être triés sur les
champs spécifiés pour la jointure.

Syntaxe: join [-t] [-1 n] [-2 m] fich1 fich2

➢ L’option -t indique le séparateur, -1 le champ du premier fichier et -2 le


champ du second fichier sur lesquels effectuer la jointure.
➢ join gère mal les doublons et risque de s’arrêter dans ce cas.
➢ La commande join risque de ne pas fournir le résultat attendu. S’il n’ y a pas
une correspondance entre deux lignes, elle s’arrête.
35
Les commandes de base
Suppression des doublons

La commande uniq permet de supprimer les doublons dans des


flux en entrée ou des fichiers triés.

Exemples :
cut -d: -f4 /etc/passwd | sort -n | uni

1
1
1
2
4
5
62 36
0
1
2
7
8

Les commandes de base


Jointure de deux fichiers

Ligne à ligne
La commande paste regroupe n fichiers en un. Pour cela elle concatène les lignes de
chacun des fichiers en une seule ligne : ligne1 de fich1 avec ligne2 de fich2, ligne3 de
fich3, et ainsi de suite.
Syntaxe: paste <-d>[chemin du fichier 1][chemin du fichier 2]
Exemples :
$ cat fich1
liste_a
liste_b
liste_c
$ cat fich2
liste_a2
liste_b2
liste_c2
$ paste -d: fich1 fich2
liste_a:liste_a2
liste_b:liste_b2
liste_c:liste_c2 37
Les commandes de base
Tabulations et espaces
La commande expand convertit les tabulations en espaces.

La commande unexpand convertit les espaces en tabulations

Convertir les caractères

➢ La commande tr permet de substituer des caractères à d’autres et n’accepte


que des données provenant du canal d’entrée standard, pas les fichiers.
Exemple :
tr 'A-B' 'a-b' < fichier : convertir les majuscules en minuscules

➢ tr admet deux paramètres, -s (squeeze) et -d (delete), qui permettent de


supprimer des caractères en doublons ou non.
Exemple :
tr -d root < /etc/passwd : supprimer le mot « root » du fichier /etc/passwd
38
Les commandes de base
Mise en forme de la sortie
➢ La commande fmt permet de mettre en forme un fichier textuel et modifier le
nombre de caractères par ligne

➢ Par défaut fmt joins les ligne et génère des lignes de 75 caractères.

Options de fmt
-w (width) nombre de caractères par ligne
-s découpe les lignes longues mais sans les remplir
-u sépare chaque mot par une espace et chaque phrase par deux espaces

39
Les commandes de base
Découpage d’un fichier en morceaux
La commande split permet de découper un gros fichier en plusieurs morceaux
d’une taille donnée
Syntaxe: split [-l n] [-b n[bkm] [fichier
[préfixe]]
La commande peut fonctionner selon deux modes :
➢ découpage par lignes avec -l : les fichiers en sortie auront tous n lignes de texte
(sauf éventuellement le dernier)
➢ découpage à taille fixe avec -b : les fichiers auront tous une taille fixe de n
octets. Le suffixe b indique une taille de n blocs (512 octets), k indique n ko
(1024 octets) et m indique n Mo (1024 ko).
Exemples :
split -b 2m /home/manel/[Link] chap : segmenter le fichier [Link] en
morceaux de 2Mo chacune et dont le nom commence par « chap »
split -l 5 /etc/passwd : segmenter le fichier /etc/passwd en morceaux de 5 lignes

40
Les commandes de base
La commande od
▪ La commande od permet d’fficher le contenu d'un fichier en octal ou sous d'autres
formats
Syntaxe : od [-options] [chemin de fichier]
Les options
d : décimale
o : octale
x : hexadécimale
n : aucune (ne pas afficher les décalages)
La base par défaut est octale.

Exemple :
od -x /etc/passwd : convertir le fichier /etc/passwd vers le format hexadécimal
od -o /etc/passwd: convertir le fichier /etc/passwd vers le format octal

41
Les commandes de base
Recherche de lignes
Il s’agit d’extraire des lignes d’un fichier selon divers critères.
Les trois commandes grep, egrep et fgrep lisent les données soit depuis un fichier
d’entrée, soit depuis le canal d’entrée standard.

La commande grep
La syntaxe : grep [Options] [Fichier1...]

La commande grep peut prendre quelques options intéressantes.

• -v : effectue la recherche inverse : toutes les lignes ne correspondant pas aux


critères qui sont affichées.
• -c : ne retourne que le nombre de lignes trouvées sans les afficher.
• -i : ne différencie pas les majuscules et les minuscules.
• -n : indique le numéro de ligne pour chaque ligne trouvée.
• -l : dans le cas de fichiers multiples, indique dans quel fichier la ligne a été
trouvée.
42
Les commandes de base
Recherche de lignes
La commande grep
Exemples :
grep root /etc/passwd: afficher toutes les lignes qui comportent le mot « root »
grep -c root /etc/passwd : compter les lignes qui comportent le mot « root »
grep ^ro /etc/passwd : afficher toutes les lignes commençant par « ro »
grep bash$ /etc/passwd : afficher toutes les lignes qui se terminant par « bash »
grep -v root /etc/passwd : afficher toutes les lignes qui ne contenant pas root
grep -i RoOt /etc/passwd : afficher toutes les lignes qui comportent le mot « root »et
ignorer la casse
La commande egrep
La commande egrep étend les critères de recherche et peut accepter un fichier de critères
en entrée. Elle est équivalente à un grep -E. Elle emploie comme critères des expressions
régulières.

La syntaxe: egrep -f fichier_critère Fichier_recherche

43
Les commandes de base
Recherche de lignes
La commande egrep

44
Les commandes de base
Recherche de lignes
La commande fgrep

➢ La commande fgrep est un grep simplifié et rapide (fast grep)


et équivaut à un grep -F .
➢ Elle accepte aussi un fichier de critères de recherche mais il
s’agit de critères simples, sans caractères spéciaux.
➢ Vous saisissez dans le fichier de critères des lignes simples (du
texte et des chiffres), une recherche par ligne. fgrep recherche
dans un fichier cible ou un flux en entrée les lignes
correspondant à chacun des critères.

45
Les commandes de base
La commande sed
▪ La commande sed est une commande qui permet de chercher un pattern dans un
flux textuel et de le remplacer.
Exemples
sed 's/noir/blanc/' /home/manel/doc1 : Afficher /home/manel/doc1 en
remplaçant la première occurrence de noir par blanc dans le fichier /home/
manel/doc1

sed 's/noir/blanc/g' doc1 : Afficher /home/manel/doc1 en remplaçant toutes les


occurrences de noir par blanc dans le fichier /home/manel/doc1

sed 's/noir/blanc/gi' en remplaçant toutes les occurrences de noir par blanc dans
le fichier /home/manel/doc1 et en ignorant la casse

sed '/noir/d' doc2 : Afficher /home/manel/doc1 et éliminer toutes les


occurrences du mot « noir »
46
Les commandes de base
Obtenir de l’aide
L’aide propre aux commandes
le paramètre --help affiche l’aide incluse directement au sein du programme appelé
Exemples :
$ date --help

Mais, Il peut cependant arriver que l’aide soit trop concise ou manque d’explications,
ou bien soit totalement absente. Dans ce cas --help est considéré comme un paramètre
invalide et vous risquez d’obtenir un message d’erreur et/ou une ligne d’informations

L’aide interne au shell


La commande help permet d’afficher l’aide d’une commande passée en paramètre.
Syntaxe: $ help [Commande]

47
Les commandes de base
Obtenir de l’aide
Le manuel en ligne:
Le manuel est accessible depuis la commande man
Syntaxe: $ man [Commande]
➢ Une page du manuel est composée de plusieurs sections:
• Nom : nom et rôle de la commande.
• Synopsis : syntaxe générale, paramètres et arguments acceptés.
• Description : mode d’emploi détaillé du fonctionnement de la commande et des arguments principaux.
• Options : description détaillée de chaque paramètre possible, généralement sous forme de liste.
• Exemples : le manuel peut fournir des exemples concrets d’utilisation de la commande.
• Environnement : le fonctionnement de la commande peut réagir différemment si des variables du shell sont
positionnées à certaines valeurs.
• Conformité : la commande est conforme à des recommandations ou normes (par exemple POSIX).
• Bogues : la commande peut parfois rencontrer des dysfonctionnements dans des cas ponctuels qui peuvent être
énumérés à cet endroit.
• Diagnostics/retour : la commande, selon son résultat, peut retourner des codes d’erreurs significatifs dont la valeur
permet de déterminer le type de problème (fichier en argument absent, etc.).
Voir aussi : • liste des commandes liées au programme qui peuvent intéresser l’utilisateur.
➢ Si vous avez un doute sur la commande à utiliser, ou que vous ayez perdu son nom, ou
encore que vous vouliez connaître toutes les commandes liées à un mot, alors utilisez le
paramètre -k de man : man -k passwd
➢ La touche Q quitte l’aide et revient au shell
48
Les commandes de base
Recherche dans le système de fichiers
La commande whatis
La commande whatis cherche des commandes dans l'intégralité des systèmes de fichiers,
mais elle utilise une base de données qui contient une courte description ainsi que des
mots clés.
Syntaxe : whatis [commande]
Exemples :
whatis who : permet d’afficher une description
La commande apropos
La commande apropos utilise la même base de données que whatis, mais
donne plus d'informations :
Exemples :

manel@manel-VirtualBox:~$ apropos who


bsd-from (1) - print names of those who have sent mail
from (1) - print names of those who have sent mail
w (1) - Show who is logged on and what they are doing.
[Link] (1) - Show who is logged on and what they are doing.
who (1) - show who is logged on
whoami (1) - print effective userid 49
Les commandes de base
Recherche dans le système de fichiers

• La commande uname
La commande uname permet d'afficher des informations sur le système d’exploitation et
sur la version du noyau en cours d’utilisation.

▪ Syntaxe :
$ uname -m # Afficher le type (matériel) de machine
$ uname -n # Afficher le nom d'hôte de la machine sur le réseau
$ uname -r # Afficher le numéro de version du système d'exploitation
$ uname -s # Afficher le nom du système d'exploitation
Linux
manel@manel-VirtualBox:~$ uname -r
5.8.0-44-generic
manel@manel-VirtualBox:~$ uname -s
Linux
manel@manel-VirtualBox:~$ uname -n
manel-VirtualBox
manel@manel-VirtualBox:~$ uname -m
x86_64 50
Les commandes de base
Recherche dans le système de fichiers

La commande file
La commande file permet d'afficher des informations sur le format d’un fichier.
Syntaxe : file [chemin du fichier]
Exemple : manel@manel-VirtualBox:~$ file /etc/passwd
/etc/passwd: ASCII text
Exemples :

$ file Tp*
[Link]: data
[Link]: ASCII java program text
[Link]: symbolic link to `[Link]'

$ file [Link]
[Link]: UTF-8 Unicode text

51
Les commandes de base
Recherche dans le système de fichiers

La commande find
Les critères de recherche sont les suivants :
-name :recherche sur le nom du fichier,
-perm :recherche sur les droits d'accès du fichier,
-links :recherche sur le nombre de liens du fichier,
-user : recherche sur le propriétaire du fichier,
-group :recherche sur le groupe auquel appartient le fichier,
-type :recherche sur le type (d=répertoire, c=caractère, f=fichier normal),
-size :recherche sur la taille du fichier en nombre de blocs (1 bloc=512octets),
-atime :recherche par date de dernier accès en lecture du fichier,
-mtime :recherche par date de dernière modification du fichier,
-ctime :recherche par date de création du fichier.

Dans certains systèmes, la commande find doit être utilisée avec l'option -print. Sans l'utilisation
de cette option, même en cas de réussite dans la recherche, find n'affiche rien à la sortie
standard (l'écran, plus précisément le shell). 52
Les commandes de base
Recherche dans le système de fichiers
Exemples :
find /home –name '[Link]‘ : chercher dans /home le fichier nommé ‘[Link]’
find /usr -name " *.c " : chercher des fichiers dans /usr se terminant par .c
find /etc -size 1000k : chercher dans /etc les fichiers dont la taille est égale à1000k
find /home -atime 2 : chercher dans /home les fichiers auxquels on a accédé depuis 2 jours
find /var -mtime 2 : chercher dans /var les fichiers qui ont été modifié depuis 2 jours
find /home -ctime 2 : chercher dans /home les fichiers qui ont été crée depuis 2 jours find /
usr -size +1000k : chercher dans /usr les fichiers dont la est taille est supérieure à1000k
find /home -amin -2 : chercher dans /home les fichiers auxquels on a accédé depuis moins de 2
minutes
find /root -mmin +2 : chercher dans /root les fichiers qui ont été modifié depuis plus de 2
minutes
find /home –cmin -2 : chercher dans /home les fichiers qui ont été crée depuis moins de 2
minutes
find /home -perm 755 : chercher dans /home les fichiers dont la permission est 755

53
Les commandes de base
Recherche dans le système de fichiers
Remarques :
On peut combiner les critères avec des opérateurs logiques :
critère1 critère2 ou critère1 -a critère2 : correspond au et logique,
!critère : non logique,
\ (critère1 -o critère2\) ou logique,

Exemples
find / -type f -user manel -size 1000
find . ! -user manel : les fichiers n'appartenant pas à l'utilisateur manel
find /home \( -name coordonees -o -size +1000 \) : une condition ou l'autre.

on dispose de l'option -exec.

find couplé avec exec permet d'exécuter une commande sur les fichiers trouvés d'après les
critères de recherche fixés.
Cette option attend comme argument une commande, celle ci doit être suivi de {}\ ;.

Exemple recherche des fichiers ayant pour nom core, suivi de l'effacement de ces fichiers.

54
find /home -name core -exec rm {}\;
Les commandes de base
Recherche dans le système de fichiers
• La commande locate
La commande locate cherche tous les types de fichiers dans l'intégralité des
systèmes de fichiers comme find, mais elle utilise une base de données.
La base de données est automatiquement mise à jour, généralement la nuit,
lorsque la machine est peu sollicitée. On peut mettre à jour manuellement la base
de données en utilisant la commande updatedb (on doit être root pour lancer
cette commande).
Les options de fonctionnement de la commande updatedb sont décrites dans le
fichier /etc/[Link].
La recherche est donc très rapide.

Syntaxe : locate [nom fichier]


La commande slocate est équivalente à la commande locate (locate sécurisé) sauf
que la commande slocate affiche uniquement les fichiers sur lesquels vous avez un
accès.
55
Les commandes de base

Recherche dans le système de fichiers


• La commande which
La commande which est utilisée pour trouver l'emplacement d'une commande : elle
effectue sa recherche par rapport au contenu de la variable PATH, et retourne le chemin du
premier fichier correspondant.
Syntaxe : which [nom de la commande]
Exemple : which bash
/bin/bash

• La commande whereis
La commande whereis fonctionne de façon similaire à which, mais elle peut
aussi chercher dans les pages de manuel (man) et les codes sources.
Syntaxe : whereis [nom de la commande]
Exemple : whereis bash
bash: /bin/bash /usr/share/man/man1/bash.1.bz2

56
Les commandes de base
Archivage et compression de fichiers
Compresser et décompresser
gzip et gunzip

➢ gzip (GNU zip) est un outil (commande) de compression (extension : .gz) qui
est plus puissant que compress

➢ gunzip peut décompresser des fichiers compressés par gzip, compress ou


pack.

➢ Pour des raisons historiques, gzip est encore le plus utilisé des formats de
compression, quand bien même il n'est pas le plus puissant.

57
Les commandes de base
Archivage et compression de fichiers
Lire des fichiers compressés avec gzip
La grande majorité des programmes (commandes) sont incapables de lire directement
des fichiers compressés avec gzip : il faut préalablement les décompresser. Il y a
cependant des exceptions notables :

•La commande zcat équivaut à la commande cat, mais pour des fichiers compressés
avec gzip
•La commande less détecte et décompresse automatiquement les fichiers compressés
avec gzip (ce qui n'est pas le cas de la commande more)

•La commande gv (Ghostview) décode automatiquement les fichiers compressés avec


gzip ; vous pouvez donc sans problème compresser vos fichiers PDF, car vous pourrez
les lire sans avoir à les décompresser préalablement.
.

58
Les commandes de base
Archivage et compression de fichiers

Lire des fichiers compressés avec gzip


• Compresser un fichier : gzip fichier
• Compression optimisée d'un fichier ( fichiers > 100 Ko) : gzip -9 fichier
• Décompresser un fichier gzippé : gunzip [Link]
• Lire le contenu d'un fichier gzippé (sans le décompresser) :zcat [Link]

bzip2 et bunzip2
• bzip2 est un outil de compression (extension : .bz2) qui est plus lent que gzip,
mais plus puissant. Il est libre et fondé sur un algorithme libre.
Lire des fichiers compressés avec bzip2
• Compresser un fichier : bzip2 fichier
• Compression optimisée d'un fichier ( fichiers > 100 Ko) :bzip2 -9 fichier
• Décompresser un fichier : bunzip2 fichier.bz2
• Lire le contenu d'un fichier : (sans le décompresser) :
bzcat fichier.bz2 59
Les commandes de base
Archivage et compression de fichiers
Archiver/désarchiver avec tar
tar (Tape ARchive) est une commande qui place une structure de répertoire sur une bande, sur
une disquette ou encore dans un simple fichier.
tar est un programme (commande) qui permet d'archiver et de désarchiver.
tar[option] [ fic_sortie] [fichier...]
Les options de tar:
c :création d'un fichier d'archive
x :extraction de fichiers d'une archive
t :liste le contenu d'une archive
v :mode bavard
f: précise le fichier d'archive à utiliser
A : ajouter un fichier à l'archive
u : met à jour les fichiers de l'archive
j :utilisé pour décompresser un fichier .bz2 (compressé avec bzip2).
z : compresser/décompresser l'archive avec le format gzip
Z : compresser/décompresser l'archive avec le format compress.
60
Les commandes de base
Archivage et compression de fichiers
Archiver/désarchiver avec tar
Créer une archive tar : tar cf [Link] fichiers... à... archiver
Voir le contenu d'une archive tar : tar tf [Link]
Désarchiver un fichier tar : tar xf [Link]
Extraire certains fichiers d'une archive tar : tar xf [Link] les... fichiers... en...
question
Utiliser tar avec gzip
tar est souvent utilisé avec gzip.
Les fichiers ainsi produits ont des extensions en .[Link] ou .tgz.
Pour les manipuler, on utilise les mêmes commandes que tar seul, en ajoutant un z à
la fin des options
Exemples :
tar xfz [Link]: désarchiver [Link], :
tar czf mon_archive.tgz fichiers : crée et comprime, à l'aide de l'utilitaire gzip, les
archives.
tar cjf mon_archive.tgz fichiers. : crée et comprime à l'aide bzip2
61
Les commandes de base
Archivage et compression de fichiers
La commande cpio
La commande cpio permet d’archiver des fichiers et des répertoires. La commande cpio ne
compresse pas les archives.
Syntaxe : cpio <-o><-v><-i><-d> [ > < ] [[Link]]
-o : output, création de la sauvegarde en sortie.
-v : mode bavard « verbose », informations détaillées.
-i : lecture de l’archive en entrée.
-t : comme pour tar, liste le contenu de l‘archive.
-d : cpio reconstruit l’arborescence des répertoires et sous-répertoires manquants.
-L : sauve les fichiers liés et pas les liens symboliques
Exemples
cpio -ov > [Link] : archiver le répertoire courant et afficher les fichiers qui sont
archivés
cpio -idv < [Link] : désarchiver l’archive [Link], les afficher au moment de l’extraction
et créer les répertoires en cas de besoin

62
Les commandes de base
Archivage et compression de fichiers
La commande dd
▪ la copie physique, bloc par bloc, d’un fichier périphérique vers un fichier périphérique ou
quelconque
▪ Syntaxe :
dd utilise des options de la forme « option=valeur ». Les principales options de dd sont les
suivantes:
▪ If=fichier_in: lit fichier_in en entrée. Il peut être un fichier régulier comme un périphérique
de bloc. Par défaut, c'est l'entrée standard qui est utilisée
▪ of=fichier_out : écrit ce fichier_out en sortie
▪ bs=taille (Block Size): copie les données par bloc de taille octets.
▪ count=n : ne copie que n blocs.
▪ skip=x : ne copie qu'à partir du x-ième bloc du fichier d'entrée (nombre de bloc à sauter au
début du fichier d’entrée)
▪ seek=y : ne commence à écrire que dans y-ième bloc du fichier de sortie (nombre de blocs
à sauter au début du fichier de sortie)

63
Les commandes de base
Archivage et compression de fichiers

Exemples :

dd if=/dev/cdrom of=[Link] : création d’une image iso, l’entrée est un périphérique


dd if=/dev/sda1 of=[Link] bs=442 count=1 : placer le secteur de boot de la partition (où
est installé lilo ou grub) dans un fichier.

dd bs=10K count=10 if=grosfichier of=grosfichier-part1 : découpage d’un gros fichier en 4


parties, l’entrée est un fichier.

dd bs=10K count=10 skip=10 if=grosfichier of=grosfichier-part2


dd bs=10K count=10 skip=20 if=grosfichier of=grosfichier-part3
dd bs=10K count=10 skip=30 if=grosfichier of=grosfichier-part4

64

Vous aimerez peut-être aussi