O131 - Introduction au système UNIX

Ce cours a pour objectif de familiariser les néo-étudiants avec le système UNIX, son système de fichier et sa gestion des processus, et de présenter les principales commandes de l'interpréteur bash.

Le TP suivant est une version enrichie du TP de Christian Nguyen disponible ici.

TP UNIX

1. Manipulation des fichiers et des répertoires

  1. Ouvrez un terminal de commandes. Quelle commande vous permet de savoir dans quel répertoire de travail vous êtes ?
  2. Grâce à la commande cd, allez dans le répertoire /etc/X11 puis appliquez la commande cat au fichier rgb.txt qui se trouve dans ce répertoire. Ceci a pour effet d'afficher le contenu du fichier dans la fenêtre terminal. Que contient ce fichier ?
  3. Utilisez l'aide en ligne (man) et déterminez l'effet de l'option -l de la commande ls. Quels sont les protections, le propriétaire et la taille du fichier rgb.txt ? Effacez ce fichier, que se passe t'il ? Expliquez.
  4. Retournez dans votre répertoire d'origine (celui dont vous êtes propriétaire). Créez un répertoire Unix. Faites en votre répertoire de travail courant.
  5. Copiez dans ce répertoire le fichier /etc/X11/rgb.txt. Dupliquez ce fichier, présent dans le répertoire Unix, en le nommant couleurs.txt.
  6. Créez un sous-répertoire Trash dans votre répertoire Unix et déplacez tous les fichiers dedans à l'aide d'une seule commande. Renommez ce répertoire Corbeille puis effacez le (!). Que se passe t'il ? Expliquez.

2. Droits d'accès

Si les protections sur les fichiers sont naturellement compréhensibles, il n'en va pas nécessairement de même en ce qui concerne les répertoires.

  1. Créez un répertoire de nom Bidon et dans ce répertoire un fichier bidon.txt (la commande touch permet de créer un fichier ordinaire vide à partir du shell) ; par la suite ce fichier devra systématiquement avoir les droits suivants : -rw-rw-r-- (les membres de votre groupe doivent pouvoir le lire, le modifier voire le détruire)
  2. Modifiez les droits du répertoire de la façon suivante : drwxrw---- (pas de droit en exécution pour les membres de votre groupe) puis demandez à un voisin de lancer les commandes suivantes à partir de votre répertoire de travail : ls Bidon ; cat Bidon/bidon.txt ; rm Bidon/bidon.txt ; cd Bidon. Expliquez ?
  3. Modifiez les droits du répertoire de la façon suivante : drwxr-x--- (pas de droit en écriture pour les membres de votre groupe) puis demandez à un voisin de lancer les commandes suivantes à partir de votre répertoire de travail : ls Bidon ; cat Bidon/bidon.txt ; rm Bidon/bidon.txt ; cd Bidon. Expliquez ?
  4. Modifiez les droits du répertoire de la façon suivante : drwx-wx--- (pas de droit en lecture pour les membres de votre groupe) puis demandez à un voisin de lancer les commandes suivantes à partir de votre répertoire de travail : ls Bidon ; cat Bidon/bidon.txt ; rm Bidon/bidon.txt ; cd Bidon. Expliquez ?

3. Processus

  1. Lancez l'éditeur de texte gedit depuis le terminal. Pouvez-vous taper des commandes supplémentaires ? Expliquez.
  2. Lancer maintenant l'éditeur en tache de fond. À l'aide de la commande ps -l donnez
    1. le numéro de processus du programme gedit
    2. le numéro de processus du programme père ainsi que son nom
    3. le temps écoulé depuis qu'il a été lancé
  3. Pourquoi les commandes gedit et ps partagent elles le même PPID?
  4. Lancez la commande xterm en tâche de fond. Depuis le nouveau terminal lancez un programme quelconque. Depuis le premier terminal trouvez le pid du processus xterm et arrêtez le à l'aide de la commande kill. Que s'est-il passé? Expliquez.

4. Entrées-sorties

Sous Unix, tout périphérique d'entrée-sortie correspond à un fichier. Pour montrer cela, vous allez suivre les étapes suivantes :

  1. À partir d'un terminal, exécutez la commande cat /etc/X11/rgb.txt qui a pour résultat de vous afficher le contenu du fichier des couleurs. Exécutez la commande cat /etc/X11/rgb.txt > couleurs. Ceci a pour effet d'afficher le contenu du fichier des couleurs dans un fichier couleurs situé dans le répertoire courant. Vérifiez que ce fichier est bien dans votre répertoire.
  2. Ouvrez une deuxième fenêtre terminal. Vous avez donc maintenant deux terminaux ouverts que nous appellerons T1 et T2. Chacun d'entre eux correspond à un fichier situé dans /dev. Positionnez vous dans T2 et tapez la commande tty qui affiche le nom du fichier correspondant à T2, par exemple /dev/pts/2. Positionnez-vous dans T1 et tapez alors cat couleurs > /dev/pts/2 (c'est un exemple !). Quel est le résultat obtenu ? Explication ?

5. Quelques manipulations de plus

  1. Dans votre répertoire personnel, créez un dossier TPO131. Toujours depuis votre répertoire personnel créez deux répertoires cmd1 et cmd2 à l'intérieur du répertoire TPO131.
  2. Affichez l'ensemble des fichiers contenu dans le répertoire /usr/bin depuis:
  1. votre répertoire personnel
  2. depuis le répertoire racine (/)
  3. /usr/bin.
  1. Depuis /usr/bin, affichez tous les fichiers:
  1. commençant par la lettre a
  2. se terminant par le chiffre 0
  3. commençant par un a ou un b et se terminant par un x, un y ou un z
  4. contenant un -
  5. contenant deux y
  6. se terminant par un . suivi de deux caractères.
  1. Depuis /usr/bin, copier tous les fichiers du répertoire /usr/bin de deux lettres exactement dans le répertoire cmd1.
  2. Déplacez vous dans le répertoire TPO131. Copiez tous les fichiers du répertoire /usr/bin contenant un chiffre entre 2 et 9 dans le répertoire cmd2.
  3. Depuis le répertoire cmd1 déplacez tous les fichiers du répertoire cmd2 commençant par x86 vers le répertoire TPO131.
  4. En une seule commande, déplacez vous dans le répertoire cmd2.
  5. Depuis cmd2 créez un répertoire save dans le répertoire TPO131 et copiez l'ensemble du contenu du répertoire cmd1 dedans.
  6. Depuis votre répertoire personnel, effacez, en une commande, tous les fichiers des répertoires cmd1 et cmd2.
  7. Effacer le contenu du répertoire save, puis tous les répertoires dans TPO131 et enfin le répertoire TPO131.