Premier script shell
1. Pourquoi écrire un script shell ?
- Simplifier une procédure complexe
- Manipuler des scripts Init
- Déploiement logiciel : installateur de binaire, avec compilation, avec dépôts de paquetages
- Supervision de parc, Exploitation de journaux, Tâches de maintenances périodiques
- Configuration, gestion, maintenance, surveillance d’environnements virtualisés
- Gestion spécifique à la production :
- Bases de données
- Services Web
- Services d’infra
- Services de traitement (batch)
- …
2. Editeur de texte
Un bon éditeur de texte est indispensable.
On pourra changer l’éditeur par défaut sous Debian/Ubuntu avec la commande :
sudo update-alternatives --config editor
vi/vim
:$ vimtutor
- Trois modes : commandes, édition, dernière ligne
- Numérotation des lignes :
:set nu
- Début du fichier :
gg
- Fin du fichier :
G
- Ligne 25 :
25G
ou:25
- Quitter sans sauver :
:q!
- Sauver :
:w
- Quitter et Sauver:
:x
ouShift ZZ
nano
: notepad like devenu très populairemcedit
: norton commander likeemacs
: https://fr.wikipedia.org/wiki/Emacs
3. Exécution d’un script
3.1. Invocation de l’interpréteur
- Créez un premier script nommé
monscript.sh
avecnano
ouvi
:
echo "ceci est un mon premier script"
- Invoquez ce script
monscript.sh
avec sh :
$ sh monscript.sh
- Renommez
monscript.sh
enmonscript
:
$ mv monscript.sh monscript
- Ajoutez une commande à
monscript
:
$ echo "echo `ceci est ma seconde ligne`" >> monscript
- Invoquez ce script
monscript
avec sh, l’extension qui dénomme le script n’a aucune portée pour le shell :
$ sh monscript
3.2. Appels directs
Objectif : le script devrait rester accessible directement dans la ligne de commande :
- Par exemple, en plaçant le script dans un chemin du PATH :
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
- et dans
~/bin
- En modifiant la variable PATH en ajoutant l’endroit du fichier soit l’emplacement local courant. Avec cette méthode, tous scripts à exécuter à partir l’endroit courant peuvent être appelés.
$PATH:.
- Appel depuis son emplacement original :
./monscript.sh
- Il aussi nécessaire que le fichier soit exécutable :
chmod u+x monscript.sh
NOTE
Le Shebang indique au système l’interpréteur à utiliser pour lancer les commandes : #!/bin/sh
ou #!/bin/bash
. Si l’interpréteur DE COMMANDES n’est pas déclaré, le shell courant prend en charge les commandes du script.
4. Exercice
4.1. – Prise en main du système
- Lister les shells du système
- Choisir un éditeur de texte et manipuler un éditeur de texte
4.2. – Utilité de la variable PATH
Effacer le contenu de la variable PATH :
$ PATH=
Quel est l’effet produit ? Comment y remédier ?
4.3. – Répertoire courant dans le PATH
Quelle est l’utilité d’ajouter le répertoire . (point) à la fin de votre variable PATH de cette manière :
$ PATH=$PATH:.
4.4. – Obtenir la liste des variables d’environnement
$ env
4.5. – Afficher la date dans d’autres langues
$ echo $LANG fr_BE.UTF-8 $ date dim fév 21 06:05:03 CET 2016 $ LANG=en_US.UTF-8 $ date Sun Feb 21 06:05:28 CET 2016 $ LANG=fr_BE.UTF-8 $ date dim fév 21 06:05:51 CET 2016