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 variablevar1.$PS1: personnalise le prompt (ex:PS1='---',PS1='\u',PS1='\w').$PATH: chemins de recherche des commandes.export var2: rendvar2accessible 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"
fiComparaison 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; donefor i; do echo $i; donefor 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).