Les articles de Linux Pratique Hors-Série N°20

Article mis en avant

Le shell, une interface pour dialoguer avec votre système

Le shell est un « interpréteur de commandes », une interface qui permet, via un émulateur de terminal (xterm, GNOME Terminal, etc.), de dialoguer avec votre système au moyen de commandes. Vous pouvez ainsi naviguer dans le système de fichiers, créer ou modifier des fichiers, exécuter des commandes, etc. Concrètement, vous saisissez une commande, le shell la lit, l'interprète, l'exécute et retourne éventuellement un résultat.
Le shell, c'est comme votre environnement graphique : une fois que vous le connaissez bien, que vous avez l'habitude de l'utiliser, vous aimeriez y appliquer votre « touche personnelle ». Et là vous vous dites « pour mon environnement de bureau, je change l'arrière-plan, le thème et le comportement des fenêtres, j'ajoute des applets, etc. Mais pour le shell.... qu'est-ce que je peux faire au juste ? »
L'apprentissage de la ligne de commandes nécessite de posséder un minimum de connaissances, notamment savoir de quoi est composé votre système de fichiers, comment vous y promener et surtout, connaître la syntaxe à adopter pour dialoguer avec votre système. Se contenter de recopier - de surcroît sans la comprendre - une ligne de code trouvée dans un livre ou une page web ne vous fera pas progresser (et peut s'avérer dangereux pour votre système...).
Vous savez maintenant que vous dialoguez avec le shell au travers d'un « émulateur de terminal ». Vous y saisissez une commande et le shell retourne éventuellement un résultat. Il existe plusieurs émulateurs de terminal sous Linux, plus ou moins riches en fonctionnalités. Nous allons ici vous en présenter un échantillon, parmi les plus répandus, de manière à explorer les possibilités de chacun.
Certaines commandes shell sont difficiles à concevoir et longues à écrire. Pour pouvoir s'en servir à nouveau sans avoir à perdre une nouvelle fois le temps de réflexion nécessaire à l'élaboration de la commande (ou de la suite de commandes), il pourrait être intéressant de stocker ces commandes dans un fichier pour les appeler par la suite. Il serait encore mieux de pouvoir modifier certaines valeurs sans récrire la commande. C'est ce que permet le shell...
Le shell permet de créer des scripts relativement complexes en utilisant des boucles ou même en définissant des fonctions. Comment les écrire ?
VirtualBox est le logiciel de virtualisation libre le plus connu et probablement le plus utilisé. On le compare généralement à VMware Workstation, en raison de son interface utilisateur « client lourd ». Mais VirtualBox offre également une commande permettant de gérer les machines virtuelles sans cette interface...
LVM : Logical Volume Manager. De quoi s'agit-il ? Prenons deux exemples. Le premier, vous avez un disque de 2 To. Mais vous l'avez mal partitionné. Mince alors... Le deuxième, vous avez 3 ou 4 disques de 5 Go mais ce serait bien ennuyeux d'avoir à gérer 3 ou 4 partitions de données alors qu'une seule de 15 ou 20 Go serait tellement plus confortable... LVM apporte une réponse à ce genre de problématiques.
Quelque soit le standard d'impression choisi, le principe est le même : à chaque imprimante déclarée pour le système est associée une « file d'attente » ou « queue » et l'ensemble de ces files d'attente est géré par un service indépendant. Ceci permet une impression en réseau et multi-utilisateur. Dans ce contexte, nous évoquerons ici les commandes qui vous permettront de gérer vos imprimantes et travaux d'impression.
Il arrive de vouloir manipuler ou transférer de nombreux fichiers. Mais envoyer par exemple des dizaines de fichiers en pièce jointe peut s'avérer fastidieux et peu pratique. La solution ? La création d'une archive bien sûr !
Les fichiers d'un disque (dur ou amovible) ou d'une partition ne sont accessibles que si le disque ou la partition a été monté(e) au préalable. Cela signifie que la racine de l'arborescence de fichiers présente sur le disque ou la partition doit être attachée à un répertoire d'un système de fichiers déjà actif, opération que l'on nomme « montage ».
Comment ? Grâce à un logiciel du nom de Gammu, l'un des outils libres de téléphonie les plus utilisés, qui permet de gérer de nombreux modèles de mobiles. Via une connexion USB, bluetooth ou infrarouge, vous pourrez ainsi sauvegarder vos données, gérer vos contacts, envoyer des SMS, etc.
Tester la dernière image ISO de votre distribution favorite, créer un CD audio en compilant vos morceaux préférés, sauvegarder des données sensibles ou personnelles, voilà le type d'actions courantes qui nécessite de maîtriser les outils de gravure en ligne de commandes...
Le projet VLC est sans aucun doute l'un des plus connus des logiciels libres. Disponible pour de nombreuses plateformes (Windows, Mac OS X, GNU/Linux, *BSD, Solaris, etc.), doté de fonctionnalités étendues et supportant un large éventail de formats et de supports, il s'est rapidement imposé comme le lecteur multimédia incontournable...
Le projet ImageMagick regroupe un ensemble d'outils dédiés à la manipulation d'images. L'éventail de ses possibilités est vraiment impressionnant : conversion de format, redimensionnement, ajout d'effets spéciaux ou d'éléments de décoration, retouche photo, création de montage, ajout de texte, etc. Les différents outils fournis par ImageMagick vous permettront en outre de vous abstenir de lancer des applications de retouche d'image bien plus « lourdes » pour réaliser des opérations basiques. Abordons ici quelques exemples de commandes usuelles...
En 1983, David G. Korn, des laboratoires AT&T Bell, développa un nouveau shell, dont le but était de proposer à la fois les qualités interactives du C shell et l'efficacité des scripts du shell Bourne. Cet interpréteur offre ainsi à l'utilisateur une interface agréable et un puissant langage de programmation de scripts. Le shell Korn évolua rapidement et de nouvelles versions furent proposées en 1986, en 1988, puis en 1993.
Zsh est souvent présenté comme un Bourne shell « étendu », car il présente beaucoup d'améliorations. En outre, il reprend la plupart des fonctionnalités les plus intéressantes des shells bash, ksh et tcsh. Zsh est par ailleurs clairement orienté vers l'interactivité avec l'utilisateur ; ses compétences en termes d'auto-complétion sont notamment très appréciées des utilisateurs.