SYNTHESE - Syst` eme de Gestion de Fichiers
Unix est un syst`eme d’exploitation permettant de contrˆoler un PC et ses diff´erents p´eriph´eriques.
Unix se distingue par les caract´eristiques suivantes :
→ multi-utilisateurs (qui peut ˆetre utilis´e simultan´ement par plusieurs per- sonnes) ;
→ multi-tˆaches (un utilisateur peut ex´ecuter plusieurs programmes en mˆeme temps)
→ repose que unnoyau(kernel) utilisant 4 concepts principaux :fichiers,droits d’acc`es,processus etcommunication interprocessus(IPC).
Sous Linux et pour l’ensemble des Unix,tout est fichier. Il est donc naturel de commencer par comprendre comment sont agenc´es ces fichiers.
1. Syst` eme de fichiers
UnSYSTEME DE FICHIERS(file systemen anglais) ouSYSTEME DE GESTION DE FICHIERS (SGF)est une structure de donn´ees permettant de stocker les informations et de les organiser dans des fichiers sur ce que l’on appelle des m´emoires secondaires (disque dur, cl´e USB, etc.).
Une telle gestion des fichiers permet de traiter, de conserver des quantit´es importantes de donn´ees ainsi que de les partager entre plusieurs programmes informatiques.
Il offre `a l’utilisateur une vue abstraite sur ses donn´ees et permet de les localiser `a partir d’unchemin d’acc`es.
Repr´esentation pour l’utilisateur
Pour l’utilisateur, un syst`eme de fichiers est vu comme une arborescence : les fichiers sont regroup´es dans des r´epertoires (concept utilis´e dans la plupart des syst`emes d’exploitations).
Ces r´epertoires contiennent soit des fichiers, soit r´ecursivement d’autres r´epertoires. Il y a donc unr´epertoire racineet dessous-r´epertoires.
Tˆache 1 :
Sur https://www.pythonanywhere.com/, r´ealiser l’ar- boresence suivante. Pour les fichiers, vous pourrez cr´eer des fichiers .txt, et mettre les images de votre choix.
Respecter l’arborescence, et le nom des r´epertoires et fi- chiers.
R´epondre aux questions suivantes, concernant l’arborescence ci-dessus : Nombre de dossiers :
Nombre de fichiers :
2. Ligne de commande Shell
2.1. D´ ecouverte d’une console Bash
Au d´ebut des syst`emes d’exploitation, ces derniers ne poss´edaient pas d’interface graphique(syst`eme de fenˆetres ”pilo- tables”), toutes les interactions entre le syst`eme d’exploitation et l’utilisateur se faisaient par l’interm´ediaire deLIGNE DE COMMANDE, c’est-`a-dire unesuites de caract`eres saisies par l’utilisateur.
Aujourd’hui, mˆeme si les interfaces graphiques modernes permettent d’effectuer la plupart des op´erations, il est pos- sible de cr´eer, supprimer, modifier des fichiers et des acc`es grˆace `a ces lignes de commandes.
Ceslignes de commandesont saisies sur uneCONSOLE, aussi appel´eeTERMINAL. LeSHELL(coquilleen anglais) est donc l’interface entre l’utilisateur et le syst`eme d’exploitation. C’est une application (fichier ex´ecutable) charg´e d’interpr´eter les commandes des utilisateurs et de les transmettre au syst`eme.
Il existe diff´erents types deshell, dans notre cas, nous utiliserons lebash (Bourne again shell).
Tˆache 2 : Ouvrir une console Bash
Mettez vous dans le dossier racine, de sorte d’avoir cette vue, et appuyez sur Open Bash console here (voir fl`eche rouge) :
La console suivante s’ouvre :
On remarque que l’invite de commande est$; et que le syst`eme renseigne l’emplacement de d´epart de la commande (ici/home bash).
2.2. Commandes fondamentales en Bash
Aide $ man [commande] Manuel pour les commandes
O`u suis-je dans l’ar- borescence ?
$ pwd Chemin absolu :
Chemin relatif :
Comment se
d´eplacer dans l’arborescence ?
cd[chemin] Permet de changer de r´epertoire (change
directory)
.→r´epertoire courant ..→r´epertoire parent Lister le contenu
d’un r´epertoire
ls[option] [chemin] Liste le contenu d’un r´epertoire avec plus ou moins de d´etails
ls s* [chemin] Liste tous les fichiers commenc¸ant pass ls -l [chemin] Liste tous les fichiers du r´epertoire courant, en
donnant les attributs des fichiers (droit, taille, etc.)
ls -a [chemin] Liste tous les fichiers du r´epertoire courant (y compris les fichiers cach´es dont le nom com- mande par un ”.”)
Cr´eer un fichiervide touch [fichier] toto.txtcr´ee un fichier texte nomm´etoto Visualiser le
contenu d’un fichier
cat[chemin] Affiche le contenu d’un fichier
cat abi.txt Affiche le contenu du fichierabi.txt
cat toto > tata Ecrit le contenu du fichier toto dans un fichier nomm´etata
Copier un fichier
cp [option] [chemin vers fichier source]
[chemin vers fichier destination]
Copie un fichier source en le renommant si le chemin du fichier destination contient un nom de fichier
$ cp toto /tmp/ Copie le fichier local toto dans/tmp (toujours nomm´etoto)
$ cp toto /tmp/tata Copie le fichier localtotodans/tmpen le nom- manttata
$ cp -r projet /tmp Copie le contenu du r´epertoire projet dans le r´epertoire/tmp/projet
D´eplacer un fichier
mv [option] [chemin vers fichier source]
[chemin vers fichier destination]
D´eplace un fichier source en le renommant si le chemin du fichier destination contient un nom de fichier
mv toto /tmp/ D´eplace le fichier localtotodans/tmp(toujours nomm´etoto)
mv toto /tmp/tata D´eplace le fichier local toto dans /tmp en le nommanttata
mv -i toto /tmp D´eplace le fichiertotodans /tmpen pr´evenant l’utilisateur s’il existe d´ej`a un fichier/tmp/toto
Supprimer un fichier
rm[option] [chemin vers fichier] Supprime un fichier
$ rm toto Supprime le fichiertoto
$ rm -i toto Supprime le fichier toto en demandant confir- mation `a l’utilisateur
Tˆache 3 :
A partir de la consoleBashpr´ec´edemment ouverte, et des instructions ci-dessus,r´epondre aux questions suivantes : Quelle est la commande `a saisir pour voir l’ensemble des r´epertoires pr´esents dans la racine ?
Quelle est la commande `a saisir si le r´epertoire courant est le r´epertoire home et que vous voulez vous rendre dans le r´epertoireboulot?
Avec unchemin absolu: Avec unchemin relatif:
Comment visualiser le contenu du dossiergrub depuis le dossierimages? Comment visualiser le contenu du dossierskidepuisphotos vac?
Remarque : le choix d’utiliser un chemin absolu ou relatif est libre, autant prendre le plus court. Pour visualiser un dossier diff´erent du dossier actuel, on peut choisir de se d´eplacer dans le dossier avec cd, puisls.
Tˆache 4 :
1. Cr´eer un dossierdaviddans le dossierhome. 2. Cr´eer un dossiertest nsidans le dossierdavid. 3. Cr´eer un fichiertest.txtdans le dossierdavid. 4. Copier le fichiertest.txtdans le r´epertoiretest nsi. 5. Effacer le r´epertoireboulotde l’arborescence.
2.3. Commandes d’administration en Bash
Avec Linux, il existe diff´erents types d’utilisateurs :
— u: le propri´etaire du fichier (user) ;
— g: le groupe auquel appartient le propri´etaire du fichier (group) ;
— a: les autres utilisateurs (all).
L’administration des fichiers consiste `ag´erer les droits d’acc`es des fichiers. Il est possible d’affecter les droits suivants :
— r:droit de lecture(read) (lecture si c’est un fichier, et parcourt s’il s’agit d’un dossier) ;
— w : droit d’´ecriture (write) (´ecriture et modification d’un fichier ; ajouter, modifier, renommer, supprimer un fichier s’il s’agit d’un dossier)
— x:droit d’ex´ecution(execute).
Dans la mesure o`u il y a2×2×2droits possibles, on peut coder tous les droits avec un entier compris entre 0 et 7.
Position binaire Valeur octale Droits Signification
000 0 --- Aucun droit
001 1 --x Ex´ecuter
010 2 -w- Ecrire
011 3 -wx Ecrire et ex´ecuter
100 4 r-- Lire
101 5 r-x Lire et ex´ecuter
110 6 rw- Lire et ´ecrire
rwx
La commande utilis´ee pour d´efinir les droits en fonction des utilisateurs est la commande :
$ chmod[user group all]
O`u pour chaque type d’utilisateur, on met la valeur octale.
Exemples :
$ chmod 444 toto.txtautorise l’acc`es en lecture du fichiertoto.txt`a tout le monde Une autre commande qui g´en`ere les mˆemes droits :$ chmod a+r toto.txt.
Tˆache 5 :
Ecrire une commande pour cr´eer un fichier nsi bash.txt.
Ecrire une commande qui donne tous les droits `a l’utilisateur (u), les droits en lecture et ´ecriture pour le groupe (g), et aucun droit pour les autres (a).