Manuel Muriel Cordero À propos de l'auteur : Manuel MURIEL est étudiant en informatique à l'Université de SEVILLE. L'informatique est sa principale passion et c'est aussi la filière de ses études. Linux est à l'origine d'une grande découverte pour lui. A part ça, il aime beaucoup la lecture (surtout la S.F., TOLKIEN est son préféré :), jouer au basket avec ses amis, le cinéma si c'est de la S.F. (il adore Blade Runner, 2001, Forbidden Planet, ...) [email protected] Index :
|
Résumé :
pendant longtemps, les utilisateurs
de Linux ont trouvé facile et puissant ce système d'exploitation, mais la vérité
est que pour les débutants, non familiarisés avec l'environnement
UNIX, Linux apparaît comme un premier mystère (Linux appears at first arcane!) et difficile
à apprendre. L'auteur nous offre un petit guide des principales commandes UNIX qui
en rendront l'apprentissage plus facile.
Cette article a été spécialement écris pour les nouveaux utilisateurs de Linux (ou tout autre UNIX bien sûr). Pour les autres, plus expérimentés, il peut être un bénéfique rappel.
Parmis nos lecteurs, certains utilisent leur ordinateur à des tâches classiques : écrire du courrier, jouer et même faire la comptabilité de la maison. Pour ces utilisateurs familiaux, les termes "Système d'exploitation" restent plutôt flous, soit parce qu'ils ont eu leur machine avec Windows 95 pré-installé, "pour rien" (comme on dit), soit le plus souvent parce qu'ils ont "empruntés" leurs logiciels au copain ou au copain du copain. Ils désirent que leur ordinateur fasse le travail sans plus de question et deviennent bien embétés quand leur machine leur crache un message de plantage tel que "Memory Protection Error in 0FAG:BD07". En effet, qui peut comprendre ça ?
Puis, un jour vous entendez parler d'un système d'exploitation qui a la particularité de ne jamais planter, il s'appelle "Linux" et vous décidez de l'essayer en achetant un magazine d'informatique qui en contient une version sur CD.
[NdT.: pour être précis et comme le rappel très justement Richard STALLMAN fondateur de la FSF, Linux est en fait le noyau du système initié par Linus TORVALDS. Celui-ci ne nous serait pas très utile s'il n'était pas entouré par les outils GNU de la FSF. L'ensemble des deux forme le système d'exploitation. Ainsi, il serait plus juste de parler du système GNU/Linux mais l'usage fait que Linux désigne aussi l'ensemble.]
Après une procédure d'installation compliquée durant laquelle le disque dur a été partitionné, une étape pas évidente du tout, vous avez certainement conservez la majorité de la place du disque pour Windows et une plus petite pour Linux. Lorsque vous relancer la machine sous le nouveau système d'exploitation, vous obtenez quelque chose comme ça :
LILO:
C'est le moment de taper le nom saisi lors de l'installation du sélecteur de partition de boot de Linux. Ensuite, défilent plusieurs écrans remplis de messages étranges et finalement un prompt de login apparaît :
Red Hat linux 2.0.32
darkstar login:
À cette étape, vous devez taper "root" suivi du mot de passe donné durant l'installation.
En réponse, vous obtiendrez un résultat similaire à celui-ci :
root@darkstar:~#
Et maintenant, que faire ?
Bien sûr, je considère que durant l'installation les paramètres de la carte vidéo ont été saisie correctement. Sinon, startx générera une erreur.
L'étape suivante est de faire quelque chose de productif après tant d'efforts. Je recommande de tester StarOffice. C'est une suite bureautique comme celle de Microsoft avec de nombreux outils. Vous trouverez dans ce magazine, plusieurs articles consacrés à l'installation de StarOffice ainsi qu'à des initiations (text processor, presentation creation). Une version de démonstration de StarOffice est disponible à l'adresse http://www.stardivision.com/. Cet ensemble d'outils répond aux besoins de la majorité des utilisateurs.
Toute distribution décente du système d'exploitation Linux contient de nombreux logiciels très intéressants et très puissant, parmi eux :
La plupart d'entre eux fonctionnent sous X Window, mais les autres utilisent des interpréteurs de commande en ligne (shell) fournis avec le système d'exploitation. Linux, comme tous les UNIX, utilise ces fameuses lignes de commandes car il peut très efficacement traiter des demandes de calculs qu'un fenêtrage ralentirait. De plus, pour certains travaux, l'environnement d'un shell est plus efficace.
A partir de maintenant, je considèrai que l'utilisateur à un minimum de connaissances de MS-DOS ou d'un autre système d'exploitation utilisant un shell équivalent.
Sous Linux, les disques sont organisés en fichiers. Les types de fichiers sont nombreux :
/rootC'est le répertoire courant, le répertoire personnel du super-utilisateur. Soyons un peu curieux et allons sous le répertoire racine - il est appelé ainsi car il est le père de tous les répertoires et de tous les fichiers - avec la commande : cd /
Et maintenant, regardons ce que nous y trouvons en utilisant la commande qui permet de faire afficher le contenu du répertoire : ls
# ls
dev home lost+found root var bin dosc mnt sbin boot etc tmp lib proc usrTous ces répertoires ont un rôle dans le système de fichier UNIX :
Répertoire | Rôle |
---|---|
dev | Contient tous les fichiers de périphériques. |
home | C'est le répertoire père des comptes des utilisateurs. Oui, Linux possède la capacité de faire travailler plusieurs personnes en même temps sur le même ordinateur sans interférences entre eux (Linux est un vrai système d'exploitation multi-utilisateurs). Un nouvel utilisateur peut-être crée avec la commande : adduser [username] (où username est un nom quelconque comme bob ). Je vous recommande d'en créer un pour faire les travaux courants et de garder le compte de root uniquement pour les tâches d'administration, ainsi vous n'aurez pas la désagréable surprise d'effacer accidentellement tous les fichiers du disque parce que vous êtes root, alors qu'en étant un simple utilisateur (disons "bob"), cela est impossible. |
lost+found | Vous avez certainement déjà utilisé une fois Norton Utilities pour récupérer un fichier dans des secteurs défectueux de votre disque. Ne vous prenez plus la tête, si votre disque dur a un raté, le système lui-même s'occupera de regénérer le fichier, et quand il ne réussi pas à savoir d'où vient le bloc, il le place dans ce répertoire. C'est une des raison qui fait que Linux est bien meilleur que n'importe quel système d'exploitation Microsoft. |
root | C'est le répertoire de travail du super-utilisateur, par opposition /home est réservé au utilisateurs courants. |
var | Il contient de nombreux fichier temporaires contenant les messages du système, le courrier des utilisateurs, les tâches d'impressions, ... |
bin | Ici sont rangés les commandes système les plus importantes. |
dosc | Sur votre ordinateur, ce répertoire porte peut-être un autre nom. C'est l'accès aux partition Windows (ou MS-DOS) de votre machine(si vous l'avez). |
mnt | Si vous voulez accéder à un lecteur de cd-rom, et bien vous utiliserez ce répertoire pour faire un "montage". Pour rendre lisible le contenu du cd-rom dans le répertoire /mnt, exécutez mount -t iso9660 /dev/cdrom /mnt. Il est possible que cette commande diffère légèrement suivant votre configuration. |
sbin | C'est ici que les commandes avancées pour l'admnistration système sont rangées et pour des raisons de sécurité, elles ne doivent être ni lancées ni accédées par les utilisateurs standarts mais uniquement par l'administrateur (root). |
boot | C'est un espace prévu pour accueillir le noyau du système. Malgré tout, plusieurs distributions choisissent de le placer dans /. |
etc | Ce répertoire contient les fichiers de configuration système, c'est à dire les fichiers responsables du lancement du système ou des paramètres du système graphique (cela ressemble aux fichiers CONFIG.SYS et AUTOEXEC.BAT). |
tmp | Les programmes utilisent ce répertoire comme espace préféré pour les fichiers intermédiaires ou comme poubelle. En général, le système efface automatiquement les fichiers lors de son lancement. |
lib | C'est le répertoire des librairies de base du système. Linux est un système qui économise la mémoire de l'ordinateur en mettant le code partagé par plusieurs programmes dans un seul et même fichier, appelé librairie. Ainsi, une seule copie sera faite lorsqu'il sera utilisé. |
proc | Ce répertoire représente l'image des programmes en mémoire. Il est utilisé par des programmes comme ps, top ou kill qui nous renseignent sur les programmes en cours d'exécution sur le système et (si certains sont suspendus) les tuent. Ceci évite de faire comme sous Windows lorsqu'on relance le système et perdons ainsi toutes le travail fait dans les autres applications en cours. |
usr | C'est ici que les exécutables des applications ainsi que leurs documentations et leurs librairies sont rangées. |
En général, vous n'aurez besoin de gérer que les fichiers du répertoire root ou bien ceux d'utilisateur créés pour des besoins particuliers.
root@darkstar: ~#un prompt typique d'un interpréteur en ligne - la forme et la structure du prompte peuvent être configurées selon les désirs de l'utilisateur. Dans notre exemple, ce qui est avant le "@" donne le nom de l'utilisateur courant (root) et darkstar est le nom du système. Ensuite, le caractère ~ indique que le répertoire courant est le répertoire personnel de l'utilisateur ; dans le cas de l'administrateur du système, ce sera /root. Enfin, un "#" indique que ce compte très particulier a les privilèges du super-utilisateur. L'utilisateur est maintenant libre de saisir des commandes après le curseur clignotant. Par exemple :
root@darkstar:~# ls -lDans cet exemple, nous allons voir ce qu'il se passe lorsque l'utilisateur exécute la commande (ls), une option (-l) et un paramètre (bobby). Quand l'utilisateur appuie sur entrée, Linux liste le fichier bobby (i.e. cela va afficher des informations telles que la taille, la date de création et quelques autres petites choses qui seront abordées en détail plus tard (in details later)), Evidement, ceci arrivera si le fichier existe.
La syntaxe classique d'un shell est un nom de commande suivi par des optionss séparées par des espaces :
ls -l -a bobby
Mais, les options peuvent aussi être utilisées de la façon suivante :
ls -la bobby
Autre possibilité, mettre plus d'un nom de fichier comme filtre de la liste, eux aussi séparés par des espaces
ls bobby joe maria
Ceci nous affichera les fichiers bobby, joe et maria sans détails. Pour obtenir plus d'informations sur ces fichiers, on peut mettre l'option -l avant.
ls -l bobby joe maria
man [commande]
Cela va générer la page de manuel de la commande.
Il y une page de manuel en ligne pour la plupart des commandes du système.
De plus, pour connaître le mode d'emploi de la commande man elle-même,
tapez simplement man man. Ainsi, il n'est jamais nécessaire d'apprendre
par coeur toutes les options des commandes UNIXcar le manuel en ligne est toujours
à disposition et rapide d'accès pour vous rafraîchir la mémoire.
Mode d'emploi de la commande man : man man |
D'un autre côté, si seul le sujet vous est connu ou alors seulement un mot-clé, alors essayez :
apropos [sujet]
cela vous montrera une liste de commandes en relation avec ce sujet.
La majorité des commandes vous donne une courte description des options possibles et de la façon de s'en servir lorque vous les exécutez avec le paramètre --help. Par exemple, avec la commande ls
ls --help
Si la sortie de la commande remplie plus d'un écran, aucune inquiétude à avoir, l'utilisation des touches de déplacement du curseur de votre clavier permet de la parcourir dans son ensemble.
La plupart des distributions Linux contiennent un large panel de documentations sur les programmes et les utilitaires qui les composent. Ces documentations sont localisées dans le répertoire /usr/doc directory. Pour trouver de la lecture sur tetex, par exemple, il suffit de se rendre dans ce répertoire et de taper more tetex. La plupart des fichiers présent dans le répertoire /usr/doc sont en caractères ASCII.
Et ce n'est pas fini. Les pages info contiennent une description des commandes et des applications que nous pouvons aussi trouver dans les page info, lesquelles sont facilement accessibles avec l'éditeur emacs gràçe à la séquence de touche suivant : [Control+h][Control+i].
Si cela ne suffit encore pas, vous trouverez plus d'information peut-être sur le web,
essayez à ces adresses :
http://slug.ctv.es
http://www.linux.org
http://www.cs.us.es
http://www.redhat.com
http://www.debian.org
N'oublions pas aussi les newsgroups sous le protocole nntp où les
forum de discussions sur Linux sont nombreux et très variés :
news:es.comp.os.linux : un groupe de discussion espagnol
news:comp.os.linux.software : pour les questions sur les logiciels
news:comp.os.linux.hardware : pour les questions sur le matériel et leur configuration
news:comp.os.linux.development : les questions sur la programmation
Et finalement, parmi les nombreux canaux d'IRC, vous trouverez #linux
Si vous tapez la commande :
$ ls -l drwxr-xr-x 3 fenix fenix 1024 Jun 15 1997 Calendar drwx------ 5 fenix fenix 1024 Nov 6 19:35 Desktop drwx------ 2 fenix fenix 1024 May 16 1997 Mail drwxrwxr-x 2 fenix fenix 1024 Mar 10 00:28 X11 lrwxrwxrwx 1 root root 11 Mar 13 20:53 ada -> private/ada drwxrwxr-x 2 fenix fenix 1024 Mar 10 00:28 bin lrwxrwxrwx 1 root root 9 Mar 13 20:53 c -> private/c -rw------- 1 fenix fenix 868352 Apr 7 21:19 core lrwxrwxrwx 1 root root 12 Mar 13 20:53 lisp -> private/lisp drwx------ 2 fenix fenix 1024 Jun 13 1997 mail -rw-rw-r-- 1 fenix fenix 302 Apr 7 20:30 mine.bmp drwxrwxr-x 2 fenix fenix 1024 Mar 10 00:28 mydocuments drwxr-xr-x 2 fenix fenix 1024 Nov 6 18:59 nhs drwx------ 2 fenix fenix 1024 Mar 12 18:05 nsmail drwxrwxr-x 2 fenix fenix 1024 Feb 17 21:27 odd drwxrwxr-x 8 fenix fenix 1024 Mar 12 23:04 private lrwxrwxrwx 1 root root 14 Mar 13 20:53 prolog -> private/prolog -rw-r--r-- 1 fenix fenix 23051 Jan 27 21:14 system.fvwm2rc drwxrwxr-x 4 fenix fenix 1024 Mar 22 15:36 tmp lrwxrwxrwx 1 root root 11 Mar 13 20:53 www -> private/www -rwxr-xr-x 1 fenix fenix 1239 Nov 6 19:46 xinitrc.bakC'est ce qu'il s'appelle une longue liste, laquelle nous donne un grand nombre d'informations sur le répertoire. Nous pouvons distinguer 6 colonnes différentes.
La première nous donne des informations sur le fichier ; permissions.
Elle est composée de 10 lettres divisée en 3 groupes de 3 auquels s'ajoute une première lettre.
La première lettre en question nous informe du type du fichier :
- | fichier ordinaire |
d | dossier (répertoire) |
l | lien |
c | fichier spécial, périphérique en mode caractère : cela veut dire que vous pouvez envoyez ou recevoir des octets 1 par 1 mais sans possibilité de revenir en arrière. |
b | fichier spécial, périphérique en mode bloc : ce périphérique permet d'accéder de façon aléatoire aux informations. |
p | tube |
f | file |
Les autres lettres groupées trois par trois indiquent par qui et comment un fichier peut-être utilisé. Le premier groupe est pour le propriétaire, le second correspond aux droits des membres du groupe (un utilisateur intègre un groupe de travail sous-entends que les fichiers de ce groupe puissent être partagés) et enfin le troisième est pour les autres utilisateurs du système (ou du monde).
Voyons la signification de chacune des lettres d'un groupe.
- | ne peut pas lire le fichier et si c'est un répertoire, la liste de son contenu n'est pas lisible ; |
r | peut-être lu (NdT.: 'r' comme 'read', lire). |
- | ne peut pas écrire sur le fichier (ajouter des données non plus) et si c'est un répertoire, aucun fichier ne peut-être créé ou effacé de celui-ci ; |
w | on peut écrire (NdT.: 'w' comme 'write', écrire) dedans (créer et effacer des fichiers s'il s'agit d'un répertoire). |
- | le fichier ne peut-être exécuter et si c'est un répertoire, il ne sera pas accessible (c'est à dire qu'il ne sera pas possible de descendre dedans avec la commande cd) ; |
x | peut-être exécuté (NdT.: 'x' comme ?, jamais compris mais ça fait joli ;-) |
s | cette attribut n'a de sens qu'avec les fichiers exécutables. Quiconque lancera le programme, aura les droits ... Whoever runs this program, il tournera avec les droits du propriétaire du fichier à la place des permissions de celui qui l'a lancé. Ne vous inquiétez pas si vous ne comprenez pas l'utilité de cet attribut, il ne sert que pour les utilisateurs avertis. On l'appelle le bit "SetUID". |
t | permet de conserver le code du programme en mémoire de swap afin de pouvoir rapidement y accéder la fois d'après (NdT.: utilisé pour les programmes très demandés). |
La colonne suivante est le nombre de liens pointant sur ce fichier.
La suivante donne le nom du propriétaire du fichier.
La quatrième indique le nom du groupe qui peut accéder au fichier selon les actions autorisées par le propriétaire (celles-ci sont précisées dans le second triplet des permissions). The fourth one denotes the group which pertains, in a way that anybody belong to this group can access to it accordly to assigned group permissions (second permissions triplet).
La cinquième nous donne la taille du fichier en octets.
La sixième donne la date et l'heure de la dernière modification du fichier.
Et enfin vient le nom du fichier. S'il s'agit d'un lien, la référence du fichier est indiqué par un -> [source]
Il y a aussi des fichiers cachés sous Linux. La première lettre de ces fichiers est un (.).
Nous pouvons lister les fichiers cachés avec l'option -a :
$ ls -a .profile .bash_profile .bashrc .xinitrc mmime.bmp misdocumentos
cp [fichier] [destination]
Si la destination n'est pas un répertoire existant, la commande sera interprétée comme si vous vouliez copier le fichier sous un autre nom.
mv [fichier] [destination]
Si la destination n'est pas un répertoire existant, cela sera interprété comme si vous vouliez renommer le fichier.
cd sans arguments vous place dans le répertoire par défaut de l'utilisateur. Si vous êtes le super-utilisateur, cela vous placera dans le répertoire /root ; si vous êtes bob, cela vous placera dans /home/bob.
Comme vous pouvez le constater, ici les répertoires ont la bar inclinée vers la droite (et non vers la gauche comme sous MS-DOS).
Enfin, /home peut-être remplacé par le caractère ~ . Ainsi cd ~pepe vous placera dans /home/pepe.
-i | pour avoir une demande de confirmation pour chaque fichier ; |
-r | pour détruire fichiers et répertoires de façon récursive ; |
-rf | pour détruire fichiers et répertoires de façon récursive et sans demander de confirmation ni donner d'informations. |
Et les liens symboliques avec : ln -s [fichier_source] [fichier_cible]
cat [nom_fichier]
more [nom_fichier]
C'est un programme interactif. Les "touches" (commandes intéractives) les plus intéressantes sont :
Key | Function |
---|---|
|
avancer d'une page |
b | revenir une page en arrière |
retour chariot | avancer d'une ligne |
/[chaîne] | chercher dans le texte la prochaine occurence de la chaîne dans le fichier |
?[chaîne] | cherche la dernière occurence de la chaîne dans le fichier |
q | quitter |
Il existe un équivalent plus développé de ce programme, il s'appelle less.
chmod [qui][+/-/=] [nouveaux-droits] [fichiers]
Ici, qui fait référence à :
Qui | Description |
---|---|
u | l'Utilisateur propriétaire du fichier |
g | Groupe associé au fichier |
o | le reste des utilisateurs (NdT.: Other, autres) |
a | tous les utilisateurs (le propriétaire, ceux du groupe, les autres)(NdT.: All, tous) |
Avec + nous ajoutons des droits, avec - nous en retirons et avec = nous les mettons exactement.
Dans nouveaux-droits, nous indiquons quels sont les droits à ajouter ou retirer. Ceux-ci sont décrit dans les lettres du premier champ du format long de la commande ls (pour rappel, r : lecture, w : écriture, x : exécution ou accès, s : SetUID)
Voyons un exemple pour que les choses soient clairs :
chmod u+rw moi
Avec cette ligne de commande, nous ajoutons à l'utilisateur, actuellement vous, le droit de lire et de modifier le fichier dont le nom est moi.
chmod a-x répertoire
Avec celle-ci, nous annulons le droit à tous les utilisateurs (vous y compris, le propriétaire) d'entrer dans le répertoire répertoire
chmod a d'autres options avancées que nous ne verrons pas ici, mais vous pouvez regarder dans les pages du manuel avec la commande :
man chmod
rm *
pour effacer tous les fichiers d'un répertoire
rm a*
pour effacer tout ceux commencant par la lettre a
rm bet*as
pour effacer tous les fichiers commencant par bet et finissant par as
cat c?t
pour afficher le contenu de tous les fichiers qui commencent par c, qui n'ont que trois lettres et dont la dernière est un t.
more [tp]erez
affiche les fichiers terez et perez, s'ils existent.
cp c[AEIOU]endo directory
copie tous les fichiers commencant par un c suivi par une voyelle en majuscule et finissant par endo vers le répertoire directory.
Nous pouvons aussi utiliser "-" pour créer des intervales :
mv *[a-z] trash
déplace tous les fichiers dont les noms sont en minuscules vers le répertoire trash.
Toujours plus fort, nous pouvons aussi rejeter un intervale :
ls [!a-zA-Z]*
liste les fichiers dont le nom ne commence pas par une lettre de l'alphabet minuscule ou majuscule.
Les redirections permettent de rediriger la sortie d'une commande ou d'un programme ailleurs que vers l'écran, c'est à dire dans un fichier ou vers un autre programme. Ainsi, nous pouvons envoyer un fichier dans l'entrée d'une commande, mettre l'affichage d'une commande dans un fichier et même envoyer l'affichage d'une commande dans l'entrée d'une autre. Enfin, mais cela sert moins, nous pouvons envoyer un fichier dans un autre.
cal > février
Ici, nous envoyons l'affichage de la commande cal - la calendrier pour le mois en cours - dans le fichier février.
mail marc < courrier
Cela va envoyer par courrier électronique à marc le fichier courrier
cat fichier1 fichier2 fichier3 >> fichier_complet
Nous ajoutons à la fin (concaténons) du fichier fichier_complet le contenu des fichiers fichier1, fichier2 et fichier3.
who | grep "marc"
who : ("qui" en français) affiche la liste des utilisateurs connectés sur le système, quel terminal ils utilisent et depuis combien de temps. grep : imaginons que nous voulions filtrer la sortie de la commande précédente pour ne voir que les lignes contenant marc. Nous savons que marc est le nom d'un utilisateur à qui nous voulons parler et dans notre système, il n'y a pas de terminal appelé marc, ainsi nous savons si marc est présent sur le système.
Allons-y par étapes. D'abord, lançons la commande who et ensuite
utilisons une tube pour envoyer la liste des utilisateurs à la commande grep
avec en paramètre le nom d'un utilisateur.
Pour un résultat plus parlant qui afficherait les noms de plusieurs utilisateurs différents,
utilisons le concept de console.
Linux offre 7 consoles en standart sur votre clavier.
De plus, Linux permet de se connecter à d'autres ordinateurs avec du matériel ordinaire
par l'ajout de matériel réseau comme une carte token-ring, une carte ethernet,
un modem, ...
L'utilisateur accède aux différentes consoles de l'ordinateur par les combinaisons de
touches Alt+F1 (pour la première), Ctrl+Alt+F2 (pour la deuxième), Ctrl+Alt+F3,
Ctrl+Alt+F4, Ctrl+Alt+F5 and Ctrl+Alt+F6. Ctrl+Alt+F7 et Ctrl+Alt+F8 sont
les terminaux graphiques, activé par startx. Les précédentes combinaisons
permettent donc de passer d'une console texte à une console graphique sans problème.
$ cat > carta Cher Bob : Je voulais te dire que ...Pour sortir de la saisie, utiliser la séquence [Ctrl]+[d].
Une version graphique du populaire EMACS (XEMACS). |
Manuel Muriel Cordero est étudiant à la Facultad de informàtica y estadística de Sevilla. (c) Avril 1998.
All trademarks reported in this article are property of their respective productive enterprises.
Ces pages web sont maintenues par Miguel Ángel Sepúlveda
© Manuel Muriel Cordero 1998 LinuxFocus 1998 |