|
Ne doit pas être confondu avec batch.
Bash, acronyme de Bourne-again shell, est le shell du projet GNU. Son nom est un jeu de mots sur le nom du shell historique d'Unix, le Bourne shell : Bourne again, ou born again, signifie « né de nouveau » ou encore « réincarné ». Basé sur ce dernier, il apporte de nombreuses améliorations, provenant notamment du Korn shell et du C shell. Bash est un logiciel libre publié sous GNU GPL. Il est l'interprète par défaut sur de nombreux Unix libres, notamment sur les systèmes GNU/Linux. C'est aussi le shell par défaut de Mac OS X et il a été porté sous Windows par le projet Cygwin.
HistoireSon auteur original est Brian Fox de la Free Software Foundation, relayé plus tard par Chet Ramey. Le Bourne shell original fut écrit par Steve Bourne. Fonctionnement interactifBash utilise la bibliothèque readline ce qui lui permet, comme le C shell, de compléter automatiquement les noms de commandes et de fichiers lors d'une frappe sur la touche TAB, ce qui accélère considérablement le travail. Les touches UP et DOWN permettent de naviguer avec facilité dans l'historique des commandes. Langage de commandeLe premier mot de la ligne est donc considéré par l'interprète comme un nom de commande. Mais il en existe de plusieurs sortes, avec différents types de priorité. Dans l'ordre décroissant de priorité:
Chaque commande respecte les contraintes suivantes :
$PATHDans le cas d'une commande externe, le shell doit retrouver le programme avant de pouvoir l'exécuter. Une recherche exhaustive, pour chaque commande, dans tout le système de fichiers prendrait beaucoup trop de temps et rendrait le système inutilisable dans la pratique. Seul un petit ensemble de répertoires est en fait consulté lors de la recherche du programme permettant l'exécution de la commande. Ces répertoires sont définis dans une variable d'environnement appelée "$PATH". Si la commande n'est pas trouvée dans l'un des répertoires listés dans le PATH, l'exécution se solde par un message d'erreur du type "command not found". Contrairement à ce qui se passe sous Windows, pour des raisons de sécurité, les shell UNIX (et donc bash) n'incluent pas implicitement le répertoire courant dans le PATH, mais il peut y être placé explicitement. SessionLa fermeture de session se fera par la commande SyntaxeChaque commande est associée à
Éventuellement, des descripteurs de fichier supplémentaires peuvent être associés à une commande. Les métacaractères du shellUn métacaractère est un caractère qui possède une signification au-delà de sa signification littérale[1]. Quelques exemples au niveau des expressions rationnelles dans Bash :
Et d'autres au niveau des commandes Bash :
Gestion de processus [2]
Gestion de fluxIl existe trois flux majeurs :
Méthode d'utilisation :
Redirection de l'entrée et des 2 sorties
d'une manière générale n> permet la redirection du nième descripteur de fichier
Variables du shellLes variables sont référencées en les faisant précéder par le signe $ : exemple echo $HOME Quelques variables d'environnement : USER PID HOME PATH SHELL Substitution de commandesdans une ligne de commande, on remplace comme argument une commande par son résultat (au stdout) en l'entourant d'apostrophes inversées ` nom commande` ou encore en utilisant $() $(nom commande) Expression rationnelleCaractère d'échappement anti-slash ("\")Anti-slash en fin de ligneÀ la fin d'une ligne, un anti-slash indique que la commande continue à la ligne suivante. Cette fonction est particulièrement utile pour les grandes commandes afin de les rendre plus facilement lisibles. Anti-slash pour former un des caractères spéciaux du CLes chaînes ayant un format analogue à $'\n' sont interprétées d'une façon particulière par le bash. Elles sont transformées en conformité avec les règles du C ANSI. Exemple : echo $'\a' # Provoquera un bip sonore. Voici la liste :
Voir ASCII Anti-slash avant un des meta-caractères du bashLes meta-caractères, notamment "*" (étoile), sont interprétés par l'interpréteur bash (le plus souvent remplacement par d'éventuels fichiers), ce qui est gênant dans certains cas (commande find[4], sed, ...etc); exemple : cd /etc;find . -name r* Le message d'erreur sera Find: Les chemins doivent précéder l'expression Une des solutions est d'utiliser un anti-slash avant le caractère "*". Exemple : cd /etc;find . -name r\* Remarque
cd /etc;find . -name "r*" Éventuels scripts de démarrage et de déconnexionScript exécuté lors de la connexion
Scripts de déconnexion
Script pour les shell interactifs autres que les scripts de connexion :
Références
Voir aussiArticles connexesLiens externes
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net