TP Unix

jeu. 10 septembre 2009

Vous allez apprendre à utiliser le système d'exploitation Unix via son interprète de commandes (le shell). Pour cela, nous vous proposons des petits exercices qui vous obligeront à utiliser quelques commandes très courantes.

PREMIÈRES COMMANDES

Exercice 1. Manipulation des fichiers et des répertoires.

  1. Lancez un émulateur de terminal (xterm). 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 ou xman) pour la commande ls et déterminez ainsi l'option qui vous permet de prendre connaissance des renseignements associés au fichier rgb.txt c'est-à-dire : ses protections, son propriétaire et sa taille ? Effacez ce fichier, que se passe t'il ? Explication ?
  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 coul.txt. Quelle commande permet : d'afficher tous les fichiers se terminant par .txt ; d'afficher tous les fichiers comportant 3 caractères (exactement) et se terminant par .txt ; d'afficher tous les fichiers commençant par c.
  6. Créez un sous-répertoire Trash dans votre répertoire Unix et déplacez tous les fichiers se terminant par .txt dedans à l'aide d'une seule commande. Renommez ce répertoire Corbeille puis effacez le (!). Que se passe t'il ? Explication ?

Exercice 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. Explication ?
  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. Explication ?
  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. Explication ?

Exercice 3. Protection des fichiers et redirection.

  1. En utilisant la commande echo et la redirection (>), créez un fichier identite, dans le répertoire Unix, contenant une seule ligne ayant le format suivant : Nom_Prenom (le caractère ``blanc souligné'' (ou underscore) est important). La commande echo affiche par défaut ses paramètres sur le fichier standard de sortie (l'écran).
  2. Modifiez les protections de vos répertoires et fichiers (chmod) pour que les autres binômes puissent lire votre fichier identite (mais pas le détruire !). Affichez à l'écran le contenu du fichier identite de votre voisin de gauche. Dans quel cas, cette commande peut ne pas fonctionner ?
  3. En utilisant la commande cat, les caractères jokers et la double redirection (>>) qui permet de ``cumuler'' les résultats d'une commande dans un fichier, créez le fichier mon_groupe constitué de la concaténation des fichiers identite des autres binômes.

Exercice 4. Utilisation du manuel en ligne.

  1. Créez un fichier ``commandes'' contenant la liste de tous les fichiers des répertoires /bin et /usr/bin.
  2. En consultant l'aide de la commande pr, créez un fichier contenant la liste de la question précédente sur trois colonnes avec le titre ``Liste des commandes de base''.
  3. Après consultation de l'aide en ligne pour les commandes tail et ls, et en utilisant l'opérateur de communication inter-processus (|), affichez uniquement le nom du fichier le plus récent de votre répertoire courant.

Exercice 5. Les processus.

  1. Tapez dans un terminal la commande ps qui autorise la visualisation des processus lancés à partir du terminal courant. Quelle est la signification des champs PID et TTY ?
  2. A partir de ce terminal, lancez la commande cat en arrière plan (cat&). A l'aide de la commande ps -l, repérez le processus père de cat. Tuez le processus père de cat avec la commande kill -9 : que constatez-vous ? Explication ?

Exercice 6. 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. A 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 ?

Exercice 7. Outils réseau.

  1. Le réseau : les machines de l'université sont connectées en réseau. Pour les identifier chacune d'entre elles possède un numéro, appelé adresse IP (Internet Protocol) et un nom qui est de la forme :

    identificateur.domaine.pays

    Toutes les machines de l'université ont pour domaine univ-tln. Les machines de licence, sur lesquelles vous travaillez, ont pour identificateur deug suivit d'un numéro (compris entre 1 et 48). Leur nom est donc de la forme : deug5.univ-tln.fr Il existe des machines particulières dont le rôle est de répertorier toutes les machines d'un même domaine et de conserver la correspondance entre leur nom et leur numéro IP. Pour l'université de Toulon cette machine s'appelle www.univ-tln.fr.

  2. La commande ssh : elle permet de se connecter sur une autre machine du réseau. Syntaxe :

    ssh nom_de_l_utilisateur@nom_de_la_machine

    par exemple, pour vous connecter sur la machine deug3 on fait : ssh dupont@deug3.univ-tln.fr. Pour toutes les machines qui se trouvent sur un même domaine il n'est pas nécessaire de donner le nom complet, l'identificateur suffit. On pourra donc faire: ssh dupont@deug3. Important : pour se connecter sur une machine il faut avoir un compte sur cette machine c'est à dire un login et un mot de passe.

    1. Essayez de vous connecter sur la machine www. Que se passe t-il ? Pourquoi ? (pour sortir taper Ctrl C).
    2. Connectez vous sur une autre machine de la salle de licence. Pour revenir sur votre machine initiale, tapez exit.
  3. La commande who : elle permet de connaître les utilisateurs connectés sur la même machine que vous : le système renvoie le login, le terminal, la date de connexion ... de chaque utilisateur (remarque : la commande pinky permet de connaître le nom de l'utilisateur associé au login) ; ssh nom_de_l_utilisateur@nom_de_la_machine who permet d'obtenir la liste des personnes connectées sur une certaine machine (ici nom_de_la_machine).

    1. Vérifiez que vous êtes le seul utilisateur connecté sur "votre" machine.
    2. Quelles sont les personnes connectées sur la machine deug6 ?

Exercice 8. Protection des données

  1. Récupérez le programme suivant : bubbles.tcl en le sauvegardant dans votre répertoire de travail initial (i.e à la racine de votre compte),
  2. Modifiez les protections de ce fichier de tel sorte qu'il soit exécutable par tous (mais pas modifiable),
  3. Changez de répertoire pour vous placer dans le répertoire de travail de l'un des membres de votre groupe de TP puis lancez l'exécution de son bubbles.tcl,
  4. Retournez dans votre répertoire et lancez la commande "ls -ld ." : que constatez-vous ? Explication ?