Coques Unix / Linux 101

Auteur: Eugene Taylor
Date De Création: 11 Août 2021
Date De Mise À Jour: 22 Juin 2024
Anonim
Linux Tutorial for Beginners: Introduction to Linux Operating System
Vidéo: Linux Tutorial for Beginners: Introduction to Linux Operating System

Contenu



Source: Tomasz Bidermann / Dreamstime.com

À emporter:

Les shells Unix et Linux sont très puissants et extrêmement personnalisables.

La ligne de commande sur les systèmes Unix et Linux est déjà très puissante, mais les shells sont un outil encore plus puissant qu’il n’est à l’évidence. Vous pouvez les personnaliser et les convertir au contenu de votre coeur, à condition de savoir comment.

Qu'est-ce qu'une coquille?

Presque tous les manuels Unix et Linux ont le schéma standard d’un shell qui enveloppe le système d’exploitation, ressemblant à une sorte de barre chocolatée. Le shell n’est en réalité qu’une interface entre le système d’exploitation, y compris le noyau, le système de fichiers, les différents appels système et l’utilisateur. Pendant de nombreuses années, c’était la seule interface utilisateur interactive avant que les interfaces utilisateur graphiques ne deviennent courantes dans les années 1980. Les interfaces utilisateur graphiques peuvent également être considérées comme un type de shell, car elles remplissent bon nombre des mêmes fonctions: lancement de programmes, configuration du système et gestion des fichiers.

Ces interfaces modestes ont une puissance surprenante. D'une part, ce sont des langages de programmation à part entière. Avant l’apparition de langages de script plus puissants, tels que Python, les scripts shell étaient idéaux pour écrire des programmes qui n’avaient pas nécessairement besoin de la puissance de C. Ils restent utiles pour l’automatisation des tâches système et le prototypage rapide.

Ils possèdent également un certain nombre de fonctionnalités qui facilitent l'utilisation et la recherche de fichiers. L'un des plus utilisés est le "wildcarding" ou "globbing". Presque tous les utilisateurs Unix et Linux connaissent le caractère générique "*" pour correspondre à n'importe quel caractère. C’est en fait le travail du shell. Différentes coquilles ont des options encore plus puissantes.

Une des caractéristiques distinctives de Unix est la possibilité de rediriger les entrées et les sorties de programmes. Le shell implémente cette fonctionnalité.

Le shell n’est qu’un autre programme, il est donc possible pour tout programmeur possédant les compétences requises d’en créer un. Plusieurs coquilles majeures ont émergé au fil des ans.

Histoire et rafles de coquillages

Bien qu'il y ait eu plusieurs shells Unix aux débuts du système d'exploitation, le premier à obtenir une reconnaissance majeure en dehors de Bell Labs était le Bourne Shell, nommé d'après Stephen R. Bourne. La principale innovation de Shells réside dans le fait qu’il prend en charge des fonctionnalités de programmation structurée, ce qui permet pour la première fois d’utiliser le shell comme véritable langage de programmation. Il est tellement indispensable que toutes les versions Unix et Linux modernes l’utilisent encore, bien qu’il s’agisse généralement d’un des nouveaux shells émulant le shell Bourne.

Le shell suivant était le shell C, généralement abrégé en "csh". Cette coque a été mise au point à l’UC Berkeley, devenant un composant majeur de la saveur BSD d’Unix. Comme son nom l'indique, sa syntaxe est conçue pour ressembler au langage de programmation C, mais elle a vraiment été conçue pour une utilisation interactive.

Il incluait un mécanisme d'historique permettant aux utilisateurs de revenir en arrière et de répéter les commandes qu'ils avaient précédemment émises sans avoir à ressaisir une ligne complète et d'améliorer le contrôle des travaux, ce qui facilitait l'exécution de plusieurs tâches. (Rappelez-vous que c’était à ce moment-là que la plupart des gens utilisaient encore des terminaux.)

La prochaine coquille majeure était la coquille Korn, également issue des laboratoires Bell. Le shell a été nommé d'après David Korn, pas le groupe, d'ailleurs. L’innovation principale du shell Korn est l’introduction de l’édition en ligne de commande, qui étend encore plus la fonctionnalité d’historique. Les utilisateurs peuvent revenir en arrière et modifier les commandes qu’ils ont saisies à l’aide de commandes similaires à celles de vi ou d’éditeur Emacs.

Le Bourne Again Shell, ou bash, est l’un des plus populaires depuis son lancement à la fin des années 80. Ce shell, développé dans le cadre du projet GNU, intègre les innovations des shell C et Korn tout en maintenant la compatibilité avec le shell Bourne, d’où son nom. C’est le shell "standard" de la plupart des distributions Linux.

Le shell Z (zsh), publié pour la première fois en 1990, est le rêve d’un utilisateur de ligne de commande. Non seulement il possède la plupart des autres fonctionnalités principales des autres shells, mais il est incroyablement personnalisable avec de nombreuses fonctionnalités puissantes. L’un des plus puissants est l’agrégation récursive, qui permet aux utilisateurs de faire correspondre les noms de fichiers des sous-répertoires lorsqu’ils exécutent des commandes plutôt que des fichiers du répertoire de travail en cours. Les utilisateurs très avancés peuvent également personnaliser les options de complétion, en faisant correspondre les fichiers sans avoir à les saisir complètement. Et pour les dactylographes aux gros doigts, il peut également corriger votre orthographe. Ce shell est tellement avancé que sa page de manuel a été divisée en plusieurs très longues sections.

Scripting

Comme mentionné précédemment, les shells ne sont pas simplement des interfaces de ligne de commande, mais des langages de programmation puissants. L'avantage des scripts shell réside dans le fait que vous pouvez utiliser le même langage à la fois dans des utilisations interactives classiques et dans des scripts, ce qui rend la courbe d'apprentissage beaucoup plus plate. Les shells modernes incluent toutes les fonctionnalités habituelles du langage de programmation, y compris le contrôle de flux, les fonctions et les variables. Quelques-uns d'entre eux ont même des structures de données avancées telles que des tableaux associatifs.

Malgré leur puissance, la programmation en shell comporte quelques pièges. Le plus gros problème est qu’il est trop facile d’écrire des scripts qui dépendent d’un programme qui ne se trouve peut-être pas sur un autre système, ou qui dépendent d’une version particulière de Unix ou de Linux. C’est pourquoi les scripts shell conviennent le mieux aux programmes dont vous savez qu’ils ne seront exécutés que sur un seul système. Si vous essayez de construire quelque chose de portable et que vous ne voulez pas écrire de programme C, le mieux est d’écrire dans un autre langage de script tel que Perl ou Python.

Un coup d'oeil sous le capot de la ligne de commande Unix / Linux

Plus de puissance se cache sous la surface de votre ligne de commande Unix / Linux. Cet article pourrait vous inciter à jeter un coup d'œil sous le capot de votre coquille préférée pour voir ce que vous pouvez vraiment faire. Si vous souhaitez vous lancer dans les scripts shell, vous pouvez consulter les livres Unix Power Tools et Learning the Bash Shell. Le papier original de Stephen R. Bournes sur sa coque constitue également une bonne introduction au monde des scripts shell, même s’il est ancien.