Linux-Mandrake:
Guide de l'utilisateur
et Manuel de référence

MandrakeSoft

 
 
Janvier 2000
http://www.linux-mandrake.com


Suivant : Utilisation de KDE
Précédent : Introduction
Retour

(Retour à la table des matières)

Chapitre 1 : Quelques concepts de base d'Unix


Le nom « Unix » dira quelque chose à certains d'entre vous. Peut-être même utilisez-vous un système Unix dans le cadre de votre travail, auquel cas la lecture de ce chapitre ne vous apprendra pas grand-chose.

Pour ceux d'entre vous qui ne l'ont jamais utilisé, une lecture de ce chapitre est absolument nécessaire. La connaissance des concepts que nous allons présenter ici répond à un nombre surprenant de questions que se posent les débutants dans le monde Linux. De même, il est fort probable que ces seuls concepts vous donnent des pistes de recherche sur les causes d'un problème que vous pourriez rencontrer.

Utilisateurs et groupes

Cette notion est sans doute la plus importante, car elle a une influence directe sur tous les autres concepts que nous allons introduire dans ce chapitre.

Linux est un véritable système multi-utilisateurs, et pour pouvoir se connecter à un système Linux, il faut avoir un compte sur ce système. Quand vous avez créé des utilisateurs lors de l'installation, vous avez en fait ajouté des comptes utilisateurs. Vous vous souvenez sans doute que la création d'un compte a requis que vous entriez, entre autres, les éléments suivants:

Les deux paramètres importants ici sont le nom de connexion (très souvent appelé nom de login) et le mot de passe. Ce sont en effet eux que vous devrez utiliser pour vous connecter au système.

Une autre action qui a été effectuée à l'ajout d'un utilisateur est la création d'un groupe. Par défaut, la procédure d'installation aura créé un groupe pour chaque utilisateur. Comme nous le verrons plus loin, les groupes sont utiles dans le cadre de partage de fichiers entre différentes personnes. Un groupe peut ainsi regrouper autant d'utilisateurs que vous le voulez, et dans les grands systèmes il n'est pas rare de voir une telle séparation. Dans une université, par exemple, il peut très bien exister un groupe par type d'études (maths, physique, etc.), un autre pour les professeurs et ainsi de suite. L'inverse est vrai également: un utilisateur peut faire partie d'un ou plusieurs groupes. Ainsi un professeur de mathématiques fera-t-il à la fois partie du groupe des professeurs et de celui de ses chers étudiants en mathématiques.

Cela ne vous dit toujours pas comment vous connecter. On y arrive.

Si vous avez choisi d'avoir l'interface graphique au démarrage, votre fenêtre de connexion sera identique à la figure 8.1.

Connexion en mode graphique
Figure 8.1 Connexion en mode graphique

Pour vous connecter, vous devez entrer le nom de connexion dans la zone de texte intitulée Utilisateur:, puis votre mot de passe dans la zone de texte du même nom. Notez que vous devrez taper ce mot de passe à l'aveugle: il n'y aura aucun écho dans la zone de texte.

Si vous êtes en mode console, vous aurez l'image montrée figure 4.2.

Connexion en mode console
Figure 4.2 Connexion en mode console

Vous devez alors taper votre nom de connexion à l'invite Login:, suivi d'une pression sur la touche entrée, à la suite de quoi le programme de connexion (appelé, comme par hasard, login) vous présentera une invite Password:, et vous vous exécuterez en entrant le mot de passe de ce compte --- toujours à l'aveugle!

Notez que vous pouvez vous connecter plusieurs fois sous le même nom d'utilisateur, par exemple sur une console et sous X. Chaque session que vous ouvrirez sera indépendante, et il est même possible d'avoir plusieurs sessions X. Par défaut, Linux-Mandrake dispose de six consoles virtuelles en plus de celle réservée à l'interface graphique, et vous pouvez basculer sur l'une d'entre elles en pressant la séquence de touches Ctrl-Alt-F<n>, où <n> représente le numéro de la console sur laquelle vous voulez vous rendre. En général, l'interface graphique est sur la console numéro 7.

Outre la création de comptes utilisateurs, vous aurez aussi remarqué lors de l'installation que DrakX (ou le programme que vous avez utilisé) vous a demandé d'entrer un mot de passe pour un utilisateur bien particulier: root. Cet utilisateur est particulier pour une raison bien simple: c'est l'administrateur du système. Donc c'est vous. Pour votre sécurité, observez toujours un principe: ne vous connectez jamais, au grand jamais en tant que root, sauf si vous devez effectuer des tâches d'administration système! Il est très important également que le compte root soit toujours protégé par un mot de passe.

Si vous vous connectez régulièrement en tant que root, il est fort probable qu'un jour ou l'autre, même sans le faire exprès, vous rendiez votre système inutilisable. Une seule mauvaise manipulation peut suffire. En particulier, si vous n'avez pas mis de mot de passe à ce compte, le premier venu aura tout pouvoir sur votre système. Cela veut dire qu'il pourra effacer tous les autres systèmes d'exploitation que vous pouvez avoir sur votre machine, en plus de Linux, et réduire le rôle de votre ordinateur à celui d'un presse-papier. Ce n'est pas une blague!

Enfin, il est bon de mentionner qu'en interne, le système ne vous identifie pas par votre nom de connexion, mais par un numéro unique associé à votre nom de connexion: un UID (User ID, soit, en français, identifiant utilisateur). De même, chaque groupe est identifié par son « identifiant de groupe » ou GID (Group ID).

Notions de base sur les fichiers

Les fichiers sont un autre domaine où Linux diffère totalement de Windows. Nous ne verrons ici que les différences immédiatement visibles. Si vous le souhaitez, vous pouvez lire le chapitre 13.0 dans le Manuel de référence, qui va beaucoup plus en profondeur sur ce sujet.

La première différence, et sans doute la plus importante, est justement liée à la présence d'utilisateurs. Nous aurions pu dire en transition que chaque utilisateur possède son propre répertoire (appelé répertoire personnel, ou home en anglais), mais cela n'explicite qu'une partie de ce qui se passe vraiment, à savoir que tout fichier, sur un système Unix, est la propriété exclusive d'un utilisateur et d'un groupe. Ainsi, chaque utilisateur a bien son répertoire personnel, mais il est de plus le propriétaire de ses fichiers au sens propre du terme.

De plus, des droits sont associés à chaque fichier, que seul l'utilisateur propriétaire peut modifier. Ces droits distinguent trois catégories d'utilisateurs: le propriétaire même du fichier, tous les utilisateurs membres du groupe auquel ce fichier est associé (on dit aussi le groupe propriétaire) mais qui n'est pas l'utilisateur propriétaire, et enfin les autres, c'est-à-dire tout utilisateur qui n'est ni le propriétaire du fichier ni membre du groupe propriétaire. Ces droits sont au nombre de trois:

Toutes les combinaisons de ces droits sont possibles: vous pouvez par exemple autoriser la lecture du fichier à vous seul et l'interdire à tous les autres, et interdire toute autre utilisation du fichier. Vous pouvez même faire l'inverse, même si ce n'est pas très logique à première vue :) En tant que propriétaire du fichier, vous pouvez même changer le groupe propriétaire (si et seulement si vous êtes aussi membre du nouveau groupe), voire vous en déposséder (changer l'utilisateur propriétaire). Bien sûr, si vous vous en dépossédez, vous perdrez tous vos droits dessus...

Prenons l'exemple d'un fichier et d'un répertoire. L'affichage ci-dessous correspond à la frappe de la commande ls -l depuis une ligne de commande:

$ ls -l
total 1
-rw-r-----   1 francis  users           0 jui  8 14:11 un_fichier
drwxr-xr--   2 gael     users        1024 jui  8 14:11 un_répertoire/
$

Les différents champs de sortie de la commande ls -l sont les suivants (de gauche à droite):

Observons maintenant en détail les droits associés à chacun de ces fichiers: il faut tout d'abord enlever le premier caractère, qui désigne le type, et ainsi pour le fichier un_fichier nous nous retrouvons avec les droits: rw-r-----. L'interprétation de ces droits est la suivante:

Pour le répertoire un_répertoire, les droits sont rwxr-xr--, et donc:

Attention! Il existe une exception à la règle, et de taille: root, encore lui, peut changer les attributs (droits, utilisateur et groupe propriétaires) de tous les fichiers, même s'il n'en est pas le propriétaire. Ce qui veut dire qu'il peut aussi s'en donner la propriété. Il peut lire des fichiers sur lesquels il n'a pas le droit de lecture, traverser des répertoires qui ne lui sont normalement pas accessibles, et ainsi de suite. Et si un droit lui manque vraiment, il lui suffit de se l'offrir...

