Aller plus loin avec Linux

De Lea Linux
Aller à la navigation Aller à la recherche


Découvrir GNU/Linux - Aller plus loin

par Jice & Anne

Tout sur GNU/Linux ;-)

Aller un peu plus loin

Maintenant que vous êtes plus familier avec le manchot, poussons un peu plus loin l'exploration.

Connexion en mode texte, ou "de l'utilité de connaître quelques notions de shell"

Lorsqu'on parle de shell, il n'est pas question de partir ramasser des coquillages (shell en anglais) mais de vous parler de la ligne de commande de Linux - cela ressemble à l'environnement du mode DOS dans les systèmes Microsoft, mais en plus bien plus puissant. Votre distribution vous propose un certain nombre d'outils graphiques ô combien plus conviviaux que la ligne de commande. Toutefois dans certaines situations, il vous sera bien utile de savoir utiliser quelques commandes de base pour manipuler les fichiers, obtenir des informations sur votre système, arrêter un programme...

Pour plus d'informations, lisez la fiche "la ligne de commandes" ou encore l'excellent ;-) article sur le shell de Léa ; voici en avant-première quelques commandes indispensables à connaître :

Commande Linux équivalent MS-DOS à quoi ça sert
cd cd change le répertoire courant.
ls dir affiche le contenu d'un répertoire
cp copy
xcopy
copie un ou plusieurs fichiers
usage :
cp source destination
pour copier un répertoire :
cp -R rep_source destination
rm del efface un ou plusieurs fichiers
rm -rf deltree efface un répertoire et son contenu
mkdir md crée un répertoire
rmdir rm efface un répertoire s'il est vide
mv ren
move
déplace ou renomme un fichier
usage :
mv source destination
man help affiche l'aide concernant une commande particulière
cat type affiche un fichier à l'écran


Explorer le manchot

Comme on vous l'a déjà conseillé, il est souvent fort utile de connaître quelques commandes en ligne. De la même façon, vous gagnerez du temps si vous avez un minimum de connaissance sur l'arborescence d'un système Linux. En clair, ne pas avoir à chercher 2 heures un fichier :-). Cette arborescence respecte une certaine logique et les répertoires de la racine ont chacun leur rôle.

L'arborescence

Sous Linux, ou tout autre Unix d'ailleurs, il n'y a pas de lettre représentant le disque dur comme le C: de Windows/DOS.
De plus, le signe '\' est remplacé par '/' pour séparer les répertoires.
Il y a une seule arborescence, qui débute à la "racine", notée '/', et tous les disques durs/partitions apparaissent dans cette arborescence avec leur contenu de façon transparente comme un répertoire.

Les périphériques

De plus, tout périphérique est identifié à un fichier qui se trouve dans le répertoire /dev (comme device, périphérique en anglais). Par exemple, le disque maître du deuxième port IDE est identifié par /dev/hdc, sa deuxième partition par /dev/hdc2.
Le lecteur de disquette est représenté par /dev/fd0, etc.

Les partitions / les points de montage

Les partitions que l'on va créer sur les disques durs seront attachées à des répertoires de l'arborescence, ou "points de montage". C'est ce qu'on appelle "monter une partition". Le point de montage est un simple répertoire, vide avant le montage, et qui après le montage, représente le contenu de la partition montée.
Par exemple, supposons que nous ayons créé une partition /dev/hda2 (premier disque IDE, 2ème partition) pour contenir le système. On montera cette partition (automatiquement, heureusement !) dans le répertoire racine /. Si la partition /dev/hda3 est destinée à contenir les données utilisateur, on la montera dans le point de montage (=répertoire) /home. On verra le contenu de cette partition dans le répertoire /home comme si c'était n'importe quel autre répertoire, alors que physiquement les données sont sur une autre partition.
De même, pour accéder à la disquette, on montera le périphérique /dev/fd0 dans le point de montage /mnt/floppy ou /floppy (selon la distribution) et pour accéder au CD-ROM, on montera le périphérique /dev/cdrom dans le point de montage /mnt/cdrom ou /cdrom.

