Contenu | Recherche | Plan du site | Accessibilité | Contact

Documentation

Gestion de fichiers depuis un shell

Sur un système GNU/Linux, tous les travaux de manipulations courantes sur les fichiers peuvent, s'effectuer en ligne de commandes via un terminal graphique ou un terminal Linux.

cd - Naviguer dans les répertoires

Cette commande permet de naviguer dans le système de fichier en changant de répertoire courant. L'exemple ci-dessous permet d'aller au répertoire qui se nomme debian:

 $ cd debian

Pour remonter vers le répertoire parent:

 $ cd ..

Pour se replacer dans son répertoire maison (home/utilisateur):

 $ cd
 ou:
 $ cd ~

cp - Copier des fichiers

Commande de copier de fichiers ou de répertoire. L'exemple copie le fichier commandes-2007.txt se trouvant dans le répertoire courant, vers le répertoire Debian/Archives/

 $ cp commandes-2007.txt Debian/Archives/

Copier un répertoire entier, ici la commande copie le répertoire debian dans /home/libordux:

 $ cp -a debian /home/libordux

mkdir - Créer des répertoires

mkdir de l'Anglais make a directory. Cette commande permet de créer des nouveaux répertoires. La commande ci-dessous crée un répertoire qui se nomme slitaz, il se créera dans le répértoite /home de l'utilisateur courant ou dans le répertoire dans lequel on se trouve:

 $ mkdir slitaz

Création d'un répértoire qui se nomme stable dans le dossier debian, l'utilisation de l'option -p sert à créer des répertoires parents si nécessaire:

 $ mkdir -p debian/stable

mv - Déplacer ou renommer

La commande mv est utilisée pour déplacer ou renommer des fichiers ou des répertoires. Pour simplement déplacer un fichier vers un répertoire, vous pouvez utiliser:

 $ mv fichier.txt dir/

Pour renommer un fichier il suffit de spécifier le nouveau nom:

 $ mv fichier.txt notes.txt

rm - Supprimer fichiers et répertoires

La commande rm permet de supprimer des fichiers et des répertoires. Imaginons que nous allons supprimer le fichier fichier.txt et qui se trouve dans le répertoire courant.

 $ rm fichier.txt

On peut aussi utiliser un filtre pour supprimer uniquement les fichiers portant la même extension. Exemple de commande supprimant tous les fichiers .html:

 $ rm *.html

Pour supprimer un répertoire complet il faut utiliser les options -rf qui force récusivement la suppression:

 $ rm -rf dossier/

La commande rmdir permet de supprimer un répertoire vide:

 $ rmdir directory

ls - Lister le contenu des répertoires

La commande ls permet d'afficher le contenu d'un répertoire. Sans options ls liste le répertoire courant, c'est le répertoire dans lequel on se trouve:

 $ ls

Afficher uniquement les noms des fichiers commençant par la lettre d:

 $ ls d*

Afficher le contenu du répertoire courant en incluant les fichiers cachés:

 $ ls -a

Afficher le contenu du répertoire courant en incluant les fichiers cachés. La liste obtenue contient des détails sur les fichiers tels que les permissions et la date de modification:

 $ ls -al

Afficher les fichiers par date du dernier accès et affiche cette la date:

 $ ls -lu

Affiche les fichiers par type. Un fichier suivi d'un slash (/) est un répertoire, un fichier suivi d'une étoile est un fichier exécutable et un fichier suivi d'un "@" est un lien:

 $ ls -F

cat - Afficher le contenu d'un fichier

La commande cat permet d'afficher le contenu d'un fichier texte. Cette commande est souvent utilisée dans les scripts SHell, elle permet aussi d'éditer un fichier en ligne de commande. L'exemple affiche le contenu du fichier resolv.conf qui se trouve dans le répertoire /etc:

 $ cat /etc/resolv.conf

more - Lire un fichier

La commande more permet d'afficher et lire un fichier, si le texte à afficher est trop long pour l'écran vous pouvez utiliser la barre d'espacement pour faire défiler le texte:

 $ more /etc/passwd

stat - Afficher des statistiques détaillées

La commande stat commande permet d'obtenir des statistiques très détaillées sur un fichier:

 $ stat /etc/resolv.conf

