Bienvenue chez nous

mardi 2 septembre 2014

programmation shell sous linux

 

 

 

 

LA PROGRAMMATION
"SHELL"

I)  INTRODUCTION

Le  Shell  est  un  "INTERPRETEUR  DE  COMMANDE".  Il  ne  fait  pas  partie  du  système
d'exploitation UNIX; et c'est la raison pour laquelle il porte ce nom "coquille", qui indique son état
détaché du "noyau" Unix. Son rôle est d'analyser lacommande tapée afin de faire réagir le système
pour qu'il réponde aux besoins de l'utilisateur. C'est le premier langage de commandes développé
sur Unix par Steve Bourne.
Une  comparaison  rapide  pourrait  l'apparenter  au  DOS (Disc  Operating  System)  développé  par
Microsoft, mais cette comparaison n'est là que pourillustrer le rôle du Shell par rapport à Unix.
De par sa qualité de "programme externe", il n'est  pas unique. En effet, rien n'empêche n'importe
quel programmeur de programmer une boucle qui attend une chaîne au clavier, analyse cette chaîne
et appelle ensuite le système pour exécuter l'ordredemandé. C'est la raison pour laquelle il existe
plusieurs shells. Nous trouvons entre autres (listenon-exhaustive) :
  le Bourne Shell ("/bin/sh")
  le Korn Shell ("/bin/ksh")
  le c Shell ("/bin/csh") pour les utilisateurs préférant un langage apparenté au "C"
  le Job Shell ("/bin/jsh")
  le Shell réseau ("/bin/rsh")
  le  Bourne Again Shell  ("/bin/bash")  qui  a  repris  le Bourne Shell  mais  qui  l'a  agrémenté  de
nouvelles fonctionnalités (rappel de commandes, complétion automatique, etc.)
  le c Shell amélioré ("/bin/tcsh") améliorant le c Shell tout en lui restant compatible
  l'Almquist Shell  ("/bin/ash")  améliorant  le  Bourne Shell  tout  en  étant  plus  compact  que  le
Bourne Again Shell
  le z Shell ("/bin/zsh")
  et d'autres encore à venir…
C'est un langage de commandes mais aussi un langagede programmation. Il permet donc :
  l'utilisation de variables
  la mise en séquence de commandes
  l'exécution conditionnelle de commandes
  la répétition de commandes
Un  programme  shell  appelé  aussi  "script"  est  un  outil  facile  à  utiliser  pour  construire  des
applications  en  regroupant  des  appels  systèmes,  outils,  utilitaires  et  programmes  compilés.
Concrètement, le répertoire entier des commandes Unix, des utilitaires et des outils est disponible à
partir d'un script shell. Les scripts shell conviennent parfaitement pour des tâches d'administration
du système et pour d'autres routines répétitives neréclamant pas les particularités d'un langage de
programmation structuré.

1)  Pourquoi programmer en shell ?

Aucun  langage  de  programmation  n'est  parfait.  Il  n'existe  même  pas  un  langage  meilleur  que
d'autres ;  il  n'y  a  que  des  langages  en  adéquation  ou  peu  conseillés  pour  des  buts  particuliers.
(Herbert Mayer).
Une  connaissance  fonctionnelle  de  la  programmation  shell  est  essentielle  à  quiconque  souhaite
devenir efficace en administration système car toute l'administration dans Unix est écrite en shell.
Une  compréhension  détaillée  des  scripts  d'administration  est  importante  pour  analyser  le
comportement  du  système,  voire  le  modifier.  De  plus,  la  seule  façon  pour  vraiment  apprendre  la
programmation des scripts est d'écrire des scritpts.
Quand ne pas programmer en shell ?
  Pour des tâches demandant beaucoup de ressources oubeaucoup de rapidité
  Pour  une  application  complexe  où  une  programmation  structurée  est  nécessaire  (typage  des
variables, prototypage de fonctions, tableaux multidimensionels, listes chaînées, arbres, etc.)
  Pour des situations où la sécurité est importante (protection contre l'intrusion, le vandalisme)
  Pour des applications qui accèdent directement au matériel
  Pour des applications qui devront générer ou utiliser une interface graphique utilisateur (G.U.I.)
  Pour des applications propriétaires (un script est forcément lisible par celui qui l'utilise)
Pour toutes ces situations, Unix offre une gamme delangages de scripts plus puissants comme le
Perl, Tcl, Python, Ruby ; voire des langages compilés de haut niveau comme le C et le C++.

telecharger le documment pdf


0 commentaires:

Enregistrer un commentaire