3. 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 ou Shift ZZ
  • nano : notepad like devenu très populaire

  • mcedit : norton commander like

  • 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

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

Commentaires