🖥️ Bash — Scripts shell
Le Bash (Bourne Again Shell) est le langage de script natif du terminal Linux. Il permet d'automatiser des tâches en enchaînant des commandes.
Votre premier script
Créez un fichier bonjour.sh :
#!/bin/bash
# Mon premier script Bash
echo "Bonjour, $(whoami) !"
echo "Nous sommes le $(date '+%d/%m/%Y')."
Rendez-le exécutable et lancez-le :
chmod +x bonjour.sh
./bonjour.sh
La première ligne #!/bin/bash s'appelle le shebang : elle indique quel interpréteur utiliser.
Variables
nom="Papinou"
age=42
echo "Nom : $nom"
echo "Âge : $age"
Conditions
if [ $age -ge 18 ]; then
echo "Majeur"
elif [ $age -ge 13 ]; then
echo "Adolescent"
else
echo "Enfant"
fi
Opérateurs de comparaison :
| Opérateur | Signification |
|---|---|
-eq |
Égal |
-ne |
Différent |
-gt |
Supérieur à |
-lt |
Inférieur à |
-ge |
Supérieur ou égal |
-le |
Inférieur ou égal |
Boucles
# Boucle for
for i in 1 2 3 4 5; do
echo "Itération $i"
done
# Boucle while
compteur=0
while [ $compteur -lt 5 ]; do
echo $compteur
((compteur++))
done
Fonctions
saluer() {
local prenom=$1
echo "Bonjour, $prenom !"
}
saluer "Papinou"
Exemples pratiques
Sauvegarder un dossier automatiquement
#!/bin/bash
source=~/Documents
destination=/media/disque/sauvegarde
date=$(date '+%Y-%m-%d')
rsync -avh "$source" "$destination/docs_$date"
echo "Sauvegarde terminée : docs_$date"
Renommer des fichiers en masse
#!/bin/bash
# Ajoute la date du jour devant tous les fichiers .txt
for fichier in *.txt; do
mv "$fichier" "$(date '+%Y%m%d')_$fichier"
done
Automatiser avec cron
cron permet d'exécuter des scripts à intervalles réguliers.
crontab -e # Éditer les tâches planifiées
Format : minute heure jour_du_mois mois jour_de_semaine commande
# Exécuter sauvegarde.sh tous les jours à 2h du matin
0 2 * * * /home/papinou/scripts/sauvegarde.sh