Tps Intéropérabilité
ESTIA 2ème année, Alexis Clay

Retourner à la page d'Alexis Clay
  • TP 1

1ère année

  • ASD
  • Intéropérabilité

2ème année

  • Systèmes d'Information
  • Java
  • Réseaux

Configuration / Lancement du TP

Dans ce TP, nous allons voir comment utiliser Linux. Pour ce faire, vous utiliserez la machine virtuelle VMWare qui permet d'exécuter la distribution Linux Ubuntu. Pour commencer, vous réinitialiserez la machine virtuelle en lançant le programme:

Démarrer => Tous les programmes => Linux => Réinitialiser Ubuntu

Ceci copie la machine virtuelle « modèle » à la place de celle de travail. (Cette opération dure 2 à 3 mn, il faut donc la lancer en tout début de séance)

Démarrer => Tous les programmes => Linux => Ubuntu

Parmi les questions à la fin de ce TP, on vous demande plusieurs fois à quoi correspond telle ou telle commande. Utilisez la syntaxe man commande pour avoir des informations sur celle-ci (man = manuel). Par exemple, pour avoir la page de manuel de la commande ifconfig, il suffit de taper man ifconfig. Lorsque vous êtes dans une page de manuel, naviguez grâce aux flèches et quittez en pressant q.


Le bureau Gnome et les applications sous Ubuntu

Naviguez dans le système d'exploitation et trouvez les programmes offrant lesfonctionnalités habituelles que vous utilisez sur votre ordinateur, notamment:

  • écrire des documents, faire une présentation, effectuer des calculs sur tableurs;
  • écouter de la musique et gérer sa collection de musique
  • Aller sur internet
  • graver des CDs/DVDs
  • éditer des images
  • gérer une collection de photo
  • chatter (MSN)

Testez et découvrez d'autres fonctionnalités, trouvez des particularités que l'on ne retrouve pas dans d'autres systèmes d'exploitation (Windows, OSX)

Le système de dépôt (repositories)

Depuis longtemps, l'installation de nouveaux logiciels sous linux se fait via des paquets, qu'un gestionnaire se charge d'installer. Le gestionnaire a pour rôle de copier les fichiers à la place qui leur est attribué dans le système (les librairies, les icônes, etc). Cette façon de faire, très différente de Windows, permet de garder un système "propre", où chaque élément a une place définie. La plupart des programmes fonctionnant sous linux sont téléchargeables gratuitement. Les éditeurs d'Ubuntu ont mis en place des dépôt de paquets sur internet. Ubuntu est configuré de base pour pouvoir y accéder. Pour installer un nouveau programme, il suffit donc d'ouvrir le gestionnaire de paquets synaptic (Système -> administration). Celui-ci met à jour les programmes disponibles dans les dépôts et vous en donne la liste. Pour installer un programme, il suffit donc de le sélectionner et de cliquer sur Appliquer.

Téléchargez gcc, le compilateur c. S'il est déjà installé, installez glut: il s'agit d'une librairie openGL permettant de programmer des environnements 3D.


La hiérarchie de fichiers

L'arborescence des fichiers sous Linux

L'arborescence de fichier Linux obéit à l'arborescence UNIX. Contrairement à Windows, où chaque disque est à l'origine de l'arborescence, dans linux il n'y a qu'une arborescence, et TOUS les systèmes y sont compris. lorsqu'on navigue dans l'arborescence, on n'a pas besoin de savoir si on veut aller sur telle ou telle partition, voire sur une clé USB ou un CD-ROM.

L'arborescence Linux est la suivante.

Le répertoire racine "/" est le comme son nom l'indique, la racine de l'arbre. Comme dit plus haut, elle ne correspond pas à un disque en particulier: l'arborescence fait totalement abstraction du matériel utilisé.

A titre d'information, voilà la description des différents répertoires que l'on trouve sur une architecture linux: (pris sur www.commentcamarche.net)

/                    la racine, elle contient les répertoires principaux

/bin                Contient les exécutables essentiels au système, employés par tous les utilisateurs.

/dev            Contient les points d'entrée des périphériques.

/etc            Contient les fichiers de configuration nécessaires à l'administation du système (fichiers passwd, group, inittab, ld.so.conf, lilo.conf, ...).

/home        Contient les répertoires personnels des utilisateurs. Dans la mesure où les répertoires situés sous /home sont destinés à accueillir les fichiers des utilisateurs du système, il est conseillé de dédier une partition spécifique au répertoire afin de limiter les dégats en cas de saturation de l'espace disque.

/mnt, /media      Permet d'accueillir les points de montage des partitions temporaires (cd-rom, disquette, ...).

/root        Répertoire personnel de l'administrateur root. Le répertoire personnel de l'administrateur est situé à part des autres répertoires personnels car il se trouve sur la partition racine, afin de pouvoir être chargé au démarrage, avant le montage de la partition /home.

/sbin        Contient les exécutables système essentiels (par exemple la commande adduser).

/usr        Hiérarchie secondaire

