0% ont trouvé ce document utile (0 vote)
25 vues51 pages

Introduction au Scripting BASH 2023-2024

Le document présente un module de formation sur le scripting BASH. Il introduit les concepts clés du scripting BASH comme la création et l'invocation de scripts, les variables, les boucles et les fonctions. Le but est d'automatiser des tâches d'administration système.

Transféré par

zidane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
25 vues51 pages

Introduction au Scripting BASH 2023-2024

Le document présente un module de formation sur le scripting BASH. Il introduit les concepts clés du scripting BASH comme la création et l'invocation de scripts, les variables, les boucles et les fonctions. Le but est d'automatiser des tâches d'administration système.

Transféré par

zidane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

-

BASH Scripting
 Présenté par :
 Pr. Nordine
ZIDANE

[Link] SUPMTI 2023-2024


16-11-2023 1 1
08-Scripting BASH

Simplification d’administration

[Link] SUPMTI 2023-2024 2


Scripting BASH

Objectifs de ce module
En suivant ce module vous allez:

 Connaître ce qu'est BASH.


Comment il fonctionne et qu'est-
ce qu'un script BASH.
 Créer et invoquer un script.
Savoir quoi écrire dans un script
et comment l'invoquer.
 Automatiser des suites de
commandes. Se donner les
moyens pour simplifier
l'administration.

[Link] SUPMTI 2023-2024 3


Scripting BASH

Plan du module
Voici les parties que nous allons aborder:

 Qu'est-ce que BASH. Un


interpréteur et un langage de
script. Les variables.
 Configuration de BASH. Les
fichiers de configurations et les
modes de fonctionnement.
 Créer un shell script. Syntaxe et
invocation.
 Les structures. Boucles,
itérations et fonctions.
 Autres fonctionnalités.

[Link] SUPMTI 2023-2024 4


Qu'est-ce que BASH ?

[Link]
[Link] SUPMTI
SUPMTI 2022-2023 2023-2024 5
Qu’est ce que BASH ?

Plan de la partie
Voici les chapitres que nous allons aborder:
 Présentation.
 Les commandes.
 Les variables.
 Les Alias.

[Link] SUPMTI 2023-2024 6


Qu'est-ce que BASH ?

Présentation

Bourne
Again
SHell

[Link] SUPMTI 2023-2024 7


Qu'est-ce que BASH ?

Présentation
 BASH, acronyme de Bourne-Again shell.
 Par défaut sur les systèmes GNU/linux.
 Programme interprétant les commandes : un shell
 Sous licence GPL
 En version 3 depuis Juillet 2004
 Autres interpréteurs : sh, csh, ksh, zsh
 Langage de programmation simplifiant et automatisant
l'administration d'un système UNIX.

[Link] SUPMTI 2023-2024 8


Qu'est-ce que BASH ?

Présentation
1 2

[user@linux ~]$ echo "Hello world!"


Hello world!

3
 L'affichage classique est composé...

1 Un prompt fournissant diverses


informations.

2 Un espace réservé à l’entrée de


commandes

3 Une zone affichant le résultat


des commandes utilisées.
[Link] SUPMTI 2023-2024 9
Qu'est-ce que BASH ?

Les commandes et les Variables

[user@linux ~]$ os=“GNU/Linux”


[user@linux ~]$ echo “Ce système d’exploitation est $os”
Ce système d’exploitation est GNU/Linux.

 Les variables :
 Pas d'espace au niveau du signe égal
 Affectation : pas de « $ »
 Utilisation : « $ » devant le nom de la variable
 La commande echo :
 Affiche du texte à l’écran

[Link] SUPMTI 2023-2024 1


Qu'est-ce que BASH ?

Les commandes et les Variables

[user@linux ~]$ read [-p prompt] [variable]

 Lit une entrée clavier.


 Si le nom de la variable n'est pas précisé, la valeur
est stockée dans la variable spéciale REPLY.

read # stocke l’entrée dans REPLY


