Aller au contenu

Objectifs du stage UNIX de rentrée

L'objectif du stage UNIX est de vous rendre autonomes et efficaces sur votre poste de travail, et de vous faire comprendre en profondeur certaines notions en les manipulant. Les notions travaillées ici, processus, fichiers, parallélisme, droits, interface de manipulation de texte, etc. vous seront utiles pour tous les TP, projets, la plupart des cours de l'école et, ensuite, dans votre vie active.

Avec juste un peu pratique, vous constaterez que vous deviendrez capables de faire plus et plus vite. Mais, 7h30 de TP, c'est court. Ce sera votre réutilisation des notions dans le reste du cursus qui permettra de vraiment les assimiler. D'expérience, les différences de niveau à votre arrivée ne sont plus des indicateurs de votre niveau après quelque temps.

Attendus

Nous proposons deux ''tracks'': A et Z. ''A'', pour les débutants en Unix et ''Z'', pour ceux ayant déjà les bases en Unix. C'est le niveau ''A'' qui est évalué à l'examen.

La track ''Z'' est une promenade aux frontières du monde connu, côté processus et fichiers. C'est un peu comme commencer un roman ou un film policier par la fin: vous aurez le nom des coupables et quelques explications sur les points surprenants, mais le reste de l'histoire et sa compréhension globale viendront au fil des 3 ans de votre cursus. Il n'est PAS attendu que les étudiantes et les étudiants terminent les sujets de TP de la track Z, et surtout pas en 1h30. Le contenu est volontairement maximaliste, calibré pour occuper l'étudiante la plus forte en Unix, ou l'étudiant le plus fort en Unix.