/usr/bin        contient la majorité des fichiers binaires et commandes utilisateurs

/usr/lib        contient la plupart des bibliothèques partagées du système

/usr/local        contient les données relatives aux programmes installés sur la machine locale par le root

/usr/sbin        contient les fichiers bianires non essentiels au système réservés à l'administrateur système

La hiérarchie n'est pas complètement listée ici.

Naviguez dans la hiérarchie de fichiers (Menu Raccourci). Dans votre répertoire personnel (répertoire estia), Créez un répertoire TPInterop. Ouvrez la fenêtre de gestion des permissions du répertoire TPInterop (clic droit sur le dossier ->Propriétés, onglet Permissions... advanced permissions si nécessaire). Vous pouvez désormais contrôler les droits d'accès pour différentes personnes.

En ce qui concerne les droits, il existe 4 types de personnes:

  • le root: l'administrateur
  • le User: vous :)
  • le Group: les gens qui appartiennent au même groupe que vous. Le groupe est définit par l'administrateur (à savoir, qui appartient au groupe et qui n'y appartient pas) (par exemple, la promo ESTIA2009 pourrait être rassemblée en un groupe.
  • Others: Le reste du monde

Le root possède tous les droits sur tous les fichiers de son système. En tant qu'utilisateur vous ne pouvez pas lui interdire d'accès, il n'est donc pas mentionné dans la fenêtre (c'est pour cela que le but des hackers est souvent de récupérer les droits root sur un système, par diverses techniques).

Sur les systèmes Unix (et Linux, donc), on considère que TOUT est fichier. Un répertoire est également considéré comme un fichier. Tout fichiers possèdent des droits. Il existe trois types de droits pour chacun des trois types de personne:

  • le droit en lecture;
  • le droit en écriture;
  • le droit d'exécution.

Pour un fichier, les deux premiers droits sont évident; le troisième (exécution) ne s'applique qu'aux fichiers exécutables. Comme dit précédemment, un répertoire est considéré comme un fichier par linux. Il possède donc les même droits, mais la compréhension que l'on en fait est différente.

  • Le droit en lecture détermine si la personne peut voir l'intérieur du répertoire ou non (lister le répertoire);
  • le droit en écriture détermine si on peut y créer ou y insérer un fichier;
  • le droit en exécution détermine si la personne peut entrer dans le répertoire ou pas.


Les fichiers Texte

Créez un fichier texte helloworld.c dans le répertoire estia.

Regardez les permissions de ce fichier. Avez vous le droit de l'éxécuter? de le lire? de le modifier? Quels sont les droits pour votre groupe? pour le reste du monde?

Ouvrez helloworld.c dans l'éditeur de texte (Applications -> Accessoires). Ecrivez ce programme et enregistrez.

	#include <stdio.h>
 
	int main(void)
	{
	    printf("Hello world!\n");
	    return 0;
	}


De la bonne utilisation de l’arborescence.

Les conseils donnés sous Windows sont bien évidemment valables sous Linux: évitez une arborescence trop large ou trop profonde! Sur un système gardez toutes vos données dans votre répertoire personnel. Vous y êtes forcés sur un système multi-utilisateurs, puisque de toute façon vous n'aurez pas les droits sur d'autres dossiers que le votre.

Si vous avez à travailler sous Linux dans une entreprise et que vous disposez d'un espace disque en réseau, il s'agira très certainement de votre répertoire personnel (/home/nom/). En fait, lors du login, le disque externe sera "monté" sur votre machine en tant que /home/nom/. c'est à dire qu'en accédant à ce répertoire vous accéderez à votre espace disque en réseau.

Le terme "monter" ("mount") signifie "rattacher un système de fichier externe à l'arborescence". Ainsi, pour accéder à un CD-Rom, une clé USB, ou autre, il faut d'abord le "monter", cad l'inclure dans l'arborescence. Vous pourrez ensuite y accéder (généralement ces périphériques sont montés dans le répertoire /mnt ou /media). Maintenant Linux gère le montage automatique, ce qui permet de se servir d'un CD-ROM ou d'une clé USB comme sous Windows.


Transfert ftp, Archivage

Si aucun logiciel ftp n'est disponible, téléchargez Filezilla via Synaptic.

Connectez vous à ftp.ubuntu.com et commencez un téléchargement (interrompez-le pour ne pas saturer le réseau)

Archivez (Zippez) le fichier helloworld.c (clic droit sur le fichier).



La Console

Une autre façon d'interagir avec un système informatique, différente du modèle WIMP que vous venez de manipuler, est la ligne de commande. Cette technique d'interaction est antérieure à WIMP, et peu utilisée du grand public. Mais elle est encore parfois utilisée dans certaines circonstances. Elle permet de lancer l'exécution des programmes, et de manipuler des données.

Ouvrez un terminal (Applications -> Accessoires -> Terminal). Au démarrage de la console, votre répertoire courant est votre répertoire personnel. Tapez ls et validez. Que fait la commande ls?