Vous trouverez plus d'information sur ce point dans l'article Partitionnement.

Les répertoires standards

Linux possède des répertoires "spéciaux" à la racine (un peu comme le C:\windows), qui sont classiques dans les systèmes Unix et peuvent ou non représenter un point de montage pour une partition.

On a déjà vu par exemple le répertoire spécial /dev où tous les périphériques sont répertoriés en tant que fichiers, ou encore le répertoire /home qui contient les données personnelles des utilisateurs.

Chacun des répertoires ci-dessous peut être soit un simple répertoire dans la partition racine, soit le point de montage d'une autre partition, mais dans tous les cas le résultat est le même : des fichiers dans des répertoires.

Les répertoires standards de Linux sont :


/

La racine du système = la base.

/bin

Programmes nécessaires au boot, et disponibles ensuite à tous les utilisateurs. On y trouve la plupart des commandes unix de base.

/boot

Fichiers utilisés pour amorcer le noyau.

/dev

Tous les périphériques. Le repertoire est en général géré dynamiquement par le système.

/etc

Fichiers de configuration du système.

/home

Tous les répertoires personnels des utilisateurs et de certains services comme le FTP, le serveur Web, Samba, etc.

/lib

Bibliothèques et modules (comme les DLL de Windows) nécessaires au boot.

/media

Points de montages des médias amovibles qui se montent automatiquement (typiquement les périphériques USB).

/mnt

Points de montages des périphériques (ou /mnt/cdrom, /mnt/floppy, /mnt/zip, etc.).

/opt

Dans ce répertoire (optionnel), on peut ajouter des logiciels afin qu'ils ne s'installent pas dans les répertoires système. Peu utilisé, sauf par certaines applications commerciales.

/proc et /sys

Fichiers d'information sur la configuration système (les fichiers sont générés dynamiquement, pas de modifications possibles). Les fichiers dans ce répertoire n'existent pas sur le disque, c'est Linux qui les crée en temps réel lorsque vous en avez besoin.

/root

Répertoire home de l'administrateur

/sbin

Programmes nécessaires au boot, disponibles au root uniquement

/tmp

Fichiers temporaires

/usr

Programmes, données, accessibles par les utilisateurs et non nécessaires lors du boot.

/var

Fichiers de log, spool d'impression, de mail, bases de données etc. En général, fichiers qui changent tout le temps ( variable, d'ou le nom /var ).

Ces répertoires sont généralement présents sur toutes les distributions Linux. Il peut y en avoir éventuellement quelques uns en plus suivant les distributions.

LSB, FHS

Vous entendrez peut-être parler de FHS ou de LSB. Quésaco ? LSB (Linux Standard Base) se base sur FHS (Filesystem Hierarchy Standard) afin de définir la manière dont les fichiers doivent être organisés sur le disque dur, la présence et les noms de certains fichiers et répertoires, etc. afin que les différentes distributions de Linux soient compatibles entre-elles, pour faciliter notamment l'installation d'un logiciel sur toute distribution. Les distributions récentes respectent assez bien la LSB, mais des efforts restent à faire afin de pouvoir installer un paquet logiciel RPM de Mageia sur une Fedora (et vice versa).

Équipons le manchot : installation de logiciels

Pour installer un logiciel sous Linux, vous aurez plusieurs méthodes à disposition que nous allons classer de la plus conviviale à la plus ardue :

  • l'installation de paquets livrés avec votre distribution (fichiers *.rpm, *.deb, *.tgz) : savez-vous que la plupart des logiciels libres dont vous aurez besoin sont sur les CD/DVD ou les dépôts (miroirs ou repositories) de votre distribution ? Pour les installer, utilisez donc les interfaces graphiques (gdebi, kpackage, rpmdrake ou drakrpm, aptitude, synaptic... selon les distributions).
  • l'installation d'autres packages (téléchargés, etc.). Pour la simplicité, préférez les packages dits "binaires", c'est à dire déjà compilés.
    • l'utilisation des interfaces graphiques : gdebi, kpackage, rpmdrake, synaptic... Pas de surprise, la souris suffira et en un clic votre programme sera installé
    • la ligne de commande : une fois bien assimilé, ce mode d'installation peut s'avérer encore plus rapide. Sous Debian et Ubuntu, utilisez apt-get ; sous Mandriva, urpmi, sous Fedora, dnf.
    • la compilation des sources : le fin du fin ! La méthode préférée des puristes et qui vous permettra d'optimiser votre programme à votre configuration matérielle.

