Gestion du système de fichiers avec le Shell

Commandes de gestion des répertoires(pwd, cd, ls, mkdir, rmdir & mv)

pwd
Obtenir le chemin d’accès au répertoire courant.

cd [chemin]
Se déplacer dans l’arborescence des répertoires, si nous en avons la permission. La commande cd seule ou cd ~ permet de revenir au répertoire de travail de l’utilisateur.

ls [options] [<chemin/fichier>]
Afficher le contenu d’un répertoire. Différentes options sont disponibles et influence l’affichage et la richesse des informations. ls seule affiche la liste des fichiers et sous-répertoires dont le nom ne commencent pas par un point. Si un chemin n’est pas précisé, c’est le chemin courant qui est utilisé.

Les options de

-l (long) permet d’obtenir des informations complémentaires sur les fichiers et répertoires (infos sur les inodes).
-a (all) liste aussi les noms commençant par un point.
-d (directory) liste seulement les répertoires
-o idem l mais sans nom du groupe
-g idem l mais sans nom du propriétaire
-r (reverse) ordre de tri inversé
-u tri suivant date de consultation
-i (inode) le numéro d’inode est imprimé
-R (récursif) affiche le contenu du répertoire ainsi que celui de ses sous-répertoires
-C Affiche les noms en colonne
-F Affiche la liste des noms de fichiers en ajoutant un « / » pour un répertoire et un « * » pour un fichier exécutable
-s (size) affiche la liste des noms de fichiers précédés par leur taille en unité de 512 bytes
-t utilise la date de dernière modification comme critère de tri

Remarque, on peut aussi trouver la commande ll qui affiche la liste des fichiers ou répertoires avec des infos complémentaires. Il s'agit en fait d'un alias sur la commande ls -la

mkdir <nom du nouveau répertoire>
Créer un nouveau répertoire, si l’argument ne précise pas un chemin, le nouveau répertoire est créé dans le chemin courant

rmdir <nom du répertoire à effacer>
Effacer un répertoire, vide de tout élément

Image non trouvée !ATTENTION, très dangereux mais aussi bien intéressant:rm –R * pour effacer tous les fichiers et sous répertoire si répertoire non vide

mv <ancien nom> <nouveau nom>
Renommer un répertoire, et ou de le déplacer dans le même système de fichier (marche aussi avec les fichiers).

- m prend en paramètre un mode de permission avec lequel sera initialisé le nouveau répertoire (m pour mode)
- p (path) crée automatiquement les sous-répertoires contenus dans le chemin d’accès du paramètre au cas où ceux-ci n’existeraient pas

 

Commande de gestion des fichiers (cat, od, cp, mv, ln, rm & file)

cat <nom ou liste de fichier>
(catenate) afficher le contenu d’un fichier. Attention, tous les caractères sont envoyés et il peut y avoir des problèmes si vous listez un programme binaire ou un fichier non texte. Normalement Ctrl-C peut permettre de sortir, mais il faut quand même que les derniers caractères dans le tampon soient imprimées, cela peut donc être long !!!

od <options> <nom de fichier>
Afficher le contenu d’un fichier dans différents formats.

Options :
-b, les octets sont interprétés en octal.
-c, les octets sont interprétés en ASCII
-d, les mots sont interprétés en décimal (1 mot = 2 octets)
-o, les mots sont interprétés en octal
-x, les mots sont interprétés en hexadécimal

Remarques : le nom de fichier peut également faire des références à des répertoires.

Par défaut, l’option est –o.

cp <chemin et fichier source> <chemin et nouveau fichier>

Copier physiquement un fichier vers un autre existant déjà ou non. Une option intéressante peut être -r pour copier les répertoires et leur contenu.

mv <chemin et fichier source> <chemin et fichier destination>

Déplacer l’inode d’un fichier, ou de changer le nom de celui-ci. Si les fichiers source et destination se trouvent dans le même répertoire, le fichier source prendra simplement le nom du fichier destination. Si les fichiers source et destination se trouvent dans des répertoires différents, alors l’inode du fichier source sera déplacé à l’endroit précisé par le chemin de destination avec le nom du fichier destination. L’option –f (forced) supprime le message de confirmation.

