Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:bash [17/08/2010 01:30] devpsp |
doc:programmation:bash [22/09/2013 11:12] captnfab [Script] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Shell bash ====== | ||
+ | ===== Page en cours de réalisation. ===== | ||
+ | |||
+ | * Cette page nécessite des relectures et des améliorations. | ||
+ | * Des passages peuvent être simplifiés, restructurés, argumentés, illustrés. | ||
+ | * Un comité d'écriture/relecture peut être suggéré. | ||
+ | * Des liens dirigeant vers des pages internes/externes au wiki peuvent être ajoutées. | ||
+ | |||
+ | Lien au forum df : | ||
+ | * http://debian-facile.org/forum/viewtopic.php?pid=22578#p22578 | ||
+ | |||
+ | Rappel : lire le [[http://wiki.debian-facile.org/reglement|règlement interne]]. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | \\ | ||
+ | |||
+ | Objet : Le shell bash\\ | ||
+ | Niveau requis : DEBUTANT\\ | ||
+ | Débutant, à savoir : [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
+ | |||
+ | ===== Le Shell ===== | ||
+ | |||
+ | Le Shell est un interpréteur (ou interface) de lignes de commande, ce programme fonctionne à partir d'instructions en mode texte saisies dans la/le [[manuel:terminal|console/terminal]]. | ||
+ | |||
+ | Il existe plusieurs shell, bien souvent par défaut, c'est le **Shell Bash** qui est utilisé. | ||
+ | |||
+ | Pour savoir quel shell vous utilisez par défaut, tapez : | ||
+ | <code bash> | ||
+ | user@debian-facile:~$ echo $SHELL | ||
+ | /bin/bash | ||
+ | </code> | ||
+ | Pour connaître la version de votre Shell Bash, tapez : | ||
+ | <code bash> | ||
+ | user@debian-facile:~$ bash --version | ||
+ | GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) | ||
+ | Copyright (C) 2007 Free Software Foundation, Inc. | ||
+ | </code> | ||
+ | |||
+ | ===== Quotes, apostrophe, guillemets et apostrophe inversée ===== | ||
+ | |||
+ | ==== Simple quote ou apostrophe ==== | ||
+ | |||
+ | Les simples quotes : ' délimitent une chaîne de caractères. \\ | ||
+ | Même si cette chaîne contient des commandes ou des variables shell, celles-ci ne seront pas interprétées. Par exemple : | ||
+ | <code bash> | ||
+ | $ variable='secret' | ||
+ | $ echo 'Mon mot de passe est $variable.' | ||
+ | Mon mot de passe est $variable.</code> | ||
+ | |||
+ | ==== Doubles quotes ou guillements ==== | ||
+ | |||
+ | Les doubles quotes : " délimitent une chaîne de caractères, mais les noms de variable sont interprétés par le shell. Par exemple : | ||
+ | <code bash> | ||
+ | $ variable="secret" | ||
+ | $ echo "Mon mot de passe est $variable." | ||
+ | Mon mot de passe est secret.</code> | ||
+ | |||
+ | Ceci est utile pour générer des messages dynamiques au sein d'un script. | ||
+ | |||
+ | Remarquez bien la différence entre : | ||
+ | echo coucou tout le monde | ||
+ | Ici, le shell va se trouver à interpréter chaque argument séparément. | ||
+ | |||
+ | Alors qu'ici : | ||
+ | echo "coucou tout le monde" | ||
+ | |||
+ | Le shell interprètera toute la chaîne comme un seul argument. | ||
+ | |||
+ | ==== Anti-quote ou apostrophe inversée ==== | ||
+ | |||
+ | Bash considère que les anti-quotes (`) délimitent une commande à exécuter. \\ | ||
+ | Les noms de variable et les commandes sont donc interprétés. | ||
+ | |||
+ | Par exemple en mettant toute cette commande entre deux Anti-quotes((L'anti-quote s'obtient avec les 2 touches simultanées du clavier : ''AltGr 7'')) : | ||
+ | $ echo `variable="connu"; echo "Mon mot de passe est $variable."` | ||
+ | |||
+ | On obtiendra : | ||
+ | Mon mot de passe est connu. | ||
+ | |||
+ | Autre exemple : | ||
+ | <code bash> | ||
+ | echo `ls` </code> | ||
+ | |||
+ | Cette commande affiche le contenu du répertoire courant à l'écran. \\ | ||
+ | Elle est strictement équivalente à ls. | ||
+ | |||
+ | ===== Variables ===== | ||
+ | |||
+ | ==== accolades ==== | ||
+ | |||
+ | Les accolades { } permettent de délimiter une variable d'une chaîne de caractères. \\ | ||
+ | Par exemple : | ||
+ | pour délimiter le nom de la variable ici on peut écrire : | ||
+ | VARIABLE1="${VARIABLE}RESTEDELACHAINE" | ||
+ | |||
+ | Et si VARIABLE = "C'ESTLE", nous obtiendrons pour la signification de VARIABLE1 : | ||
+ | echo VARIABLE1="${VARIABLE}RESTEDELACHAINE" | ||
+ | VARIABLE1=C'ESLERESTEDELACHAINE | ||
+ | |||
+ | //Merci à //**enikar**//, toujours vaillant sur l'irc df !// ;-) | ||
+ | |||
+ | ===== Source ===== | ||
+ | |||
+ | * http://fr.wikibooks.org/wiki/Programmation_Bash/Notions_essentielles_du_shell_bash#Quotes.2C_apostrophe.2C_guillemets_et_apostrophe_invers.C3.A9e | ||
+ | |||
+ | //Merci à //**Haricophile**// qui prend bien de la peine à me dépatouiller des sites english, comme ici !// ;-) | ||
+ | |||
+ | ===== Les commandes Linux ===== | ||
+ | |||
+ | * [[manuel:ligne_de_commande_et_commandes#gnu_linux-_les_commandes | Les commandes Linux]] | ||
+ | |||
+ | ===== Répertoires et chemins ===== | ||
+ | |||
+ | * [[manuel:repertoire | Les répertoires et chemins]] | ||
+ | |||
+ | ===== Ligne de commmande ===== | ||
+ | |||
+ | Vous avez déjà sûrement utilisé des commandes à partir des définitions présentes à la page [[manuel:ligne_de_commande_et_commandes#gnu_linux-_les_commandes|Les commandes Linux]]\\ | ||
+ | |||
+ | Voir : | ||
+ | * [[manuel:ligne_de_commande_et_commandes | La ligne de commande]] | ||
+ | |||
+ | ===== Métacaractères ===== | ||
+ | |||
+ | Débutant avisé, voir : | ||
+ | * [[commande:les_metacaracteres|Les métacaractères, ou globs, ou encore patterns]] | ||
+ | | ||
+ | |||
+ | ===== Alias ===== | ||
+ | |||
+ | Lorsque vous tapez plusieurs lignes de commande différentes et répétitives à la suite, il est intéressant de les rédiger toutes ensembles dans un seul texte (un //script//) afin de les appeler d'un coup à l'aide d'un mot clé nommé : [[commande:alias|un alias]]. | ||
+ | |||
+ | Pour voir où et comment réaliser un tel script : | ||
+ | * [[bash:alias2|Réalisation d'un Script contenant des Alias]] | ||
+ | |||
+ | ===== Script ===== | ||
+ | |||
+ | Un **script** est la rédaction dans un fichier texte d'un ensemble de //commandes// et d'expressions régulières (caractères utilisés symboliquement) orientant les instructions données aux commandes. | ||
+ | |||
+ | Pour les DÉBUTANTS AVISÉS et anglophile, voir là : | ||
+ | |||
+ | * [[manuel:scripts_bash | Des scripts à foison commentés en anglais]] | ||
+ | |||
+ | //Merci à //**cthuluh**// pour nous avoir proposé ce lien.// :-) | ||
+ | |||
+ | |||
+ | ===== Liens et remerciements ===== | ||
+ | |||
+ | //Merci à //**devpsp**// d'avoir initié cette page, et au //**captnfab**// qui de son site ici :// | ||
+ | * http://wiki.chezlefab.net/about/accueil | ||
+ | |||
+ | //Veille à nous éviter bien des ecueils !// ;-) |