Pour tout savoir sur l'installation de logiciels, voir la documentation Installer un logiciel sous Linux.

Le manchot me parle : où retrouver les informations disponibles ?

Souvent vous aurez ce genre de message sur votre console :
You have new mail in /var/spool/mail/root

En effet, le système communique avec ses utilisateurs au moyen de courriers électroniques envoyés sur une boîte aux lettres locale. Il fournit des infos concernant l'état des services réseau, des infos sur la sécurité. (Il est d'ailleurs possible de choisir le type d'infos ainsi envoyées). Pour les consulter, on utilise la commande mail comme ci-dessous :

root@pingu# mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 root@pingu.linuxerie Wed Sep 25 04:02 80/2205 "LogWatch for pingu"

Par exemple, ici vous avez un nouveau mail (signalé par N ). Pour le lire, c'est simple il suffit de taper son numéro après le prompt ?. Pour les effacer, on tapera d suivi du numéro de mail. Pour quitter, on tape q (plus d'infos avec man mail).

Si consulter vos mails de cette façon vous rebute (et j'avoue qu'il y a de quoi ;-), vous pouvez configurer votre client de mails graphique (Kmail, Sylpheed, Mozilla Thunderbird, Evolution, Balsa...) afin qu'il récupère les mails de la boîte locale, et vous les présente ainsi dans son interface.

  • Vous avez besoin d'informations sur votre système et votre manchot vous en a délivrées au démarrage... Ca va un peu vite non ? Qu'à cela ne tienne, vous pouvez retrouver ces infos en tapant la commande dmesg. Il y a plus d'informations que peut n'en contenir l'écran ? essayez la commande "dmesg | less"...
  • Pourvoir les logs que le service journald collecte sur un peu tout ce qui se passe dans le système, utilisez la commande journalctl.
  • Des informations très intéressantes se trouvent dans le fichier /var/log/messages (messages du noyau, lancement de drivers, etc.). Consultez-le aussi en cas de problème.
  • Le répertoire /var/log contient aussi d'autres fichiers du même genre, comme par exemple les messages du serveur X (couche graphique), que vous pouvez consulter si le mode graphique refuse de démarrer.
  • Pour des informations plus détaillées (matériel, système, mémoire...) jetez un oeil sur l'excellent article de Jonesy, explorer sa configuration.

Connectez-vous !

Rendez-vous dans les rubriques de Léa concernant le Matériel et le Réseau.

GNU/Linux cohabite avec Windows et Mac OS

Comme vu dans le paragraphe consacré au gestionnaire de démarrage, il vous est possible de conserver des systèmes d'exploitation différents sur votre machine. Vous pouvez choisir celui que vous allez démarrer. Il vous est également possible d'accéder à partir de Microsoft Windows à vos données Linux. Il existe pour cela un utilitaire très simple, à installer sur Windows : explore2fs.

Le contraire est également possible. Il vous est possible d'accéder à vos données Microsoft Windows en étant sous Linux. En général, c'est fait automatiquement à l'installation avec une distribution grand public telle qu'Ubuntu ou Fedora.

Sinon, pour mettre à disposition ces données, on utilise la commande mount déjà rencontrée :
root@pingu# mount -t vfat /dev/hda3 /mnt/windows
/dev/hda3 est la partition contenant Windows.

Vous pouvez également ajouter ces informations dans le fichier /etc/fstab de la manière suivante :


