TP0 : Survivor's Guides
Yann SECQ
(révisé par Bruno BEAUFILS)

Lors de ce premier TP, vous allez étudier attentivement les trois guides du survivant vous permettant si vous les assimiler de vous en sortir lors des premières séances de TP (ensutie cela se compliquera !). Le premier guide vous donnera les armes UNIX de base, le deuxième guide vous fournira votre outil de création, tandis que le dernier guide débutera votre initiation à la programmation avec JAVA !

Chapitre I : UNIX Survivor's Guide

Au commencement était le terminal ! Le terminal est le suppôt du système d'exploitation : par son intermédiaire, il vous est possible de le questionner et de lui soumettre des requêtes (auquel il répondra prestement). Votre première mission consiste donc à trouver ce terminal en farfouillant dans les antres des menus de votre gestionnaire de fenêtres ou de bureau (window manager ou desktop manager, qui doit être Gnome normalement). Baladez-vous dans les menus, jusqu'à trouver un item nommé Terminal.

Une fois identifié, sélectionnez cet item et le suppôt apparaîtra sous la forme d'une fenêtre supplémentaire, tout de noir excepté une étrange phrase en haut à gauche. Cette phrase est la phrase d'acceuil, l'invite (ou prompt) du terminal : il vous identifie et attend vos requêtes. Malheureusement, le suppôt du système (ou OS) parle un anglais médiocre. Il vous faudra donc faire preuve de qualité linguistique lorsque vous vous adresserez à lui. Nous allons voir les rudiments de sa langue, ce qu'il vous sera nécessaire de maîtriser pour pouvoir ensuite créer vos premiers algorithmes.

Savoir ce qui est disponible là où l'on se trouve : list ou ls

Lorsque vous ouvrez un terminal, il vous accueille généralement chez vous, c'est-à-dire à la racine de votre compte (i.e. votre petit espace personnel qui contiendra bientôt tous les parchemins et grimoires nécessaires à votre progression dans l'art de l'informatique ;-). Commencez donc par taper la commande ls dans le terminal (en minuscule et en validant avec un retour à la ligne). Une liste de mots devrait s'afficher, vous présentant ce que contient votre répertoire (normalement, les répertoires qui ont été crées pour vous par les administrateurs du système du département).

Savoir créer un répertoire  make directory ou mkdir

Dans le souci de maintenir votre espace rangé et ordonné vous avez intérêt à créer un espace réservé à chacune des matières qui vont vous être enseignées et dans chaque matière un espace pour chaque séance TP que vous allez faire. Ce genre d'espace est appelé un répertoire (directory), un catalogue ou encore un dossier (folder). Ainsi, pour les matières enseignées au cours de ce premier semestre, vous allez créer les répertoires ap12, asr1, asr3 et omgl1 (en minuscules) en implorant gentiment le terminal avec la commande : mkdir ap12 asr1 asr3 omgl1 (qui se traduit littéralement par make directories ap12 and asr1 and asr3 and omgl1, que je ne vous ferez pas l'affront de traduire :-).

Pour compléter la préparation du rangement demander au système de créer un répertoire tp0 dans le répertoire réservé aux enseignements d'AP via la commande mkdir ap12/tp0.

Savoir se déplacer : change directory ou cd

Pour ne pas mélanger toutes vos recettes et vos expérimentations, vous allez demander au terminal de vous emmener dans votre répertoire dédié à l'algorithmique (ap12. Pour ce faire, utiliser la commande cd à laquelle vous devez indiquer le répertoire dans lequel vous désirez vous rendre : cd ap12 (en se souvenant que ap12 est le répertoire que vous avez créé à l'étape précédente). Vous devriez constater suite à l'exécution de cette commande que l'invite du terminal s'est légèrement modifiée pour faire apparaître le répertoire dans lequel vous vous trouvez.

