Aller plus loin avec Linux
Aller plus loin avec Linux - Découvrir Linux
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'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.
Un lecteur de CD est représenté par /dev/sr0, 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.
On peut aussi monter des périphériques en utilisant leur identifiant unique universel (UUID).
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 DEB d'Ubuntu sur une Debian, ou 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'utilisation des interfaces graphiques : gnome-software, gdebi, kpackage, rpmdrake, synaptic... Pas de surprise, 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.
Savez-vous que la plupart des logiciels libres dont vous aurez besoin sont sur les dépôts logiciels (en anglais repositories) de votre distribution ? Pour les installer, utilisez simplement les interfaces graphiques citées précedemment.
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'article explorer sa configuration.
Connectez-vous !
Voir aussi les rubriques de Léa concernant le Matériel et le Réseau.
Linux cohabite avec Windows et macOS
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
où /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
Afin d'accéder aux données Mac OS depuis Linux, 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 MacOS. Une liste non exhaustive des logiciels les plus connus :
- Outils bureautique : Libreoffice
- Navigateur Internet : Mozilla Firefox
- Messagerie : Mozilla Thunderbird
- Graphisme : GIMP
- Sécurité : GnuPG
- etc.
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 commande 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 :
- les entrailles du shell
- Catégorie:Trucs Shell pour mieux comprendre ou faciliter le travail
- les bases de la programmation du shell
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 chiffrer 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 carte mémoire | mount umount |
root@pingu# mount /dev/cdrom /mnt/cdrom |
Pour formater une partition, un périphérique, 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 |
systemctl | root@pingu# systemctl start NetworkManager root@pingu# systemctl stop NetworkManager root@pingu# systemctl enable NetworkManager |
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 DVD ou les cartes mémoires. 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 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 Linux, la suite : Trouver de l'aide - Découvrir Linux, les sources d'aide essentielles à connaitre pour progresser sur votre nouveau système.
@ Retour à la rubrique Découvrir Linux
À propos de cette documentation
Cette page fut créée par Jice et Anne le 01/12/2002. Elle a été mise à jour par Jiel en 2008, en 2009, en 2010, en 2011, en 2018, en 2022. 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 Premières questions d'un débutant sous Linux - Découvrir Linux écrite par Jice et Anne en 2002.
Copyright
© 2002, 2008, 2009, 2010, 2011, 2018, 2022 Jean-Christophe Cardot et Anne Nicolas
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 4.0 : https://creativecommons.org/licenses/by-sa/4.0/ |