Tapez man ls et validez. man est la commande de manuel. Pour chaque commande console, vous pouvez taper man <commande>. Ceci affiche le manuel pour la commande. Entre autres, vous pouvez y lire une description de la commande, et les différentes options qu'elle prend. Utilisez les pages de manuel pour répondre aux questions suivantes. Tapez sur Q pour sortir de la page de manuel ("quit"). Pour chaque nouvelle commande que vous rencontrez, écrivez rapidement ce qu'elle fait.

La commande cd (change directory) permet de changer votre répertoire courant. Tapez cd TPInterop et validez. Tapez ls et validez.

Que s'est-il passé? Que voyez-vous?

Créez un nouveau répertoire nommé PROG : pour ceci tapez mkdir PROG et validez. Tapez ls et validez.

Voyez-vous le nouveau répertoire que vous venez de créer?

Descendez dans ce nouveau répertoire : tapez cd PROG et validez. Tapez ls et validez.

Que voyez-vous? Le répertoire PROG est-il vide?

Tapez ls -a et validez.

Que voyez-vous? Pourquoi? Pourquoi ne le voyait-on pas avant?

Déplacer un fichier, Compiler avec GNU/gcc, et Droits des Fichiers

Nous voulons copier le fichier helloworld.c dans le répertoire PROG, sachant que notre répertoire courant est le répertoire PROG : tapez mv ../helloworld.c . et validez. Tapez ls et validez. Tapez ls -a et validez.

Le fichier helloworld.c a-t-elle été déplacé?

Tapez ls .. et validez.

Que voyez-vous? (Ou plutôt que ne voyez vous plus?)

Tapez gcc helloworld.c -o hello et validez. Tapez ls et validez.

Que s'est-il passé?

Tapez ls -l et validez.

Que voyez-vous? Pouvez-vous exécuter le fichier hello?

Tapez ./hello et validez.

Que s'est-il passé?

Le Développement des Arguments de la Ligne de Commande

Tapez et validez chacune des lignes suivantes.

            - ls *.c

            - ls *world*

            - ls ?????

A quoi servent les caractères "*" et "?"

Archives et Compression de Fichiers

Remontez dans le répertoire supérieur (TPInterop) : tapez cd .. et validez. Faites une archive compressée zip de l'arborescence du répertoire PROG : tapez zip -r mes_prog.zip PROG et validez. Tapez ls et validez.

Que voyez vous? A quoi sert l'option -r?

Faites une archive tar du répertoire de l'arborescence du répertoire PROG : tapez tar -cf mes_prog.tar PROG et validez. Tapez ls -lh et validez.

Que voyez-vous? Quelle taille fait le fichier zip? Quelle taille fait le fichier tar? que font les options -cf (pour tar) et -lh (pour ls)? l'option -cf correspond à une contraction des options -c -f. De même pour -lh.

Compressez le fichier mes_progs.tar avec gzip : tapez gzip mes_progs.tar et validez. Tapez ls -lh et validez.

Que voyez-vous? Quelle taille fait le fichier zip? Quelle taille fait le fichier tar.gz?

Tapez mv *.zip *.gz .. et validez. Remontez dans le répertoire supérieur : tapez cd .. et validez. Tapez ls -lh et validez.

 Que voyez-vous? Les fichiers mes_progs.zip et mes_progs.tar.gz ont-ils bien été déplacés?

Extraire ce que contient l'archive compressée zip : tapez unzip mes_progs.zip et validez. Tapez ls et validez.

Que voyez-vous? Voyez vous un répertoire de nom PROG?

Tapez ls PROG et validez.

Que voyez-vous? Le contenu du répertoire est-il bien identique au répertoire d'origine?

Supprimer l'arborescence PROG : tapez rm -rf PROG et validez. Tapez ls et validez.

Que voyez-vous? Que font les options -rf?

Extraire ce que contient l'archive compressée tar.gz :

    1) Décompressez le fichier : tapez gzip -d mes_progs.tar.gz et validez.

    2) Extraire l'archive tar : tapez tar -xf mes_progs.tar et validez.

    3) Recompressez l'archive tar pour ne pas perdre de place sur le disque : gzip mes_progs.tar

Tapez ls PROG et validez.

Que voyez-vous? Le contenu du répertoire est-il bien identique au répertoire d'origine?

REMARQUE : le programme tar est capable t'appeler tout seul le programme gzip. On donne généralement l'extension tgz à ces fichiers, mais ça marche aussi avec tar.gz :

    a) Créer l'archive compressée : tar -czf mes_progs.tgz PROG

    b) Extraire l'archive compressée : tar -xzf mes_progs.tgz PROG

Avantage de cette méthode : gain de temps et gain d'espace. Que font les options -c, -z, -x, -f?

Quelques commandes

ls lister
cd changer de répertoire courant
mkdir <nom> créer un répertoire
rmdir <nom> supprimer un répertoire vide
rm supprimer un fichier
mv <src> <dest> pour renommer, ou déplacer
cp <src> <copy> copier
mount et umount monter et démonter des systèmes de fichiers

Layout created at CSSWebLayouts