Guide du débutant pour le scripting Shell pour les administrateurs système
Si vous commencez votre parcours dans le monde de l'administration système ou que vous souhaitez automatiser vos tâches sur Linux, alors apprendre le scripting shell est indispensable. Le scripting shell est un moyen puissant d'interagir avec le système d'exploitation et d'exécuter des tâches rapidement et efficacement.
Ce guide vous expliquera tout ce que vous devez savoir, des bases absolues aux concepts de script plus avancés que les administrateurs système utilisent au quotidien.
Qu'est-ce que le scripting Shell ?
Dans son essence, un script shell est un fichier texte simple qui contient une série de commandes que le shell doit exécuter, et un shell est un interpréteur de ligne de commande qui vous permet d'interagir avec le système d'exploitation.
Dans le contexte des systèmes d'exploitation Linux ou de type Unix, les shells les plus courants sont Bash (Bourne Again Shell) et Zsh (Z Shell).
Le scripting shell vous permet d'automatiser des tâches répétitives, de gérer les ressources système ou même d'installer et de configurer des logiciels. Vous pouvez le considérer comme le pont entre l'utilisateur et le système d'exploitation de l'ordinateur. Lorsque vous tapez des commandes dans le terminal, le shell traite ces commandes. Dans le scripting, vous pouvez regrouper ces commandes pour les exécuter toutes en même temps.
Cet article vous guidera depuis le scripting pour débutants jusqu'à des utilisations plus avancées, spécifiquement conçues pour ceux qui souhaitent éventuellement devenir administrateurs systèmes.
1. Les bases de la programmation shell
Avant de se lancer dans l'écriture de votre premier script, il est essentiel de comprendre les bases.
Écrire votre premier script
Pour écrire un script shell, tout ce dont vous avez besoin est un éditeur de texte comme nano, vim ou gedit. La première ligne de chaque script shell est appelée la ligne shebang, qui indique au système quel interpréteur utiliser pour exécuter le script.
#!/bin/bash
Sous le shebang, vous pouvez ajouter toutes les commandes que vous exécuteriez normalement dans le terminal.
Par exemple, pour afficher un message à l'utilisateur :
#!/bin/bash
echo "Hello, World!"
Enregistrez le fichier avec une extension .sh (par exemple, hello_world.sh).
Pour exécuter le script, vous devez le rendre exécutable.
chmod +x hello_world.sh
Une fois qu’il est exécutable, vous pouvez exécuter le script avec :
./hello_world.sh
Félicitations ! Vous venez d'écrire et d'exécuter votre premier script shell, qui est simple, mais c'est la base de toute programmation shell.
2. Variables et saisie dans le scripting Shell
L'une des fonctionnalités les plus utiles dans le scripting shell est la capacité d'utiliser des variables, qui stockent des valeurs pouvant être utilisées plus tard dans le script. Vous pouvez également accepter des entrées utilisateur et les stocker dans des variables.
Déclarer des variables
Les variables dans le script shell sont simples à déclarer ; il n'y a pas de types comme dans d'autres langages de programmation (c'est-à-dire, entier, chaîne). Dans le script, tout est traité comme une chaîne par défaut.
#!/bin/bash
name="Alice"
echo "Hello, $name!"
Ce script déclare une variable name et stocke la valeur "Alice". La commande echo affichera “Hello, Alice !” dans le terminal.
Prendre des entrées de l'utilisateur
Pour obtenir une entrée de l'utilisateur, vous pouvez utiliser la commande read.
#!/bin/bash
echo "Enter your name:"
read name
echo "Hello, $name!"
Voici ce qui se passe :
- Le script affiche l'invite « Entrez votre nom : ».
- La commande
readattend une entrée de l'utilisateur et la stocke dans le nom de la variable. - Le script affiche ensuite
"Hello, $name!", en remplaçant$namepar l'entrée que l'utilisateur a donnée.
Utilisation des arguments de ligne de commande
Les scripts shell acceptent des arguments depuis la ligne de commande, qui sont transmis au script lorsqu'il est exécuté.
#!/bin/bash
echo "Hello, $1!"
Ici, $1 représente le premier argument passé au script.
./greet.sh Alice
Sortie prévue:
Hello, Alice!
Vous pouvez accéder à plus d'arguments en utilisant $2, $3, et ainsi de suite. $0 fait référence au nom du script.
3. Structures de contrôle dans le scripting
Les structures de contrôle telles que if, for et while permettent à vos scripts de prendre des décisions et de répéter des tâches.
Les instructions If
L'instruction if est utilisée pour prendre des décisions dans les scripts, comme vérifier si un répertoire existe.
#!/bin/bash
echo "Enter a directory name:"
read dir
if [ -d "$dir" ]; then
echo "The directory $dir exists."
else
echo "The directory $dir does not exist."
fi
Dans ce script :
- Le
-dvérifie si le répertoire existe. - Le script affiche différents messages selon que le répertoire existe ou non.
Utilisation des boucles
Les boucles sont utiles pour répéter des actions plusieurs fois.
Boucle For :
La boucle suivante s'exécute 5 fois et affiche le numéro de l'itération à chaque fois.
#!/bin/bash
for i in {1..5}
do
echo "This is loop number $i"
done
Boucle Tant Que
La boucle while continuera de s'exécuter tant que la condition est vraie.
#!/bin/bash
counter=1
while [ $counter -le 5 ]
do
echo "This is loop number $counter"
((counter++))
done
4. Travailler avec les fichiers et les répertoires
L'une des utilisations les plus courantes des scripts shell est l'automatisation des opérations sur les fichiers et les répertoires, comme la création de fichiers, le déplacement de fichiers ou la vérification des permissions des fichiers, ce qui rend les scripts shell extrêmement utiles pour gérer ces tâches.
Créer des fichiers sous Linux
Vous pouvez utiliser la commande touch pour créer un nouveau fichier vide :
#!/bin/bash
touch newfile.txt
Déplacer et renommer des fichiers
Pour déplacer ou renommer un fichier, vous pouvez utiliser la commande mv :
#!/bin/bash
mv newfile.txt oldfile.txt
Vérification des autorisations de fichier
Vous pouvez vérifier les permissions des fichiers en utilisant la commande ls :
#!/bin/bash
echo "Enter the filename:"
read file
ls -l $file
5. Concepts avancés pour les administrateurs système
À mesure que vous deviendrez plus expérimenté en script shell, vous commencerez à utiliser des concepts plus avancés. Ceux-ci sont particulièrement utiles pour les administrateurs système qui doivent gérer des serveurs, configurer des services et gérer des tâches complexes.
Utilisation des fonctions dans les scripts
Les fonctions dans les scripts shell vous permettent de regrouper du code pour le réutiliser, rendant vos scripts plus propres et plus faciles à maintenir.
#!/bin/bash
function greet {
echo "Hello, $1!"
}
greet "Alice"
greet "Bob"
Ce script définit une fonction greet qui prend un argument et affiche un message de salutations. Elle est appelée deux fois, une fois avec “Alice” et une fois avec “Bob.”
Gestion des erreurs dans les scripts
La gestion des erreurs est cruciale pour des scripts robustes, surtout dans un contexte d'administration système. Vous pouvez vérifier si une commande a réussi en vérifiant la variable $?, qui stocke le statut de sortie de la dernière commande exécutée.
#!/bin/bash
echo "Attempting to create a directory..."
mkdir /some/directory
if [ $? -eq 0 ]; then
echo "Directory created successfully."
else
echo "Failed to create directory."
fi
Dans ce script :
- Le
$?vérifie le succès de la commande mkdir. - Si la commande a réussi
($? -eq 0), elle affiche un message de succès ; sinon, elle affiche un message d'erreur.
6. Planification des tâches avec Cron
En tant qu'administrateur système, vous devrez souvent exécuter des scripts à des moments planifiés, et l'utilitaire cron vous permet d'automatiser cela en exécutant des scripts à des intervalles spécifiques ; voici comment configurer un travail cron :
Ouvrez votre fichier crontab pour l'édition en exécutant :
crontab -e
Ajoutez une ligne spécifiant le programme et le script à exécuter tous les jours à 3 heures du matin.
0 3 * * * /path/to/your/script.sh
La syntaxe pour les tâches cron est :
minute hour day month weekday command
Cette commande indique à cron d'exécuter le script à 3h00 tous les jours.
Conclusion
Le scripting Shell est une compétence essentielle pour toute personne travaillant avec des systèmes de type Unix, en particulier pour ceux qui envisagent une carrière en administration système, car il permet d'automatiser des tâches et de simplifier les flux de travail en apprenant les bases telles que les variables, les boucles, les conditionnels et la gestion des fichiers – tout en progressant vers des sujets plus complexes comme les fonctions, la gestion des erreurs et la planification des tâches cron.
Que vous gériez un serveur web, automatisiez des sauvegardes ou rédigiez des scripts de configuration système, maîtriser le scripting shell vous fera gagner du temps, réduira les erreurs et fera de vous un administrateur système plus efficace. Alors, continuez à expérimenter, à écrire des scripts et, surtout, amusez-vous !





