Apprendre : programme d'une semaine 3e / terminale et fiche terminal #18
4 changed files with 454 additions and 0 deletions
40
docs/apprendre/index.md
Normal file
40
docs/apprendre/index.md
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
description: Apprendre Linux en jouant — le site de jeux et de cours d'Alpinux, ses fiches de référence, et des programmes prêts à l'emploi pour animer une initiation.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Apprendre Linux en jouant
|
||||||
|
|
||||||
|
Alpinux propose un site pour apprendre Linux par le jeu :
|
||||||
|
**[dynamic.alpinux.org](https://dynamic.alpinux.org)**. On y trouve des cours courts avec un
|
||||||
|
terminal d'essai intégré, des jeux (missions dans un terminal simulé, associations,
|
||||||
|
permissions) et des quiz. Rien à installer, et rien ne peut casser.
|
||||||
|
|
||||||
|
Cette rubrique du wiki en est le complément : les **fiches de référence**, à garder sous la
|
||||||
|
main ou à imprimer, et les **programmes** pour animer une initiation.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Le parcours « Linux pour le DevOps »
|
||||||
|
|
||||||
|
| Étape | Cours | Jeu | Fiche |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 1. L'arborescence | — | [Où range-t-on quoi ?](https://dynamic.alpinux.org/jeux/arborescence/) | — |
|
||||||
|
| 2. Le terminal | [Se repérer et se déplacer](https://dynamic.alpinux.org/cours/terminal-premiers-pas/) | [Premier jour sur le serveur](https://dynamic.alpinux.org/jeux/terminal-premiers-pas/) | [Le terminal](terminal-se-reperer.md) |
|
||||||
|
| 3. Les fichiers | — | [Préparer un déploiement](https://dynamic.alpinux.org/jeux/terminal-fichiers/) | — |
|
||||||
|
| 4. Les permissions | — | [rwx : le jeu des permissions](https://dynamic.alpinux.org/jeux/permissions/) | — |
|
||||||
|
| 5. Processus et système | — | [Sous le capot](https://dynamic.alpinux.org/jeux/noyau-processus/) | — |
|
||||||
|
| 6. Diagnostiquer | — | [Incident à 3 h du matin](https://dynamic.alpinux.org/jeux/terminal-incident/) | — |
|
||||||
|
|
||||||
|
Les cours et fiches manquants sont en cours de rédaction.
|
||||||
|
|
||||||
|
## Animer une initiation
|
||||||
|
|
||||||
|
- [Une semaine pour découvrir Linux — 3e et terminale](semaine-college-lycee.md) : cinq
|
||||||
|
journées sur Linux, le terminal, Bash, Python, Git et Forgejo, avec une enquête en fil rouge.
|
||||||
|
|
||||||
|
## Voir aussi
|
||||||
|
|
||||||
|
- [Apprendre à programmer en Python](../presentations/Python/README.md), le cours complet
|
||||||
|
pour débutants.
|
||||||
|
- [Le Git d'Alpinux](../guides/git-alpinux.md) : créer son compte sur la forge et y publier
|
||||||
|
son travail.
|
||||||
300
docs/apprendre/semaine-college-lycee.md
Normal file
300
docs/apprendre/semaine-college-lycee.md
Normal file
|
|
@ -0,0 +1,300 @@
|
||||||
|
---
|
||||||
|
description: Programme d'une semaine d'initiation (5 jours de 6 h) pour des élèves de 3e et de terminale — Linux, terminal, Bash, Python, Git et Forgejo, avec une enquête en fil rouge.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Une semaine pour découvrir Linux — 3e et terminale
|
||||||
|
|
||||||
|
Cinq journées de six heures pour faire découvrir à des élèves ce qui se cache derrière les
|
||||||
|
serveurs, les sites web et le code : **Linux, le terminal, Bash, Python, Git et la forge
|
||||||
|
Forgejo**. Le même déroulé sert pour les deux niveaux ; ce qui change, c'est la profondeur.
|
||||||
|
|
||||||
|
!!! warning "Brouillon à valider"
|
||||||
|
Ce programme est une première proposition. Les points encore ouverts sont listés en fin
|
||||||
|
de page, dans [À décider avant la semaine](#a-decider).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Les principes
|
||||||
|
|
||||||
|
**Toujours dire pourquoi.** Chaque journée commence par la question à laquelle elle répond :
|
||||||
|
à quoi sert ce qu'on va apprendre, et quel problème cela règle. Une commande dont on ne
|
||||||
|
comprend pas l'utilité s'oublie dès le lendemain. Les encadrés **Pourquoi** de chaque journée
|
||||||
|
donnent ces réponses, à reformuler devant la classe.
|
||||||
|
|
||||||
|
**Alterner toutes les 45 minutes.** Une journée de 6 h devant un écran ne tient pas sans
|
||||||
|
changer de forme. Chaque demi-journée enchaîne un **cours court** (sur le site), un **jeu**,
|
||||||
|
de la **pratique sur un vrai terminal**, et si possible une **activité débranchée**.
|
||||||
|
|
||||||
|
**Un fil rouge : l'enquête.** Lundi matin, on découvre que le site du club informatique d'un
|
||||||
|
lycée imaginaire a été modifié pendant la nuit. Chaque après-midi, les élèves avancent dans
|
||||||
|
l'enquête **sur les vrais postes Linux de la salle**, avec les commandes apprises le matin.
|
||||||
|
Vendredi, une épreuve finale en équipes désigne le coupable et remet le site en état.
|
||||||
|
|
||||||
|
**Les outils :**
|
||||||
|
|
||||||
|
| Outil | Rôle |
|
||||||
|
|---|---|
|
||||||
|
| [dynamic.alpinux.org](https://dynamic.alpinux.org/jeux/) | Cours avec terminal d'essai intégré, jeux, quiz. Rien à installer. |
|
||||||
|
| Les postes Linux de la salle | La pratique pour de vrai, et l'enquête. |
|
||||||
|
| Ce wiki | Les fiches de référence, et ce programme. |
|
||||||
|
| [La forge d'Alpinux](../guides/git-alpinux.md) | Vendredi : publier son travail et collaborer. |
|
||||||
|
| Un carnet de bord papier | Une page par jour : ce que j'ai appris, une commande à retenir, une question. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Le déroulé type d'une journée
|
||||||
|
|
||||||
|
| Horaire | Durée | Activité |
|
||||||
|
|---|---|---|
|
||||||
|
| 9 h 00 | 15 min | Rappel de la veille : quiz éclair au tableau, ou une commande « mystère » à deviner |
|
||||||
|
| 9 h 15 | 45 min | Le pourquoi du jour, puis le cours sur le site, avec le terminal d'essai |
|
||||||
|
| 10 h 00 | 30 min | Jeu sur le site |
|
||||||
|
| 10 h 30 | 15 min | Pause |
|
||||||
|
| 10 h 45 | 75 min | Pratique sur le vrai terminal, en binômes |
|
||||||
|
| 12 h 00 | | Repas |
|
||||||
|
| 13 h 30 | 15 min | Activité débranchée, pour se remettre en route |
|
||||||
|
| 13 h 45 | 90 min | Enquête : le chapitre du jour |
|
||||||
|
| 15 h 15 | 15 min | Pause |
|
||||||
|
| 15 h 30 | 45 min | Approfondissement, différent selon le niveau |
|
||||||
|
| 16 h 15 | 15 min | Bilan et carnet de bord |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lundi — Linux et le terminal
|
||||||
|
|
||||||
|
**Objectif du jour :** savoir ce qu'est Linux, se repérer dans l'arborescence et s'y déplacer
|
||||||
|
au clavier.
|
||||||
|
|
||||||
|
!!! question "Pourquoi le terminal, alors qu'on a une souris ?"
|
||||||
|
- **Les serveurs n'ont pas d'écran.** Les machines qui font tourner les sites web, les
|
||||||
|
jeux en ligne ou les réseaux sociaux sont presque toutes sous Linux, dans des salles
|
||||||
|
sans écran ni souris. On les pilote à distance, en tapant des commandes.
|
||||||
|
- **Une commande se note, se copie, se répète.** Un clic ne s'écrit pas dans un tuto ; une
|
||||||
|
commande, si. On peut l'envoyer à quelqu'un, la relancer demain, ou la confier à un
|
||||||
|
script mercredi.
|
||||||
|
- **C'est la porte d'entrée de toute la semaine** : Bash, Python et Git s'utilisent depuis
|
||||||
|
le terminal.
|
||||||
|
|
||||||
|
- **Accueil (30 min)** : qui est Alpinux, ce qu'est un logiciel libre, où se trouve Linux
|
||||||
|
sans qu'on le voie : téléphones Android, box Internet, téléviseurs, serveurs, et les 500
|
||||||
|
supercalculateurs les plus puissants du monde.
|
||||||
|
- **Débranché — l'arbre humain** : chaque élève porte une étiquette de dossier (`/`, `home`,
|
||||||
|
`alex`, `etc`…) et tient l'épaule de son « parent ». Un élève-curseur se déplace selon les
|
||||||
|
commandes `cd` lancées par la classe. Chemins absolus et relatifs se comprennent dans
|
||||||
|
l'espace avant de se comprendre à l'écran.
|
||||||
|
- **Site** : jeu [Où range-t-on quoi ?](https://dynamic.alpinux.org/jeux/arborescence/), puis
|
||||||
|
cours [Le terminal : se repérer et se déplacer](https://dynamic.alpinux.org/cours/terminal-premiers-pas/)
|
||||||
|
et jeu [Premier jour sur le serveur](https://dynamic.alpinux.org/jeux/terminal-premiers-pas/).
|
||||||
|
- **Vrai terminal** : ouvrir un terminal (Ctrl + Alt + T), les trois défis de fin de cours,
|
||||||
|
explorer son dossier personnel. Fiche : [Le terminal](terminal-se-reperer.md).
|
||||||
|
- **Enquête, chapitre 1 — L'alerte** : le dossier de l'enquête apparaît sur les postes. Le
|
||||||
|
premier message est caché quelque part : `ls -a`, `cd`, `cat`.
|
||||||
|
|
||||||
|
| | 3e | Terminale |
|
||||||
|
|---|---|---|
|
||||||
|
| Approfondissement | Course d'orientation dans l'arborescence : trouver des fichiers à partir d'indices (« je suis un réglage du réseau… ») | Comment Linux démarre : noyau, `/boot`, `/proc`, PID 1 ; explorer `/proc/cpuinfo` et `/proc/meminfo` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Mardi — Fichiers, droits et recherche
|
||||||
|
|
||||||
|
**Objectif du jour :** créer, déplacer et supprimer des fichiers, comprendre les droits, et
|
||||||
|
retrouver une information dans une montagne de texte.
|
||||||
|
|
||||||
|
!!! question "Pourquoi des droits sur les fichiers ? Pourquoi chercher avec des commandes ?"
|
||||||
|
- **Linux est partagé.** Plusieurs personnes et plusieurs services utilisent la même
|
||||||
|
machine. Les droits empêchent un utilisateur de lire le courrier d'un autre, un site web
|
||||||
|
piraté de toucher au reste du système, et vous-même d'effacer par erreur un fichier
|
||||||
|
important.
|
||||||
|
- **On ne lit pas un journal de 50 000 lignes, on le filtre.** `grep` trouve en une
|
||||||
|
seconde la ligne qui compte. Enchaînées avec `|`, de petites commandes répondent à des
|
||||||
|
questions précises : combien d'erreurs ? quand ? venant d'où ?
|
||||||
|
|
||||||
|
- **Site** : jeu [Préparer un déploiement](https://dynamic.alpinux.org/jeux/terminal-fichiers/),
|
||||||
|
puis [rwx : le jeu des permissions](https://dynamic.alpinux.org/jeux/permissions/).
|
||||||
|
- **Vrai terminal** : `mkdir`, `cp`, `mv`, `rm`, les redirections `>` et `>>`, et un premier
|
||||||
|
éditeur de texte dans le terminal, **nano**.
|
||||||
|
- **Débranché — le pipe humain** : une file d'élèves se passe un paquet de cartes. Le premier
|
||||||
|
ne garde que les cartes rouges (`grep`), le suivant les trie (`sort`), le dernier les compte
|
||||||
|
(`wc -l`). C'est exactement ce que fait `|`.
|
||||||
|
- **Enquête, chapitre 2 — Les morceaux** : le message du pirate est découpé en plusieurs
|
||||||
|
fichiers à rassembler (`cat`, `>`), l'un d'eux est verrouillé (`chmod`), et un indice se
|
||||||
|
cache dans un long journal (`grep`).
|
||||||
|
|
||||||
|
| | 3e | Terminale |
|
||||||
|
|---|---|---|
|
||||||
|
| Approfondissement | Défi « ménage » : ranger un dossier en désordre dans des sous-dossiers par type de fichier | `find`, et les enchaînements `grep … \| sort \| uniq -c \| sort -n` sur un vrai journal |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Mercredi — Bash : faire travailler l'ordinateur à sa place
|
||||||
|
|
||||||
|
**Objectif du jour :** écrire un script, c'est-à-dire une suite de commandes que l'on peut
|
||||||
|
relancer à volonté.
|
||||||
|
|
||||||
|
!!! question "Pourquoi écrire des scripts ?"
|
||||||
|
- **Ce qu'on tape deux fois, on l'écrit une fois.** Un script refait le même travail, dans
|
||||||
|
le même ordre, sans oubli ni faute de frappe, autant de fois qu'il le faut.
|
||||||
|
- **L'ordinateur travaille sans vous** : une sauvegarde à 3 h du matin, la vérification de
|
||||||
|
cent fichiers, la préparation de trente postes identiques.
|
||||||
|
- **Un script est une procédure écrite.** Il se relit, se corrige, se partage, et il dit
|
||||||
|
exactement ce qui a été fait.
|
||||||
|
|
||||||
|
- **Cours** : la ligne `#!/bin/bash`, `chmod +x`, les variables, `echo`, `read`, `if`, `for`.
|
||||||
|
- **Site** : jeu [Sous le capot](https://dynamic.alpinux.org/jeux/noyau-processus/) (ce qui
|
||||||
|
se passe quand on lance une commande) et, pour les terminales,
|
||||||
|
[Incident à 3 h du matin](https://dynamic.alpinux.org/jeux/terminal-incident/).
|
||||||
|
- **Débranché — le robot idiot** : un élève joue le robot qui exécute à la lettre un
|
||||||
|
« script » écrit par un autre groupe pour, par exemple, faire un sandwich. Les bugs
|
||||||
|
apparaissent tout seuls, et l'on comprend pourquoi un programme doit être précis.
|
||||||
|
- **Enquête, chapitre 3 — Le script du pirate** : un script laissé sur le serveur. Il faut
|
||||||
|
le lire sans le lancer, comprendre ce qu'il fait, puis décoder le message qu'il a chiffré.
|
||||||
|
En 3e, le décodage tient en une commande donnée par étapes ; en terminale, les élèves
|
||||||
|
écrivent le script de décodage eux-mêmes.
|
||||||
|
|
||||||
|
| | 3e | Terminale |
|
||||||
|
|---|---|---|
|
||||||
|
| Script du jour | Un quiz interactif en Bash avec `read` et `if`, à faire passer au voisin | Un script de sauvegarde qui prend des arguments (`$1`), vérifie les erreurs (`$?`) et date ses archives |
|
||||||
|
| Approfondissement | Commandes « pour le plaisir » si elles sont installées : `figlet`, `cowsay`, `sl` | Processus et signaux : `ps`, `kill`, `top` ; lien avec le thème « processus » de NSI |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Jeudi — Python
|
||||||
|
|
||||||
|
**Objectif du jour :** écrire et lancer un programme Python depuis le terminal, puis s'en
|
||||||
|
servir comme outil.
|
||||||
|
|
||||||
|
!!! question "Pourquoi Python, puisqu'on a Bash ?"
|
||||||
|
- **Chaque outil a son terrain.** Bash est imbattable pour enchaîner des commandes et
|
||||||
|
manipuler des fichiers. Dès qu'il faut calculer, mémoriser des données, les trier
|
||||||
|
finement ou écrire un vrai programme, il devient pénible : Python est fait pour ça.
|
||||||
|
- **Python est partout** : l'analyse de données, l'intelligence artificielle, les sites
|
||||||
|
web, l'automatisation, les cartes électroniques. Et c'est le langage de la spécialité
|
||||||
|
NSI au lycée.
|
||||||
|
- **Le même problème, deux outils** : l'après-midi, on compte les connexions d'un journal
|
||||||
|
en Python, comme on l'a fait en Bash mardi. Comparer les deux, c'est apprendre à choisir.
|
||||||
|
|
||||||
|
Le wiki contient déjà un [cours complet de Python pour débutants](../presentations/Python/README.md) :
|
||||||
|
la journée s'appuie sur ses chapitres plutôt que de tout réécrire. Ce cours tutoie son
|
||||||
|
lecteur, à la différence du reste de ce programme.
|
||||||
|
|
||||||
|
- **Lancer Python** : l'interpréteur interactif `python3`, puis un fichier `.py` écrit avec
|
||||||
|
nano et lancé avec `python3 mon_programme.py`.
|
||||||
|
- **Enquête, chapitre 4 — Les traces** : un journal de connexions de plusieurs milliers de
|
||||||
|
lignes. Écrire un programme Python qui compte les connexions par adresse et par heure,
|
||||||
|
pour trouver quand le pirate est entré.
|
||||||
|
|
||||||
|
| | 3e | Terminale |
|
||||||
|
|---|---|---|
|
||||||
|
| Notions | Variables, `input`, conditions, boucles : chapitres [01](../presentations/Python/01-variables-types-operateurs.md), [02](../presentations/Python/02-conditions.md) et [03](../presentations/Python/03-boucles.md) | Fichiers, dictionnaires, CSV : chapitres [04](../presentations/Python/04-structures-de-donnees.md) et [07](../presentations/Python/07-fichiers-csv-json.md) |
|
||||||
|
| Projet | Le jeu « devine le nombre », puis des dessins avec `turtle` | Le comptage de mardi, réécrit en Python : comparer les deux approches |
|
||||||
|
|
||||||
|
!!! tip "Pour les élèves de terminale NSI"
|
||||||
|
Python est déjà leur langage. L'intérêt de la journée n'est pas d'apprendre la syntaxe,
|
||||||
|
mais de l'utiliser **hors de l'éditeur de l'école** : depuis le terminal, sur de vraies
|
||||||
|
données, avec la bibliothèque standard (`pathlib`, `csv`, `collections`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Vendredi — Git, Forgejo, et le dénouement
|
||||||
|
|
||||||
|
**Objectif du jour :** garder l'historique de son travail avec Git, le publier sur une forge,
|
||||||
|
et travailler à plusieurs sur le même code.
|
||||||
|
|
||||||
|
!!! question "Pourquoi Git en local, sur sa propre machine ?"
|
||||||
|
Git enregistre des **photos successives** d'un projet, appelées *commits*, chacune avec
|
||||||
|
sa date, son auteur et un message qui dit ce qui a changé et pourquoi. Tout se passe sur
|
||||||
|
votre ordinateur, sans réseau ni compte.
|
||||||
|
|
||||||
|
- **Fini `rapport_final_v3_vraiment_final.txt`.** Un seul fichier, et toutes ses versions
|
||||||
|
rangées dans l'historique.
|
||||||
|
- **On peut revenir en arrière.** Une modification a tout cassé ? On retrouve la dernière
|
||||||
|
version qui marchait, en une commande.
|
||||||
|
- **On sait ce qui a changé** entre deux versions (`git diff`), ligne par ligne, et
|
||||||
|
**pourquoi** grâce au message du commit.
|
||||||
|
- **On essaie sans risque.** Une idée hasardeuse se développe sur une *branche* à part ;
|
||||||
|
si elle ne donne rien, on l'abandonne sans avoir abîmé le reste.
|
||||||
|
|
||||||
|
!!! question "Pourquoi Git à distance, sur une forge ?"
|
||||||
|
Une forge comme Forgejo garde une copie du projet sur un serveur. On y **envoie** ses
|
||||||
|
commits (`git push`) et on **récupère** ceux des autres (`git pull`).
|
||||||
|
|
||||||
|
- **Une sauvegarde hors de sa machine.** Un disque qui lâche, un ordinateur perdu, un
|
||||||
|
poste de salle réinitialisé : le travail reste sur la forge.
|
||||||
|
- **Travailler à plusieurs sur le même projet.** Chacun travaille sur sa copie, puis Git
|
||||||
|
assemble les modifications, et signale quand deux personnes ont touché à la même ligne.
|
||||||
|
- **Faire relire avant d'intégrer.** Une *pull request* propose une modification : les
|
||||||
|
autres la lisent, la commentent, et ne l'acceptent qu'une fois convaincus. C'est ainsi
|
||||||
|
que se fait ce wiki.
|
||||||
|
- **Partager et publier.** Un dépôt public, c'est un projet que tout le monde peut lire,
|
||||||
|
réutiliser et améliorer : c'est le fonctionnement même du logiciel libre.
|
||||||
|
|
||||||
|
**Dans quel ordre ?** D'abord en local : on travaille, on fait des commits, on se trompe
|
||||||
|
et on corrige, sans rien montrer à personne. Ensuite seulement, on envoie sur la forge un
|
||||||
|
travail propre. Le local, c'est le brouillon daté ; la forge, c'est le classeur partagé.
|
||||||
|
|
||||||
|
- **Débranché — la machine à remonter le temps** : un texte écrit à plusieurs sur une feuille,
|
||||||
|
avec une photo prise à chaque étape. Revenir à la photo d'hier, c'est un `git checkout` ;
|
||||||
|
la pile de photos, c'est `git log`. Puis deux groupes modifient chacun leur copie de la
|
||||||
|
même phrase : c'est un conflit, qu'il faut régler en se parlant.
|
||||||
|
- **Git en local** : `git init`, `git add`, `git commit`, `git log`, `git diff`. Chacun
|
||||||
|
versionne les scripts et programmes écrits pendant la semaine.
|
||||||
|
- **Forgejo** : déposer ce travail sur la [forge d'Alpinux](../guides/git-alpinux.md), en
|
||||||
|
explorer l'interface web, et proposer une modification sur le dépôt d'un camarade.
|
||||||
|
- **Enquête, chapitre 5 — Le dénouement** : épreuve en équipes, chronométrée. Le site du club
|
||||||
|
est versionné avec Git, et c'est ce qui va trahir le coupable : chaque commit dit **qui** a
|
||||||
|
modifié **quoi** et **quand**. Il faut identifier le coupable, croiser avec les indices des
|
||||||
|
jours précédents, puis remettre le site en état en revenant à une version saine.
|
||||||
|
- **Clôture (45 min, à la place de l'approfondissement)** : remise des diplômes, ce qu'on
|
||||||
|
retient de la semaine, et la suite (réunions Alpinux, install parties, spécialité NSI).
|
||||||
|
|
||||||
|
| | 3e | Terminale |
|
||||||
|
|---|---|---|
|
||||||
|
| Forgejo | Modifier un fichier depuis l'interface web et ouvrir une pull request | Branches, pull request depuis le terminal, résolution d'un conflit provoqué exprès |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Où en est la préparation
|
||||||
|
|
||||||
|
| Jour | Cours sur le site | Jeux sur le site | Enquête |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Lundi | ✅ Le terminal | ✅ Où range-t-on quoi ?, Premier jour sur le serveur | à écrire |
|
||||||
|
| Mardi | à écrire : fichiers et droits, chercher et filtrer | ✅ Préparer un déploiement, rwx | à écrire |
|
||||||
|
| Mercredi | à écrire : Bash | ✅ Sous le capot, Incident à 3 h du matin | à écrire |
|
||||||
|
| Jeudi | le cours Python du wiki | à prévoir | à écrire |
|
||||||
|
| Vendredi | à écrire : Git local et Forgejo | à prévoir | à écrire |
|
||||||
|
|
||||||
|
L'enquête sera installée sur chaque poste par un script : un dossier par élève, avec les
|
||||||
|
fichiers, les journaux et le dépôt Git du site du club.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ce qu'il faut préparer
|
||||||
|
|
||||||
|
**Sur les postes**, à vérifier en amont :
|
||||||
|
|
||||||
|
- [ ] un terminal accessible aux élèves, et les commandes `git`, `python3`, `nano`, `tree` ;
|
||||||
|
- [ ] le paquet `python3-tk`, sans lequel le module `turtle` de Python ne fonctionne pas ;
|
||||||
|
- [ ] Git configuré avec un nom et une adresse pour chaque session
|
||||||
|
(`git config --global user.name` et `user.email`), sans quoi `git commit` refuse de
|
||||||
|
fonctionner. Pour des mineurs, un pseudonyme et une adresse fictive suffisent en local ;
|
||||||
|
- [ ] facultatif, pour le plaisir : `figlet`, `cowsay`, `sl` ;
|
||||||
|
- [ ] l'accès à `dynamic.alpinux.org` et à `gitea.alpinux.org` depuis le réseau de
|
||||||
|
l'établissement (certains filtres bloquent les forges) ;
|
||||||
|
- [ ] le dossier de l'enquête, installé par un script à lancer sur chaque poste.
|
||||||
|
|
||||||
|
**Pour la salle** : un vidéoprojecteur, des étiquettes et des cartes pour les activités
|
||||||
|
débranchées, un carnet de bord par élève, des diplômes à imprimer.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## À décider avant la semaine {#a-decider}
|
||||||
|
|
||||||
|
| Question | Pourquoi c'est important |
|
||||||
|
|---|---|
|
||||||
|
| **Les comptes Forgejo des élèves.** Comptes AlpID nominatifs, comptes anonymes de classe (`eleve01`, `eleve02`…), ou forge installée localement pour la semaine ? | Les élèves sont mineurs : la solution la plus simple côté données personnelles est celle des comptes anonymes, créés à l'avance et supprimés après la semaine. |
|
||||||
|
| **Les sessions sont-elles conservées d'un jour à l'autre ?** | Beaucoup de postes d'établissement effacent tout à la déconnexion. L'enquête et le travail de la semaine doivent survivre jusqu'au vendredi : sinon, prévoir une clé USB par binôme, ou s'appuyer plus tôt sur la forge. |
|
||||||
|
| **Le nombre d'élèves et de postes.** | Le travail en binômes demande un poste pour deux au minimum. |
|
||||||
|
| **La distribution installée et les droits.** Peut-on installer des paquets ? Les élèves ont-ils `sudo` ? | Sans droits d'installation, il faut vérifier toute la liste ci-dessus avant le lundi. |
|
||||||
|
| **Les horaires exacts** de l'établissement. | Le déroulé type se décale facilement, mais les pauses et le repas sont imposés. |
|
||||||
|
| **Les scores sur le site.** | Ils ne s'enregistrent qu'avec un compte AlpID. Sans compte, on peut faire un classement par équipe à la main, à partir des écrans de fin de partie. |
|
||||||
110
docs/apprendre/terminal-se-reperer.md
Normal file
110
docs/apprendre/terminal-se-reperer.md
Normal file
|
|
@ -0,0 +1,110 @@
|
||||||
|
---
|
||||||
|
description: Fiche de référence du terminal Linux — l'invite, la forme d'une commande, l'arborescence, les chemins, et les commandes pwd, ls, cd et cat.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Le terminal : se repérer et se déplacer
|
||||||
|
|
||||||
|
Fiche de référence. Pour apprendre pas à pas, avec un terminal d'essai intégré, suivre le
|
||||||
|
**[cours interactif](https://dynamic.alpinux.org/cours/terminal-premiers-pas/)**, puis le jeu
|
||||||
|
**[Premier jour sur le serveur](https://dynamic.alpinux.org/jeux/terminal-premiers-pas/)**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ouvrir un terminal
|
||||||
|
|
||||||
|
| Système | Comment |
|
||||||
|
|---|---|
|
||||||
|
| Linux Mint, Ubuntu | **Ctrl + Alt + T**, ou « Terminal » dans le menu |
|
||||||
|
| Debian (GNOME) | Touche **Super**, puis taper « Terminal » |
|
||||||
|
|
||||||
|
Dans le terminal, **Ctrl + C n'est pas « copier »** : cette combinaison interrompt la
|
||||||
|
commande en cours. On copie avec **Ctrl + Maj + C** et on colle avec **Ctrl + Maj + V**.
|
||||||
|
|
||||||
|
## Lire l'invite
|
||||||
|
|
||||||
|
```
|
||||||
|
alex@srv-web01:~/projets$
|
||||||
|
```
|
||||||
|
|
||||||
|
| Morceau | Signification |
|
||||||
|
|---|---|
|
||||||
|
| `alex` | l'utilisateur connecté |
|
||||||
|
| `srv-web01` | le nom de la machine |
|
||||||
|
| `~/projets` | le dossier courant (`~` = dossier personnel) |
|
||||||
|
| `$` | utilisateur ordinaire — `#` signale l'administrateur (*root*) |
|
||||||
|
|
||||||
|
## La forme d'une commande
|
||||||
|
|
||||||
|
```
|
||||||
|
ls -l /etc
|
||||||
|
```
|
||||||
|
|
||||||
|
**Commande** (`ls`), puis **options** (`-l`), puis **arguments** (`/etc`), séparés par des
|
||||||
|
espaces. Les majuscules comptent. Les options courtes se combinent : `ls -l -a` = `ls -la`.
|
||||||
|
|
||||||
|
Une commande qui réussit n'affiche souvent rien. Une commande qui échoue affiche un message :
|
||||||
|
il faut le lire, il indique presque toujours la cause.
|
||||||
|
|
||||||
|
## L'arborescence
|
||||||
|
|
||||||
|
Tout part de la racine `/`. Les dossiers à connaître :
|
||||||
|
|
||||||
|
| Dossier | Contenu |
|
||||||
|
|---|---|
|
||||||
|
| `/home/<nom>` | les dossiers personnels |
|
||||||
|
| `/etc` | la configuration du système et des services |
|
||||||
|
| `/var/log` | les journaux |
|
||||||
|
| `/tmp` | les fichiers temporaires |
|
||||||
|
| `/usr/bin` | les programmes |
|
||||||
|
|
||||||
|
## Les chemins
|
||||||
|
|
||||||
|
| Chemin | Type | Part de… |
|
||||||
|
|---|---|---|
|
||||||
|
| `/home/alex/projets` | absolu | la racine : fonctionne de partout |
|
||||||
|
| `projets/site-web` | relatif | le dossier courant |
|
||||||
|
|
||||||
|
| Raccourci | Signification |
|
||||||
|
|---|---|
|
||||||
|
| `~` | dossier personnel |
|
||||||
|
| `.` | dossier courant |
|
||||||
|
| `..` | dossier parent |
|
||||||
|
| `-` | (avec `cd`) dossier précédent |
|
||||||
|
|
||||||
|
## Les commandes
|
||||||
|
|
||||||
|
| Commande | Effet |
|
||||||
|
|---|---|
|
||||||
|
| `pwd` | affiche le dossier courant |
|
||||||
|
| `ls` | liste le contenu du dossier courant |
|
||||||
|
| `ls dossier` | liste le contenu d'un autre dossier |
|
||||||
|
| `ls -a` | inclut les fichiers cachés (nom commençant par `.`) |
|
||||||
|
| `ls -l` | format détaillé : droits, propriétaire, groupe, taille, date |
|
||||||
|
| `cd dossier` | entre dans un dossier |
|
||||||
|
| `cd ..` | remonte d'un niveau |
|
||||||
|
| `cd` ou `cd ~` | revient au dossier personnel |
|
||||||
|
| `cd -` | revient au dossier précédent |
|
||||||
|
| `cat fichier` | affiche un fichier en entier |
|
||||||
|
| `less fichier` | parcourt un fichier page par page (`q` pour quitter) |
|
||||||
|
| `head fichier` / `tail fichier` | les 10 premières / dernières lignes |
|
||||||
|
| `man commande` | le manuel d'une commande (`q` pour quitter) |
|
||||||
|
| `history` | les commandes déjà tapées |
|
||||||
|
|
||||||
|
## Les raccourcis clavier
|
||||||
|
|
||||||
|
| Touche | Effet |
|
||||||
|
|---|---|
|
||||||
|
| **Tab** | complète un nom ; deux fois, liste les possibilités |
|
||||||
|
| **↑** / **↓** | parcourent l'historique |
|
||||||
|
| **Ctrl + C** | annule la commande ou la ligne en cours |
|
||||||
|
| **Ctrl + L** | efface l'écran |
|
||||||
|
| **Ctrl + R** | recherche dans l'historique |
|
||||||
|
|
||||||
|
## Les erreurs fréquentes
|
||||||
|
|
||||||
|
| Message | Cause probable | Réflexe |
|
||||||
|
|---|---|---|
|
||||||
|
| `Aucun fichier ou dossier de ce type` | ce nom n'existe pas ici : mauvais dossier courant, ou nom mal écrit | `pwd`, `ls`, puis **Tab** pour compléter |
|
||||||
|
| `commande introuvable` | faute de frappe, majuscule, ou programme non installé | relire ; `type commande` dit si elle existe |
|
||||||
|
| `Permission non accordée` | les droits ne le permettent pas | `ls -l` pour voir les droits |
|
||||||
|
| un nom avec espace « coupé en deux » | l'espace sépare les arguments | entourer de guillemets : `cat "mon fichier.txt"` |
|
||||||
|
|
@ -111,6 +111,10 @@ nav:
|
||||||
- guides/sauvegardes.md
|
- guides/sauvegardes.md
|
||||||
- guides/tesseract.md
|
- guides/tesseract.md
|
||||||
- guides/ventoy.md
|
- guides/ventoy.md
|
||||||
|
- Apprendre:
|
||||||
|
- apprendre/index.md
|
||||||
|
- Une semaine pour découvrir Linux: apprendre/semaine-college-lycee.md
|
||||||
|
- "Fiche : le terminal": apprendre/terminal-se-reperer.md
|
||||||
- Technique:
|
- Technique:
|
||||||
- technique/deploiement-wiki.md
|
- technique/deploiement-wiki.md
|
||||||
- technique/deploiement-dynamic.md
|
- technique/deploiement-dynamic.md
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue