2021-01-31 22:00 Temps de lecture : 8 min

Comment écrire des scripts Bash pour automatiser Linux

Introduction aux scripts Bash pour l'automatisation Linux

L'apprentissage des scripts Bash représente une compétence précieuse pour tout utilisateur Linux. Même pour les débutants, cette capacité peut radicalement changer la manière dont vous interagissez avec votre machine, en vous permettant d'exploiter pleinement son potentiel plutôt que de réaliser toutes les tâches manuellement. Cet article se propose de vous guider à travers les bases de l'écriture de scripts Bash pour automatiser des tâches sur Linux et maîtriser votre environnement de bureau. Nous explorerons les fondements des scripts avec le shell Bash, ce qui caractérise un script, comment l'exécuter sur votre système, la signification du "shebang", et bien plus encore !

Différents types de scripts

Il existe plusieurs types de scripts, principalement ceux avec les extensions .sh et .bash. Ces extensions sont cruciales car elles indiquent à l'interpréteur comment exécuter le script. Un fichier avec l'extension .sh peut être exécuté dans n'importe quel shell compatible, pas uniquement Bash. Cela offre la possibilité d'exécuter des scripts conçus pour Bash sous Linux sur d'autres systèmes d'exploitation tels que Mac ou BSD, qui disposent de shells similaires.

En revanche, les scripts ayant l'extension .bash sont spécifiquement conçus pour être exécutés dans Bash. Il est important de noter qu'un script avec une extension .bash ne fonctionnera pas dans d'autres shells comme Fish, ou d'autres shells disponibles sous Linux.

Le rôle du Shebang

Certains scripts ne possèdent aucune extension de fichier. À la place, ils utilisent un "shebang" pour permettre à l'interpréteur d'identifier la nature du script et comment l'exécuter. Lors de la création d'un script, le shebang doit TOUJOURS figurer en première ligne. L'absence de shebang peut empêcher l'exécution du script, surtout si aucune extension n'est définie.

Il y a beaucoup à apprendre sur les shebangs, mais les débutants n'ont pas besoin de s'en préoccuper outre mesure. Ils se révèlent surtout utiles pour les utilisateurs avancés de Bash qui cherchent à développer des outils Bash très complexes. Pour les débutants, le shebang standard à retenir est : #!/bin/bash

Création d'un script Bash

De nombreux débutants confondent les scripts Bash avec la programmation pure. L'objectif principal d'un script Bash est de chaîner des commandes, ce qui permet de réaliser des actions complexes sans avoir à les saisir individuellement dans le terminal. Si vous souhaitez vous engager dans la programmation avancée avec Linux, orientez-vous plutôt vers des langages comme Python.

Pour commencer, ouvrez un terminal et entrez la commande suivante :

nano monsuperscript

Ceci ouvrira l'éditeur de texte Nano. Ajoutez le shebang dans l'éditeur, pour indiquer à l'interpréteur comment traiter le script :

#!/bin/bash

À partir de là, tout est possible ! Par exemple, un utilisateur Ubuntu pourrait créer un script simple de mise à jour en ajoutant les lignes suivantes :

sudo apt update; sudo apt upgrade -y

Un autre exemple : créez un script pour exécuter un ping continu en arrière-plan, si vous êtes préoccupé par la performance de votre réseau :

ping google.com

N'hésitez pas à ajouter toutes les commandes que vous souhaitez à votre script et soyez créatif !

Une fois les commandes ajoutées, sauvegardez le script avec Nano en utilisant CTRL + O.

Après la création, il est temps de mettre à jour les permissions d'exécution. Dans un terminal, saisissez :

sudo chmod +x monsuperscript

Exécution des scripts

Pour exécuter un script shell, ouvrez un terminal et tapez :

sudo sh script.sh

Pour lancer des fichiers Bash, utilisez :

sudo bash script.bash

Autrement, tout script, quelle que soit son extension, peut être exécuté en saisissant ./nomdufichier dans le terminal.

Ces trois méthodes d'exécution de scripts sont fonctionnelles. Toutefois, utiliser ./nomdufichier est parfois problématique car les scripts ne s'exécutent pas toujours si les permissions appropriées ne sont pas configurées. Pour ajuster les permissions, utilisez la commande :

sudo chmod +x script

Transformer votre script en exécutable

Pour exécuter votre script en saisissant simplement son nom dans le terminal, vous devez le convertir en exécutable. Utilisez la commande chmod pour rendre le script exécutable :

sudo chmod +x

Une fois le script marqué comme exécutable, déplacez-le dans un dossier accessible par l'utilisateur. Utilisez la commande mv pour cela. Vous pouvez aussi utiliser la commande cp si vous souhaitez conserver une copie du script dans son emplacement d'origine :

sudo mv /chemin/du/script /usr/bin/

ou

sudo cp /chemin/du/script /usr/bin/

Vous pouvez ensuite exécuter le script nouvellement déplacé depuis n'importe quel emplacement en saisissant son nom dans le terminal. Par exemple, si vous avez créé un script d'extraction automatique YouTube avec YouTube-DL et que vous l'avez placé dans /usr/bin/, vous pourrez l'exécuter facilement.

Pour exécuter le script, vous saisissez alors :

nomduscript

Et voilà, le tour est joué !

Conclusion

Maîtriser le langage Bash est un outil extrêmement utile. Sans cela, les administrateurs système et passionnés de terminal passeraient des heures à travailler sur leur terminal. Au lieu de cela, ils peuvent écrire des scripts Bash pour automatiser Linux. En apprenant à exploiter la puissance de Bash, vous pouvez automatiser des opérations complexes et les exécuter rapidement à l'aide d'un simple script.

Le shell est un outil formidable, et plus vous en apprendrez sur lui, plus vous comprendrez vos propres systèmes Linux, comment les automatiser et comment améliorer leur fonctionnement interne. Avec Bash, votre seule limite est votre créativité !

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.