Un petit coup de ls pour vérifier que le suppôt de l'OS ne nous ait pas joué de vilain tour ... et vous devriez voir apparaître le nom du répertoire qui vous servira à stocker les travaux de cette première séance (à savoir tp0). Vous continuerez à vous enfoncer dans les profondeurs de cette hiérarchie en ordonnant l'exécution de la commande cd tp0.

Vous pouvez maintenant lister le contenu de ce répertoire pour voir ce qu'il contient ... et pour l'instant, il n'y a pas grand chose !

Dernière petite chose, même si il est intéressant de pouvoir s'enfoncer dans une arborescence, encore faut-il en remonter parfois :

Maintenant que vous êtes placé dans le répertoire de notre séance, nous allons pouvoir passer au deuxième guide fondamental : celui vous permettant de créer des textes.

Chapitre II : Emacs Survivor's Guide

Avant de pouvoir écrire vos programmes, encore faut-il disposer d'un papier et d'un crayon ! Traduit dans le contexte informatique, il vous faut un outil que l'on nomme, avec raison, un éditeur de textes et, qui comme son nom l'indique, permet ... (je vous laisse compléter cette phrase :-). Il existe de nombreux éditeurs de texte, mais deux d'entre eux sont des stars de la galaxie UNIX (i.e. le bon côté de la Force) vi et emacs. Le premier est un frêle chevalier juste vétu d'un pagne et ne payant pas de mine (un lointain frère de Yoda paraît-il). Le second est plus proche d'un transformer : en fonction de son interlocuteur, il peut ressembler à un vélo ou au Faucon Millenium !