ln <chemin et non de fichier origine> <chemin et nom du lien vers le fichier origine>

Création d’un lien vers un fichier existant déjà physiquement dans le système de fichier. Elle permet donc la création d’une nouvelle référence vers l’inode du fichier d’origine.

Image non trouvée ! sans –s, les liens ne se feront que sur le répertoire (disque dur) par défaut. Avec –s, lien symbolique vers d’autres disques.

Le nombre de liens de l’inode est incrémenté de 1.

Image non trouvée !Sous Linux:

La commande mount --bind peut remplacer judicieusement la commande ln, en effet, dans ce cas, le système va monter l'arborescence d'un répertoire dans un autre répertoire. Cet autre répertoire ne sera ainsi pas vu comme un lien généré par ln, vous risquez moins de problèmes d'accès.

Exemple:

mount --bind /chemin/repertoire_origine /autre_chemin/repertoire_montage

Il faudra avoir créé repertoire_montage au préalable.

Il sera possible de rendre permanent ce montage grace au fichier /etc/fstab en ajoutant:

/chemin/repertoire_origine /autre_chemin/repertoire_montage none bind

 

rm <options> <chemin et nom du ou des fichiers à effacer>

Effacer plusieurs fichiers physiques ou liens.
Si l’inode à supprimer dispose d’un nombre de liens supérieur à 1, alors ce nombre est décrémenté de 1 et la référence est supprimée du répertoire indiqué.
Si l’inode à supprimer a un nombre de lien égal à 1, alors l’inode est effacé physiquement et la référence est supprimée dans le répertoire indiqué.

Les options :


-r Cette option supporte le nom d’un répertoire comme argument et permet la suppression récursive de tous les fichiers et sous-répertoires contenus dans le répertoire indiqué. Cette option est à manier avec beaucoup de précautions surtout si vous êtes en root !!!
-i Cette option permet de demander une confirmation à l’utilisateur avant chaque suppression.
-f Supprimer le message de confirmation (f pour forced)


- file [-f] <fichiers>, indique le type des fichiers précisés. L’option –f indique que le premier argument est la liste des fichiers à traiter.

Les commandes de gestion des caractères dans un fichier (head, more, pg, sort, tail, tr, wc)

head [-n] <fichier>
retourne les n premières lignes du fichier.

more
Permet l’affichage d'un fichier en le formattant page par page avec attente d'une touche toutes les 24 lignes.

pg options <fichiers>
Consulter le contenu d'un fichier page par page. "pg" pour "page".

Options:

-c permet d'effacer l'écran à chaque page. (c pour clear).

-(valeur) permet de limiter l'affichage à un certain nombre de lignes précisé par "valeur".

-p suivie d'une chaîne de caractères entre guillemets affiche ce paramètre en fin de page.

Dans la chaîne peut être indiqué "%d" ce qui représente le n° de page.

+suivie d'une valeur numérique ou débute l'affichage(ligne).

+ / mot / débute l'affichage à la première occurence du paramètre spécifié à la place de "mot".

A chaque page, "pg" affiche un prompt et invite l'utilisateur à introduire une commande.

<ENTER> passer à la page suivante.
(valnum) affiche la "valnum" page.
(valnum) l affiche la "valnum" ligne.
$affiche la même page du fichien
./ mot / recherche la chaîne "mot"
h affiche l'écran d'aide.
q quitte la commande "pg"


Exemple:
$ls | pg
$pg –c –p "%d" ficl
$pg ficl

sort options <fichier(s)>
Trier le contenu d'un fichier. Si aucun fichier n'est spécifié en paramètre, l'entrée standard est prise en compte.

Options:
-o suivie d'un nom de fichier, permet de rediriger le résultat vers un fichier (o pour out put).

-d permet de ne tenir compte que des caractères normaux et pas des ponctuations (d pour dictionnary).

-f permet de considérer les majuscules et minuscules à la même valeur (f pour fold, marquer les lettres ensemble).

-n permet de trier par ordre numérique (n pour numher).