read VAR # stocke l’entrée dans VAR

[user@linux ~]$ read –p “Nom de l’OS ?” os


Nom de l’OS ? OpenBSD
[user@linux ~]$ echo “Ce système d’exploitation est $os”
Ce système d’exploitation est OpenBSD.

[Link] SUPMTI 2023-2024 1


Qu'est-ce que BASH ?

Les commandes et les Variables


 Subtilités ...

var=“ls”
echo “var = $var” # affiche : var = ls
echo ’var = $var’ # affiche : var = $var
echo “var = “`$var` # affiche : var = script

 Un peu de vocabulaire :
 « " » : double quote
 « ' » : simple quote
 « ` » : backquote ou backtick (AltGr + 7)

[Link] SUPMTI 2023-2024 1


Qu'est-ce que BASH ?

Les commandes et les Variables


Les variables d’environnement :
 Variables spéciales modifiant le comportement du shell
et/ou applications lancées depuis le shell.

 Définie et modifiée comme les variables « normales ».

 Pour lister les variables d'environnement du shell :

[user@linux ~]$ env


HOME=/home/user
PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin
TERM=xterm
EDITOR=/bin/nano

[Link] SUPMTI 2023-2024 1


Qu'est-ce que BASH ?

Les commandes et les Variables

 Modifications des variables « classiques» : valables


seulement pour le shell courant.

 Pour que les variables soient accessibles à


l'environnement, on doit « exporter » la variable.

[user@linux ~]$ echo $EDITOR


EDITOR=/usr/bin/nano
[user@linux ~]$ EDITOR=/usr/bin/vi
[user@linux ~]$ export EDITOR

 Dans tous les cas, les variables sont détruites à la


fermeture du shell ou du processus.

[Link] SUPMTI 2023-2024 1


Qu'est-ce que BASH ?

Les alias

 BASH permet de créer des alias de commande.

 Les alias permettent d'abréger les longues commandes.

 Les alias sont effacés à la fermeture du shell.

[user@linux ~]$ alias ll=“ls –l”


[user@linux ~]$ ll
total 6794
-rw-r--r-- 1 root root 18693 Sep 22 21:01 COPYING
-rw-r--r-- 1 root root 89517 Sep 22 21:01 CREDITS
drwxr-xr-x 59 root root 6048 Sep 22 21:02 Documentation

[Link] SUPMTI 2023-2024 1


Qu'est-ce que BASH ?

Récapitulatif
 BASH est un interpréteur de commande très utilisé.
 L'utilisateur peut interagir avec BASH.
 Il est possible de définir des variables.
 Les variables d'environnements sont accessibles aux
programmes lancés par le shell.
 Il est possible de définir des alias de commandes.
 Les alias et les variables sont effacés à la fermeture du
shell.

[Link] SUPMTI 2023-2024 1


Qu'est-ce que BASH ?

Pause-réflexion
Avez-vous des questions ?

[Link] SUPMTI 2023-2024 1


Scripting BASH

Configuration de BASH

[Link] SUPMTI 2023-2024 1


Configuration de Bash

Plan de la partie
Voici les chapitres que nous allons aborder:
 Les fichiers de configuration.
 Les modes d’exécution.
 Exemple

[Link] SUPMTI 2023-2024 1


Configuration de BASH

Les fichiers de configuration


 Système : /etc/profile et /etc/bash/bashrc
 Utilisateur : ~/.bash_profile et ~/.bashrc
 Contiennent des commandes à éxécuter.
 Définissent les variables d'environnement et les alias.

[Link] SUPMTI 2023-2024 2


Configuration de BASH

Les modes d'éxécutions


 BASH peut etre lancé de 2 façons différentes, ce qui
influence l'ordre de lecture des fichiers de configuration :
 Shell interactif de login
1 S'il existe, éxécute /etc/profile

2 Exécute le premier trouvé entre


~/.bash_profile, ~/.bash_login,
~/.profile

 Shell interactif classique


1 S'il existe, éxécute /etc/bash/bashrc

2 S'il existe, éxecute ~/.bashrc

[Link] SUPMTI 2023-2024 2


Configuration de BASH

Exemple

[user@linux ~]$ cat .bashrc


EDITOR="/usr/bin/vim"
PATH="/opt/bin/:$PATH"
export EDITOR PATH

alias ls='li -lih'


echo "Chargement de la configuration terminé."
echo "Bienvenue "`whoami`

[Link] SUPMTI 2023-2024 2


Configuration de BASH

Récapitulatif
 Il existe une configuration pour le système et une
configuration par utilisateur.

 Selon le mode d'exécution de BASH, des


configuration différentes seront chargées.

 Les fichiers de configuration contiennent juste des


commandes à exécuter.

 Il est possible de sauvegarder ses alias et ses


variables, en utilisant les fichiers de configuration
de BASH.

[Link] SUPMTI 2023-2024 2


Configuration de BASH

Pause-réflexion
Avez-vous des questions ?

[Link] SUPMTI 2023-2024 2


Scripting BASH

Créer un shell script

Où comment automatiser les tâches administratives.

[Link] SUPMTI 2023-2024 2


Créer un shell script

Plan de la partie
Voici les chapitres que nous allons aborder :
 Qu'est-ce qu'un script.
 Invocation d'un script.
 Les arguments.
 Sortie du script et signaux.

[Link] SUPMTI 2023-2024 2


Créer un shell script

Qu'est-ce qu'un script


 Un fichier texte contenant un ensemble de commande.
 Les commentaires commencent par #
 La première ligne indique l'interpréteur (shebang)

#!/bin/bash

#!/usr/bin/perl

#!/usr/bin/python

[Link] SUPMTI 2023-2024 2


Créer un shell script

Invocation d'un script


 Définir les bonnes permissions

[user@linux ~]$ chmod +x [Link]

 Exécution d'un script :


Charge l'interpréteur pour exécuter le script. Seules les
./[Link] variables exportées sont disponibles à l'intérieur du
script.

source [Link]
Le script est exécuté à l'intérieur du shell courant.
Il a accès en lecture/écriture à toutes les variables
précédemment définies
. [Link]

[Link] SUPMTI 2023-2024 2


Créer un shell script

Les arguments
 Arguments passés à la ligne de commande
#!/bin/bash
# Exemple de script Bash
#
echo $0 $1 $2

 A l'éxécution :

[user@linux ~]$./script labo linux


./script labo linux

$* : tous les arguments sous la forme d'une chaîne de caractères


$@ : tous les arguments sous la forme d'un tableau

[Link] SUPMTI 2023-2024 2


Créer un shell script

Sortie du script et signaux


 L'instruction return :
 Renvoie une valeur de retour (pour une fonction)
 L'instruction exit :
 Sort et renvoie une valeur de retour (0 ou >0)
 La variable spéciale $? contient la valeur de retour
de la commande précédente

 L'instruction trap permet d'intercepter un signal

trap “echo Vous avez appuyé sur Ctrl-C” SIGINT

[Link] SUPMTI 2023-2024 3


Créer un shell script

Pause-réflexion
Avez-vous des questions ?

[Link] SUPMTI 2023-2024 3


Scripting BASH

Les structures

[Link] SUPMTI 2023-2024 3


Les structures

Plan de la partie
Voici les chapitres que nous allons aborder :
 La structure conditionnelle if.
 Le switch.
 Les boucles.
 Le for.
 Les instructions de contrôle.
 Les fonctions.

[Link] SUPMTI 2023-2024 3


Les structures

La structure conditionnelle if
 if condition; then commande; fi

 if condition; then commande; else commande; fi

 if condition; then commande; elif condition; commande; fi

if [ `a` = `a` ]; then echo “true”; fi

if [ `a` = `a` ]; then echo “true”;


else echo “false”; fi

if [ `a` = `a` ]; then echo “true”;


elif [ `b` = `b` ]; echo “false”; fi

[Link] SUPMTI 2023-2024 3


Les structures

Le switch
 Le switch :

case “$OS” in
unix)
echo ‘Vous avez un Unix’
;;
[Bb][Ss][Dd])
echo ‘vous avez une BSD’
;;
Lin*)
echo ‘vous avez GNU/Linux’
;;
*)
echo ‘autre’
;;
esac

[Link] SUPMTI 2023-2024 3


Les structures

Les boucles
 while condition; do commande; done

i=0
while [ $i -lt 3 ]; do
echo $i; let $[ i += 1 ]
done

 until condition; do commande; done

i=0
until [ $i -eq 3 ]; do
echo $i; let $[ i += 1 ]
done

[Link] SUPMTI 2023-2024 3


Les structures

Le for
 La boucle for est équivalent au foreach existant
dans de nombreux langages.
 L'instruction seq crée une séquence de nombres.

for i `seq 1 5`; do


echo $i
done

[Link] SUPMTI 2023-2024 3


Les structures

Les instructions de controle


 Contrôle le déroulement des itérations d'une boucle :

 Instruction break : quitte la boucle.

 Instruction continue : stoppe l'itération en cours


et passe directement à l'itération suivante.

[Link] SUPMTI 2023-2024 3


Les structures

Les fonctions
 Se comportent comme des variables.
 Peuvent être définie directement dans le shell.
 La commande set permet de lister toutes les variables
et les fonctions actuellement définies dans l'interpréteur
de commande.

function ma_fonction() {
local var1
local var2=“valeur”
commande1
commande2
return val;
}

[Link] SUPMTI 2023-2024 3


Les structures

Pause-réflexion
Avez-vous des questions ?

[Link] SUPMTI 2023-2024 4


Scripting BASH

Autres fonctionnalités

[Link] SUPMTI 2023-2024 4


Autres fonctionnalités

Plan de la partie
Voici les chapitres que nous allons aborder :
 Syntaxe.
 Effectuer des calculs.
 Nombres aléatoires.
 Interfaces graphiques.

[Link] SUPMTI 2023-2024 4


Autres fonctionnalités

Syntaxe
 Commentaires

# exemple de commentaire

 Variables
var=‘linux’
echo $var
echo ${var}

[Link] SUPMTI 2023-2024 4


Autres fonctionnalités

Effectuer des calculs


 Pour évaluer : expr

[user@linux ~]$ expr 3 + 7


10

 La commande let

i=3
let $[ i += 7 ]
echo $i # affiche 10

[Link] SUPMTI 2023-2024 4


Autres fonctionnalités

Nombre aléatoire
 Variable spéciale $RANDOM
 Génère un nombre de 5 chiffres.

echo $RANDOM
echo $RANDOM % <chiffre>

[Link] SUPMTI 2023-2024 4


Autres fonctionnalités

Interfaces graphiques
Le programme dialog permet de créer des boîtes de
dialogue au sein d'un script BASH :

[Link] SUPMTI 2023-2024 4


Autres fonctionnalités

Pause-réflexion
Avez-vous des questions ?

[Link] SUPMTI 2023-2024 4


Scripting Bash

Résumé du module

Présentation
Présentation
de
de Bash
Bash

Création
Création de
de Les
Les Structures
Structures
Script
Script

[Link] SUPMTI 2023-2024 4


Scripting Bash

Pour aller plus loin…


Si vous voulez approfondir vos connaissances:

Publications Modules de cours


 Commandes de base
[Link]  Sed et Awk

Sites web Conférences

[Link] .

[Link] SUPMTI 2023-2024 4


Félicitations
Vous avez suivi avec succès le
module de cours n°08
Bash Scripting

[Link] SUPMTI 2023-2024 5


Bash Scripting
Fin

 Afin d'assimiler l'utilisation du Bash Scripting, il est conseillé de


pratiquer le plus possilbe
[Link] SUPMTI 2023-2024 5

Vous aimerez peut-être aussi