On ne s'éternisera pas sur vi car vous le disséquerez avec le Dr Beaufils lors de vos séances de vivissection de système. Nous allons donc passer directement à une étude (très) sommaire de ce couteau suisse de l'édition qu'est emacs. Un peu de généalogie : emacs est un gros bébé né de l'imagination de Richard STALLMAN (si vous ne le connaissez pas, demandez à votre ami Google ce qu'il en pense) initialement conçu pour participer à la création du projet GNU (pareil). L'intérêt de cet outil (tout comme vi) est que vous le trouverez sur tous les UNIX existants et qu'il vous permettra de créer de multiples textes quelque soit les langages que vous utilisez.

Emacs, c'est un peu le saxophone de l'édition de texte : il suffit de savoir souffler pour faire un son ... en revanche, il faut des années de pratique pour participer à A Kind of Blue ! Vous allez donc commencer vos premiers pas d'emacsien en apprenant à le lancer et à éditer un petit texte.

Démarrer emacs : emacs & (et on n'oublie pas le & avant de valider!)

Tout est dans le titre : placez-vous dans le terminal et demandez gentiment à ce dernier de lancer emacs en tapant la commande suivante emacs &. N'oubliez pas le & ! Vous verrez plus tard lors de vos explorations système la signification de ce petit canard. Une fois la commande validée, vous devriez voir appaître la fenétre de l'éditeur (pas très sexy, il faut le reconnaître, mais n'oubliez pas que l'habit de ne fait pas le moine).

La fenêtre d'emacs se décompose en trois importantes parties, soit du haut vers le bas : la barre de menu, la fenêtre d'édition et le mini-buffer.
La barre de menu permet d'accéder aux fonctionnalités les plus courantes de l'éditeur, n'hésitez pas à sélectionner chacun des items pour voir ce qu'il y a au menu. La fenêtre d'édition arbore un magnifique gnou stylisé (quel joli animal) et quelques messages abscons de bienvenue. Le mini-buffer est un élément très important de l'éditeur : généralement, lorsqu'emacs cherche à communiquer avec vous, il le fait par l'intermédiaire de cette ligne, ne le perdez donc jamais de vue !

Dernière petite chose, Richard Stallman a les doigts crochus et aime apparemment les solos de Joe Satriani ! Dit autrement, vous allez devoir maîtriser des enchaînements de touche digne des meilleurs solos de Jimmy Hendrix ... Vos meilleurs amies deviendront les touches Control (CTRL) et Escape (ESC), aussi appelée la touche Méta, auxquelles vous adjoindrez d'autres lettres pour lancer diverses commandes et entrer en symbiose avec emacs.

Les commandes de base : CTRL-X CTRL-F et CTRL-X CTRL-S

Pour débuter vous allez créer l'inévitable Hello World ! qui constitue le arreuh de l'informaticien :-)

Pour cela :

  1. enfoncez la touche CTRL (et maintenez là enfoncée),
  2. puis enfoncez la touche X (vous pouvez la relâcher)
  3. et enfoncez de nouveau la touche CTRL (et maintenez là enfoncée),
  4. puis enfoncez la touche F
  5. et relâchez tout !

Cette combinaison de touches est noté CTRL-X CTRL-F (ou encore C-X C-F dans les documentations habituelles).

Et là ? Rien ne se passe ?!?!!

Et pourtant, si vous avez retenu l'important message de la section précédente et en portant votre regard sur le mini-buffer vous constaterez qu'emacs a réagi à votre appel et vous indique le répertoire courant. Placez-vous dans le répertoire ap12/tp0 (ci ce n'est pas déjà le cas) en appuyant deux fois sur la touche tabulation (la zone d'édition se retrouve scindée en deux et la partie basse vous indique la liste des fichiers et répertoires présents dans le répertoire courant. Vous pouvez ensuite taper ap et tabulation et emacs devancera vos désirs en complétant promptement le fichier ou le répertoire indiqué. Une fois dans le répertoire ap12/tp0, écrivez (dans le mini-buffer) Hello.java et validez.

Ça y est, vous êtes prêts à créer votre premier code source !

Pour cela, recopiez (à la main, pas de copier/coller paresseux!) le texte ci-dessous (en respectant exactement ce qui est écrit).

class Hello extends Program {
    void algorithm() {
        println("Hello world!");
    }
}

Pour ne pas perdre votre précieux travail, utilisez la combinaison magique CTRL-X CTRL-S pour sauvegarder votre fichier (emacs vous indique qu'il a compris votre requête avec un message de confirmation dans le mini-buffer).

Chapitre III : Premiers pas avec Java

Maintenant que vous avez effectué la première phase, à savoir la saisie du programme grâce à un éditeur de texte, nous allons nous intéresser à la deuxième phase : transformer le code source en un fichier exécutable. Pour cela, placez vous dans le terminal et vérifiez que vous êtes bien dans le répertoire ap12/tp0 qui contient votre fichier Hello.java. Il faudra toujours veiller à ce que le nom de votre fichier corresponde à celui du nom de votre programme ! Demandez ensuite gentiment à ce suppôt de l'OS d'exécuter la transfiguration de votre code source en exécutable (on dit la compilation) à l'aide de l'invocation suivante :

javac -cp /home/public/ap12/ap.jar Hello.java

En regardant le contenu de votre répertoire de travail via un appel à la commande ls dans votre terminal vous devriez vous rendre compte qu'un nouveau fichier, nommé Hello.class, a été crée. Il s'agit d'une première version exécutable de votre programme source Java. Pour le faire fonctionner, il vous suffit d'appeler la machine JAVA en lui ordonnant d'exécuter votre premier programme via l'invocation suivante (notez que ce coup ci vous ne spécifiez que le nom du programme pas le nom du fichier) :

java -cp /home/public/ap12/ap.jar:. Hello
Félicitations petit padawan, vous venez vaillament d'effectuer, sans le faire exprès (enfin presque), votre premier pas dans l'impitoyable monde de l'informatique et de la conception de logiciel ! Maintenant que vous avez compris les étapes fondamentales de la création d'un programme (édition du code source, compilation et exécution), nous allons pouvoir passer aux choses sérieuses. Accrochez les ceintures : cela va décoller.