Si nous utilisons un système d'exploitation majeur, nous interagissons indirectement avec le coquille . Lors de l'exécution d'Ubuntu, de Linux Mint ou de toute autre distribution Linux, nous interagissons avec le shell en utilisant le terminal. Dans cet article, nous discuterons des shells Linux et des scripts shell. Avant de comprendre les scripts shell, nous devons nous familiariser avec les terminologies suivantes :
- Noyau
- Coquille
- Terminal
Table des matières
- Qu’est-ce que le noyau ?
- Qu’est-ce que Shell ?
- Shell de ligne de commande
- Coques graphiques
- Qu'est-ce qu'une borne ?
- Scripts Shell
Qu’est-ce que le noyau ?
Le noyau est un programme informatique qui constitue le cœur du système d’exploitation d’un ordinateur, avec un contrôle total sur tout ce qui se trouve dans le système. Il gère les ressources suivantes du système Linux –
- Gestion de fichiers
- La gestion des processus
- Gestion des E/S
- Gestion de la mémoire
- Gestion des appareils, etc.
On croit souvent à tort que Linus Torvalds a développé le système d'exploitation Linux, mais en réalité, il n'est responsable que du développement du noyau Linux.
Système Linux complet = Noyau + GNU utilitaires système et bibliothèques + autres scripts de gestion + scripts d'installation.
Qu’est-ce que Shell ?
Un shell est un programme utilisateur spécial qui fournit une interface permettant à l'utilisateur d'utiliser les services du système d'exploitation. Shell accepte les commandes lisibles des utilisateurs et les convertit en quelque chose que le noyau peut comprendre. Il s'agit d'un interpréteur de langage de commande qui exécute des commandes lues à partir de périphériques d'entrée tels que des claviers ou à partir de fichiers. Le shell démarre lorsque l'utilisateur se connecte ou démarre le terminal.
taille d'une cuillère à café

Shell Linux
Shell est globalement classé en deux catégories :
- Shell de ligne de commande
- Coque graphique
Shell de ligne de commande
Shell est accessible aux utilisateurs à l’aide d’une interface de ligne de commande. Un programme spécial appelé Terminal sous Linux/macOS ou Invite de commandes sous Windows est fourni pour saisir les commandes lisibles par l'homme telles que cat, ls, etc., puis il est en cours d'exécution. Le résultat est ensuite affiché sur le terminal à l'utilisateur. Un terminal dans le système Ubuntu 16.4 ressemble à ceci –

ligne de commande Linux
Dans la capture d'écran ci-dessus ls commande avec -l l'option est exécutée. Il répertoriera tous les fichiers du répertoire de travail actuel dans un format de liste longue.
Travailler avec un shell de ligne de commande est un peu difficile pour les débutants car il est difficile de mémoriser autant de commandes. C'est très puissant ; il permet aux utilisateurs de stocker des commandes dans un fichier et de les exécuter ensemble. De cette façon, toute tâche répétitive peut être facilement automatisée. Ces fichiers sont généralement appelés fichiers batch sous Windows et Coquille Scripts dans les systèmes Linux/macOS.
Coques graphiques
Les shells graphiques fournissent des moyens de manipuler des programmes basés sur l'interface utilisateur graphique (GUI), en permettant des opérations telles que l'ouverture, la fermeture, le déplacement et le redimensionnement des fenêtres, ainsi que le changement de focus entre les fenêtres. Window OS ou Ubuntu OS peuvent être considérés comme un bon exemple qui fournit une interface graphique à l'utilisateur pour interagir avec le programme. Les utilisateurs n'ont pas besoin de saisir des commandes pour chaque action. Une interface graphique typique dans le système Ubuntu –

