Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Partie I : Utilisation des commandes avancées et des filtres (grep, cut, sort)
Exercice 1
Tester et expliquer les commandes suivantes :
• ls –l | grep '^……..rw'
affiche les elements du repertoires courants qui sont en lecture et écriture pour les autres
utilisateurs.
• ls –l | grep '^d'
affiche les noms des répertoires contenus dans le répertoire courant.
Exercice 2
Donner une commande permettant de calculer le nombre d’apparition du mot «bonjour » dans
un fichier appelé conte.txt.
Exercice 3
Donner une commande permettant d’afficher la nième ligne du fichier (pensez à utiliser la
commande nl en plus de grep).
Exercice 4
Donner une commande qui permet de rechercher tous les mots qui contiennent au moins
trois lettres majuscules successives dans un fichier.
Exercice 5
Donner une commande permettant de chercher tous les noms des fichiers commencent par un
«a» majuscule ou une minuscule, suivi d'éventuellement quelques lettres ou chiffres, et se
terminent par un chiffre entre 3 et 6 (recherche dans un répertoire de votre choix).
ls | grep ^[aA][a-z0-9]*[3-6]$
Exercice 1
Ecrire un script Shell qui permet de vérifier si un utilisateur est connecté.
Solution
#!/bin/bash
H. IDOUDI 1
if [ $# -eq 1 ]
then
for i in `users`
do
if [ $i = $1 ]
then
echo "Utilisateur $1 connecté"
exit
fi
done
echo "Utilisateur $1 non connecté"
else
echo "nombre de paramètres incorrect."
fi
Exercice 2
Créer la commande crefic obéissant à la syntaxe suivante :
Son rôle est de créer un ensemble de fichiers nom1, nom2,…, nomN. La création de
chaque fichier doit être validée est interactif par l’utilisateur.
Solution
#!/bin/bash
if [ $# -eq 2 ] then
x=1
while [ $x -le $2 ]
do
nom="$1$x"
echo "Voulez vous créer le fichier $nom :"
read reponse
echo 'saisir o/n'
read reponse
if [ $reponse = o –o $reponse = O ]
then
touch $nom
fi
x=`expr $x + 1`
done
else echo "nombre de paramètres incorrect."
fi
Exercice 3
Ecrire un script Shell qui affiche le nombre d’utilisateurs connectés au système ainsi que
leurs identités.
Solution
#!/bin/bash
if [ $# -gt 0 ]
then
echo "Trop de parametres."
else
echo "Le nombre d'utilisateurs connectés est : "
H. IDOUDI 2
users | sort -u | wc -l
echo "Les utilisateurs connectés sont : "
users | sort -u
fi
Exercice 4
Ecrire un script Shell qui affiche la liste des sous répertoires d’un répertoire passé en
argument et indique une erreur si l’argument n’est pas un répertoire.
Solution
#!/bin/bash
if [ $# -eq 1 ]
then
if test -d $1
then
echo " La liste des sous-répertoires du répertoire $1 est :"
for i in `ls $1`
do
if test -d $i then
echo "- $i \n"
fi
done
else
echo "$1 n'est pas un répertoire."
fi
else
echo "nombre d'arguments > 1"
fi
Exercice 5
Ecrire un script Shell qui affiche le nombre d’éléments de chaque répertoire passé en
argument.
Solution
#!/bin/bash
if [ $# -lt 1 ]
then
x=`ls | wc –l`
echo "Le nombre d'éléments du répertoire courant est : $x"
else
for i in $@
do
if test -d $i
then
x=`ls $i | wc –l`
echo "Le nombre d'éléments de $i est : $x"
else
echo "$i n'est pas un répertoire"
fi
done
fi
Exercice 6
H. IDOUDI 3
Ecrire un script Shell qui permet de déterminer le plus long mot d’un fichier donné en
argument.
Solution
#!/bin/bash
L=0
mot=””
if [ $# -eq 1 ]
then
for i in `cat $1`
do
lg=`echo $i | wc –c`
if [ $lg -gt $L ] then
L=$lg
mot=$i
fi
done
echo "Le mot le plus long est : $mot de longueur $L"
else
echo " nombre de paramètres incorrect."
fi
H. IDOUDI 4