Qu’est-ce qu’un shell ?

Un shell est un type de programme informatique qui vous permet (l’utilisateur) de contrôler votre système d’exploitation à l’aide d’une interface de ligne de commande (CLI) ou d’une interface utilisateur graphique (GUI). Essentiellement, les shells sont des moyens directs de communiquer avec votre système d’exploitation sur les actions à effectuer, généralement par le biais de l’automatisation. Ces actions peuvent aller des sauvegardes quotidiennes à la surveillance des systèmes et des activités, en passant par des audits de routine.

Comparaison entre un shell et un kernel

On ne peut parler des shells sans comprendre d’abord en quoi ils diffèrent des kernels. En termes simples, les kernels, ou noyaux d’un système d’exploitation, sont les aspects essentiels d’un système d’exploitation. Il s’agit de la couche primaire entre le matériel informatique et le logiciel, le kernel étant responsable de l’interaction avec le matériel.

Les shells sont le point de connexion intermédiaire entre l’utilisateur et le kernel. Ils exécutent les commandes émises par l’utilisateur à l’intention du noyau en traduisant d’abord les commandes de l’utilisateur en appels système qui demandent au noyau d’effectuer une tâche spécifique. C’est pourquoi les shells sont parfois appelés interpréteurs de commandes : ils interprètent ce que vous voulez afin que le noyau puisse comprendre ce qu’il faut faire ensuite.

Comment fonctionne un programme shell ?

Un shell peut être un CLI ou un GUI et ne doit pas être confondu avec un terminal. Un terminal fournit une invite de commande pour travailler avec un shell, mais le shell lui-même utilise des scripts shell pour mettre en place l’automatisation. Par exemple, sur un appareil Windows, le terminal par défaut s’appelle Command Prompt (pour les appareils macOS, il s’appelle Terminal), et ressemble à ceci :

Une invite de commande pour l'article "Qu'est-ce qu'un shell ?"

L’utilisation de l’Invite de commande Windows peut être relativement simple, et de plus en plus d’utilisateurs ont désormais recours à PowerShell, un shell de ligne de commande et un langage de script beaucoup plus complets, pour exécuter l’action souhaitée. Gardez à l’esprit que l’Invite de commande n’est pas un shell mais le terminal dans lequel un shell, tel que PowerShell, peut être exécuté. PowerShell peut ressembler à ceci :

Qu'est-ce qu'un shell ?

Comme vous pouvez le constater, il fournit les informations nécessaires rapidement et facilement, en fonction de votre commande. PowerShell peut fonctionner sur n’importe quel système d’exploitation, bien qu’il soit principalement utilisé sur les appareils Windows.

Vous voulez apprendre les bases de PowerShell en seulement 30 minutes ?

Inscrivez-vous à ce cours accéléré et disponible à la demande.

Il convient de noter que les scripts shell ne sont pas étiquetés de la même manière selon les systèmes d’exploitation. Par exemple, certains scripts peuvent être appelés Sh, Bash, csh et tesh. Dans les systèmes d’exploitation de MV d’IBM, ils sont appelés EXEC, alors que les scripts shell du DOS sont appelés fichiers batch.

Quoi qu’il en soit, tous les shells utilisent un terminal pour afficher des commandes lisibles par l’homme et effectuer l’interaction ou l’opération souhaitée.

Différents types de shells

Interpréteur de commandes Bourne

L’interpréteur de commandes Bourne, parfois appelé interpréteur de commandes Unix d’origine et abrégé en « sh », a été développé en 1979 par Stephen Bourne. Il contient des fonctionnalités telles que le contrôle de flux et la gestion améliorée des chaînes de caractères qui rendent le shell plus facile à utiliser et à comprendre en tant que langage de programmation. Néanmoins, le shell est connu pour être peu flexible et peu interactif.

Bien qu’il ait été supplanté par le C Shell et le KornShell (entre autres), l’interpréteur de commandes Bourne reste populaire de nos jours en raison de sa rapidité et de sa compacité.

Ligne de commande (C Shell)

