EpsmWiki : Linux/IntroductionALaLigneDeCommande

 

Introduction à la ligne de commande

Contenu

Avertissement

J'ai d'abord pensé inclure dans ce document un aide-mémoire des commandes les plus courantes. Puis j'ai vu que pour les introduire il me fallait d'abord évoquer des notions de base concernant les fichiers, les utilisateurs, etc. Que tout cela ferait une très longue page... Pour simplement répéter ce qui est déjà écrit ailleurs, et mieux que je ne saurais le faire.

Finalement j'ai conservé le début de l'article, renvoyant pour une présentation générale de Linux, des différentes commandes et des tâches d'administration courante à des documents disponibles sur Internet. En somme cet article n'est rien d'autre qu'une introduction à ces documents — ainsi qu'une incitation à les lire --, destinée à une personne qui vient d'installer (ou de se faire installer) Linux sur sa machine et devient de facto l'administrateur de son système.

Quoi, pourquoi, pour qui ?

Cette page doit permettre aux drogués à la souris et linuxiens débutants de surmonter leurs appréhensions et réticences à utiliser un terminal pour y entrer des "lignes de commande". Ils pourront ainsi dialoguer directement avec leur machine et commencer à l'apprivoiser.

Un rappel historique de notions préliminaires (système d'exploitation, console, terminal, interfaces homme-machine textuel et graphique, niveaux d'exécution et interpréteur de commande) expliquera d'abord le vocabulaire en usage.

Puis nous introduirons les références aux documents qui nous semblent les plus utiles aux linuxiens débutants, pour peu qu'ils aient le désir de maîtriser réellement leur système et acceptent de consacrer un peu de temps à apprendre, afin d'en gagner beaucoup ensuite.

Dans ce document, les citations sont en caractères italiques.

Notions préliminaires

Systèmes d'exploitation, mode de connexion, administrateurs et utilisateurs

Pour fonctionner, chaque ordinateur comporte (au moins) un système d'exploitation. Ce terme désigne un ensemble de programmes permettant notamment aux autres logiciels (souvent appelés applications) de communiquer entre eux et avec les différents périphériques (voir Document externecet article).

Gardons à l'esprit que Linux, est un système d'exploitation (plus précisément un noyau de système d'exploitation — voir Document externece lien) multi-utilisateurs, ce qui veut dire que plusieurs utilisateurs peuvent grâce à lui "se partager" l'ordinateur, ses ressources (processeurs, mémoire vive, supports de stockage ...) et les périphériques associés (imprimantes, notamment) .

Autrefois (cela existe encore dans les "grands" systèmes) chaque ordinateur comportait :

Autrefois en effet la plupart des utilisateurs se connectaient à un ordinateur par l'intermédiaire d'un terminal physique. c'est à dire, un clavier et un écran reliés à l'ordinateur par une ligne de télécommunication. Dans ce contexte "se connecter" veut dire : s'identifier auprès du système (typiquement en indiquant un nom d'utilisateur et un mot de passe), afin que celui-ci vous donne accès aux ressources et applications qu'il gère, en fonctions des droits qui vous ont été alloués sur celles-ci.

Ce mode d'accès "à distance" existe toujours. Cependant les utilisateurs d'un ordinateur de bureau ou d'un ordinateur portable se connectent le plus souvent "en local", c'est à dire qu'écran et clavier sont directement reliés à l'ordinateur par des câbles — ou même intégrés à celui-ci dans le cas d'un ordinateur portable.

La même personne peut ainsi jouer deux rôles :

Ces considérations préliminaires nous permettront de mieux comprendre le vocabulaire en usage.

Mode "environnement graphique" et mode "texte" — le modèle "client / serveur"

