Vous êtes sur la page 1sur 12

NDG Linux Essentials - Lab 7: Naviguer dans le système de fichiers

7.1 Introduction

Ceci est le Labo 7 : Naviguer dans le système de fichiers. En effectuant ce laboratoire, les
étudiants apprendront comment naviguer et gérer les fichiers et les répertoires.

Dans ce laboratoire, vous allez effectuer les tâches suivantes :

Naviguer dans les répertoires personnels et système

Lister les fichiers et les répertoires

7.2 Fichiers et répertoires

Dans cette tâche, vous allez explorer les concepts de fichiers et de répertoires.

Sur un système d'exploitation Linux, les données sont stockées dans des fichiers et les
fichiers sont stockés dans des répertoires. Vous avez peut-être l'habitude d'utiliser le terme
dossiers pour décrire les répertoires.

Les répertoires sont en fait des fichiers également ; les données qu'ils contiennent sont les
noms des fichiers qui y ont été entrés, ainsi que le numéro d'inode (un numéro
d'identification unique attribué à chaque fichier) indiquant où se trouvent les données de ce
fichier sur le disque.

En tant qu'utilisateur de Linux, vous voudrez savoir comment manipuler ces fichiers et
répertoires, y compris comment lister les fichiers dans un répertoire, copier, supprimer et
déplacer des fichiers.

Avertissement :

Les noms de fichiers et de répertoires sous Linux sont sensibles à la casse. Cela signifie qu'un
fichier nommé ABC n'est pas le même qu'un fichier nommé abc.

7.2.1 Étape 1

Tapez la commande suivante pour imprimer le répertoire de travail :

pwd
sysadmin@localhost:~$ pwd
/home/sysadmin
sysadmin@localhost:~$

Le répertoire de travail est le répertoire dans lequel se trouve actuellement votre fenêtre de
terminal. On l'appelle également le répertoire courant. Cela sera important lorsque vous
exécuterez les commandes suivantes, car elles se comporteront différemment en fonction
du répertoire dans lequel vous vous trouvez.

