Guide complet du scripting Bash et administration Linux

Envoyé par Anonyme et classé dans Informatique

Écrit le en français avec une taille de 3,17 KB

Variables et environnement

  • set : affiche toutes les variables et fonctions du shell.
  • set | more : pagine les résultats.
  • printenv : affiche les variables d’environnement (plus lisible).
  • unset var1 : supprime la variable var1.
  • $PS1 : personnalise le prompt (ex: PS1='---', PS1='\u', PS1='\w').
  • $PATH : chemins de recherche des commandes.
  • export var2 : rend var2 accessible aux autres shells.
  • env : affiche uniquement les variables exportées.
  • Délimitation : echo "j’aime ma ${var1}maman".
  • set -u : génère une erreur si une variable n'est pas définie.

🔣 Paramètres spéciaux

  • $0 : Nom du script
  • $* : Tous les paramètres (une seule chaîne)
  • $@ : Tous les paramètres (séparés)
  • $# : Nombre de paramètres
  • $? : Code retour de la dernière commande
  • $$ : PID du processus courant
  • $! : PID du dernier processus en arrière-plan

📥 Lecture et écriture

#!/bin/bash
echo "Entrez votre nom :"
read nom
echo "Bonjour $nom"

🔁 Structures de contrôle

IF

if [ $nom = "Guillaume" ]; then
  echo "Mon nom est Guillaume"
elif [ $nom = "Math" ]; then
  echo "Mon nom est Math"
else
  echo "Nom inconnu"
fi

Comparaison numérique : -eq, -gt, -lt

CASE

case $# in
  0) echo "$0 sans paramètre" ;;
  1) echo "$0 avec un paramètre : $1" ;;
  2) echo "$0 avec deux paramètres : $1 et $2" ;;
  *) echo "$0 avec plus de deux paramètres : $*" ;;
esac

🔄 Boucles

FOR

  • for i in un deux trois; do echo $i; done
  • for i; do echo $i; done
  • for i in *; do echo $i; done

WHILE

while [ $1 != 4 ]; do
  echo $1
  shift
done

🧪 Exercice Script

#!/bin/bash
if [ $# -eq 0 ]; then
  echo "Aucun paramètre"
else
  echo "Nombre de paramètres : $#"
  if [ $1 = "Damien" ]; then
    echo "Bonjour Damien"
  fi
fi

👤 Gestion des utilisateurs

  • sudo useradd -m -d /home/monNom -c "superhéro" monNom
    • -m : crée le répertoire home
    • -d : spécifie le chemin du home
    • -c : commentaire
  • tail -1 /etc/passwd : affiche le dernier utilisateur.
  • cat /etc/default/useradd : paramètres par défaut.
  • usermod -c "superman" monNom : modifie le commentaire.
  • usermod -s /bin/bash monNom : modifie le shell.
  • passwd monNom : change le mot de passe.
  • /etc/skel : fichiers copiés dans le home à la création.
  • /etc/shadow : contient les mots de passe chiffrés (9 colonnes).

Entrées associées :