Pour finir, il est bon de mentionner une autre différence, qui n'est pas négligeable: elle se situe au niveau des noms des fichiers. En effet, ils sont beaucoup moins limités que sous Windows:

Les processus

On désigne par le terme de processus une instance de programme en cours d'exécution et son environnement. De même que pour les fichiers, nous ne mentionnerons ici que les différences les plus importantes, et vous vous reporterez au Manuel de référence pour une discussion plus complète sur ce sujet. Les points discutés dans cette section ont surtout pour objectif de mettre en lumière les paramètres de l'environnement qui ont une influence directe sur l'utilisation de votre distribution Linux-Mandrake au quotidien.

La différence la plus importante est, encore une fois, liée au concept d'utilisateurs : en effet, chaque processus s'exécute avec les droits de l'utilisateur qui l'a lancé. Ainsi, si nous reprenons l'exemple du fichier un_fichier mentionné ci-dessus, un processus lancé par l'utilisateur gael pourra ouvrir ce fichier en lecture seule, mais pas en lecture/écriture, puisque les droits associés au fichier ne le lui permettent pas. Encore une fois, l'exception qui confirme la règle est root...

Vous aurez deviné, grâce au paragraphe ci-dessus, que l'un des paramètres de l'environnement d'un processus est l'UID et le GID de l'utilisateur qui l'a lancé. Cela autorise le système à savoir si ce que lui demande le processus est « légal » (autorisé) ou non.

Une conséquence est que Linux est en grande partie immunisé aux virus: pour pouvoir opérer, les virus ont besoin d'infecter des fichiers exécutables, et en tant qu'utilisateur, c'est impossible de modifier les fichiers du système. Ajoutez à ceci que les virus sont très rares dans le monde Unix en général: jusque là, il n'existe que trois virus connus pour Linux, et ils sont complètement inoffensifs quand ils sont lancés par un utilisateur normal. Seul un utilisateur peut endommager le système en activant ces virus, et encore une fois, c'est... root!

Paradoxalement, il existe bien des logiciels antivirus sous Linux, mais pour les fichiers DOS/Windows... En effet, on voit de plus en plus des serveurs de fichiers Linux servir des machines Windows, avec l'aide du paquetage logiciel Samba (voir le chapitre 28.0 dans le Manuel de référence).

En interne, le système identifie les processus de façon unique par, encore une fois, un numéro. Ce numéro est appelé le PID, pour Process ID, soit en français « identifiant de processus ». De plus, tous les processus peuvent aussi recevoir des signaux, ce qui vous autorise à les contrôler (enfin, uniquement les processus que vous avez lancés, pas ceux d'un autre utilisateur, l'exception à la règle étant, devinez qui...): vous pouvez stopper un processus, le tuer s'il pose trop de problèmes et ainsi de suite. Dans un prochain chapitre, vous apprendrez comment traquer ce fameux PID et, muni de la connaissance de ce PID, à lui envoyer des signaux, le poussant à se terminer, à suspendre son exécution ou autre.

Une petite introduction à la ligne de commande

La ligne de commande est le moyen le plus direct de parler à la machine. Si vous commencez à l'utiliser, vous remarquerez rapidement qu'elle a une capacité d'expression bien plus puissante que les invites que vous avez peut-être utilisées sous d'autres systèmes d'exploitation, plus, même, que toute interface graphique existante. En effet vous avez un accès direct, non seulement à toutes les applications X, mais aussi à des milliers d'utilitaires en mode console (à opposer au mode graphique) qui n'ont pas leur équivalent graphique, ou dont les nombreuses options et combinaisons potentielles ne pourront jamais être représentées par des boutons et des menus.

Mais, il faut bien l'admettre, elle requiert un peu d'aide pour débuter. C'est le but de ce chapitre. La première chose à faire, si vous utilisez KDE, est de lancer un émulateur de terminal. Vous avez une icône qui l'identifie clairement dans le panneau (figure 4.3).

L'icône de l'émulateur de terminal dans le panneau de
KDE
Figure 4.3 L'icône de l'émulateur de terminal dans le panneau de KDE

