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
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.
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.
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.