TP Shell
TP Shell
Introduction
Un script Shell est un ensemble de commandes rassemblées dans un fichier. L’usage veut que
l’extension soit .sh mais elle n’est pas nécessaire.
Les scripts Shell sont utilisés pour automatiser des manipulations de fichiers, pour le déploiement de
logiciels, la supervision et notamment l’exploitation de logs, le lancement de tâches planifiées, la
gestion de VM, les sauvegardes…
Afin de créer votre premier script suivez cette procédure :
1. Ouvrez un éditeur de texte nano par exemple.
2. Ecrivez vos lignes de commandes.
3. Enregistrez votre fichier texte avec l’extension .sh et changez les droits de manière à le rendre
exécutable (chmod +x [Link]).
Premiers pas
Commentez ligne par ligne le fichier suivant puis indiquez :
- sa syntaxe lors de l’appel (comment l’utiliseriez-vous ?)
- ce qu’il fait réellement
A votre tour…
1) Créez un fichier [Link] qui indique si un fichier fich est bien présent dans un répertoire rep et
affiche les 10 premières lignes du fichier. (syntaxe : [Link] rep fich)
- vérifie que l’utilisateur a bien entré 2 paramètres, sinon affiche la syntaxe à suivre
- stocke chacun des paramètres dans une variable
- si le répertoire existe, affiche qu’il a été trouvé puis se déplace dans ce répertoire
- si le fichier existe, affiche qu’il a été trouvé et affiche les 10 premières lignes
- sinon affiche que le répertoire ou le fichier n’existe pas.
1
2) Créer la fonction tempo qui prend l’option /d pour afficher la date ou /t pour l’heure. Vous
rappellerez la syntaxe en cas de mauvaise utilisation.
3) Ecrivez un script qui, à partir du fichier [Link], crée les comptes des étudiants de la classe sur
votre machine. Vous étudierez les différentes commandes de manipulation de chaînes et
vérifierez le résultat en observant les fichiers /etc/passwd et /etc/group.
Pour parcourir un fichier ligne par ligne, utilisez le code suivant :
Pour remplacer les espaces par des underscores (_), utilisez la commande sed
Pour convertir des majuscules en minuscules, utilisez la commande trad ‘[A-Z]’ ‘[a-z]’
# !/bin/sh
clear
echo "Entrez les 6 premieres lettres du nom d’un utilisateur"
read NOM
if grep $NOM /etc/passwd
then
echo "$NOM est declare sur le systeme"
who>sortie
if grep $NOM sortie
then
echo "$NOM est connecte en ce moment"
else
echo "$NOM n’est pas connecte"
fi
else
echo "$NOM n’est pas declare sur le systeme"
fi
Script de test de connexion