Le shell est le nom du programme avec lequel pour interagissez. Vous vous trouvez en face de l'invite (« prompt » en anglais):

[jean@localhost] ~ $

Ceci suppose que votre nom d'utilisateur est jean et que votre nom de machine est localhost (ce qui est le cas si votre machine ne fait pas partie d'un réseau existant). Tout ce qui apparaît après l'invite est ce que vous aurez à taper. Notez que quand vous êtes root, le $ de l'invite devient un #. (Tout ce qui précède n'est juste que dans la configuration par défaut, chacun de ces éléments pouvant être personnalisé). La commande pour « devenir » root quand vous avez lancé un shell en tant qu'utilisateur est su:

# Entrez le mot de passe root; il n'apparaîtra pas à l'écran
[jean@localhost] ~ $ su
Password:
# exit vous fera revenir à votre compte utilisateur normal
[root@localhost] jean # exit
[jean@localhost] ~ $

Partout ailleurs dans cette documentation, l'invite sera représentée symboliquement par un $, que vous soyiez un utilisateur normal ou root. Il vous sera indiqué quand vous devez être root, alors n'oubliez pas su :) Un # en début de ligne de code représentera un commentaire.

Quand vous lancez le shell la première fois, vous vous trouvez normalement dans votre répertoire personnel. Pour savoir dans quel répertoire vous vous trouvez à un moment donné, la commande est pwd (pour Print Working Directory, « afficher le répertoire de travail »):

$ pwd
/home/jean

Il y a certaines commandes de base que nous allons voir, qui vous seront indispensables.

cd: Change Directory « changer de répertoire »

La commande cd est exactement la même que celle de DOS, avec quelques fonctionnalités en plus. Elle fait juste ce que dicte son acronyme, elle change le répertoire de travail. Vous pouvez utiliser . et .., qui sont respectivement le répertoire courant et son répertoire parent. Taper seulement cd vous ramènera à votre répertoire personnel. Taper cd - vous renverra dans le dernier répertoire visité. Et enfin, vous pouvez spécifier le répertoire d'un utilisateur toto en tapant  toto (' ' seul ou suivi de '/' signifie votre propre répertoire personnel). Notez qu'en tant qu'utilisateur normal, vous ne pouvez normalement pas accéder au répertoire d'un autre utilisateur (à moins qu'il ne l'ait explicitement autorisé ou que tel soit le réglage de la configuration par défaut sur le système), sauf si vous êtes... root, donc soyons root et entraînons-nous:

$ pwd
/root
$ cd /usr/doc/HOWTO
$ pwd
/usr/doc/HOWTO
$ cd ../FAQ
$ pwd
/usr/doc/FAQ
$ cd ../../lib
$ pwd
/usr/lib
$ cd ~jean
$ pwd
/home/jean
$ cd
$ pwd
/root

Maintenant, redevenez un utilisateur normal :)

Quelques variables d'environnement et la commande echo

En fait, tous les processus ont leurs variables d'environnement, et quelquefois ils agissent différemment en fonction des valeurs de certaines d'entre elles. Toutefois, le shell vous autorise à les consulter directement, avec la commande echo. Quelques variables intéressantes sont:

Pour que le shell affiche la valeur d'une variable, vous devez mettre un $ devant son nom. Ici, echo va vous être utile:

$ echo Bonjour
Bonjour
$ echo $HOME
/home/jean
$ echo $USERNAME
jean
$ echo Bonjour $USERNAME
Bonjour jean
$ cd /usr
$ pwd
/usr
$ cd $HOME
$ pwd
/home/jean

Comme vous pouvez le voir, le shell substitue la valeur de la variable avant d'exécuter la commande, autrement notre cd $HOME n'aurait pas fonctionné ici. En fait, le shell a en premier lieu remplacé $HOME par sa valeur, /home/jean, donc la ligne est devenue cd /home/jean, qui est ce que nous voulions. C'est la même chose pour echo $USERNAME et ainsi de suite.

cat: afficher le contenu d'un ou plusieurs fichiers à l'écran

Pas grand'chose à dire, si ce n'est que cette commande fait simplement cela: afficher le contenu d'un ou plusieurs fichiers à l'écran!