La sortie de la commande pwd (/home/sysadmin dans l'exemple ci-dessus) est appelée le


chemin. La première barre oblique représente le répertoire racine, le niveau supérieur de la
structure des répertoires

Dans l'exemple ci-dessus, home est un répertoire sous le répertoire racine et sysadmin est
un répertoire sous le répertoire home.

Lorsque vous ouvrez une fenêtre de terminal pour la première fois, vous êtes placé dans
votre répertoire d'origine. Il s'agit d'un répertoire auquel vous avez un accès complet et
auquel les autres utilisateurs n'ont normalement pas accès par défaut. Pour connaître le
chemin d'accès à votre répertoire personnel, vous pouvez exécuter la commande suivante
pour afficher la valeur de la variable HOME :

echo $HOME

sysadmin@localhost:~$ echo $HOME


/home/sysadmin
sysadmin@localhost:~$

7.2.2 Étape 2

Vous pouvez utiliser la commande cd avec un chemin d'accès à un répertoire pour changer
votre répertoire actuel. Tapez la commande suivante pour faire du répertoire racine votre
répertoire de travail actuel et vérifiez avec la commande pwd :

cd /
pwd
sysadmin@localhost:~$ cd /
sysadmin@localhost:/$ pwd
/
sysadmin@localhost:/$

7.2.3 Étape 3

Pour revenir à votre répertoire d'origine, la commande cd peut être exécutée sans chemin
d'accès. Revenez dans votre répertoire personnel et vérifiez en tapant les commandes
suivantes :

cd
pwd

sysadmin@localhost:/$ cd
sysadmin@localhost:~$ pwd
/home/sysadmin
sysadmin@localhost:~$

Remarquez le changement dans l'invite. Le caractère tilde ~ représente votre répertoire


personnel. Cette partie de l'invite vous indique dans quel répertoire vous vous trouvez
actuellement.

7.2.4 Étape 4

La commande cd peut être saisie avec un chemin d'accès à un répertoire spécifié comme
argument. Exécutez la commande cd avec le répertoire /home comme argument en tapant
ce qui suit :

cd /home
pwd

sysadmin@localhost:~$ cd /home
sysadmin@localhost:/home$ pwd
/home
sysadmin@localhost:/home$
Lorsque le chemin fourni en argument à la commande cd commence par la barre oblique /,
ce chemin est appelé "chemin absolu". Les chemins absolus sont toujours des chemins
complets du répertoire racine vers un sous-répertoire ou un fichier.

7.2.5 Étape 5

Revenez à votre répertoire personnel, en utilisant la commande cd avec le tilde ~ comme


argument :

cd ~
pwd

sysadmin@localhost:/home$ cd ~
sysadmin@localhost:~$ pwd
/home/sysadmin
sysadmin@localhost:~$

Lorsque le chemin d'accès fourni en argument de la commande cd commence par le


caractère tilde ~, le terminal développe ce caractère jusqu'au répertoire personnel d'un
utilisateur possédant un compte sur le système.

Si le tilde n'est suivi d'aucun autre caractère ou d'une barre oblique, le répertoire d'origine
de l'utilisateur actuellement actif dans le shell est développé.

Si un nom d'utilisateur suit immédiatement le tilde, l'interpréteur de commandes développe


le tilde et le nom d'utilisateur jusqu'au répertoire d'origine de ce nom d'utilisateur. Par
exemple, ~bob sera développé en /home/bob.

Les chemins qui commencent par un tilde sont considérés comme des chemins absolus, car
une fois que l'interpréteur de commandes a développé le chemin avec le tilde, un chemin
absolu est formé.

7.2.6 Étape 6

Utilisez la commande echo ci-dessous pour afficher d'autres exemples d'utilisation du tilde
comme élément du chemin :

echo ~ ~sysadmin ~root ~mail ~nobody


sysadmin@localhost:~$ echo ~ ~sysadmin ~root ~mail ~nobody
/home/sysadmin /home/sysadmin /root /var/mail /nonexistent
sysadmin@localhost:~$

7.2.7 Étape 7

Essayez d'accéder au répertoire personnel de l'utilisateur root en tapant la commande


suivante :

cd ~root

sysadmin@localhost:~$ cd ~root
-bash: cd: /root: Permission denied
sysadmin@localhost:~$

Remarquez le message d'erreur ; il indique que le shell a tenté d'exécuter cd avec /root
comme argument mais qu'il a échoué en raison d'une permission refusée. Vous en
apprendrez plus sur les permissions des fichiers et des répertoires dans un laboratoire
ultérieur

7.2.8 Étape 8

En utilisant un chemin absolu, passez au répertoire /usr/bin et affichez le répertoire de


travail en utilisant les commandes suivantes :

cd /usr/bin
pwd

sysadmin@localhost:~$ cd /usr/bin
sysadmin@localhost:/usr/bin$ pwd
/usr/bin
sysadmin@localhost:/usr/bin$

7.2.9 Étape 9

Utilisez un chemin absolu pour passer au répertoire /usr et afficher le répertoire de travail
en émettant les commandes suivantes :
cd /usr
pwd

sysadmin@localhost:/usr/bin$ cd /usr
sysadmin@localhost:/usr$ pwd
/usr
sysadmin@localhost:/usr$

7.2.10 Étape 10

Utilisez un chemin absolu pour passer au répertoire /usr/share/doc et afficher le répertoire


de travail en émettant les commandes suivantes :

cd /usr/share/doc
pwd

sysadmin@localhost:/usr$ cd /usr/share/doc
sysadmin@localhost:/usr/share/doc$ pwd
/usr/share/doc
sysadmin@localhost:/usr/share/doc$

Noms de chemin absolus et relatifs

Supposons que vous vous trouviez dans le répertoire /usr/share/doc et que vous souhaitiez
vous rendre dans le répertoire /usr/share/doc/bash. La saisie de la commande cd
/usr/share/doc/bash est assez fastidieuse. Dans des cas comme celui-ci, il est préférable
d'utiliser des noms de chemin relatifs.

Avec les noms de chemin relatifs, vous fournissez des "indications" sur l'endroit où vous
voulez aller à partir du répertoire actuel. Les exemples suivants illustrent l'utilisation des
noms de chemin relatifs.

7.2.11 Étape 11

En utilisant un chemin relatif, passez au répertoire /usr/share/doc/bash et affichez le


répertoire de travail en lançant les commandes suivantes :

cd bash
pwd
sysadmin@localhost:/usr/share/doc$ cd bash
sysadmin@localhost:/usr/share/doc/bash$ pwd
/usr/share/doc/bash
sysadmin@localhost:/usr/share/doc/bash$

Note

S'il n'y avait pas de répertoire bash sous le répertoire courant, la commande précédente
échouerait.

7.2.12 Étape 12

Utilisez un chemin relatif pour passer au répertoire situé au-dessus du répertoire actuel :

cd ..
pwd

sysadmin@localhost:/usr/share/doc/bash$ cd ..
sysadmin@localhost:/usr/share/doc$ pwd
/usr/share/doc
sysadmin@localhost:/usr/share/doc$

Le .. représente un niveau au-dessus de l'emplacement actuel de votre répertoire.

7.2.13 Étape 13

Utilisez un chemin d'accès relatif pour remonter d'un niveau à partir du répertoire actuel,
puis descendre dans le répertoire dict :

cd ../dict
pwd

sysadmin@localhost:/usr/share/doc$ cd ../dict
sysadmin@localhost:/usr/share/dict$ pwd
/usr/share/dict
sysadmin@localhost:/usr/share/dict$
7.3 Lister les fichiers et les répertoires

Dans cette tâche, vous allez explorer comment lister les fichiers et les répertoires.

7.3.1 Première étape

Pour afficher le contenu du répertoire actuel, utilisez la commande ls :

cd
ls

Votre résultat devrait ressembler à ce qui suit :

sysadmin@localhost:/usr/share/dict$ cd
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
sysadmin@localhost:~$

Dans la sortie de la commande ls précédente, les noms de fichiers étaient placés dans une
couleur bleu clair. Il s'agit d'une fonctionnalité que de nombreuses distributions de Linux
fournissent automatiquement par le biais d'une fonctionnalité appelée alias (plus
d'informations sur cette fonctionnalité dans un laboratoire ultérieur).

La couleur indique le type de l'article. Le tableau suivant décrit certaines des couleurs les
plus courantes :

Color Type of File

Black or White Regular file

Blue Directory file

Cyan Symbolic link file (a file that points to another file)

Green Executable file (a program)

7.3.2 Étape 2

Tous les fichiers ne sont pas affichés par défaut. Il existe des fichiers, appelés fichiers cachés,
qui ne sont pas affichés par défaut. Pour afficher tous les fichiers, y compris les fichiers
cachés, utilisez l'option -a de la commande ls :
ls -a

sysadmin@localhost:~$ ls -a
. .bashrc .selected_editor Downloads Public
.. .cache Desktop Music Templates
.bash_logout .profile Documents Pictures Videos
sysadmin@localhost:~$

Les noms des fichiers cachés commencent par un point (un caractère point). En général, ces
fichiers et souvent ces répertoires sont cachés parce que ce ne sont pas des fichiers que vous
voulez normalement voir.

Par exemple, le fichier .bashrc présenté dans l'exemple ci-dessus contient des informations
de configuration pour le shell bash. Il s'agit d'un fichier que vous n'avez normalement pas
besoin de consulter régulièrement.

Deux "fichiers point" importants existent dans chaque répertoire : . (qui représente le
répertoire actuel) et .. (qui représente le répertoire au-dessus du répertoire actuel).

7.3.3 Étape 3

Par elle-même, la commande ls a juste fourni les noms des fichiers et des répertoires dans le
répertoire spécifié (ou courant). Exécutez la commande suivante pour voir comment l'option
-l fournit plus d'informations sur un fichier :

ls -l /etc/hosts

Votre résultat devrait ressembler à ce qui suit :

sysadmin@localhost:~$ ls -l /etc/hosts
-rw-r--r-- 1 root root 150 Jan 22 15:18 /etc/hosts
sysadmin@localhost:~$

Alors, que signifie toute cette sortie supplémentaire ? Le tableau suivant donne une brève
explication de la signification de chaque partie de la sortie de ls -l :
- The first character, a - in the previous example, indicates what type of "file" this
is. A -character is for a plain file while a d character would be for a directory.

rw-r--r- This represents the permissions of the file. Permissions are discussed in a later
- lab.

1 This represents something called a hard link count (discussed later).

root The user owner of the file.

root The group owner of the file.

150 The size of the file in bytes

Jan 22 The date/time when the file was last modified.


15:18

7.3.4 Étape 4

Parfois, vous voulez voir non seulement le contenu d'un répertoire, mais aussi le contenu
des sous-répertoires. Vous pouvez utiliser l'option -R pour y parvenir :

ls -R /etc/udev

sysadmin@localhost:~$ ls -R /etc/udev
/etc/udev:
rules.d udev.conf

/etc/udev/rules.d:
70-persistent-cd.rules README
sysadmin@localhost:~$

L'option -R signifie "récursif". Tous les fichiers du répertoire /etc/udev seront affichés ainsi
que tous les fichiers de chaque sous-répertoire, dans ce cas le sous-répertoire rules.d.

Faites attention à l'option -R. Certains répertoires sont très, très grands !
7.3.5 Étape 5

Vous pouvez utiliser des caractères génériques (wildcards) pour limiter les fichiers ou les
répertoires que vous voyez. Par exemple, le caractère * peut correspondre à "zéro ou plus
de n'importe quel caractère" dans un nom de fichier. Exécutez la commande suivante pour
afficher uniquement les fichiers qui commencent par la lettre s dans le répertoire /etc :

ls -d /etc/s*

Votre résultat devrait ressembler à ce qui suit :

sysadmin@localhost:~$ ls -d /etc/s*
/etc/securetty /etc/sgml /etc/shells /etc/ssl /etc/sysctl.conf
/etc/security /etc/shadow /etc/skel /etc/sudoers /etc/sysctl.d
/etc/services /etc/shadow- /etc/ssh /etc/sudoers.d /etc/systemd
sysadmin@localhost:~$

Notez que l'option -d empêche l'affichage des fichiers des sous-répertoires. Elle doit toujours
être utilisée avec la commande ls lorsque vous utilisez la globalisation des fichiers.

7.3.6 Étape 6

Le caractère ? Peut être utilisé pour faire correspondre exactement 1 caractère dans un nom
de fichier. Exécutez la commande suivante pour afficher tous les fichiers du répertoire /etc
qui comportent exactement quatre caractères :

ls -d /etc/????

Votre résultat devrait ressembler à ce qui suit :

sysadmin@localhost:~$ ls -d /etc/????
/etc/bind /etc/init /etc/motd /etc/perl /etc/skel
/etc/dpkg /etc/ldap /etc/mtab /etc/sgml /etc/udev
sysadmin@localhost:~$

7.3.7 Étape 7

En utilisant des crochets [ ], vous pouvez spécifier un seul caractère à rechercher parmi un
ensemble de caractères. Exécutez la commande suivante pour afficher tous les fichiers du
répertoire /etc qui commencent par les lettres a, b, c ou d :

ls –d /etc/[abcd]*
Votre résultat devrait ressembler à ce qui suit :

sysadmin@localhost:~$ ls -d /etc/[abcd]*
/etc/adduser.conf /etc/blkid.conf /etc/cron.weekly
/etc/adjtime /etc/blkid.tab /etc/crontab
/etc/alternatives /etc/ca-certificates /etc/dbus-1
/etc/apparmor.d /etc/ca-certificates.conf /etc/debconf.conf
/etc/apt /etc/calendar /etc/debian_version
/etc/bash.bashrc /etc/cron.d /etc/default
/etc/bash_completion.d /etc/cron.daily /etc/deluser.conf
/etc/bind /etc/cron.hourly /etc/depmod.d
/etc/bindresvport.blacklist /etc/cron.monthly /etc/dpkg
sysadmin@localhost:~$

Vous aimerez peut-être aussi