Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

Introduction au programmation shell (scripts shell)

 

Introduction au programmation shell (scripts shell)

Un shell est un élément fondamental et clé de l'environnement informatique Linux. Il est connu à la fois pour une interface de ligne de commande puissante et un interpréteur de langage de script. L'interface de ligne de commande du shell fournit un environnement pour exécuter des commandes. Les shells sont des programmes utilisateur qui offrent une interface personnalisable entre l'utilisateur final et le noyau Linux. Les principales fonctionnalités offertes par le shell sont les suivantes :

  •  Offre une communication interactive ou une interface utilisateur textuelle entre l'utilisateur et le système d'exploitation.
  •  Fournit un environnement pour l'exécution d'autres applications et programmes.
  •  Aide au lancement et à la gestion des commandes et programmes utilisateur et système.
  •  S'exécute en tant que programme utilisateur dans l'espace programme.
  •  Personnalise les fonctionnalités du shell en fonction de son environnement d'exploitation.
  •  Exécute le shell dans les environnements interactifs et non interactifs ; les utilisateurs finaux utilisent un environnement interactif et le système utilise un environnement non interactif.
  •  Fournit un environnement d'exploitation qui peut être personnalisé à l'aide de fichiers de configuration.
  •  Communique les variables d'environnement aux processus enfants du shell.
  •  Offre son propre langage de programmation avec des fonctionnalités riches qui permettent aux utilisateurs d'écrire des programmes shell, également appelés script shell.

Plus simplement, un script shell est un fichier texte qui comprend une série d'une ou plusieurs commandes, en supposant que chaque ligne du fichier texte conserve une commande distincte. À l'invite de commande, si vous exécutez régulièrement un groupe de commandes, enregistrez toutes les commandes dans un fichier et exécutez le fichier en tant que script shell ou programme shell. De cette façon, on peut gagner du temps et minimiser les risques d'erreurs lors de l'exécution d'un tel groupe de commandes.

Créer un script Shell

Un script shell est un simple fichier texte, vous avez donc besoin d'un éditeur de texte, tel que vi ou vim, pour créer un fichier en tant que fichier script shell et ensuite, écrire la liste des commandes dans le fichier. Vous pouvez créer un script shell de la manière suivante :

Etape 1 : Créer le fichier script

Utilisez la commande touch pour créer un fichier vide sur la ligne de commande avec le nom du script tel que hello.sh. Par la suite, vous pouvez l'ouvrir et saisir la liste des commandes en utilisant n'importe quel éditeur de texte.

devinfo@ubuntu:~/scripts$ touch hello.sh
Etape 2 : Ecrire le script shell

Utilisez n'importe quel éditeur de texte, tel que Vi/Vim, pour créer et ouvrir un fichier de script shell portant le nom hello.sh, puis écrivez des commandes et enregistrez le fichier de script. L'exemple suivant développe la structure de base d'un script shell, par exemple, l'écriture d'un script shell simple pour obtenir des informations système telles que la date, le chemin du shell actuel et le nom du système d'exploitation du système.

script hello.sh
#!/bin/bash
echo "Date & Heure:`date`"
echo "Le shell courant : $SHELL" 
echo "Nom du système d'exploitation" ; uname
exit 0

Lorsque vous écrivez un fichier de script shell, vous devez spécifier le chemin absolu de l'interpréteur de commandes shell actuel sur la première ligne du fichier texte. La ligne doit commencer par le caractère point d'exclamation ( !) accompagné du signe dièse (#), suivi du chemin complet de l'interpréteur de bash, /bin/bash. La première ligne de hello.sh comprend une chaîne de caractères commençant par #! Il ne s'agit pas d'une ligne de commentaire, mais d'une ligne de chemin d'accès à l'interpréteur. La syntaxe de cette ligne est la suivante :

#!/bin/bash

Après avoir indiqué le chemin de l'interpréteur shell, les commandes sont saisies dans chaque ligne du fichier. Vous pouvez combiner plusieurs commandes sur la même ligne en les séparant par un point-virgule. Mais dans un script shell, le shell préfère écrire des commandes sur des lignes distinctes.

Etape 3 : Rendre le script exécutable 

Chaque fois que vous créez un nouveau fichier, la valeur umask du système détermine le paramètre de permission par défaut pour le fichier nouvellement créé. Si la valeur de l'umask du système est fixée à 002, le système ne dispose que de l'autorisation de lecture et d'écriture. Ainsi, de cette façon, le fichier de script shell hello.sh n'a que la permission de lecture et d'écriture, et non la permission d'exécution. Pour exécuter le script, utilisez la commande suivante :

devinfo@ubuntu:~/scripts$ sh hello.sh
Date & Heure:mer. 20 oct. 2021 05:15:55 PDT
Le shell courant : /bin/bash
Nom du système d'exploitation
Linux

La prochaine étape importante consiste à attribuer le droit d'exécution au fichier script hello.sh. Pour rendre un fichier exécutable, utilisez la commande chmod avec l'option +x, comme indiqué ci-dessous :

devinfo@ubuntu:~/scripts$ chmod +x hello.sh

Une fois l'autorisation d'exécution accordée, le script est exécutable par son propriétaire, les membres du groupe et d'autres personnes sur le système. Avec les permissions définies, vous pouvez maintenant exécuter votre fichier script en utilisant ./ suivi de hello.sh, comme indiqué ci-dessous :

devinfo@ubuntu:~/scripts$ ./hello.sh
Date & Heure:mer. 20 oct. 2021 05:19:16 PDT
Le shell courant : /bin/bash
Nom du système d'exploitation
Linux

Chemin du fichier de script

Dans le mode d'exécution précédent, la syntaxe './hello' indique que le fichier que vous avez mentionné se trouve dans le répertoire de travail actuel.

L'une des caractéristiques très importantes du shell est que vous pouvez exécuter votre fichier script comme n'importe quelle autre commande à l'invite. De cette façon, le nom de fichier du script devient une nouvelle commande shell. La possibilité d'exécuter tout programme exécutable, y compris un script shell, sous Linux dépend uniquement de son chemin (ou emplacement) dans le système de fichiers. Soit vous devez mentionner le chemin du fichier à exécuter, soit il doit être situé ou disponible dans un répertoire connu de l'interpréteur de commandes. Tous les programmes exécutables ou les répertoires de code sont répertoriés dans la variable d'environnement PATH. Pour cela, vous devez inclure le chemin de votre script shell, hello.sh, dans la variable d'environnement PATH.

devinfo@ubuntu:~/scripts$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Ajoutez ensuite le chemin du répertoire du script Hello.sh à la variable d'environnement PATH. Par exemple, si vous avez conservé votre fichier de script shell (hello.sh) dans le répertoire /home/devinfo/scripts, alors pour ajouter ce répertoire au PATH, utilisez la commande suivante :

devinfo@ubuntu:~/scripts$ PATH=$PATH:/home/devinfo/scripts
devinfo@ubuntu:~/scripts$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/devinfo/scripts

Un script devient très utile lorsqu'il est exécuté sur la ligne de commande, en tapant simplement son nom comme n'importe quelle autre commande :

devinfo@ubuntu:~/scripts$ hello.sh
Date & Heure:mer. 20 oct. 2021 05:27:49 PDT
Le shell courant : /bin/bash
Nom du système d'exploitation
Linux

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.