$ cat /etc/fstab
/dev/hda5 / ext2 defaults 1 1
/dev/hda6 /home ext2 defaults 1 2
/dev/hda7 swap swap defaults 0 0
/dev/hda8 /usr ext2 defaults 1 2
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
/dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
$ cd /etc
$ cat conf.modules shells
alias parport_lowlevel parport_pc
pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq
#pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start
#alias car-major-14 sound
alias sound esssolo1
keep
/bin/zsh
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
/bin/ash
/bin/bsh
/usr/bin/zsh

less: un pager

Son nom est un jeu de mots sur le premier pager existant sous Unix, qui se nommait more[1]. Un pager est un programme dont le but est d'autoriser la visualisation de longs fichiers page par page (plus précisément, écran par écran). Nous parlons de less plutôt que de more car son utilisation est beaucoup plus intuitive. Utilisez less pour voir des gros fichiers, qui ne rentrent pas sur un écran. Par exemple:

less /usr/doc/HOWTO/PCMCIA-HOWTO

Pour naviguer dans le fichier, utilisez simplement les touches fléchées haut et bas. Utilisez 'q' pour quitter. En fait, less peut faire bien plus: tapez simplement 'h' pour de l'aide (en anglais), et lisez. Mais de toutes façons, l'objectif de cette section est de vous rendre capable de lire de longs fichiers, et cet objectif est maintenant atteint :)

ls: faire une liste de fichiers (LiSt, « liste »)

Cette commande est équivalente au dir de DOS, mais elle peut faire beaucoup plus. En fait, c'est largement dû au fait que les fichiers peuvent aussi faire nettement plus :) La syntaxe de la commande ls est comme suit:

ls [options] [fichier|répertoire] [fichier|répertoire...]

Si aucun fichier ou répertoire n'est mentionné sur la ligne de commande, ls fera la liste des fichiers du répertoire courant. Ses options sont très nombreuses, et nous n'en citerons que quelques-unes:

Quelques exemples:

Raccourcis clavier utiles

Beaucoup de séquences de touches sont disponibles et peuvent vous faire gagner du temps, et cette section fera une liste des plus nécessaires. Cette section suppose que vous utilisez le shell par défaut de Linux-Mandrake, Bash, mais ces séquences de touches devraient aussi fonctionner avec d'autres shells. Dans cette section, C-<x> signifie Ctrl+<x> (appuyez sur la touche Ctrl et maintenez-la enfoncée, appuyez sur <x>, relâchez les deux touches).

D'abord les touches fléchées: Bash maintient un historique des commandes que vous tapez, dans lequel vous pouvez vous balader avec les flèches haut et bas. Vous pouvez remonter jusqu'à un nombre de lignes définies dans la variable d'environnement 'HISTSIZE'. De plus, l'historique est persistant d'une session à l'autre, donc vous ne perdrez pas les commandes que vous avez tapées dans une session précédente.

Les flèches gauche et droite déplacent le curseur sur la gauche et sur la droite, donc vous pouvez éditer vos lignes de cette façon. Mais il y a plus en matière d'édition: C-a et C-e, par exemple, vous améneront respectivement au début et à la fin de la ligne courante. Les touches Backspace et Suppr fonctionneront comme on s'y attend. Un équivalent de Backspace est C-h et un équivalent de Del est C-d. C-k effacera toute la ligne depuis la position du curseur jusqu'à la fin de la ligne, et C-w effacera le mot avant le curseur.

Taper C-d sur une ligne vide vous fera fermer la session courante, ce qui est nettement plus court que d'avoir à taper exit. C-c interrompra la commande en cours de fonctionnement, sauf si vous éditez une ligne, auquel cas cela interrompra l'édition en cours et vous raménera à l'invite. C-l nettoie l'écran.

Finalement, il y a C-s et C-q: ces séquences de touches servent respectivement à suspendre et restaurer le flux de caractères sur un terminal. Elles sont très peu utilisées, mais il peut arriver que vous tapiez C-s par inadvertance. Donc, si vous appuyez sur des touches mais que vous ne voyez rien apparaître à l'écran, essayez C-q d'abord et faites attention: tous les caractères que vous avez tapés entre le C-s non désiré et le C-q apparaîtront tout d'un coup sur l'écran.


Suivant : Utilisation de KDE
Précédent : Introduction
Retour

Copyright © 2000 MandrakeSoft