Page suivante Page précédente Table des matières

4. Fichiers et Programmes

4.1 Fichiers : notions préliminaires

La structure des répertoires et des fichiers sous Linux est très similaire à celle de DOSWin. Les fichiers ont des noms qui doivent obéir à certaines règles, ils sont stockés dans des répertoires, certains d'entre eux sont exécutables et parmi ceux-ci, la plupart disposent d'options. De plus, il est possible d'utiliser les caractères joker, la redirection et les pipes. Seules quelques différences mineures existent :

À présent, vous pouvez aborder la section Traduire les commandes DOS en Linux, mais à votre place, je poursuivrais ici.

4.2 Liens symboliques

UNIX est pourvu d'un type de fichier sans équivalent sous DOS : le lien symbolique. On peut l'imaginer comme un pointeur sur un fichier ou un répertoire, et on peut l'utiliser en lieu et place du fichier ou du répertoire sur lequel il pointe ; cela ressemble aux raccourcis de Windows. Des exemples de liens symboliques sont /usr/X11, qui pointe sur /usr/X11R6; /dev/modem, qui pointe ou bien sur /dev/ttyS0 ou bien sur /dev/ttyS1.

Pour fabriquer un lien symbolique :

$ ln -s <fic_ou_rep> <nomdulien>

Exemple :

$ ln -s /usr/doc/g77/DOC g77manual.txt

Il est alors possible de faire référence à g77manual.txt au lieu de /usr/doc/g77/DOC. Les liens apparaissent de la manière suivante dans l'affichage du contenu des répertoires :