-r permet de trier en ordre inverse (r pour reverse).

il est possible de limiter la clef de tir à une zone dans la ligne.

+ch1 [-ch2]

ch1 et ch2 sont des champs ou parties de champs. Ch1 permet d'indiquer le début de la clef et ch2, la fin. Le format de ch1 et de ch2 est le suivant: "n.c
"n" signifie le numéro du champ et "c" la colonne dans celui-ci. Ex : phil programmeur bureau 10.
sort + 2.6 prendra les 2 derniers caractères "10" comme clef de tri. +2.6 signifie: après le deuxième champ, après la 6 ème colonne.

Options:
-t suivie d'un caractère permet de spécifier un séparateur de champs (t pour tab).

-b permet d'ignorer les blancs qui précèdent un champ.

Exemple:
$sort +1 file2
$ sort -t: +3 -4 /etc/passwd

tail [[+ou -<nombre>][lbc]<fichier>]
Cette commande copie un bloc commençant à nombre de lignes à partir du début du fichier pour + ou à partir de la fin du fichier pour -. Cette commande est complémentaire à head.

tr [option] [<chaîne1> [<chaîne2>]]
Cette commande permet de remplacer ou supprimer des caracieres sélectionnés à partir de l'entrée standard vers la sortie standard. Un caractère ayant une occurrence dans chaîne l est remplacé par celui de même position dans chaîne2.

options: -d les caractères ayant une occurrence dans chaîne 1 sont supprimés
abréviations:
[a-z] lettres de a à z
\xxx nombre octal

wc [options] [<fichier>]
« word count » compte le nombre de lignes -l, de mots -w ou de caractères –c

Exemple :
wc file1
6 12 74 file1
6 lignes, 12 mots et 74 caractères dans le fichier file1.

La commande du (occupation des fichiers et répertoires)

Syntaxe : du [options] <chemin>

Retourne l’occupation des fichiers et répertoires se trouvant dans le chemin indiqué en nombre de blocs de 1024 octets.
Options : -s : le nombre total est retourné
-a : Infos pour répertoires et fichiers (sinon seulement répertoires).

 

La commande df (taille des disques)

Syntaxe : df

Retourne la taille des disques physiques installés, la taille utilisée et restante.

 

Les commandes basename et dirname

Syntaxe : basename <chemin> [<suffixe>]

Description : Retourne le dernier élément d’un chemin en otant éventuellement le suffixe de l’élément.

Ex.
$basename /usr/users/guest/base.c

base.c

$basename /usr/users/guest/base.c .c
base

 

Syntaxe : dirname <chemin/fichier>

Description : Commande complémentaire à basename, elle permet d’isoler le chemin d’accès du fichier précisé par chemin.

 

La commande dd

Syntaxe : dd [<option> <valeur>…]
Permet la conversion de fichiers. Utilise par défaut l’entrée et la sortie standard.

Option :
if=fichier_origine
of=fichier_destination
conv=lcase (conversion en minuscule)
conv=ucase (conversion en majuscule)

La commande find

Syntaxe : find <répertoire> <expression>

Recherche d’un fichier dans le répertoire précisé et ses sous-répertoires et application des conditions pour chaque élément trouvé.

-name <nom> : recherche du fichier ayant le nom indiqué ou « *.* » par ex.
-perm <nombre octal> : vrai si permissions correspondantes
-type <x> : vrai si type correspondant (b,c,d ,f,p)
-links <n> : vrai si fichier à n liens
-user <nom> : idem
-group <nom>
-size <n blocs>
-atime <n jours> + - y : accédé
-mtime <n jours> + - y : modifié
-ctime (n jours) + - y : créé
-print : le nom du fichier est affiché à l’écran
-inum <num inode>
-exec <commande> \ ; La commande est exécutée si les conditions sont remplies, le fichier peut être représenté par {} dans la commande.
-ok <commande> : identique à exec, mais affiche la commande avant exécution et une confirmation est demandée.

La commande sync

La commande sync vide dans le support physique les informations résidantes en mémoire qui concernent le système de fichiers. Il faut utiliser la commande sync avant d’arrêter le système.