Chapitre 3. Introduction à la ligne de commande

Table des matières
3.1. Utilitaires de manipulation de fichiers
3.1.1. mkdir, touch : création de répertoires et fichiers vides (MaKe DIRectory, créer un répertoire, toucher)
3.1.2. rm : supprimer des fichiers ou des répertoires (ReMove, ôter)
3.1.3. mv : déplacer ou changer le nom des fichiers (MoVe, déplacer)
3.1.4. cp : copier des fichiers et des répertoires (CoPy, copier)
3.2. Manipulation des attributs de fichiers
3.2.1. chown, chgrp : changer l'utilisateur et le groupe propriétaires d'un ou plusieurs fichiers (CHange OWNer, changer de propriétaire; CHange GRouP) changer de groupe
3.2.2. chmod : changer les permissions sur des fichiers et des répertoires (CHange MODe, changer le mode)
3.3. Motifs d'englobement du shell, expressions rationnelles
3.4. Redirections et tubes
3.4.1. Encore un mot sur les processus
3.4.2. Redirections
3.4.3. Tubes
3.5. Le complètement (completion)
3.5.1. Un exemple
3.5.2. Mais plus généralement,
3.6. Lancement et manipulation de processus en arrière-plan : le job control (contrôle des processus en arrière-plan)
3.7. Un dernier mot

Dans le chapitre « Basic Unix concepts  » du Guide de l'utilisateur, nous avons vu comment lancer un shell et ses principes de base, mais nous ne l'avons pas fait fonctionner. C'est ce que nous nous proposons de faire dans ce chapitre.

Le principal avantage du shell est le nombre d'utilitaires existants : il en existe en fait des milliers et chacun d'entre eux a une tâche bien définie. Nous n'en examinerons ici qu'un petit nombre. L'une des grandes forces d'Unix est la possibilité de combiner ces utilitaires, comme nous le verrons plus loin.

3.1. Utilitaires de manipulation de fichiers

La manipulation de fichiers signifie ici "copier", "déplacer" et "effacer" des fichiers. Le changement de leurs attributs (propriétaire, permissions associées) sera examiné par la suite.

3.1.1. mkdir, touch : création de répertoires et fichiers vides (MaKe DIRectory, créer un répertoire, toucher)

mkdir est utilisé pour créer des répertoires. Sa syntaxe est simple :
mkdir [options] <répertoire> [répertoire ...]
Une seule option est en fait vraiment intéressante  : l'option -p. Si cette option est passée en argument, mkdir créera les répertoires parents s'il n'existaient pas avant. Si elle ne l'est pas et que les répertoires parents n'existent pas, mkdir renverra un message d'erreur. Exemples :

  1. mkdir toto crée un répertoire du nom de toto dans le répertoire courant.

  2. mkdir -p images/divers docs crée 1) un répertoire divers dans le répertoire images après avoir créé ce dernier s'il n'existait pas ; 2) un répertoire docs.

Initialement, la commande touch n'a pas pour but de créer des fichiers mais de mettre à jour les dates d'accès et de modification[1]. Toutefois, l'un de ses effets de bord est de créer les fichiers mentionnés comme des fichiers de taille 0 s'ils n'existaient pas déjà. La syntaxe est :

touch [options] fichier [fichier...]

Il faut donc lancer la commande :

touch fichier1 images/fichier2

Ce qui créera un fichier de taille 0 appelé fichier1 dans le répertoire courant et un fichier de taille 0 appelé fichier2 dans le répertoire images.

3.1.2. rm : supprimer des fichiers ou des répertoires (ReMove, ôter)

Cette commande joue le rôle des del et deltree du DOS, et plus encore. Sa syntaxe est :
rm [options] <fichier|répertoire> [fichier|répertoire...]
Parmi les options, on trouve :

  1. -r ou -R Supprime récursivement. Cette option est obligatoire pour supprimer un répertoire, même vide. Toutefois, il existe aussi la commande rmdir pour effacer des répertoires vides.

  2. -i Demande confirmation avant chaque effacement. Il est recommandé de placer un alias de rm vers rm-i dans votre shell, et ceci également pour les commandes cp et mv.

  3. -f Le contraire de -i, force la suppression des fichiers ou répertoires, même si l'utilisateur n'a pas l'autorisation d'écriture sur les fichiers[2].

