🐧
Unix Shell
  • Unix Shell
  • Introduction
    • Introduction
      • 🎉Installation Party
  • 💻L'invite de commandes
    • L'invite de commandes
      • Ouvrir une invite de commandes
      • L'interprète
      • Mes premières commandes
      • Exercice avec ls
      • Raccourcis bash
  • Fichiers et repertoires
    • 📂Fichiers et répertoires
      • Navigation
      • Fichiers : Exercice
      • Edition des fichiers
      • Fichiers spéciaux
  • Recherches
    • 🔍Recherches
      • find
      • Exercice avec find
  • Droits
    • 🔨Droits et permissions
      • Qui
      • Quoi
      • Préciser les droits
  • Packages / Réseau / internet
    • 🌎Le monde extérieur
      • Installer des packages supplémentaires
      • Télécharger des fichiers
      • SSH : Ouvrir un SHELL à distance
      • SCP : Transférer des fichiers
      • Parenthèse : Cryptographie
  • Gestion de la machine
    • 📈Gestion
      • Disques / partitions
      • Exercice : formater et monter une volume (mastère)
      • Les processus
      • Réseau
  • Configurer Apache
    • 🏅Exercice : configurer votre espace web
  • Pipes et redirections
    • 🌊Pipes et redirections
      • Redirections des fichiers
      • grep et les expressions régulières
      • sed : chercher et remplacer
      • awk
  • Scripts
    • 🤖Scripts
      • Exécuter un script
      • Variables
      • Conditions
      • Boucles
      • Fonctions
      • Exercice : un script CGI pour Apache
  • Git
    • 🤖GIT
      • Commandes
      • Branches
      • Déploiement automatique
  • Docker
    • 🐳Docker
      • Lancer des containers
      • Volumes
      • Docker compose
Propulsé par GitBook
Sur cette page
  1. Scripts

Scripts

Un des grands avantages de notre invite de commandes, et la possibilité de contrôler notre machine UNIX avec des commandes textuelles, et la possibilité de rassembler et répeter nos instructions via des scripts.

  • Moins d'erreurs

  • Répétition (installations, actions chronologiques, ou autre)

  • Gestion de code (git)

  • ... etc

Pour vos cours, par exemple, j'ai rédigé un script pour créer vos comptes sur mon serveur :

#!/bin/bash

# Déclarer des variables
GROUP=students
FILE=students.txt
PUB_KEY_FILE=id_rsa.pub

# Créer le groupe "studens" s'il n'existe pas
if [ $(getent group $GROUP) ]; then
  echo "group $GROUP exists."
else
  echo "group $GROUP does not exist."
  groupadd students

fi

# Enlever les lignes blancs du fichier des étudiants
sed '/^$/d' $FILE

# Itérer sur les lignes du fichier
lines=$(cat $FILE)
for line in $lines
do
  # Nettoyer l'adresse e-mail
  email=$(echo $line | xargs | tr [:upper:] [:lower:] | sed -e 's/@/\./g' )
  if [ $(getent passwd $email) ]; then
    echo "User $email exists"
  else
    # Créer un nouveau utilisateur
    echo "Creating: $email"
    useradd -m -g students $email
  fi
  
  usermod --shell /bin/bash $email
  mkdir -p /home/$email/.ssh
  cat $PUB_KEY_FILE > /home/$email/.ssh/authorized_keys

  mkdir -p /var/www/html/$email
  chown -R $email:students /var/www/html/$email
  chmod 755 /var/www/html/$email
done
PrécédentawkSuivantExécuter un script

Dernière mise à jour il y a 1 an

🤖