Cours 02: le syst`eme de fichier UNIX Syntaxe d`une commande

Transcription

Cours 02: le syst`eme de fichier UNIX Syntaxe d`une commande
Cours 02: le système de fichier UNIX
Jean-Sébastien Coron
Université du Luxembourg
1
Introduction
Le but de ce cours est l’étude du système de fichier UNIX.
1.1
Commandes Unix
Syntaxe d’une commande
– Commande [option] [argument]
• Une commande peut comprendre des options qui modifient son comportement.
• Elle peut comprendre des arguments (par exemple nom de
fichier).
• Exemple: ls -l fichier donne des informations plus
longues sur fichier.
– Format de [option]: -l [arg]
• L’option peut aussi avoir un argument, qui est facultatif.
Redirection entrées/sorties
– Par défaut, une commande écrit dans la sortie standard
(l’écran) et prend en entrée l’entrée standard (le clavier).
– On peut rediriger la sortie d’une commande dans un fichier.
• Exemple: ls -l > liste. Stocke dans le fichier liste la
liste des fichiers.
– On peut rediriger l’entrée d’une commande à partir d’un
fichier:
• cat < input: la commande lit le fichier input et
l’imprime, au lieu de lire le clavier.
2
Manipulation de fichiers
Le système de fichier UNIX
– Permet de stocker toutes les informations nécessaires au bon
fonctionnement du système.
• Fichiers ordinaires: contiennent du texte, des données ou
des programmes.
• Répertoires: contiennent des fichier ou d’autres
répertoires.
• Périphériques: elles sont gérées comme des fichiers.
• Liens: un lien est un pointeur sur un autre fichier.
∗ Lien dur: un lien dur sur un fichier est indistingable
du fichier lui-même.
∗ Lien symbolique: c’est un raccourci sur un autre
fichier.
Structure des fichiers UNIX
– Organisé en une arborescence avec racine unique: le répertoire
racine /.
– Spécifier une location:
• Chemin absolu: /home/enseign/cours/
• Chemin relatif à partir du répertoire courant.
∗ ”.” Répertoire courant.
∗ ”..” Répertoire parent.
∗ Exemple:
pour
accéder
à
/home/enseign/cours/premier
depuis
/home/enseign/exo, on utilise ../cours/premier.
Le système de fichier UNIX est organisé selon une arborescence dont la racine est ”/”.
Le répertoire d’accueil (home directory) est le répertoire dans lequel on se trouve au début.
Il est noté ∼. Par exemple, la commande cd ∼ ramène dans le répertoire d’accueil.
Le répertoire courant est celui dans lequel on se trouve à un moment donné.
Créez dans votre répertoire d’accueil un répertoire rep.
1) Quelle est la commande à utiliser ?
Allez dans ce sous-répertoire (commande cd).
Créez les sous-répertoires work et play.
En utilisant la commande ls -l, affichez la liste des fichiers du répertoire rep avec les
détails.
En utilisant la commande ls, affichez la liste des fichiers qui commencent aussi par ”.”.
2) Quelle est l’option à utiliser ?
3) Quels sont les fichiers contenus dans ce répertoire ?
Organisation typique
/: le répertoire racine.
/bin: utilitaires de bas-niveau
/usr/bin: utilitaires plus évolués.
/sbin/: répertoire de l’administrateur.
/lib: librairies de programmes pour les utilitaires de basniveau.
– /usr/lib: librairies de programmes pour les utilitaires de
haut-niveau.
– /home: répertoire pour les utilisateurs. Chaque sous-répertoire
est nommé d’après le login.
– /dev: périphériques.
–
–
–
–
–
2
Manipulation de fichiers
– pwd, cd, ls, ls -l, ls -a -l.
– Informations sur un fichier:
• drwxrwxrwx 2 Administ None 4096 May 9 10:52 www
• d: type de fichier. d=directory, -=fichier, l=lien.
• rwxrwxrwx: permissions.
• 2: liens sur ce fichier.
• Administ: propriétaire.
• None: groupe.
• 4096: taille du fichier.
• May 9 10:52: date de dernière modification.
• www: nom du fichier ou répertoire.
Autres commandes
–
–
–
–
–
–
–
mkdir: création d’un répertoire.
rmdir: suppression d’un répertoire.
cp source destination: copie d’un fichier.
mv source destination: renommer ou déplacer un fichier.
rm: supprimer un fichier.
cat: affiche le contenu d’un fichier.
more, less: affiche le contenu d’un fichier avec des pauses.
Copiez le fichier /etc/passwd dans votre répertoire d’accueil.
4) Quelle est la commande à utiliser ?
Déplacez le dans votre sous-répertoire play.
5) Quelle est la commande à utiliser ?
2.1
Liens symboliques
Liens durs/symboliques
– ln filename linkname: crée un lien depuis le fichier ou
répertoire linkname sur filename.
• Les deux fichiers sont identiques. Si un des deux est modifié, l’autre aussi.
– ln -s filename linkname: crée un raccourci nommé
linkname sur filename.
– Différence:
• Un lien dur ne peut être crée que sur le même disque
physique.
• Pas de lien dur sur des répertoires.
On se place maintenant dans le répertoire play.
Créez dans ce répertoire un fichier toto contenant la phrase ”hello”, en utilisant l’éditeur
xemacs.
Créez un lien symbolique du fichier tata vers le fichier toto.
6) Quelle est la commande à utiliser ?
Tapez ls -l.
7) Qu’observez-vous ?
En utilisant la commande cat, visualisez le contenu du fichier tata.
3
8) Qu’observez-vous ?
Modifiez le fichier toto en rajoutant le mot ”world” après ”hello”. Visualisez le contenu
du fichier tata.
9) Qu’observez-vous ?
Créez un répertoire other, et créez dans ce répertoire un fichier de nom ”.f1”.
Remontez d’un niveau dans l’arborescence et essayez de supprimer le répertoire other.
10) Que se passe-t’il ?
Affichez le contenu du répertoire other. Utilisez l’option -a.
11) Comment arriver à supprimer le répertoire other ?
Placez vous dans le répertoire play.
12) Expliquez les notions de chemin absolu et chemin relatif et donnez un exemple de leur
utilisation respective pour passer du répertoire play au répertoire d’accueil.
3
Noms génériques et méta-caractères
Spécifier plusieurs fichiers
– On utilise des méta-caractères:
• ? : remplace un seul caractère.
• * : remplace zéro, un ou plusieurs caractères.
• [ ] : remplace un des caractères dans [].
– Exemple:
• * : tous les fichiers.
• *.* : tous les fichiers avec un ”.”.
• ?are? : tous les fichiers de 5 caractères avec are au milieu
• [m-z]* : tous les fichiers commançant par une lettre entre
m et z.
Exemple
– Afficher tous les fichiers du répertoire courant:
• $ ls *
fich1.c fich2.c prog.c toto.txt
– Afficher tous les fichiers qui se terminent par .c.
• $ ls *.c
fich1.c fich2.c prog.c
– Afficher tous les fichiers qui commencent par fich
• $ ls fich*
fich1.c fich2.c
13) Que fait la commande ls * ?
L’exercice suivant est tiré de [1].
Le répertoire /usr/include contient les fichiers d’entête des programmes applicatifs.
Créez un répertoire nommé include dans votre répertoire d’accueil.
En utilisant une seule commande, y copier les fichiers du répertoire /usr/include dont le
nom commence par std et se termine par .h.
14) Quelle est la commande à utiliser ?
Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c et se
termine par .h.
15) Quelle commande doit être utilisée ?
Afficher la liste des fichiers de /usr/include dont le nom comporte 3 caractères suivis de
.h.
4
16) Quelle commande doit être utilisée ?
La commande echo affiche simplement ses arguments, après éventuelle expansion des
métacaractères et des variables par le shell.
17) Que fait echo PATH ? et echo $PATH ?
18) Comment afficher la liste des noms de fichiers du répertoire courant avec echo ?
References
1. E. Viannet, Cours sur les systèmes d’exploitation, http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme
5

Documents pareils