Coque de l'interface graphique
chaîne java de concaténation
Plusieurs shells sont disponibles pour les systèmes Linux comme –
- BASH (Bourne Again SHell) – C'est le shell le plus utilisé dans les systèmes Linux. Il est utilisé comme shell de connexion par défaut dans les systèmes Linux et sous macOS. Il peut également être installé sur le système d'exploitation Windows.
- CSH (C SHell) – La syntaxe du shell C et son utilisation sont très similaires à celles du langage de programmation C.
- KSH (Korn SHell) – Le Korn Shell était également la base des spécifications standard POSIX Shell, etc.
Chaque shell fait le même travail mais comprend différentes commandes et fournit différentes fonctions intégrées.
Qu'est-ce qu'une borne ?
Un programme chargé de fournir une interface à un utilisateur afin qu'il puisse accéder au shell. Il permet essentiellement aux utilisateurs de saisir des commandes et de voir le résultat de ces commandes dans une interface textuelle. Les scripts volumineux écrits pour automatiser et effectuer des tâches complexes sont exécutés dans le terminal.
Pour accéder au terminal, recherchez simplement dans le terminal de recherche et double-cliquez dessus.
terminal ouvert
Ici vous pouvez voir à quoi ressemble le terminal de Red Hat Linux.
Terminal
Scripts Shell
Habituellement, les shells sont interactifs, ce qui signifie qu’ils acceptent les commandes en entrée des utilisateurs et les exécutent. Cependant, nous souhaitons parfois exécuter régulièrement un certain nombre de commandes, nous devons donc saisir toutes les commandes à chaque fois dans le terminal.
np.linspace
Comme un shell peut également prendre des commandes en entrée d'un fichier, nous pouvons écrire ces commandes dans un fichier et les exécuter dans le shell pour éviter ce travail répétitif. Ces fichiers sont appelés Scripts shell ou Programmes Shell . Les scripts Shell sont similaires au fichier batch dans MS-DOS. Chaque script shell est enregistré avec `.sh` extension de fichier, par exemple, monscript.sh.
Un script shell a une syntaxe comme n’importe quel autre langage de programmation. Si vous avez une expérience préalable avec un langage de programmation comme Python, C/C++, etc., il serait très facile de commencer avec celui-ci.
Un script shell comprend les éléments suivants –
dormir en js
- Mots-clés Shell – si, sinon, casse, etc.
- Commandes Shell – cd, ls, echo, pwd, touch etc.
- Les fonctions
- Flux de contrôle – si… alors… sinon, boucles de cas et de shell, etc.
Pourquoi avons-nous besoin de scripts shell ?
Il existe de nombreuses raisons d'écrire des scripts shell :
- Pour éviter le travail répétitif et l’automatisation
- Les administrateurs système utilisent des scripts shell pour les sauvegardes de routine.
- Surveillance du système
- Ajout de nouvelles fonctionnalités au shell, etc.
Quelques avantages des scripts shell
- La commande et la syntaxe sont exactement les mêmes que celles saisies directement dans la ligne de commande, les programmeurs n'ont donc pas besoin de passer à une syntaxe totalement différente.
- L'écriture de scripts shell est beaucoup plus rapide
- Démarrage rapide
- Débogage interactif, etc.
Quelques inconvénients des scripts shell
- Sujette à des erreurs coûteuses, une seule erreur peut modifier la commande, ce qui peut être nuisible.
- Vitesse d'exécution lente
- Défauts de conception dans la syntaxe ou l'implémentation du langage
- Pas bien adapté aux tâches importantes et complexes
- Fournissez une structure de données minimale contrairement aux autres langages de script. etc.
Démo simple de script shell utilisant Bash Shell
Si vous travaillez sur un terminal, quelque chose que vous parcourez au fond des répertoires. Ensuite, pour accéder à quelques répertoires dans le chemin, nous devons exécuter une commande comme celle-ci, comme indiqué ci-dessous, pour accéder au répertoire python :

accédez au répertoire python :
C'est assez frustrant, alors pourquoi ne pas avoir un utilitaire où il suffit de taper le nom du répertoire et de pouvoir y accéder directement sans exécuter le cd../ commande encore et encore. Enregistrez le script sous sauter.sh
frapper # !/bin/bash # A simple bash script to move up to desired directory level directly function jump() { # original value of Internal Field Separator OLDIFS=$IFS # setting field separator to '/' IFS=/ # converting working path into array of directories in path # eg. /my/path/is/like/this # into [, my, path, is, like, this] path_arr=($PWD) # setting IFS to original value IFS=$OLDIFS local pos=-1 # ${path_arr[@]} gives all the values in path_arr for dir in '${path_arr[@]}' do # find the number of directories to move up to # reach at target directory pos=$[$pos+1] if [ '' = '$dir' ];then # length of the path_arr dir_in_path=${#path_arr[@]} #current working directory cwd=$PWD limit=$[$dir_in_path-$pos-1] for ((i=0; i; i++)) do cwd=$cwd/.. done cd $cwd break fi done }>
Pour l'instant, nous ne pouvons pas exécuter notre script shell car il ne dispose pas d'autorisations. Nous devons le rendre exécutable en tapant la commande suivante –
$ chmod +x chemin/vers/notre/fichier/jump.sh
Maintenant, pour que cela soit disponible sur chaque session de terminal, nous devons le mettre dans .bashrc déposer.
.bashrc est un script shell que le shell Bash exécute à chaque démarrage interactif. Le but d'un fichier .bashrc est de fournir un endroit où vous pouvez configurer des variables, des fonctions et des alias, définir notre invite et définir d'autres paramètres que nous souhaitons utiliser chaque fois que nous ouvrons une nouvelle fenêtre de terminal.
Ouvrez maintenant le terminal et tapez la commande suivante :
bande de base vs haut débit
$ source d'écho ~/chemin/vers/our/file/jump.sh>> ~/.bashrc
Maintenant, ouvrez votre terminal et essayez la nouvelle fonctionnalité de saut en tapant la commande suivante :
$ sauter dir_name
tout comme la capture d'écran ci-dessous :

sauter dir_name
Conclusion
Dans cet article, nous avons découvert les parties essentielles des systèmes Linux : le noyau, qui contrôle tout, le shell, qui nous permet d'interagir avec le système d'exploitation, et le terminal, notre interface pour donner des commandes. Nous avons exploré la ligne de commande et les shells graphiques, comme BASH, et compris que le terminal est l'endroit où nous tapons nos commandes. L'article présentait les scripts shell, un moyen d'automatiser des tâches à l'aide de scripts simples, et discutait des avantages et des inconvénients de leur utilisation. Un exemple pratique a démontré la création d'un script pour une navigation rapide dans les répertoires. Enfin, nous avons vu comment faire fonctionner le script et le rendre accessible à chaque session du terminal. Cet article est un guide convivial pour les débutants pour comprendre et utiliser les shells Linux et les scripts shell. Linux est un bon langage, il est écrit en langage Linux.