root@pingu#cat /etc/fstab
...
/dev/hdc3 /mnt/windows vfat defaults 1 2

NTFS a lontemps posé problème, car le pilote NTFS de Linux ne savait accéder aux partitions NTFS uniquement en lecture seule. Il fallait alors prévoir une partition en FAT32 afin de pouvoir "envoyer" des informations dessus depuis GNU/Linux qui pouvaient être relues sous Windows... Depuis 2007, le projet ntfs-3g permet de lire et écrire sur les partitions NTFS sans problème. Il est installé par défaut dans les distributions majeures.

Afin d'accéder aux données Mac OS depuis Linux, le cas ressemble au cas NTFS décrit ci-dessus. Soit votre disque est formaté au format HFS. Dans ce cas, Linux saura y accéder sans problème (remplacez le vfat ci-dessus par hfs). Mais les MacOS récents formatent les partitions dans le nouveau format HFS+ par défaut. Si vous êtes dans ce cas, le pilote HFS+ pour Linux étant encore au stade du développement, vous devrez prévoir une partition d'échange au format HFS afin de pouvoir "envoyer" des informations dessus depuis Linux qui pourront être relues sous Mac OS, et utiliser les hfsplus-utils qui permettent de lire les partitions HFS+.

Autre possibilité : vous disposez de logiciels développés pour Windows et vous souhaitez pouvoir continuer à les utiliser. C'est possible grâce à des logiciels tels que Wine. Il s'agit d'un programme qui émule Windows (c'est à dire qu'il simule son fonctionnement). Tous les programmes ne fonctionnent pas, mais il peut être intéressant de tester celui qui vous intéresse (pour information, Microsoft Word, Excel et PowerPoint fonctionnent, Lotus Notes, etc.). S'ils ne fonctionnent pas, essayez avec la toute dernière version de Wine...

Il est également possible d'émuler des systèmes entiers tels que Windows ou Mac OS X en utilisant des émulateurs hébergés par votre Linux. On citera notamment KVM, Qemu, VirtualBox et Xen. Voir les documentations concernant les émulateurs et la documentation Essayer GNU/Linux sans l'installer. On citera également un émulateur DOS, Dosemu. Si vous utilisez un ordinateur Apple, vous pouvez lancer Mac OS sous Linux, et cela fonctionne très bien. Utilisez pour cela MacOnLinux.

Remarque : Si vous souhaitez passer en douceur au monde du libre, n'oubliez pas qu'il existe des logiciels libres développés pour Windows et/ou Mac OS. Une liste non exhaustive des logiciels les plus connus :

Administrez votre machine

L'utilisation du shell

On l'a déjà dit, il existe de nombreux outils de configuration en mode graphique pour le système. Toutefois connaître les bases de la ligne de comande pourra vous dépanner en cas de dysfonctionnement de l'interface graphique, ou tout simplement vous permettra de répondre à cette grande question "dis Nux, comment tu marches ?":). Ci-dessous quelques liens indispensables :

su et sudo

Si en essayant d'exécuter une commande, le système refuse avec un message d'erreur parlant de problème d'autorisation, du genre permission denied, essayez de lancer la même commande en tant que root. Attention ne faites pas n'importe quoi en root, root étant super-utilisateur, un grand pouvoir implique une grande responsabilité !

Vous êtes connectés en tant qu'un utilisateur normal, et vous voulez lancer une commande root ou en tant qu'un autre utilisateur ? Pas de problème, la commande su (substitute user ou super user) est votre amie. Tapez su - root ou "su - autre_utilisateur", suivi de son mot de passe, et le tour est joué. La commande whoami vous dit qui vous êtes (who am i aussi).

Un classique des distribution est également de mettre en place sudo.

Cette commande sudo permet d'accorder à certains utilisateurs (ou groupes d'utilisateurs) la possibilité de lancer une commande en tant que super-utilisateur, ou comme autre utilisateur, tout en conservant une trace des commandes saisies et des arguments. Les pouvoirs accordés ou non par sudo sont définis dans le fichier /etc/sudoers.

