Linux : Le Bash  Sommaire  Ripper un DVD


Gestion des fichiers et des repertoires


Apres une petite introduction au shell , nous allons maintenant parler de la gestion des fichiers et des repertoires .
Tout d'abord , on distingue plusieurs types de fichiers :
- les fichiers normaux (ordinary files)
- les repertoires (directories)
- les fichiers speciaux (special files ou devices)
Les fichiers normaux contiennent soit des textes tels que courriers et sources des programmes , soit un programme executable (binary files) . Par contre , on ne peut pas voir au premier abord le contenu d'un fichier normal . Il faudra pour cela utiliser une commande mais que nous verrons plus tard .

Les repertoires ne sont pas a presenter , ils correspondent a nos chers dossiers sous Windows , ils permettent d'organiser le disque dur . Les repertoires contiennent des fichiers normaux et eventuellement des sous-repertoires . Ces repertoires peuvent aussi contenir des fichiers speciaux , qui representent les interfaces avec les peripheriques geres par Linux .

Comme on peut le visualiser , le point de depart est / , comme C:\ dans Windows . C'est le repertoire racine . Je passe la description des chemins d'acces absolus ou relatifs des fichiers qui n'est pas trop difficiles a comprendre .

Avant de continuer , un petit mot sur le repertoire maison et courant . Lorsque vous vous connectez en tant que root ou administrateur systeme , vous atterissez directement dans votre repertoire maison (home directory) qui est bien evidemment /root . Le root peut definir de nouveaux utilisateurs a l'aide de la commande adduser , exemple : adduser Fred et son repertoire maison sera dans le repertoire /home . Lorsque Fred voudra se connecter sur le systeme , il sera directement place dans son repertoire maison , a savoir /home/Fred qui est donc aussi son repertoire courant .

1*/ commande cd (change directory) : cette commande permet de modifier le repertoire courant mais pas le repertoire personnel . Il suffit d'indiquer le chemin d'acces comme parametre de la commande cd .

