Les Systèmes d’exploitationUnix ShellPr. ZaynabEl KhattabiAnnée académique : 20
Les Systèmes d’exploitationUnix ShellPr. ZaynabEl KhattabiAnnée académique : 2021/20223IIREMSI -Tanger Unix Shell Plan Introduction et rappels Programmation par scripts Mécanismes de base Fonctionnement interactif Shell-scripts portables Mécanismes complémentaires Automatisation des shell scripts Filtrage des données Le langage awk Rappel des principes de base Super utilisateur : root s’occupe de l’administration du système UNIX ( installation des logiciels, création des profiles utilisateurs, sauvegarde et restauration des données etc...) Hôte (serveur) : système centralisé sur lequel peuvent se connecter les utilisateurs Console (client) : un écran, le plus souvent noir, destiné à recevoir des commandes Shell via un clavier, branchée directement à la machine Hôte Terminal : Environnement d’entrée/sortie de texte permettant l’émulation d’une console Introduction Le shell: Ensemble de fonctions permettant d’exécuter les commandes de l’utilisateur Possibilité d’écrire nos propres commandes contrairement aux appels système Intermédiaire entre l’homme et la machine Plusieurs versions du shell: Bourne Shell (sh) C shell (csh) Korn Shell (ksh) etc Le Shell s’agit d’une interface texte entre l’utilisateur et le système informatique Tout se fait au clavier Pas de clic de souris L’utilisateur tape des commandes qui sont exécutées par le système Le shell est donc un « interpréteur de commandes » Chaque commande a une syntaxe particulière Il existe des milliers de commandes différentes Les commandes peuvent aussi provenir d’un fichier Le fichier contient les commandes à exécuter L’utilisateur appel le fichier plutôt que de taper toutes les commandes Utile pour les tâches répétitives Le Shell Une commande Unix appartient à l’une des deux catégories suivantes : Interne Externe Les commandes externes Une commande externe est un fichier localisé dans l’arborescence. Lorsqu’un utilisateur lance la commande demandée, le shell demande au noyau Unix de charger en mémoire le fichier de la commande. Sont considérés comme commandes externes les fichiers possédant l’un des formats suivants : Fichiers au format binaire exécutable ; Fichiers au format texte représentant un script de commandes (qui peut être écrit en Shell ou dans un autre langage tel que le Perl). Le Shell Commandes internes et externes La commande file donne une indication sur le type de données contenues dans un fichier. Exemples La commande ls est un fichier au format binaire exécutable. Résultat de la commande file : La commande script1 est un script shell. Résultat de la commande file : Le Shell Commandes internes et externes Exemples (Suite) La commande monscript.pl est un script perl. Résultat de la commande file : L’argument de la commande file est un nom de fichier exprimé en relatif ou en absolu. Les commandes externes sont exécutées par l’intermédiaire d’un shell enfant Le Shell Commandes internes et externes Exécution d’une commande externe Le Shell Commandes internes et externes Les commandes internes Une commande interne est intégrée au processus shell (c’est le shell qui exécute l’action). Elle ne correspond donc en aucun cas à un fichier sur le disque. La commande interne est exécutée par le shell courant La commande type indique si une commande possède une implémentation interne. Le Shell Commandes internes et externes Exécution d’une commande interne Le Shell Commandes internes et externes Exemples La commande cd est une commande interne. La commande find est une commande externe. type prend en argument le nom d’une commande. Si cette dernière n’est pas interne, elle est recherchée dans les répertoires cités dans PATH Le Shell Commandes internes et externes Implémentation interne et implémentation externe Certaines commandes ont une implémentation interne et une implémentation externe. Dans ce cas : la commande interne est lancée en priorité ; l’exécution d’une commande interne est plus rapide que l’exécution d’une commande externe ; la commande type indique que la commande est interne, mais ne précise pas qu’il existe également une implémentation externe. Le Shell Commandes internes et externes Exemple La commande pwd est une commande interne au shell : La commande pwd possède également une implémentation externe C’est la commande interne qui est exécutée en priorité. Pour forcer l’exécution de la commande externe, il faut indiquer explicitement l’emplacement de la commande (en absolu ou en relatif) : Le Shell Commandes internes et externes Le shell reste le moyen le plus efficace pour contrôler le système. C’est aussi le plus utilisé sous Linux/Unix. Le shell est un véritable environnement de programmation Variables, boucles, structures de contrôle « if », … Programmes Les programmes écrits pour le shell sont interprétés au moment de l’exécution Aucune compilation préalable n’est nécessaire On peut profiter de différents outils développés sous différents langages Les performances n’égalent pas un programme en C Contrôler une machine sans y avoir un accès physique (Serveur) Le Shell Principales différences : Après l’écriture d’un fichier script, il est possible de le soumettre directement à l’interpréteur de commandes, tandis qu’un code source écrit en langage compilé doit être traduit en instructions de code machine compréhensibles pour le processeur. Le code compilé étant directement compris par le processeur du système, son exécution est très rapide, alors qu’un script doit être interprété dynamiquement, ce qui ralentit sensiblement l’exécution. Le fichier exécutable issu d’une compilation est souvent volumineux et n’est utilisable que sur un seul type de processeur et un seul système d’exploitation. À l’inverse, un fichier script est généralement assez réduit et directement portable sur d’autres processeurs ou d’autres systèmes d’exploitation du moment que l’interpréteur de commandes correspondant soit disponible. Un fichier compilé est incompréhensible par un lecteur humain. Il n’est pas possible d’en retrouver le code source. Cela peut garantir le secret commercial d’un logiciel. Inversement, un fichier script est directement lisible et modifiable, et peut contenir sa propre documentation sous forme de commentaires. Le Shell Rappel : langages Compilés vs Interprétés principes de base Les commandes : syntaxe : <commande> <liste d’arguments> sensibilité à la casse (majuscules/minuscules) importance du séparateur “espace” Le manuel (help) : man <commande Unix> Historique : commande “history” Nettoyage commande “clear” Le Shell Les outils: Utilitaires servant généralement à développer et mettre au point les programmes Constitué de : Commandes générales Editeurs de texte (vi) Compilateus de programmes (langage C; fortran; cobol), éditeur de liens … Le Shell Un ensemble de commandes, d’outils et de programmes rassemblés dans un seul fichier dans une structure particulière permettant d’accomplir une ou plusieurs tâches Exemple : Un script Shell Un script est un fichier contenant une série d’ordres que l’on va soumettre à un programme externe pour qu’il les exécute. Ce programme est appelé interpréteur de commandes. Il existe de nombreux interpréteurs de commandes. Naturellement, le shell en fait partie, tout comme certains outils tels que Sed et Awk que nous verrons ultérieurement, ainsi que d’autres langages tels que Perl, Python, Tcl/Tk, Ruby, etc. Ces langages sont dits interprétés, par opposition aux langages compilés (comme C, C++, Fortran, Ada, etc.) Un script Shell Portabilité des scripts shell: Une norme de l’IEEE : Posix Ce type de normes ont émergé d'un projet de standardisation des interfaces de programmation des logiciels destinés à fonctionner sur les variantes du système d'exploitation UNIX. Un standard de l’Open Group : SUS (Single Unix Specification) De nos jours, la version 3 de ce standard (abrégé habituellement en SUSv3) a intégré le contenu de la norme Posix. Un script Shell Plusieurs versions du shell: sh (Bourne Shell) : créé par Stephen R. Bourne en 1977 csh (C Shell) : créé par Bill Joy en 1979 tcsh (C Shell amélioré) : créé par Ken Greer en 1979 ksh (Korn Shell) : créé par David Korn en 1982 bash (Bourne again shell) : créé par Brian Fox en 1987 zsh (Z Shell) : créé par Paul Falstad en 1990 Possibilité de choisir 1 exemplaire particulier du Shell par utilisateur Il peut lancer plusieurs Shells sur sa session Sous Linux, on peut choisir son shell Le shell bash domine le marché depuis longtemps Choix du shell Pourquoi écrire un script shell ? Exemples de domaines d’utilisation : lancer quelques commandes disposant d’options complexes, et qu’on désire employer régulièrement sans avoir à se reporter sans cesse à leur documentation. scripts d’initialisation (de boot) du système, permettent d’énumérer les périphériques disponibles, et de les initialiser, de préparer les systèmes de fichiers, les partitions, et de configurer les communications et les services réseau. préparation ou installation de certaines applications spécifiques (logiciels) nécessitent un paramétrage complexe. tâches automatisées pour vérifier l’état du système (mémoire, espace disque, antivirus...) et maintenance périodique. exploiter la sortie de certaines commandes et programmes, et les traces des scripts Shell enregistrées dans des fichiers de journalisation uploads/Industriel/ cours-complet-unix-avance-en-francais.pdf
Documents similaires










-
43
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 24, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.8540MB