Gestion des utilisateurs

Il existe des outils graphiques pour créer des utilisateurs, mais vous pouvez en créer en mode texte si vous le souhaitez. Pour cela, ouvrez un terminal, devenez root et utilisez la commande adduser : adduser anne ajoute l'utilisateur anne, pour lui donner un mot de passe, faites ensuite passwd anne.

Pour changer le mot de passe de l'utilisateur tuxedo, tapez passwd tuxedo.
Pour changer votre propre mot de passe, tapez simplement passwd, suivez les indications, et (en tant que root), pwconv" afin de crypter et protéger les mots de passe.

Les programmes exécutables

Avant d'aborder les programmes exécutables, une précision sur les chemins d'un fichier. Il y a en effet 2 façons de nommer un fichier et son chemin. Pour illustrer cet exemple, je pars du principe que je me situe dans le répertoire /home/anne et je veux décrire le fichier /home/anne/essai/doc :

  • chemin absolu : je décris tout le chemin pour arriver jusqu'au fichier, en partant de la racine "/". Donc dans mon exemple, j'ai /home/anne/essai/doc.
  • chemin relatif : je décris le chemin pour arriver jusqu'au fichier, en partant de ma position actuelle. Donc dans mon exemple, j'ai essai/doc Remarque : dans un chemin, le "." désigne le répertoire courant et ".." le répertoire juste au-dessus (appelé aussi répertoire père).

Lorsque vous souhaitez exécuter un programme, en plus des droits vous devrez porter attention à une variable d'environnement importante : PATH. En effet, lorsque vous voulez lister le contenu d'un répertoire, vous tapez ls et non pas /usr/bin/ls. Car le shell consulte le contenu de la variable PATH. PATH est la variable qui contient tous les chemins dans lesquels le shell va aller chercher votre commande.
Exemple :


anne@pingu$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin

Donc si lorsque vous tapez une commande, le shell vous renvoie le message "bash: truc: command not found", vous avez 2 cas de figure : soit la commande n'existe pas, soit le chemin de la commande ne figure pas dans PATH. Si vous voulez absolument exécuter truc sans modifier PATH, il suffit de préciser le chemin de la commande.

Astuces :

  • pour savoir où se situe une commande, utilisez whereis
    Exemple :
    anne@pingu$ whereis ls
    ls: /bin/ls
  • la plupart des commandes de base se trouvent dans /bin et /usr/bin pour les commandes utilisateurs et /sbin et /usr/sbin pour les commandes administrateur.

Commandes de base de l'administration système

Ci-dessous une série de commandes de base. Pour plus de précisions sur la syntaxe, consulter la documentation de la commande : taper dans une console :
$ man nom_de_la_commande

Rôle Commande Exemple
Pour obtenir la date système, ou privilège réservé à root, modifier cette date date root@pingu# date
mar déc 3 13:54:33 CET 2002
Pour connaître la place disque utilisée par un fichier, un répertoire du root@pingu# du -ks /home/anne
388420 /home/anne
Pour connaître la place disponible dans un système de fichiers df

root@pingu# df

Système de
fichiers       1K-blocs    Utilisé Disponible U.% Monté sur
/dev/hdc3        4031560    107780   3718980   3% /
/dev/hdc1         198313      9181    178878   5% /boot
/dev/hda7        3968852   3219768    547472  86% /home
Monter / démonter un système de fichiers (mettre à disposition les données) - opération à effectuer pour accéder notamment au contenu d'un CD-ROM ou une disquette mount
umount
root@pingu# mount /dev/cdrom /mnt/cdrom
Pour formater une partition, une disquette, c'est-à-dire créer un système de fichiers (ici ext2 ou ext4) mkfs.ext2
mkfs.ext4
root@pingu# mkfs.ext2 /dev/floopy
root@pingu# mkfs.ext4 /dev/hda3
Créer un utilisateur, un groupe useradd
groupadd
root@pingu# useradd anne
root@pingu# groupadd utilisateur