pwd - Connaître le chemin du répertoire actuel

La commande pwd permet de connaître le chemin du répertoire dans lequel on se trouve. Cette fonction est souvent utilisée dans les scripts shell pour savoir depuis quel répertoire la commande est lancée. Le chemin actuel de votre shell est aussi contenu dans la variable d'environnemnt $PWD:

 $ pwd
 ou:
 $ echo $PWD

du - Mesurer la taille des fichiers et répertoires

La commande du permet de mesurer et d'afficher la taille d'un répertoire. Par défaut du mesure le répertoire depuis lequel il est exécuté:

 $ du -sh

Sans options du mesure l'espace occupé par le répertoire courant et ses sous-répertoires:

 $ du

chown - Changer le propriétaire

Commande réservée à root et au propriétaire actuel des fichiers ou des répertoires. L'option -R (récursif) permet d'agir sur l'ensemble des sous-répertoires:

 $ chown -R  libordux /mnt/data/chemin
 ou:
 $ chown libordux *.sh

chgrp - Changer le groupe propriétaire

Cette opération doit être effectué par root ou le propriétaire, à condition que celui-ci soit membre du nouveau groupe. L'administrateur root n'est soumis à aucune restrictions, il a le pouvoir absolu sur le système de fichiers. Pour connaître les groupes d'un utilisateur, on peut utiliser la commande groups ou id -Gn. Utilisation de chgrp:

 $ chgrp [option] groupe fichier
 exemple:
 $ chgrp music /home/user/musique
 ou récusivement:
 $ chgrp -R music /home/user/musique

chmod - Changer les permissions

Sous GNU/Linux tous les fichiers et les répertoires ont un propriétaire, un groupe, et des droits d'accès. L'utilisateur qui crée un fichier en devient le propriétaire et le groupe auquel appartient cet utilisateur devient le groupe du fichier. L'administrateur root a tous les droits sur tous les fichiers.

Lister les permissions

Pour connaître les droits des fichiers d'un répertoire vous pouvez utiliser la commande cd pour vous déplacer et la commande ls -l pour lister le contenu du répertoire:

 $ cd ~
 $ ls -l
drwxr-xr-x   4 leks leks 4096 2006-02-08 14:27 debian-l10n-french
drwx------  14 leks leks 4096 2006-02-10 21:54 Documents
-rwxr--r--   1 leks leks  488 2006-02-11 18:55 greybar.jpg
drwxr-xr-x   5 leks leks 4096 2006-02-14 19:54 Libordux
-rw-rw-r--   1 leks leks   39 2006-02-06 09:29 notes.txt
drwxr-xr-x   3 leks leks 4096 2006-02-06 16:35 Public

Le premier caractère d signifie qu'il s'agit d'un répertoire, le - signifie qu'il s'agit d'un fichier, et le l un lien. Ensuite il y a 3 groupements de 3 caractères tel que drwxr-xr-x soit neuf caractères au total pour les permissions. Le r signifie lecture, le w écriture et le x éxécutable. Pour les répertoires, x correspond à l'accès au répertoire.

Utiliser chmod

Les droits d'accès peuvent être modifiés par root (uid 0) qui a toutes les permissions, ou par le propriétaire des fichiers. La commande chmod change le "mode" des fichiers. Chaque fichier est désigné par u, g et o pour les 3 catégories d'utilisateurs (user, group, other). Le a (all) signifie tous les utilisateurs. L'action d'ajouter, de retirer ou de fixer un droit se fait avec , -, et =. Les 3 attributs r, w, x sont utilisé pour spécifier les permissions de lecture, écriture et éxécution d'un fichier.

Pour ajouter le droit d'exécution au propriétaire du fichier:

 $ chmod u x script.sh

On peut regrouper les catégories d'utilisateus, si on veut exercer la même action sur le fichier. Pour ajouter le droit d'exécution au propriétaire et au groupe:

 $ chmod ug x script.sh

L'option -R (récursif) de chmod permet de modifier les permissions de tous les sous-répertoires. Il est aussi possible d'utiliser des chiffres pour changer les droits. Exemple pour rendre un script éxécutable par tous:

 $ chmod 777 script.sh