:: Enseignements :: Licence :: L1 :: 2008-2009 :: Unix ::
[LOGO]

Redirections


Prise en main des redirections et tubes de commandes.
Rappel des redirections:
  • < redirection de l'entrée standard depuis un fichier donné
  • > redirection de la sortie standard vers un fichier donné
  • 2> redirection de la sortie d'erreur vers un fichier donné
  • >> redirection de la sortie standard vers la fin d'un fichier donné
  • | tube de la sortie standard d'une commande vers l'entrée standard d'une autre
  • $(\ldots) utilisation en ligne de commande de la sortie d'une commande

Exercice 1 - Redirections de base

  1. Écrivez votre nom dans un fichier nom via l'entrée standard (cat).
  2. Écrivez votre prénom grâce à echo dans un fichier prénom.
  3. À l'aide de redirections, concaténez les deux fichiers dans un fichier id.

Exercice 2 - Tubes

wc (word count) est une commande qui compte le nombre de lignes et de mots dans le fichier passé en argument ou, s'il n'en a pas, dans l'entrée standard.
  1. Quelles sont les différences entre les quatre commandes suivantes?
    wc toto.c
    wc < toto.c
    cat toto.c | wc
    wc $(echo toto.c)
  2. Écrivez une commande renvoyant le nombre d'utilisateurs connectés à votre machine (who, wc).
  3. Affichez page par page la liste de tous les fichiers vous appartenant (ls, grep).
  4. Recherchez dans le répertoire /home/ens/ et ses sous-répertoires tous les fichiers dont le nom commence par une lettre majuscule et se termine par le suffixe .jpg (find).
  5. Modifiez la commande précédente pour sauvegarder la liste de ces fichiers dans le fichier res. Les éventuels messages d'erreur apparaîtront toujours à l'écran.
  6. Modifiez la commande précédente pour lancer la commande display sur chacun des fichier trouvés.
  7. Écrivez une commande qui supprime tous les fichiers core de taille non nulle de votre arborescence personnelle (find, rm).
  8. Écrivez une commande qui supprime les droits en lecture sur tous vos fichiers pour les utilisateurs qui ne sont pas de votre groupe.

Exercice 3 - ps et top

  1. Lancez un terminal graphique en arrière-plan (xterm) qui affichera en permanence la liste des processus et des ressources qu'ils utilisent; vous y reviendrez par moments pour suivre la progression des processus.
  2. Affichez la liste de tous les processus vous appartenant, puis la liste complète des processus qui s'exécutent sur votre machine.
  3. Affichez hiérarchiquement tous les processus.
  4. Donnez une commande permettant d'afficher les numéros des processus actifs qui vous appartiennent (cut).
  5. Donnez une commande permettant d'afficher les processus firefox tournant sur votre machine.
  6. Affichez les processus en cours dont le nom se termine par d.

Exercice 4 - Signaux

  1. Lancez un terminal graphique en avant-plan, faites-le passer à l'arrière-plan, puis à nouveau à l'avant-plan; tuez-le directement.
  2. Lancez un terminal graphique en tâche de fond, repérez son identifiant (PID), tuez-le en envoyant le signal KILL, réessayer avec le signal INT (kill).
  3. Faites de même en envoyant le signal non pas au xterm mais au processus de shell qu'il éxécute.
  4. Réessayez la question précédente après avoir utilisé trap pour que le shell en question affiche ``ARGH'' quand on lui envoie le signal. Observez.
  5. Lancez trois processus gv. Les interrompre tous en une commande (killall).