Partie 0 - Installations avec Termux.
Seule cette partie nécessite une connexion Internet, afin d'installer les différents logiciels.
Auteur : Franck CHAMBON, enseignant au lycée Lucie AUBRAC de Bollène (84).
Le document suivant est placé sous licence libre CC - BY-NC-SA 4.0
Cette activité utilise Termux, une application pour tablette ou téléphone Android (tout élève de la région Sud possède une telle tablette). Termux émule un terminal et un environnement Linux proche de Debian. Cette application est un logiciel libre contrairement à de très nombreuses applications gratuites disponibles pour Android.
doctest
avec Python,Tout élève ayant une tablette Android peut donc faire l'activité. Aucune connexion Internet n'est requise pour les parties suivantes.
L'activité peut tout aussi bien se faire sur un poste fixe équipé de Linux, conformément au programme de NSI. Termux ne faisant qu'émuler les outils déjà présents.
Avec un poste basé sur Debian, l'administrateur n'aura qu'à installer quelques paquets supplémentaires :
tree
,micro
,cmatrix
,cowsay
,figlet
,lolcat
etfortune
.
La seule différence restante sera d'utiliser python3
, au lieu de python
dans Termux, pour l'interpréteur de Python 3.
L'utilisation de la tablette sans clavier physique est problématique ; le clavier virtuel n'est pas adapté au travail de saisie.
Cette activité peut toutefois être réalisée avec le clavier virtuel ; très peu de code est à saisir.
Plusieurs solutions sont à envisager pour pouvoir utiliser un clavier physique sur la tablette.
On montre comment connecter, via le câble USB d'origine, la tablette à tout PC (Windows, MacOS, ou Linux) afin de pouvoir utiliser le clavier physique du PC, ainsi que la souris. Coût nul, si un PC est disponible ; cependant, c'est un peu technique. Cette solution offre des avantages à l'enseignant pour vidéo-projeter ou enregistrer une session.
Il est tout à fait possible de connecter un clavier Bluetooth à la tablette. Le coût est contenu, mais l'utilisation en classe de nombreuses connections Bluetooth est hasardeuse.
Il est tout à fait possible de brancher un classique clavier USB type-A directement sur la tablette via un adaptateur USB (Type-C mâle ; Type-A femelle). Le coût est modique. On peut utiliser tout clavier USB, certains sont transportables, et certains sont déjà en USB type-C. Attention, il faut choisir un modèle de clavier avec un accès facile aux touches de programmation ([{|&\}])
.
Le choix d'un clavier doit être réfléchi ! Il peut être un objet personnel (humour) qu'on garde longtemps.
On installe ici les logiciels nécessaires sur tablette, et on fait uniquement des tests rapides.
TL;DR signifie Too Long ; Didn't Read (en).
On le croise souvent pour annoncer un résumé d'une longue partie que certains pourraient zapper.
Pour les lecteurs avertis, voici la mise en place résumée :
$ apt update
$ apt install python micro cowsay figlet fortune man coreutils tree ruby
$ gem install lolcat
Pour les autres, bien suivre toutes les étapes suivantes, et faire chaque test.
$
est l'invite de commande Bash, on dit aussi prompt en anglais. C'est là que l'on entre les commandes. Il est inutile de taper sur $
dans les commandes qui suivent, c'est juste pour indiquer qu'il s'agira d'une commande Bash.
De même, ensuite on verra
>>>
l'invite de commande Python qu'il ne faudra pas entrer non plus, mais qui signifie que le prompt attend une commande Python...
$ apt update
puis répondre Y.$ apt upgrade
pkg
est la commande pour gérer (installation, suppression, ...) les paquets (package) systèmes dans Termux. On peut aussi utiliser apt
comme sur Linux basé sur Debian.update
est un argument, upgrade
en est un autre possible. Pour installer (ou supprimer, ou chercher) un paquet, il y a d'autres arguments à apt
.Voyons comment installer le paquet pour Python dans Termux.
Python est un langage de script, tout comme Bash, mais plus récent (première version publique en février 1991 par Guido van Rossum).
Python est disponible dans Termux, une fois un paquet installé. En effet, sans installer le paquet, voici le résultat :
$ python
The program python is not installed. Install it by executing:
pkg install python
Python n'est pas installé, mais on nous indique comment faire.
$ apt install python
, puis répondre Y.install
est un argument de la commande apt
, pour installer des paquets.python
est un autre argument, ici le nom du paquet que l'on souhaite installer.pkg
pour Termux (mais apt
fonctionne aussi ; nous l'utiliserons),apt
pour Debian et dérivés (très utilisés dans le monde éducatif en particulier),rpm
pour Fedora et dérivés,pacman
pour Arch et dérivés,brew
pour MacOS,choco
ou winget
ou scoop
pour Windows).$ python
>>>
$ python
Python 3.8.3 (default, Jul 8 2020, 22:39:27)
[Clang 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf6 on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Effectuer un calcul du genre >>> 2**127 - 1
Vérifier que la réponse est bien 170141183460469231731687303715884105727
Entrer >>> exit()
On retrouve alors l'invite de commande Bash $
.
On peut aussi taper sur Ctrl+D, qui envoye le caractère ASCII EOF (End Of File) ; cela indique la fin de la saisie, tant pour Python que pour Bash.
Vérifier que l'on peut quitter Bash, ou bien avec $ exit
, ou bien avec Ctrl+D. Noter que pour Python, il faut des parenthèses à exit()
.
L'utilisation de Python en ligne de commande n'est pratique que pour de très petits scripts ; pour de plus longs scripts, il est bien plus commode de les créer dans un éditeur.
nano est un éditeur de code minimaliste pour l'émulateur de terminal.
Historiquement, il y a les éditeurs Vi(m) et Emacs qui sont très utilisés. Leur fonctionnement modal les rend puissants, mais aussi complexes pour une première prise en main.
$ apt install nano
salut.txt
avec nano :
$ nano salut.txt
Bonjour à tous !
sur la première ligne.D'autres raccourcis clavier (bindings) sont indiqués par défaut ; ils ne sont pas usuels...
1- nano n'offre pas des raccourcis usuels d'édition, cependant il affiche les plus utiles. C'est un logiciel libre qui reprend les fonctionnalités d'un ancien éditeur minimaliste non libre pico.
2- nano est souvent déjà installé avec Linux, on le retrouve proposé dans de nombreux tutoriels ; il est neutre (dans le conflit historique Vim vs Emacs), et on peut utiliser à sa place l'éditeur de son choix : Vim, Emacs, xed, ou micro...
3- L'éditeur micro est aussi un éditeur minimaliste, se présente comme successeur de nano, en offrant beaucoup plus de possibilités (meilleure coloration syntaxique et exécution de code), et de simplicités via ses raccourcis clavier. Recommandé pour tous.
$ apt install micro
$ micro salut.txt
Raccourcis claviers (bindings) de micro, affichés avec Alt+G :
Nous utiliserons micro dans la partie 2 !
Installons d'autres logiciels plus ou moins utiles, historiquement très utilisés.
Cowsay est un logiciel libre qui crée de l'art ASCII, souvent une vache avec un message.
$ apt install cowsay
$ cowsay "Salut"
_______
< Salut >
-------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
FIGlet est un logiciel libre qui crée des bannières textuelles dans différentes polices d'écriture.
$ apt install figlet
$ figlet "Vive la NSI"
__ ___ _ _ _ ____ ___
\ \ / (_)_ _____ | | __ _ | \ | / ___|_ _|
\ \ / /| \ \ / / _ \ | |/ _` | | \| \___ \| |
\ V / | |\ V / __/ | | (_| | | |\ |___) | |
\_/ |_| \_/ \___| |_|\__,_| |_| \_|____/___|
fortune est un programme simple qui affiche un message au hasard provenant d'une base de données de citations, reprenant le principe du biscuit chinois (fortune cookie), d'où le nom.
$ apt install fortune
$ fortune
Another dream that failed. There's nothing sadder.
-- Kirk, "This side of Paradise", stardate 3417.3
La plupart des citations sont délicates à saisir, elles nécessitent une bonne connaissance de la culture geek ; nous nous en servirons pour obtenir un texte vaguement aléatoire.
Pour avoir un fond d'écran dynamique comme dans le film Matrix.
$ apt install cmatrix
$ cmatrix
Pour avoir un peu de couleur dans les exercices à venir, on installe le logiciel lolcat
qui est écrit avec le langage Ruby. Pour l'avoir dans Termux, on doit l'installer en deux étapes.
$ apt install ruby
: pour installer le langage de programmation Ruby.$ gem install lolcat
: pour installer le paquet ruby
qui donne lolcat
.$ lolcat salut.txt
lolcat
est une variante ludique d'un outil système cat
que nous découvrirons bientôt.
Ajoutons à Termux d'autres outils sytème.
man affiche le manuel d'une commande passée en paramètre.
$ apt install man
$ man fortune
On obtient une page d'aide du manuel d'utilisation de la commande fortune
. Nous apprendrons à lire en partie les informations contenues ; ça peut être technique.
⚠️ Pour quitter une page de manuel, taper Q.
Un lot d'outils variés souvent très utiles (pour les fichiers, les textes, les shells).
$ apt install coreutils
$ factor 1234567890000007
1234567890000007: 23 6427 79151 105517
On a obtenu la décomposition en facteurs premiers d'un entier. L'algorithme utilisé est plutôt bon !
tree
est une commande qui nous permet de visualiser l'arborescence de nos répertoires.
$ apt install tree
$ tree
.
└── salut.txt
0 directories, 1 file
Nous découvrirons plusieurs autres outils très utiles !
Avant cela, voyons comment connecter en USB la tablette à un PC.
Cette section est facultative et plutôt pour les enseignants. Elle permet d'avoir la tablette connectée en USB au PC (Windows, MacOS ou Linux), d'en prendre le contrôle avec le clavier et la souris PC, et d'avoir une fenêtre d'application PC qui clone l'écran de la tablette, pour l'enregistrer ou la diffuser.
Système
,À propos de la tablette
Numéro de build
Un message indique que « vous êtes désormais un développeur ».
Il suffit de trouver l’option correspondante dans { } Options pour les développeurs
, dans les paramètres système.
Penser à le désactiver une fois l'utilisation terminée !
scrcpy
Pour Linux Debian (sid ou testing), Ubuntu 20.04, Mint 20, il suffit de faire :
$ sudo apt install scrcpy
scrcpy
installé par l'administrateur, connecter votre tablette en USB sur votre PC et lancer scrcpy
dans votre terminal PC.La tablette est désormais pilotable par votre clavier/souris de PC (Windows, MacOS ou Linux). L'écran de la tablette est cloné dans une application PC, on peut l'enregistrer ou le diffuser en direct.