You are on page 1of 5

Lyce polyvalent DIDEROT 61, rue David dAngers 75019 PARIS

http://www.diderot.org

Dpartement IRIS

TD

Shell Linux - Exercices 1


Quelques exercices sur le shell Linux Auteur Version - Date G. VALET Version 1.0 - Jan 2007 Nom du fichier
Exo1-Shell Linux.docx

TD

Shell Linux - Exercices 1

Version 1.0 - Sept 2007

A. Sommaire
A. SOMMAIRE.................................................................................................................................................................................. 2 B. LECTURE AU CLAVIER ..................................................................................................................................................................... 3 C. COMPARAISON DE CHAINES ............................................................................................................................................................ 3 D. JOUR DE LA SEMAINE ..................................................................................................................................................................... 3 E. AFFICHAGE DE LOCCUPATION DISQUE ............................................................................................................................................... 3 E.1. Commande du (Disk usage)........................................................................................................................................ 4 E.2. Commande grep ......................................................................................................................................................... 4 E.3. Commande cut ........................................................................................................................................................... 4 E.4. A vous de jouer................................................................................................................................................................. 5 F. FILTRAGE DE FICHIERS .................................................................................................................................................................... 5

Shell Linux - Exercices 1 - G. VALET Reproduction interdite

2/5

TD

Shell Linux - Exercices 1

Version 1.0 - Sept 2007

B. Lecture au clavier
Ecrire une commande permettant d'itrer une lecture au clavier jusqu' l'obtention de la chane oui ou de la chane non. La commande ne se terminera que lorsque lutilisateur tapera les chanes oui ou non .
Informations utiles : La commande read permet de lire lentre standard (Le clavier) .

C. Comparaison de chanes
Ecrire une commande appelante : soit sans argument, elle ralise la lecture au clavier de trois chanes de caractres. soit avec trois arguments Ensuite, disposant de trois chanes elle indique par un message appropri sur la sortie standard : si elles sont identiques ou si deux d'entre-elles sont identiques ou si elles sont toutes diffrentes

D. Jour de la semaine
Ecrire une commande capable dafficher le jour de la semaine en lettres. Selon le cas : Affichez le jour daujourdhui si aucun paramtre nest fourni Afficher le jour correspondant au nombre pass en paramtre
Infos utiles : La commande date est capable dafficher le numro du jour en utilisant le format appropri. Dautre part, la commande case (Voir utilisation dans le cours) permet dadopter une structure conditionnelle multiple

E. Affichage de loccupation disque


Le but de cet exercice est dcrire une commande occup.sh capable dafficher pour chaque sous rpertoire du rpertoire /home , loccupation disque en Mo. Lcriture dune telle commande exige lutilisation de plusieurs commandes : La commande du qui permet dafficher lespace disque dun rpertoire La commande grep qui permet de filtrer certaines lignes de la sortie standard selon un critre dfini par une expression La commande cut qui permet dextraire certains champ dune ligne
Shell Linux - Exercices 1 - G. VALET Reproduction interdite 3/5

TD

Shell Linux - Exercices 1

Version 1.0 - Sept 2007

Une aide est donne pour chacune de ces commandes ci-dessous

E.1. Commande du (Disk usage)


La commande du affiche lutilisation du disque pour un rpertoire donn. Elle est capable de dterminer la taille totale dun rpertoire en additionnant de manire rcursive les tailles des diffrents sous-rpertoires. Voici la syntaxe de la commande du :
du [-h] repertoire

O : -h permet dafficher les tailles dans un format avec les units utilises (M pour Mga, K pour kilo)

E.2. Commande grep


Cette commande permet de filtrer certaines lignes selon un critre dfini par une expression rgulire. Seules les lignes qui rpondent aux critres seront affiches.
$ ls /etc | grep "toto"

Lexemple prcdent naffichera les lignes renvoyes par ls qui contiennent le mot toto . Associe des caractres spciaux, lexpression rgulire permet daffiner le filtrage :
$ ls /etc | grep "toto$"

Lexemple prcdent naffichera que les lignes qui se terminent par toto
$ ls /etc | grep "$toto"

Lexemple prcdent naffichera que les lignes qui commencent par toto

E.3. Commande cut


La commande cut permet dextraire une partie de chaque ligne dun fichier. Chaque partie dune ligne est un champ (Field). Il faut choisir les champs que lon veut conserver ainsi que le sparateur de champs. Syntaxe de la commande cut
cut -d separateur -f 1,2,n

O : -d separateur : Dfini le caractre servant de dlimiteur -f 1,2,.. : Dtermine les champs conserver. Chaque champ est numrot de 1 n

Shell Linux - Exercices 1 - G. VALET Reproduction interdite

4/5

TD

Shell Linux - Exercices 1

Version 1.0 - Sept 2007

E.4. A vous de jouer


Il faut maintenant combiner ces 3 commandes laide de loprateur | de manire obtenir, pour chaque sous-rpertoire de /home , laffichage suivant :
$ occup.sh 10M valet 102K lamy 2M toto

Infos utiles : Trouvez dabord la commande qui permet dobtenir laffichage demand pour un seul sous rpertoire. Il suffira alors ditrer laide dune boucle pour chaque sous rpertoire en utilisant la commande trouve.

F. Filtrage de fichiers
Il faut trouve une commande qui permettent dafficher certains fichiers du rpertoire /etc/rc4.d . Les fichiers concerns sont ceux contiennent la chane de caractre Sxx o xx correspondent un nombre pouvant aller de 10 19.
$ ls /etc/rc4.d | grep expression S10acpid S10sysklogd S10xserver-xorg-input-wacom S11klogd S12dbus S19cupsys S19hplip

Cet exemple donne le rsultat attendu. Vous devez trouver ce quil faut remplacer par expression pour obtenir ce rsultat.
Infos utiles : grep permet de filtrer une sortie en utilisant les expressions rgulires. Ces expressions sont bases les caractres que lon souhaite filtrer. Ces quelques exemples ci-dessous ainsi que la documentation man pourront vous aider

Exemples : Affichage des noms contenant la lettre a suivie dune des lettres suivantes : a, b, c, d, e
$ ls | grep "a[a-e]"

Affichage des noms contenant la lettre e suivie de r ou R


$ ls | grep "e[rR]"

Affichage des noms contenant la squence e suivie de nimporte quel caractre puis dun chiffre de 0 9:
$ ls | grep "e.[0-9]"

Shell Linux - Exercices 1 - G. VALET Reproduction interdite

5/5

You might also like