Académique Documents
Professionnel Documents
Culture Documents
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 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
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.
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
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:~$
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
cd ~
pwd
sysadmin@localhost:/home$ cd ~
sysadmin@localhost:~$ pwd
/home/sysadmin
sysadmin@localhost:~$
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é.
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 :
7.2.7 Étape 7
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
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
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$
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
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$
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.
cd
ls
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 :
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
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.
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*
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/????
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:~$