Premier script shell
Voici un premier script shell qui vise à démontrer simplement l’environnement programmable du shell Linux.
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
2.1. vi/vim
vi/vim
: vimtutor
, le tutoriel embarqué de vim
est conseillé.
- 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
- Insérer du texte, entrer en mode “insertion” :
i
- Sortir du mode “insertion” : touche ‘ESC’ (‘Echap’)
- Quitter sans sauver :
:q!
- Sauver le document :
:w
- Quitter Vi et Sauver le document :
:x
ouShift ZZ
2.2. Nano
nano
: “notepad like” devenu très populaire que l’on détaille pas ici.
2.3. Autres
-
mcedit
: “norton commander like” est très utile pour débuter. -
emacs
: 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
avec nano
ou vi
:
echo "ceci est un mon premier script"
Invoquez ce script monscript.sh
avec sh :
sh monscript.sh
Renommez monscript.sh
en monscript
:
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 du script
Objectif : le script devrait rester accessible directement dans la ligne de commande :
Première méthode
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
Seconde méthode
En modifiant la variable PATH en ajoutant l’endroit du fichier soit l’emplacement local courant. Avec cette méthode, tout script à exécuter à partir l’endroit courant peut être appelé.
$PATH:.
Troisième méthode
Appel depuis son emplacement original :
./monscript.sh
Rendre le script exécutable
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 courant .
(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
Afficher la date dans la langue courante :
echo $LANG
date
peut afficher ce résultat :
fr_BE.UTF-8
dim fév 21 06:05:03 CET 2016
Afficher la date dans une autre langue, ici avec la locale en_US.UTF-8
:
LANG=en_US.UTF-8
date
affiche ce résultat :
Sun Feb 21 06:05:28 CET 2016