Les micro-ordinateurs qui fonctionnent grâce à Linux (c'est aussi vrai des autres systèmes actuels) peuvent être utilisés selon deux modes :

Citons Document externeWikipedia :

Un environnement graphique est, en informatique, ce qui est affiché en mode pixel au moniteur d'ordinateur et sur lequel l'utilisateur peut agir avec différents périphériques d'entrée comme le clavier, la souris, la dictée vocale, etc. Des images, des animations (en 2 ou 3 dimensions), et même des vidéos peuvent être rendues à l'écran.

Ce type d'interface homme-machine s'oppose à la notion de ligne de commande où la majorité de l'interaction entre l'utilisateur et l'ordinateur se fait au clavier, sans visualisation élaborée, dans un terminal ou dans une fenêtre de terminal en mode texte, comme par exemple dans le cas de DOS. En anglais, GUI est l'abréviation de Graphical User Interface, soit « interface utilisateur graphique ». Elle s'oppose à CLI pour Command Line Interface, soit « interface en ligne de commande ».


La gestion de l'environnement graphique est effectuée par un logiciel spécial appelé serveur graphique. Celui habituellement utilisé en conjonction avec Linux est "X Window". Toujours selon Document externeWikipedia :

X Window System (communément appelé X Window ou X11 ou plus simplement X) est un système qui gère l'interaction homme-machine par l'écran, la souris et le clavier de certains ordinateurs en réseau. C'est le système standard ouvert d'interaction graphique avec l'utilisateur sur les Unix, Linux et les *BSD. Le serveur X est optionnel sur Mac OS X et il est possible d'installer un serveur X sur la plupart des systèmes d'exploitation, dont Windows. On dit communément d'une application qu'elle tourne sous X lorsqu'elle est conçue pour l'environnement X Window.

X fonctionne suivant le modèle client/serveur :

Ajoutons quelques remarques et précisions à cette explication :

La notion de niveau d'exécution et les terminaux virtuels

Au peut choisir de démarrer une machine sous Linux selon un des "niveaux d'exécution" (en Anglais "run levels") disponibles, désignés généralement par des numéros.

A chaque niveau d'exécution sont associés un état du système après démarrage et des choix dans plusieurs domaines :

La définition des niveaux varie selon les distributions (et d'ailleurs l'administrateur peut choisir les applications à lancer à un niveau d'exécution donné).

Par exemple dans le cas de la distribution Linux Slackware (toutes versions récentes) :

Remarques

Les interpréteurs de commandes ou "shells"

On peut peut utiliser un terminal (virtuel ou non) pour lancer tous types d'applications, du moment qu'elles disposent d'une interface "en ligne de commande".

Cependant, on les utilise principalement pour administrer le système d'information. Ceci nécessite de transmettre au noyau les commandes tapées, et de restituer à l'écran les résultats de ces commandes. C'est le rôle des logiciels appelés "interpréteurs de commande" (il en existe plusieurs), ou "shells" (coquilles, en Anglais). Ce terme vient de ce que l'interpréteur est en quelque sorte une enveloppe qui masque la complexité des échanges d'information avec le noyau. On appelle parfois aussi "shell" une interface graphique ou GUI (Graphical User Interface) mais dans cet article ce terme sera toujours associé à un terminal virtuel (ou console) dans lequel on tape des commandes ou CLI (Command Line Interface).

Le rôle de l'interpréteur consiste donc principalement à :

Outre la capacité de traiter une par une les commandes au fur et mesure, le plus souvent ligne par ligne, certains shells — et notamment bash qui est le plus utilisé sous Linux — intègrent un véritable langage de programmation. Ceci permet, en plus de l'utilisation "en temps réel", de réaliser des "traitements par lots" : par exemple l'administrateur peut rédiger un programme (sous la forme d'un fichier texte communément appelé "script") qui sera "exécuté" par bash à la demande, pour des tâches d'administration comme des sauvegardes périodiques de tout un ensemble de fichiers ou le lancement de plusieurs applications qui utilisent les données les unes des autres.

Nous ne développerons pas cette possibilité de programmation ici, mais vous proposerons des documents de référence.

Pour les curieux bash est l'acronyme de Bourne Again SHell. Bash signifie aussi frapper ou cogner en Anglais (frappez les commandes au clavier mais ne me frappez pas avec lui).

Pour commencer, ouvrons un terminal

Dans ce qui suit nous supposerons que l'interpréteur de commandes utilisé est bash (il en existe bien d'autres et l'utilisateur peut en changer). Voici Document externeun article pour en savoir un peu plus. Pour en savoir beaucoup plus tapez la commande man bash et bonne lecture... Je vous suggère quand même de commencer par une introduction plus digeste (voir des références plus loin et dans les article cités de Wikipedia).

Pour utiliser bash il faut disposer soit d'une console ou terminal virtuel en mode console soit d'un terminal virtuel en environnement graphique :

Même si cela ne change souvent pas grand chose, nous supposerons dans ce qui suit que vous avez ouvert un terminal xterm (en cliquant sur une icône ou dans un menu, ou en tapant (dans un champ destiné à recevoir des commandes) la commande xterm, ce qui à pour effet d'ouvrir un terminal éponyme (on dit en abrégé "un xterm").

Nota pour les utilisateurs de KDE : la combinaison de touches Alt + F2 fait apparaitre une petite fenêtre dans laquelle on peut taper une commande — par exemple la commande xterm.

Pour utiliser le xterm ainsi ouvert, il n'y a plus qu'à le sélectionner (par exemple en cliquant dessus) : vous êtes prêts à taper vos premières commandes.

Précision : puisqu'il est dans une fenêtre vous pouvez le déplacer ou modifier ses dimensions à votre convenance, voire lui faire occuper tout l'espace disponible sur l'écran.

Quels programme traite ma commande ?

Il n'est pas inutile — en tous cas pas inintéressant, à mon avis — de savoir si une commande tapée au clavier est :

En somme il s'agit de commencer à comprendre "qui fait quoi" dans la machine.

Le noyau et un certain nombre de fichiers et programmes indispensables au fonctionnement du système sont pratiquement toujours présents dans une machine fonctionnant grâce à Linux.

D'autres fichiers et programmes sont en quelque sorte "facultatifs" (installés ou non au choix de l'administrateur). S'ils sont chargés de traiter certaines commandes (qui leur sont destinées), celles-ci ne fonctionneront bien sûr que s'ils sont installés.

En pratique, le plus souvent on installe fichiers et programmes non pas individuellement mais en les regroupant en "paquets" (en Anglais "packages") de taille plus ou moins importante selon la distribution utilisée (car le regroupement en paquets est arbitraire, c'est le résultat d'un choix du distributeur ou "empaqueteur"). Notons que la constitution et le mode d'installation de ces paquets varient aussi selon la distribution ; ce point ne sera pas développé ici.

Documents de référence

Maintenant que vous en savez assez pour taper vos premières commandes, je vous suggère d'investir un peu de votre temps dans quelques lectures qui — croyez-moi — vous en feront gagner bien davantage par la suite.

Ou trouver la documentation concernant Linux ?

La plupart des documents ici référencés se trouvent sur le site intitulé The Linux Documentation Project à l'adresse Document externehttp://www.tldp.org/. Vous y trouverez des "comment faire pour ..." ou "How-to" ainsi que des "Guides" (en général plus développés). Dans chaque domaine, choisissez les documents les plus récents (la date de la dernière révision est toujours indiquée). Heureusement, les principaux documents que nous vous recommanderons sont assez récents. Sur le même site on trouve les pages du "manuel linux" (elles devraient aussi se trouver dans votre système).
Tous les documents présents sur ce site sont en Anglais.

Il existe aussi des versions françaises de certains de ces documents, malheureusement pas tous et pas toujours à jour. Pour les trouver vous pouvez suivre Document externece lien

Les URL des documents ici référencés sont toujours indiquées. Attention, elles peuvent changer! Dans ce cas, à partir du titre un moteur de recherche pourra souvent vous trouver la nouvelle adresse.

Si vous cherchez un guide pour installer ou configurer Linux ...

Je vous en recommande deux :

Vous voulez apprendre à utiliser la ligne de commande et peut-être aller plus loin avec bash

Je vous recommande de consulter les guides suivants (en Anglais), référencés sur la page "Linux Documentation Project Guides" à l'adresse Document externehttp://www.tldp.org/guides.html. Comme les autres guides et how-to du "Linux Documentation Project" ils peuvent téléchargés en plusieurs formats et lus en ligne en une seule page ou une page par chapitre.

Bonne lecture !

Didier Spaier