Quelques exemples :

  1. rm -i images/*.jpg fichier1 Supprime tous les fichiers dont le nom se termine par .jpg dans le répertoire images ainsi que le fichier fichier1 dans le répertoire courant, en demandant confirmation pour chacun des fichiers. Répondez o ou y pour confirmer, n pour annuler.

  2. rm -Rf images/divers/ file* Suppression sans demande de confirmation de tout le répertoire divers/ dans le répertoire images/ en plus de tous les fichiers du répertoire courant dont le nom commence par file.

Avertissement

Un fichier effacé avec rm est effacé de façon irréversible : il n'y a alors plus aucun moyen de récupérer ce fichier ! N'hésitez donc pas à utiliser l'option -i...

3.1.3. mv : déplacer ou changer le nom des fichiers (MoVe, déplacer)

La syntaxe de la commande mv est la suivante :
mv [options] <fichier|rép.> [fichier|rép...] <destination>
Quelques options :

  1. -f Force le déplacement de fichiers (aucun avertissement en cas d'écrasement d'un fichier au cours de l'opération).

  2. -i Le contraire  : demande confirmation à l'utilisateur avant d'écraser un fichier existant.

  3. -v Mode verbeux ; rapporte tous les changements.

Quelques exemples :

  1. mv -i /tmp/pics/*.gif . Déplace tous les fichiers du répertoire /tmp/pics/ dont le nom se termine par .gif vers le répertoire courant (.), en demandant confirmation avant d'écraser un fichier existant.

  2. mv toto titi Renomme le fichier toto en titi.

  3. mv -vf fichier* images/ trash/ Déplace, sans demander confirmation, tous les fichiers dans le répertoire courant dont le nom commence par fichier ainsi que tout le répertoire images/ vers le répertoire trash/ ; et rapporte tous les changements effectués.

 

 

3.1.4. cp : copier des fichiers et des répertoires (CoPy, copier)

cp est un remplacement pour les commandes copy, xcopy de DOS et plus. Sa syntaxe est la suivante :
cp [options] <fichier|rép.> [fichier|rép...] <destination>
Il existe une myriade d'options. Voici les plus utilisées :

  1. -R Copie récursivement; obligatoire pour copier un répertoire, même vide.

  2. -i Demande confirmation avant d'écraser des fichiers qui pourraient l'être.

  3. -f Le contraire de -i  : remplace d'éventuels fichiers existants sans demander confirmation.

  4. -v Mode verbeux  : rapporte toutes les actions effectuées par cp.

Quelques exemples :

  1. cp -i /tmp/images/* images/ Copie tous les fichiers du répertoire /tmp/images dans le répertoire images/ du répertoire courant, en demandant confirmation avant l'écrasement éventuel d'un fichier.

  2. cp -vR docs/ /shared/mp3s/* mystuff/ Copie tout le répertoire docs du répertoire courant plus tous les fichiers du répertoire /shared/mp3s dans le répertoire mystuff situé dans le répertoire courant.

  3. cp toto titi Copie le fichier toto sous le nom de titi dans le répertoire courant.

     

     

Notes

[1]

Il y a trois mesures de temps distinctes pour chaque fichier sous Unix : la date du dernier accès au fichier (atime), c'est-à-dire la date de la dernière ouverture du fichier en lecture ou en écriture; la date de la dernière modification des attributs de l'i-nœud (mtime); et enfin la date de la dernière modification du contenu du fichier (ctime).

[2]

Il est suffisant pour un utilisateur d'avoir le droit d'écriture sur un répertoire pour pouvoir en effacer des fichiers, même s'il n'est pas le propriétaire de ces fichiers.


Tux sur Étoile de MandrakeSoft Linux est une marque déposée de Linus Torvalds. Toutes les autres marques et copyrights sont la propriété de leurs auteurs respectifs.
Sauf mention contraire, tout le contenu de ces pages et toutes les images sont Copyright MandrakeSoft S.A. et MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/