Unix
Le système d'exploitation Unix
La particularitéd'Unix par rapport à Windows
ou Mac OS est qu'il est muni d'interprètes de commandes (ou
shells) fonctionnant en mode texte.
Le système de fichiers d'Unix
Les fichiers Unix sont organisés selon une arborescence, un système
qui est à peu près le même que celui des macs ou des
PC. Les fichiers ordinaires sont les feuilles de l'arborescence, dont les
répertoires (ou directories) sont les noeuds.
La différence avec les macs ou les PC (sous windows) est que
vous ne disposez que d'une interface texte pour voir tout ça.
Pour se situer et se déplacer, on utilisera donc les commandes
suivantes au lieu de cliquer dans des valises :
-
ls
-
Lister le contenu du répertoire courant.
-
cd dir
-
Aller en dir.
-
mkdir dir
-
Créer le répertoire dir.
-
touch name
-
Créer un fichier vide de nom name.
Un fichier (ou un répertoire, les répertoire sont des fichiers)
peut être repéré de façon absolue ou relative.
La commande pwd donne le répertoire courant de façon
absolue.
La commande ls répond en termes relatifs, c'est à
dire que les fichiers qu'elle liste ne sont pas précédés
de ``/'' et sont
Commandes de fichiers
-
cp name1 name2
-
Copier le contenu du fichier de nom name1
dans le fichier de nom name2. Si
name2
est un nom de répertoire, alors la cible est un fichier qui a le
même nom de base que name1
et situé dans name2.
-
mv name1 name2
-
Changer le nom du fichier name1
en name2. Néanmoins, si name2
est un nom de répertoire, alors la cible est comme pour la commande
cp.
-
rm name...
-
Effacer tous les fichiers donnés en argument.
-
rmdir name...
-
Effacer tous les répertoires donnés en argument, ces répertoires
doivent être vides.
Les commandes cp et rm n'agissent pas directement sur
les répertoires. Pour ce faire, il faut leur donner l'option ``-r''.
L'effet est alors de copier ou d'effacer un répertoire et son contenu.
-
more name...
-
Visionner les fichiers donnés en arguments, page par page. On passe
à la page suivante par la barre d'espacement et on quitte prématurément
par ``q'' (Il y a d'autres sous-commandes, taper ``?''
pour l'aide).
-
cat name...
-
Afficher en une seule fois le contenu des fichiers donnés en arguments.
La commande cat est souvent utilisée avec un seul argument
pour voir rapidement le contenu d'un fichier court.
Droits des fichiers
Les fichiers ont des droits, ces droits sont de trois sortes, lecture (r),
écriture (w) et exécution (x) ; et ils
concernent quatre catégories de personnes, l'utilisateur propriétaire
du fichier (u), le groupe propriétaire du fichier (g),
les autres (o) et tout le monde (a). On visionne les
propriétaires et droits d'un fichier avec ls -l.
On modifie les droits par la commande chmod, on peut ajouter
des droits avec ``+'' ou en enlever avec ``-''.
Par exemple, on peut autoriser lecture et exécution à
tout le monde sur le fichier tempo :
% chmod a+rx tempo
% ls -l tempo
-rwxrwxr-x 1 544 everyone 0 Oct 12 21:45 tempo
Motifs
L'interpréteur de commande (le ``shell'') interprète
certains caractères comme des motifs opérant sur les noms
de fichiers :
-
*
-
Représente n'importe quelle suite de caractères (sauf ``.''
en tête et ``/'').
-
?
-
Représente n'importe quel caractère (sauf ``.''
en tête et ``/'').
-
[...]
-
Représente un caractère pris dans ``...'', où ``...''
peut être une suite de caractères ou d'intervalles de la forme
``c1-c2''.
-
[^...]
-
Représente un caractère qui n'est pas pris dans ``...''.
Considérons un répertoire qui contient les fichiers suivants
:
% ls
a aa ab ac ad b c d
On liste facilement les fichiers dont le nom se compose d'un seul caractère
:
% ls ?
a b c d
Ou encore les fichiers dont le nom commence par un ``a'' :
% ls a*
a aa ab ac ad
Ou enfin les fichiers qui ne commencent ni par ``a'', ni par ``b'',
ni par ``c'' :
% ls [^a-c]*
d
Redirections
Unix permet de rediriger le résultat des commandes dans un
fichier à l'aide du caractère ``>'' :
-
> name
-
Rediriger la sortie vers le fichier name. Le fichier name
ne doit pas exister et est créé.
-
>> name
-
Rediriger la sortie vers le fichier name. Si name existe
déjà, la sortie est ajoutée en fin de fichier.
On aura donc par exemple :
% ls
a b c d
% ls > liste
% ls > liste
liste: File exists.
% ls >> liste
% cat liste
a
b
c
d
liste
a
b
c
d
liste
La commande cat sans arguments lit son entrée sur le clavier.
On peut ainsi créer un fichier non-vide :
% cat > tempo
Une ligne
Encore une
On termine l'entrée en tapant Control-d
% cat tempo
Une ligne
Encore une
On termine l'entrée en tapant Control-d
Filtres et pipes
Les commandes qui lisent le clavier et affichent sur la console (on parle
aussi d'entrée et de sortie standard) sont appelés des filtres.
De nombreuses commandes Unix agissent comme des filtres quand on les utilise
sans argument. C'est le cas de cat, mais aussi de sort
(trier), wc (compter les lignes), etc. On peut rediriger l'entrée
d'un filtre par ``< name''.
Par exemple, on peut trier le fichier tempo
ci-dessus (l'option ``-u'' de sort évite la répétition
de la même ligne dans la sortie triée) ::
% sort -u < tempo > tempo.trie
% cat tempo.trie
Encore une
On termine l'entrée en tapant Control-d
Une ligne
Une ligne en plus
On peut ensuite compter les lignes de tempo.trie
qui sont les lignes différentes de tempo
par :
% wc -l < tempo.trie
4
Une des astuces majeures d'Unix est la possibilité de connecter
deux filtres cmd1 et cmd2,
par ``cmd1 | cmd2''.
C'est à dire que la sortie de cmd1
est l'entrée de cmd2. On
peut donc, pour compter les lignes différentes de tempo,
se passer du fichier tempo.trie
:
% sort -u < tempo | wc -l
4
Exercices
Exercice 1 :
-
Créer un fichier vide tempo.
-
Créer un répertoire TD et un sous-répertoire
TD1.
Positionnez vous dans ce dernier.
Exercice 2 :
-
Utilisez ls muni de l'option -F ou -l pour distinguer
les répertoires des autres fichiers.
Exercice 3 :
-
Dans le chemin simple tempo, quels sont les noms de base et de répertoire.
Contrôler à l'aide des commandes basename et dirname.
Exercice 4 :
Lorsque l'on édite un fichier name, l'éditeur Emacs
sauve de temps en temps le contenu du buffer dans un fichier name~.
-
Comment faire pour les supprimer ?
Exercice 5 :
-
Ajouter une ligne au fichier tempo.
-
Mettre deux fois le contenu de tempo dans tempo.
-
Trier le fichier tempo.