$ ls -F
g77manual.txt@
$ ls -l
(des choses et d'autres...)           g77manual.txt -> /usr/doc/g77/DOC

4.3 Droits d'accès et propriété

Sous DOS, les fichiers et les répertoires disposent des attributs suivants : A (archive), H (caché : hidden), R (lecture seule : read-only) et S (système). Seuls H et R ont un sens sous Linux : les fichiers cachés sont ceux qui commencent par un point, et pour ce qui est de l'attribut R, lisez ce qui suit.

Sous UNIX un fichier possède des «droits d'accès» et un propriétaire, qui, à son tour, fait partie d'un «groupe». Regardez cet exemple :

$ ls -l /bin/ls
-rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*

Le premier champ contient les droits d'accès au fichier /bin/ls, qui appartient à root et au groupe bin. En laissant de côté le reste de l'information, souvenez-vous que la signification de -rwxr-xr-x, de gauche à droite, est :

- est le type de fichier (- = fichier ordinaire, d = répertoire : directory, l = lien etc.) ; rwx sont les droits d'accès pour le propriétaire du fichier (lecture : read, écriture : write, exécution) ; r-x sont les droits d'accès pour le groupe auquel appartient le propriétaire du fichier (lecture, exécution) ; (je n'aborderai pas le concept de groupe, vous n'en avez pas besoin pour survivre, tant que vous êtes débutant ;-) r-x sont les droits d'accès pour tous les autres utilisateurs (lecture, exécution).

Le répertoire /bin dispose lui aussi de droits d'accès : cf. Droits d'accès aux répertoires pour plus d'informations. C'est la raison pour laquelle vous ne pouvez pas effacer le fichier /bin/ls à moins d'être root : vous n'avez pas les droits pour le faire. Pour changer les droits d'accès d'un fichier, la commande est :

$ chmod <quiXperm> <fic>

qui peut être u (utilisateur, ou propriétaire), g (groupe) o (autres, other), X vaut + ou -, et perm est à choisir parmi r (lecture, read), w (écriture, write) ou x (exécution). Les usages courants pour chmod sont les suivants :

$ chmod +x fichier

cela positionne le droit d'exécution pour le fichier.

$ chmod go-rw fichier

cela enlève les droits de lecture et d'écriture pour tous excepté le propriétaire.

$ chmod ugo+rwx fichier

cela donne les droits de lecture, d'écriture et d'exécution à tout le monde.

# chmod +s fichier

cela fabrique un fichier de type «setuid» ou «suid» -- un fichier que tout un chacun peut exécuter avec les privilèges de son propriétaire. Typiquement, vous rencontrerez des fichiers suid appartenant à root ; souvent, il s'agit de fichiers système importants, comme le serveur X.

Un moyen plus court de faire référence aux droits d'accès est d'utiliser les chiffres : rwxr-xr-x peut être exprimé comme 755 (chaque lettre correspond à un bit : --- vaut 0, --x vaut 1, -w- vaut 2, -wx vaut 3 etc.). Cela peut sembler difficile, mais avec un peu de pratique, vous comprendrez le concept. root, en tant que super-utilisateur, a la possibilité de changer les droits d'accès de quiconque. LPM.

4.4 Fichiers : traduction des commandes

À gauche, les commandes DOS, à droite, leurs correspondants Linux.

ATTRIB:         chmod
COPY:           cp
DEL:            rm
MOVE:           mv
REN:            mv
TYPE:           more, less, cat

Les redirections et la tuyauterie : < > >> |

Les jokers : * ?

nul: /dev/null

prn, lpt1: /dev/lp0 ou /dev/lp1; lpr

Exemples

DOS                                     Linux
---------------------------------------------------------------------

C:\GUIDO>ATTRIB +R FIC.TXT              $ chmod 400 fic.txt
C:\GUIDO>COPY JOE.TXT JOE.DOC           $ cp joe.txt joe.doc
C:\GUIDO>COPY *.* TOTAL                 $ cat * > total
C:\GUIDO>COPY FRACTALS.DOC PRN          $ lpr fractals.doc
C:\GUIDO>DEL TEMP                       $ rm temp
C:\GUIDO>DEL *.BAK                      $ rm * 
C:\GUIDO>MOVE PAPIER.TXT TMP\           $ mv papier.txt tmp/
C:\GUIDO>REN PAPIER.TXT PAPIER.ASC      $ mv papier.txt papier.asc
C:\GUIDO>PRINT LETTRE.TXT               $ lpr lettre.txt
C:\GUIDO>TYPE LETTRE.TXT                $ more lettre.txt
C:\GUIDO>TYPE LETTRE.TXT                $ less lettre.txt
C:\GUIDO>TYPE LETTRE.TXT > NUL          $ cat lettre.txt > /dev/null
        n/a                             $ more *.txt *.asc
        n/a                             $ cat section*.txt | less

Notes:

4.5 Exécution de programmes : le multi-tâches et les sessions

Pour lancer un programme, entrez son nom comme vous le feriez sous DOS. Si le répertoire (cf. section Utilisation des répertoires) où se trouve le programme est inclus dans le PATH (cf. section Fichiers d'initialisation du système), le programme démarrera. Une exception : contrairement au DOS, sous Linux, un programme situé dans le répertoire courant ne s'exécutera pas à moins que ce répertoire ne soit inclus dans le PATH. Escamotage

NdT. : En français dans le texte.
: si prog est votre programme, tapez ./prog.

Voici à quoi ressemble une ligne de commande typique :

$ commande [-o1 [-o2] ... [-on]] [arg1 [arg2] ... [argn]] [< entree] [> sortie]

-o1,...,-on sont les options de la commande et arg1,...,argn sont les arguments de la commande. Il est possible de spécifier plusieurs commandes sur une seule ligne :

$ commande1 ; commande2 ; ... ; commanden

C'est tout au sujet de l'exécution des commandes, mais on peut facilement faire un pas de plus. L'une des principales motivations pour l'utilisation de Linux est qu'il s'agit d'un système d'exploitation multi-tâches -- il est capable de faire tourner plusieurs programmes (qu'on appellera des processus) en même temps. Vous pouvez lancer des processus en arrière-plan et continuer à travailler dans la foulée. De plus, Linux vous permet d'avoir plusieurs sessions : c'est comme si on travaillait sur plusieurs ordinateurs à la fois !

À l'aide de ces commandes, vous pouvez formater un disque, compresser une flopée de fichiers, compiler un programme, et décompresser et archiver le tout, tout cela en même temps, tout en gardant la main. Essayez-donc de faire cela avec Windows, rien que pour voir la différence de performance (si ça ne plante pas, bien sûr).

4.6 Exécution de programmes sur des ordinateurs distants

Pour lancer un programme sur une machine distante dont le nom est machine.distante.edu, il suffit de faire :

$ telnet machine.distante.edu

Après vous être connecté, démarrez votre programme préféré. Cela va sans dire, vous devez avoir un compte utilisateur sur la machine distante.

Si vous disposez de X11, il vous est même possible de faire tourner une application X sur une machine distante dont l'affichage se fera sur votre écran X. Soit machine.distante.edu la machine distante disposant de X, et machine.locale.linux votre machine Linux. Pour faire tourner à partir de machine.locale.linux une application X résidant sur machine.distante.edu, il faut faire ce qui suit :

Et voila ! nomduprogramme va maintenant démarrer sur machine.distante.edu et ses affichages se feront sur votre machine. Toutefois, il est inutile d'essayer de le faire par modem, ce serait trop lent pour être utilisable. De plus il s'agit d'une méthode fruste et non sécurisée : veuillez vous reporter au «Remote X Apps mini-HOWTO» disponible à l'adresse http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.


Page suivante Page précédente Table des matières