Pour gérer en ligne de commande le démarrage ou l'arrêt d'un service

service
chkconfig
root@pingu# service samba start
root@pingu# /etc/init.d/samba start
root@pingu# service samba stop
root@pingu# chkconfig --level 2345 samba on
Pour réaliser des sauvegardes compressées ou non de mes données. tar root@pingu# tar cvzf /home/anne anne.tar.gz
root@pingu# tar xvzf anne.tar.gz
Pour lister les processus tournant sur ma machine ps

root@pingu# ps -aux

USER       PID %CPU %MEM   VSZ  RSS TTY STAT START   TIME COMMAND
...
root       524  0.0  0.2  1336  356 ?   S    Dec02   0:00 klogd -x
rpc        533  0.0  0.3  1484  432 ?   S    Dec02   0:00 portmap
rpcuser    552  0.0  0.4  1528  544 ?   S    Dec02   0:00 rpc.statd
...

Ceci précisé, et même s'il est extrêmement utile de connaître les commandes en ligne, vous avez des outils graphiques à votre disposition pour administrer votre machine. L'un des plus répandus et des plus complets est sans doute webmin. Il vous permet d'administrer votre machine soit en local, soit à distance au moyen d'un navigateur.

Automatiser le montage des systèmes de fichiers (périphériques fixes ou amovibles)

Les distributions montent automatiquement les périphériques USB ou les cartes mémoires.

On peut également vouloir le faire à la main. Dans les commandes déjà évoquées à plusieurs reprises figure la commande mount. On a vu qu'elle permettait de monter un système de fichiers et donc de mettre à disposition les données du système de fichiers.

Le fichier /etc/fstab vous permet d'automatiser dès le démarrage de la machine le montage des systèmes de fichier, avec la possibilité d'utiliser toutes les options de la commande (montage en lecture seule, type de système de fichiers, ...).

Le fichier est également utilisable pour les supports dits amovibles comme les CD-ROM et les disquettes. On a recours pour cela à supermount ou d'autres outils plus modernes.

Le noyau Linux

Une fois que vous vous êtes familiarisé avec l'environnement GNU/Linux, vous êtes fin prêt pour découvrir toutes les arcanes du noyau Linux. Vous aurez peut-être besoin de recompiler le noyau pour changer de version (correction de trous de sécurité, prise en charge de nouveaux drivers), parce que vous ajoutez un nouveau matériel non pris en charge par votre noyau ou tout simplement pour pouvoir dire "je l'ai fait !" :-). Il paraît même que cela provoque du plaisir à certains geeks ;)

Pour tout savoir de la compilation étape par étape, consultez l'article sur le noyau (kernel) de Linux.

Prêt ? Partez !!!

Voilà globalement terminée notre présentation de Linux. Vous êtes maintenant prêts à exploiter toutes les possibilités du manchot. Que peut-on attendre de Linux en tant qu'environnement de travail ? Énormément !

Pour découvrir davantage, il est peut-être temps d'installer une distribution si ce n'est pas déjà fait. Vous découvrirez encore plus votre système dans les différentes rubriques de Léa, par exemple les rubriques Administration système et Réseau.



Découvrir GNU/Linux, la suite : vous sont présentées les sources d'aide essentielles à connaitre pour progresser sur votre OS préféré.

@ Retour à la rubrique Découvrir GNU/Linux

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jice et Anne le 01/12/2002. Elle a été mise à jour par Jiel en 2008, en 2009, en 2010, 2001 et en 2018. La section concernant l'arborescence est issue d'un paragraphe de la documentation sur la préparation de l'installation d'un système Linux écrite par Jice sur la base du travail de Serge, en 1999. Les parties «su et sudo» et «gestion des utilisateurs» sont issues de paragraphes de la documentation Découvrir Linux - les 1res questions écrite par Jice et Anne en 2002.

Copyright

© 01/12/2002 Jean-Christophe Cardot et Anne Nicolas

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/