Le C Shell (« csh ») est un shell de commande pour Unix et les systèmes de type Unix. Il a été créé en 1978 par Berkeley Software Distribution et offre plusieurs améliorations par rapport à l’ancien shell Bourne, en particulier pour une utilisation interactive.

Il peut ressembler à ceci :

Une image des shells Bourne

KornShell

Les laboratoires Bell ont introduit le KornShell (« ksh ») au début des années 1980. Il comprend de nombreuses fonctionnalités du shell C, mais il est nettement plus rapide. Outre l’exécution de scripts Bourne Shell et de fonctions de type C, il intègre également des fonctions arithmétiques.

GNU Bourne-Again Shell

Le Bourne-Again Shell (« bash »), publié en 1989 par Brian Fox pour le projet GNU, est une alternative open-source au Bourne Shell. Il est comparable à KornShell et à C Shell, mais il comprend des touches fléchées automatiquement affectées pour une édition et un rappel de commandes plus rapides. Bash est désormais considéré comme l’interpréteur de commandes par défaut de la plupart des distributions Linux et utilise les scripts Bash.

Que font les scripts de l’interpréteur de commandes ?

Plutôt que de taper chaque commande manuellement à chaque fois que vous avez besoin de faire quelque chose, les shells, grâce à leurs scripts, peuvent effectuer plusieurs tâches simultanément, telles que les sauvegardes, l’exécution de programmes, etc. Ils peuvent également automatiser les tâches répétitives, ce qui réduit le risque d’erreur humaine, minimise l’impact potentiel des dirty data et améliore considérablement l’efficacité informatique.

Cela dit, les scripts shell ne sont pas conçus pour des tâches complexes ou de grande envergure. De plus, comme pour les langages, il faut un certain temps pour les maîtriser. Une erreur de syntaxe, par exemple, peut provoquer des erreurs dramatiques, et vous devrez passer en revue chaque commande pour déterminer où l’erreur s’est produite.

Avantages d’un shell

Un shell peut libérer vos techniciens informatiques pour qu’ils se concentrent sur des projets plus stratégiques. En plus de vous aider à effectuer diverses tâches, les shells vous permettent également de personnaliser vos propres scripts en fonction de vos objectifs et de vos besoins spécifiques.

Inconvénients d’un shell

Les shells peuvent être impitoyables en termes de syntaxe. Une seule erreur peut être difficile à identifier et coûteuse à long terme. Pour clarifier, la syntaxe de l’interpréteur de commandes est similaire à la syntaxe utilisée dans le langage naturel. Il s’agit de l’ordre des opérations et de la façon dont les mots et les phrases sont agencés.

Les shells pour une meilleure efficacité informatique

Les shells et, par conséquent, leurs scripts ne sont peut-être pas la première chose à laquelle vous pensez lorsque vous envisagez la gestion des terminaux. Néanmoins, les shells jouent un rôle essentiel dans la manière dont vos techniciens informatiques peuvent automatiser des tâches et fournir un meilleur service à vous, à votre entreprise et à vos utilisateurs finaux. S’il n’est pas nécessaire de maîtriser les shells, il faut tout de même en comprendre les bases pour obtenir de meilleurs résultats commerciaux.

Pour aller plus loin

Pour créer une équipe informatique efficace et performante, il est essentiel d’avoir une solution centralisée qui joue le rôle de nœud principal pour vos services. NinjaOne permet aux équipes informatiques de surveiller, gérer, sécuriser et prendre en charge tous les appareils, où qu’ils soient, sans avoir besoin d’une infrastructure complexe sur site.

Pour en savoir plus sur NinjaOne Endpoint Management, participez à une visite guidée en direct ou commencez votre essai gratuit de la plateforme NinjaOne.

Vous pourriez aussi aimer

Prêt à devenir un Ninja de l’informatique ?

Découvrez comment NinjaOne peut vous aider à simplifier vos opérations informatiques

Voir la démo×
×

Voir NinjaOne en action !

En soumettant ce formulaire, j'accepte la politique de confidentialité de NinjaOne.

Commencez un essai gratuit du logiciel de gestion des terminaux classé N°1 sur G2

Pas de carte de crédit requise, accès complet à toutes les fonctionnalités.