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 ou Shift ZZ

2.2. Nano

nano : “notepad like” devenu très populaire que l’on détaille pas ici.

2.3. Autres

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