Voila ce que cela donne : 
cd  nom_de_repertoire  	(cd se place dans le repertoire indique)
cd  ~			(cd ramene l'utilisateur dans son repertoire personnel)
cd  ..			(cd remonte dans le repertoire parent)

2*/ commande ls (listing files) : cette commande permet de visualiser le contenu d'un repertoire .
syntaxe : ls [options] [nom_de_repertoire]
et deux de ses options a connaitre : 
ls  -l  (chaque fichier est affiche avec une serie d'informations)
ls  -a 	(affiche les fichiers et repertoires dont le nom commence par un point)
on peut aussi combiner les options , telle que ls -al

exemple :
[amadeorus@immortal  amadeorus]$ ls  
immortal      site     files      document
[amadeorus@immortal  amadeorus]$ ls -a
./	    ../
[amadeorus@immortal  amadeorus]$ ls -l
total 4
drwxr--r-- 1 amadeorus  users  1456  Mar  1  16:55  immortal/
drwxr--r-- 1 amadeorus	users  2121  Feb 26  22:36  site/
drwxr--r-- 1 amadeorus	users  3024  Feb 14  10:21  files/
-rw-r--r-- 2 root        root    66  Mar  3  16:00  document
[amadeorus@immortal  amadeorus]$ ls -al
total 6
drwxr-xr-x 3 amadeorus	users  1024  Mar  1  13:12  ./
drwxr-xr-x 6 root       root   1024  Mar  1  13:10  ../
drwxr--r-- 1 amadeorus  users  1456  Mar  1  16:55  immortal/
drwxr--r-- 1 amadeorus  users  2121  Feb 26  22:36  site/
drwxr--r-- 1 amadeorus  users  3024  Feb 14  10:21  files/
-rw-r--r-- 2 root       root     66  Mar  3  16:00  document
Descriptions des informations obtenues par l'option -l :
- type du fichier (soit "-" pour un fichier normal , soit "d" pour un repertoire)
- autorisation d'acces (que j'expliquerais dans un prochain article)
- compteur de liens (que j'expliquerais dans un prochain article)
- proprietaire du fichier
- groupe auquel ce fichier appartient
- taille du fichier en octets
- date et heure de la derniere modification
- nom de fichier ou repertoire

Pour en savoir plus sur cette commande et celles qui vont suivre , un petit --help ou more ne feront pas de mal .


3*/ commande cat (concatenate) et file : elles servent a visualiser le contenu d'un fichier
syntaxe : cat nom_de_fichier [nom_de_fichier,…]
                file nom_de_fichier [nom_de_fichier …]

la commande cat ne doit etre applique qu'aux fichiers pour lesquel la commande file a affiche le contenu suivant :
- english text
- ascii text
- commands text
Il ne faut pas utiliser la commande cat sur des fichiers data ou excecutable .

4*/ commande pwd (print working directory) : elle permet de connaitre a tout moment le repertoire courant .
[amadeorus@immortal  amadeorus]$ pwd
/home/amadeorus 
5*/ commande mkdir (make directory) : elle permet de créer un repertoire . Tout repertoire cree possede une taille initiale et contient deux elements standards : ../ et ./ . Le premier fait reference au repertoire de niveau superieur alors que le second fait reference au repertoire courant .
syntaxe : mkdir   nom_de_repertoire   [nom_de_repertoire1,...]

6*/ commande rmdir (remove directory) : elle permet de supprimer un repertoire vide . En effet , tant qu'un repertoire contient des fichiers , il ne pourra etre supprime .
syntaxe : rmdir   nom_de_repertoire   [nom_de_repertoire1,...]

Les chemins d'acces de ces repertoires peuvent etre absolus ou relatifs .

7*/ commande touch : elle permet de creer un fichier vide a condition qu'aucun fichier n'existe deja .
syntaxe : touch   nom_de_fichier   [nom_de_fichier1, ...]

8*/ commande cp (copy) : elle permet de copier un fichier
syntaxe : cp Fichier1 Fichier2
                cp Fichier1 [Fichier2 Fichier3 ...] repertoire

dans le premier cas , cp cree une copie du fichier1
dans le deuxieme cas , cp copie le ou les fichiers specifies dans un repertoire donne

Si le fichier cible existe deja , il sera simplement supprime et ceci sans le moindre avertissement . Alors attention !

9*/ commande mv (move) : elle permet a la fois de deplacer ou de renommer un fichier .
syntaxe : mv Fichier1 Fichier2
                mv Fichier1 [Fichier2 Fichier3 …] repertoire

dans le premier cas , mv renomme le fichier1 en fichier2
dans le deuxieme cas , mv deplace le ou les fichiers dans le repertoire indique tout en gardant leur nom

Meme recommandation que pour cp , si le fichier cible existe deja , il sera supprime sans avertissement .

10*/ commande rm (remove) : elle permet de supprimer un fichier
syntaxe : rm   [options]   Fichier1   [Fichier2 ...]

La egalement , la suppression est irremediable , sans demande de confirmation .
Voici deux options pratique :
-i   (affichage d'une demande de confirmation , repondre par y ou n)
-r   (supprime tout le repertoire meme si il contient des fichiers)

11*/ Commande ln (link) : elle permet d'affecter plusieurs noms a un fichier . A la difference de la commande cp , ln cree un lien entre le fichier initial et les copies creees . C'est a dire que la modification de la copie modiera egalement le fichier initial .
Syntaxe : ln   Fichier1   Fichier2

En interne , Linux enregistre les fichiers non pas sur la base d'un nom , mais leur donne un numero unique . Ce numero peut etre visualise grace a la commande ls -i

Voyons cela par un exemple concret :
[amadeorus@immortal  amadeorus]$ ls -il
total 4
3165  drwxr--r-- 1  amadeorus  users  1456  Mar  1  16:55  immortal/
3166  drwxr--r-- 1  amadeorus  users  2121  Feb 26  22:36  site/
3170  drwxr--r-- 1  amadeorus  users  3024  Feb 14  10:21  files/
3168  -rw-r--r-- 1  amadeorus  users    66  Mar  3  16:00  document1
[amadeorus@immortal  amadeorus]$ ln  document1  document2
[amadeorus@immortal  amadeorus]$ cp  document1  document3
[amadeorus@immortal  amadeorus]$ ls -il
3165  drwxr--r-- 1  amadeorus  users  1456  Mar  1  16:55  immortal/
3166  drwxr--r-- 1  amadeorus  users  2121  Feb 26  22:36  site/
3170  drwxr--r-- 1  amadeorus  users  3024  Feb 14  10:21  files/
3168  -rw-r--r-- 2  amadeorus  users    66  Mar  3  16:00  document1
3168  -rw-r--r-- 2  amadeorus  users    66  Mar  5  18:06  document2
3171  -rw-r--r-- 1  amadeorus  users    66  Mar  5  18:07  document3
Comme vous pouvez le voir , document2 a le meme numero de fichier (3168) que document1 , alors que celui de document3 (3171) differe . Toute modification engendree au niveau du document2 impliquera celle du document1 , d'ou le lien . A l'inverse , le document3 est totalement independant du document1 . On remarque en outre que le compteur de lien (3eme colonne) a ete incremente de 1 , ce qui est tout a fait justifie . Par contre , ce qu'il faut savoir , c'est que la suppression du document1 ou du document2 n'entraine pas celui auquel il etait lie .

Le seul inconvenient est que la commande telle qu'elle ne s'applique qu'aux fichiers et non aux repertoires . Pour y remedier , il y a les liens symboliques (symbolic links) : option -s .

[amadeorus@immortal  amadeorus]$ ls -l
total 4
drwxr--r-- 1  amadeorus  users  1456  Mar  1  16:55  immortal/
drwxr--r-- 1  amadeorus  users  2121  Feb 26  22:36  site/
drwxr--r-- 1  amadeorus  users  3024  Feb 14  10:21  files/
-rw-r--r-- 1  amadeorus  users    66  Mar  3  16:00  document1
[amadeorus@immortal  amadeorus]$ ls -l  site
total 1
-rw-r--r-- 1  amadeorus  users  1121  Feb 26  23:00  secret
[amadeorus@immortal  amadeorus]$ ln -s  immortal  site/immortal2
[amadeorus@immortal  amadeorus]$ ls -l  site
[amadeorus@immortal  amadeorus]$ ls -l  site
total 2
-rw-r--r-- 1  amadeorus  users  1121  Fev 26  23:00  secret
lrwxr--r-- 1  amadeorus  users    20  Mar  1  16:55  immortal2 
-> /home/amadeorus/immortal/
le type de fichier lien symbolique est indique par la lettre l dans la premiere colonne du resultat de la commande ls -l . La fleche apres le nom indique a quel repertoire ce nom fait reference . La taille d'un lien correspond a la longueur du chemin auquel il fait reference . En faisant cd immortal2 , on se retrouverait automatiquement dans le repertoire /home/amadeorus/immortal . Si vous voulez , cette operation a cree dans le repertoire site un raccourci vers le repertoire immortal .

Avec tout ce que vous venez de voir , vous devriez deja faire pas mal de choses sous le shell . J'ai hesite de parler de l'arborescence de Linux et de la signification des repertoires standards , mais pour ne pas alourdir l'article ainsi que votre cerveau , j'en consacrerai un prochain article . Amusez vous bien pendant ce temps !


Amadeorus


Linux : Le Bash  Sommaire  Ripper un DVD