Année universitaire 2002-2003
espace

Licence d'informatique
Module 4 - partie "C / shell"



Travaux dirigés 12 :

  • 1. La commande mail.
  • 2. La commande cat.
  • 3. La commande wc.
  • 4. Exercice 1 : redirections.
  • 5. La commande chmod.
  • 6. Les scripts.
  • 7. La commande sh.
  • 8. Les paramètres d'un shell.
  • 9. La commande tr.
  • 10. La commande rm.
  • 11. La commande cut.
  • 12. Exercice 2 : manipulations sur des fichiers.

  • 1. La commande mail.

    Caractéristiques :

    Syntaxes :

    Description :

    Exemple :

    Codes de retour :

    2. La commande cat.

    Caractéristiques :

    Syntaxe :

    Description :

    Exemples :

    > cat > fich.txt
    ligne1
    ligne2
    <Ctrl>D

    Codes de retour :

    Attention :

    Remarque :

    3. La commande wc.

    Caractéristiques :

    Syntaxe :

    Description :

    Exemple :

    Codes de retour :

    4. Exercice 1.

    1) Que réalisent les deux commandes suivantes :

    espaceecho "bonjour" > catespace echo "bonjour" | cat

    2) En une seule ligne de commande, envoyer à l'utilisateur linfg250, par courrier électronique, la liste détaillée des répertoires et fichiers contenus dans le répertoire courant.

    5. La commande chmod.

    Caractéristiques :

    Syntaxe :

    Description :

    Exemple :

    Codes de retour :

    Remarque :

    6. Les scripts.

    Un "script" est un ensemble de commandes UNIX rassemblées dans un fichier, dont le nom se termine en général par l'extension .sh (abréviation de "shell"). Pour lancer l'exécution d'un script contenu dans le fichier nom_script.sh, on peut :

    Lorsqu'on lance l'exécution d'un script, on lance en fait un nouveau shell (on rappelle qu'un shell est un programme exécutable, dont le rôle est d'interpréter des commandes UNIX), dit "shell fils", qui porte le nom du script, et c'est dans ce nouveau shell que les commandes du script seront interprétées. Le script, lui, est considéré comme une commande lancée dans le shell de départ.

    Remarques :

    7. La commande sh.

    Caractéristiques :

    Syntaxes :

    Description :

    Exemples :

    Codes de retour :

    Remarque :

    8. Les paramètres d'un shell.

    8.1. Les paramètres positionnels d'un shell.

    Chaque shell dispose de dix "paramètres positionnels", désignés par $0, $1, ..., $8 et $9. Le paramètre positionnel $0 a comme valeur a priori le nom du shell. Quant aux neuf autres paramètres positionnels, ils n'ont pas de valeur a priori. Il y a deux façons de leur attribuer des valeurs :


    exemple.sh

    echo "exécution du script $0 :"
    echo "contenu du fichier $1 :"
    cat $1
    echo "contenu du fichier $2 :"
    cat $2
    $ exemple.sh fich1.txt fich2.txt
    exécution du script exemple.sh :
    contenu du fichier fich1.txt :
    <ligne 1 du fichier fich1.txt>
    ...
    contenu du fichier fich2.txt :
    <ligne 1 du fichier fich2.txt>
    ...
    $

    8.2. Les autres paramètres d'un shell.

    Tout shell possède également un certain nombre de paramètres autres que les paramètres positionnels, dont les noms commencent par le métacaractère $, et dont les valeurs dépendent exclusivement du contexte du shell :

    9. La commande tr.

    Caractéristiques :

    Syntaxes :

    Description :

    Exemples :

    Codes de retour :

    Remarque :

    10. La commande rm.

    Caractéristiques :

    Syntaxe :

    Description :

    Exemple :

    Codes de retour :

    Attention :

    Remarque :

    11. La commande cut.

    Caractéristiques :

    Syntaxes :

    Description :

    Exemples :

    Codes de retour :

    Remarque :

    12. Exercice 2.

    1) On suppose que l'on dispose d'un fichier calepin.txt, contenant des noms et des numéros de téléphone rangés de la manière suivante :


    calepin.txt

    DUPONT Jean 05.61.75.18.47
    MARTIN Yvonne 02.23.34.45.56
    ...

    Écrire une commande qui effectue la recherche des personnes s'appelant DURAND et qui restitue leurs numéros de téléphone, d'abord sous forme d'une ligne de commande, puis sous forme de script.

    2) Écrire une ligne de commande permettant d'afficher les noms des fichiers du répertoire courant qui contiennent le mot main (dans le fichier, et non pas dans le nom du fichier).

    3) Après confirmation, effacer tous les fichiers du répertoire courant, modifiés, lors d'un jour quelconque, entre 11h00 et 11h29.

    4) Soit un fichier liste.txt, contenant une liste d'adresses électroniques enregistrées ligne par ligne, et soit un fichier lettre.txt contenant un message à envoyer. Écrire la ligne de commande permettant d'envoyer ce message aux gens de la liste.


    Ces pages ont été réalisées par A. Crouzil, J.D. Durou et Ph. Joly.
    Pour tout commentaire, envoyer un mail à crouzil@irit.fr, à durou@irit.fr ou à Philippe.Joly@irit.fr.