Consignes (à déplier) concernant l'examen de TP
  • Le seul document papier autorisé est une feuille A4 manuscrite recto-verso, où vous pouvez écrire à la main tout ce qui vous passe par la tête (et préférentiellement ce qui pourrait vous être utile pour l'examen…)
  • Le poly vous sera fourni au format PDF et au format HTML pendant l'examen.
  • L'examen de TP est long. Il contient plus d'une vingtaine de questions, et il faut environ une demi-heure à un utilisateur d'Unix rapide et expérimenté pour le terminer. Donc :
    • Préparez-vous à être rapides. Refaire le jeu de piste en entier avant l'examen est sans doute une bonne idée.
    • Relire le poly.
    • Pendant l'examen, ne vous attardez pas sur les questions que vous trouvez trop difficiles. Les questions étant indépendantes, il est facile de laisser une question de côté ...
  • Pour les examens de TPs, vous travaillerez sur un compte initialisé pour l'occasion, sans configuration particulière. Vous n'aurez pas accès à vos comptes, aux serveurs habituels (pcserveur, ...) ni à Internet.
  • Certaines étapes mettent volontairement du temps à donner la réponse. Ces questions apparaitront en début de liste de questions, il est conseillé de les démarrer en premier (pour pouvoir avancer sur les autres questions en attendant la réponse).

Le programme du stage de rentrée 📅

Séances Track A Track Z
(1h30) Débutant en Unix Unix courant
--------- ------------------------ ---------------------
1 Guide <=> Jeu de Piste SSH & Co
2 Guide <=> Jeu de Piste Processus
3 Éditeurs universels Éditeurs universels
4 Guide <=> Jeu de Piste Logiciels
5 Guide <=> Jeu de Piste Programmation Bash

Track A

Les deux ressources pédagogiques des 5 séances de début septembre

  • Le polycopié d'UNIX : à lire, linéairement pour les grands débutants. Il conteint aussi quelques pépites destinées aux plus expertes et experts en Unix : le guide « Initiation à Unix; L'environnement de travail à l'Ensimag » disponible en version HTML ou en PDF. Son contenu, dont 80 mini-exercices, couvre toutes les notions !
  • Le jeu de piste (Sur les machines de l'Ensimag) (il faut déjà savoir se débrouiller pour ne faire que lui): une promenade ludique dans l'univers d'UNIX. La page décrivant le jeu de piste est ici : jeu de piste ;

Autres activités

  • La documentation pour l'installation de Linux de votre machine personnelle. Vous verrez, l'eau est bonne et pas aussi profonde que vous le croyez ! La page décrivant l'install party est ici : Linux Install Party.
  • Un examen de TP qui se déroulera en salles PC (Version de démonstration de l'examen, pour s'entraîner. Bien sûr, le vrai examen sera plus long !)

Déroulé du stage et progression conseillée

Voici une proposition de progression, suivant votre niveau d'expertise de départ. L'important dans ce stage est de découvrir jusqu'où vous avez tout compris et de faire quelques pas de plus pendant les séances.

Minimum vital, niveau débutant

  1. Lire et faire les différents exercices du poly (HTML ou PDF) ;
Numéro de séance (1h30) 1 2 3 4 5
Chapitre du poly à terminer 2 5 Éditeurs 7 10
  1. En parallèle de cette lecture, suivez le jeu de piste ;

Si vous terminez plus vite, nous vous conseillons de passer du temps à apprendre à vous servir de Linux, après l'avoir installé sur votre machine perso (installation de logiciels, configuration, notamment du VPN) ; Faire le mini-tutoriel Premiers pas avec Visual Studio Code ; Lire la page Trucs et astuces Unix (il y a quelques redites avec le guide, mais ça serait dommage de passer à côté !) ; Parcourir les pages des outils numériques à l'Ensimag.

Niveau Intermédiaire

  1. Faire les deux jeux de piste pour vérifier que vous avez atteint le niveau attendu
  2. Configurer votre Thunderbird (cf. chapitre 3 du guide pour les informations)
  3. Apprendre par cœur la commande qui compte vos fichiers à partir du répertoire courant INDISPENSABLE SI VOUS UTILISEZ VSCODE
    1
    du -hs --inodes * .[^.]* ..?* | sort -h
    
  4. Parcourir le wiki des BuBus ;
  5. (Séance 3) S'initier à l'éditeur Vim en lançant vimtutor ;
  6. (Séance 3) S'initier à l'éditeur Emacs en lançant son tutoriel dans son menu Help ;
  7. S'inscrire dans TEIDE, le service de rendu de TP de l'Ensimag, et y rendre un fichier quelconque (cette fois-ci, c'est juste pour s'entraîner, les prochaines fois seront notées !).

Track Z

SSH & Co

Le but de ce TP est ici de manipuler GNU/Linux à distance. Il permet de travailler le terminal, la gestion des processus et des fichiers (distants).

Processus (et fichiers) dans un Linux moderne

Dans un Linux moderne, il existe de nombreuses façons de lancer des processus autrement qu'en utilisant les capacités classiques du système (shell, icônes, menus). Depuis 20 ans, Linux est très en pointe sur ce domaine, ce qui explique en partie sa dominance dans le ''Cloud''. Dans ce TP, on utilisera

  • Les machines virtuelles (VM), avec qemu. Cela permettra d'avoir un système dans lequel vous serez administrateur, pour les points suivants.
  • Les conteneurs, avec docker
  • Les prisons, avec firejail
  • Les surcouches généralisées (''overlay'') avec guix

  • Le sujet du TP sur les processus dans un Linux moderne

Éditeurs universels (Séance 3)

Le but de cette séance tous ensemble est d'acquérir un minimum de compréhension commune de ce que regroupe l'activité d'édition de texte.

''VS Code'' exploite beaucoup d'outils externes pour vous, de manière transparente. C'est l'éditeur perçu en ce moment comme le plus facile, le plus rapide, le plus séduisant.

Mais, sa transparence masque ce qu'il fait, avec quels outils et quels paramètres. Cela ne vous aide pas à comprendre et maitriser. Comprendre et maitriser sont pourtant les bases du travail d'une ingénieure ou d'un ingénieur. Si vous ne creusez pas systématiquement ce qui se passe à chaque étape, il vous rend simplement dépendant. Et, vous ne comprendrez pas.

Heureusement, ce que fait vraiment VS Code n'est pas différent des autres éditeurs universels. Tout le reste est externalisé. Tout le reste est faisable aussi dans les autres éditeurs. Tout le reste est faisable aussi SANS éditeur.

Pour vous apporter ce recul sur ce qui est propre à l'éditeur et ce qui est à l'extérieur, et vous montrer d'où viennent les raccourcis clavier que vous allez manipuler, nous vous proposons de passer un peu de temps avec les deux autres éditeurs universels classiques.

  • 30 minutes: Faire le début du tutoriel de Vim (en anglais) en lançant la commande vimtutor (ou si vous avez lancé nvim, taper :Tutor)
  • 30 minutes: Faire le début du tutoriel d'Emacs en lançant le tutoriel (en français, ou une autre langue) dans son menu Help.

Les logiciels

Une des forces des distributions GNU/Linux est la grande facilité d'installation des logiciels. Contrairement aux ''stores'' (Android, IOS, MS Store, etc.) dans lequel chaque logiciel ''vit'' isolé dans son silo, les logiciels libres de votre distribution forment un tout et sont gérés globalement simultanément.

  • Compiler et installer à la main chez vous sur votre compte Ensimag

Puis, dans une VM d'une Debian Live (il faut être administrateur) * les paquets logiciels, avec dpkg * les gestionnaires, avec apt * les gestionnaires de binaires multi/distributions avec snap * les entrepôts de logiciels avec guix

Programmation Bash

Le but est d'écrire un générateur de galeries d'image pour le web, en Bash. Vous lancez le script en lui donnant un répertoire de départ contenant les images et un répertorie d'arrivée où le script créera les pages web en HTML, les vignettes des images et les images elles-mêmes.