République démocratique du Congo ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE Univer
République démocratique du Congo ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE Université Libre des Pays des Grands Lacs ULPGL FACULTE DES SCIENCES ET TECHNOLOGIE APPLIQUEES B.P. 368 GOMA Cours de OS LINUX Chapitre 3 : introduction à la Programmation shell Par C.T. Katya Muhambya Avril 2019 Page 2 sur 29 Notes de cours – © By Echello KATYA MUHAMBYA, Contacts : katya_undergrace@yahoo.fr - echello1@hotmail.com Introduction à la programmation Shell By C.T Katya Muhambya Echello (echello1@hotmail.com) Introduction: Définition et utilité? 1.1 Principe de construction d'un programme Shell, les commandes « echo » et « read » 1.2 Les variables 1.3 Test et calcul arithmétiques 1.4 Exercices Page 3 sur 29 Notes de cours – © By Echello KATYA MUHAMBYA, Contacts : katya_undergrace@yahoo.fr - echello1@hotmail.com Partie 1. Programmation Shell sous Linux Introduction: Définition et utilité? 1.1 Principe de construction d'un programme Shell, les commandes « echo » et « read ». 1.2 Les variables 1.3 Structures de contrôle 1.4 Test et calcul arithmétiques 1.5 Exercices Page 4 sur 29 Notes de cours – © By Echello KATYA MUHAMBYA, Contacts : katya_undergrace@yahoo.fr - echello1@hotmail.com Introduction: Définition et utilité? Qu'est-ce qu'un shell ? Nous distinguons deux environnements très différents disponibles sous Linux : • l'environnement console ; • l'environnement graphique. La plupart du temps, nous avons tendance à utiliser l'environnement graphique, qui est plus intuitif. Cependant, la console est aussi un allié très puissant qui permet d'effectuer des actions habituellement difficiles à réaliser dans un environnement graphique. Il existe plusieurs environnements console : les shells Les différents environnements console sont appelés des shells. La différence est moins impressionnante que dans le mode graphique. La console a toujours un fond noir et un texte blanc, à moins de la personnaliser. En revanche, les fonctionnalités offertes par l'invite de commandes peuvent varier en fonction du shell que l'on utilise. Voici les noms de quelques-uns des principaux shells qui existent. • sh : Bourne Shell. L'ancêtre de tous les shells. • bash : Bourne Again Shell. Une amélioration du Bourne Shell, disponible par défaut sous Linux et Mac OS X. • ksh : Korn Shell. Un shell puissant assez présent sur les Unix propriétaires, mais aussi disponible en version libre, compatible avec bash. • csh : C Shell. Un shell utilisant une syntaxe proche du langage C. • tcsh : Tenex C Shell. Amélioration du C Shell. • zsh : Z Shell. Shell assez récent reprenant les meilleures idées de bash, ksh et tcsh. Il y en a quelques autres, mais vous avez là les principaux. Que faut-il savoir ? Tout d'abord que l'ancêtre de tous les shells est le sh (Bourne Shell). C'est le plus vieux et il est installé sur tous les OS basés sur Unix. Il est néanmoins pauvre en fonctionnalités par rapport aux autres shells. Le bash (Bourne Again Shell) est le shell par défaut de la plupart des distributions Linux mais aussi celui du terminal de Mac OS X. Il y a fort à parier que c'est celui que vous utilisez en ce moment sous Linux. Le bash est une amélioration du sh. Voici dans les grandes lignes comment ont évolué les shells. Chacun hérite de la plupart des fonctionnalités de son ancêtre (figure suivante). Page 5 sur 29 Notes de cours – © By Echello KATYA MUHAMBYA, Contacts : katya_undergrace@yahoo.fr - echello1@hotmail.com À quoi peut bien servir le sh aujourd'hui alors, si bash est par défaut sous Linux ? sh reste toujours plus répandu que bash. En fait, vous pouvez être sûrs que tous les OS basés sur Unix possèdent sh, mais ils n'ont pas tous forcément bash. Certains OS basés sur Unix, notamment les OS propriétaires (AIX et Solaris…), utilisent d' autres types de shells ; le ksh y est par exemple très répandu. À quoi sert un shell ? Le shell est le programme qui gère l'invite de commandes. C'est donc le programme qui attend que vous rentriez des commandes (comme l'illustre la figure suivante). Page 6 sur 29 Notes de cours – © By Echello KATYA MUHAMBYA, Contacts : katya_undergrace@yahoo.fr - echello1@hotmail.com Le shell, c'est aussi le programme qui est capable par exemple de : • se souvenir quelles étaient les dernières commandes tapées (vous remontez dans votre historique en appuyant sur la flèche « Haut » ou en faisant une recherche avec un Ctrl + R) ; • autocompléter une commande ou un nom de fichier lorsque vous appuyez sur Tab (figure suivante) ; • gérer les processus (envoi en arrière-plan, mise en pause avec Ctrl + Z…) ; • rediriger et chaîner les commandes (les fameux symboles >, <, |, etc.) ; • définir des alias (par exemple ll signifie chez moi ls -lArth). Bref, le shell fournit toutes les fonctionnalités de base pour pouvoir lancer des commandes. Le .bashrc est le fichier de configuration du bash que Linux nous fait utiliser par défaut. Chaque personne peut avoir son .bashrc pour personnaliser son invite de commandes, ses alias, etc. Installer un nouveau shell Pour le moment, vous devriez avoir sh et bash installés sur votre système. Si vous voulez essayer un autre shell, comme ksh par exemple, vous pouvez le télécharger comme n'importe quel paquet: # apt-get install ksh Une fois installé, il faut demander à l'utiliser pour votre compte utilisateur. Pour cela, tapez : chsh chsh signifie Change Shell. On vous demandera où se trouve le programme qui gère le shell. Vous devrez indiquer /bin/ksh pour ksh, /bin/sh pour sh, /bin/bash pour bash, etc. Page 7 sur 29 Notes de cours – © By Echello KATYA MUHAMBYA, Contacts : katya_undergrace@yahoo.fr - echello1@hotmail.com Quelle importance a tout ceci lorsque l'on réalise un script shell ? Si je vous parle de cela, c'est parce qu'un script shell dépend d'un shell précis. En gros, le langage n'est pas tout à fait le même selon que vous utilisez sh, bash, ksh, etc. Il est possible d'écrire des scripts sh par exemple. Ceux-là, nous sommes sûrs qu'ils fonctionnent partout car tout le monde possède un shell sh. Il s’agit toutefois du plus vieux shell, or écrire des scripts en sh est certes possible mais n’est franchement ni facile, ni ergonomique. Avec quel shell va-t-on écrire nos scripts, alors ? Nous allons ulitiler sh et bash. Toutefois bash est tres avantageux pour ces raisons : • on le trouve par défaut sous Linux et Mac OS X (cela couvre assez de monde !) ; • il rend l'écriture de scripts plus simple que sh ; • il est plus répandu que ksh et zsh sous Linux. En clair, le bash est un bon compromis entre sh (le plus compatible) et ksh / zsh (plus puissants). Qu’est-ce qu’il faut retenir de cette introduction ? Un interpréteur de commandes, souvent désigné par shell en anglais, est un programme qui : - Lit et exécute les commandes saisies par l’utilisateur ou stockées dans un script. - Propose un contrôle des processus - Gère les redirections en entrée et en sortie - Propose un véritable langage de programmation - Plusieurs types de shell disponibles: • Le plus utilisé: bash (Bourne Again Shell) • Autres: csh, ksh, etc… En mode interactif il affiche une invite, finissant généralement par $ pour un utilisateur normal, ou par # pour l’administrateur, indiquant qu’il prêt à lire une nouvelle commande. Pour utiliser l’interpréteur en mode interactif il faut lancer un terminal. Une fois le terminal lancé, le shell se présente comme suit : nom-utilisateur@nom-machine:~$_ Où : nom-utilisateur : indique le nom de l’utilisateur qui a ouvert la session actuelle sur le système nom-machine : indique le nom de machine sur laquelle on travaille Apres avoir utilisé le mode interactif dans le cours que nous avons terminé, dans ce cours, nous proposons la découverte du mode de script ou programmation pour exécuter les commandes shell. Un shell, quel qu'il soit, peut exécuter des commandes prises dans un fichier. Un fichier contenant des commandes pour le shell est appelé un script. C'est en fait un programme écrit dans le langage du shell. Ce langage comprend non seulement les commandes que nous avons déjà vues, mais aussi des structures de contrôle (constructions conditionnelles et boucles). Pour la programmation du shell, nous allons utiliser le shell sh. Ce que nous avons vu jusqu'ici s'applique aussi bien à sh qu'à bash, zsh et aussi à csh, à quelques exceptions près. Page 8 sur 29 Notes de cours – © By Echello KATYA MUHAMBYA, Contacts : katya_undergrace@yahoo.fr - echello1@hotmail.com Un script shell est un fichier en mode texte, c-'est-à-dire que ce n'est pas un fichier binaire, exécutable directement par la machine, mais il doit être interprété. L'interprétation signifie que chaque commande contenue dans un script doit être lue par un programme, appelé interpréteur ; l'interpréteur analyse chaque commande du script et la traduit ligne par ligne en langage machine, ce qui permet l'exécution du script. On oppose l'interprétation à la compilation, dans laquelle le programme est traduit une fois pour toutes en langage machine, quel que soit le nombre de ses instructions; tandis que le programme interprété est traduit uploads/Industriel/ chapitre-3-introduction-a-la-programmation-shell.pdf
Documents similaires










-
34
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 09, 2022
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.2224MB