====== Linux et Termux — emporter un terminal Linux partout ======
«//« Comprendre son outil, c'est déjà reprendre un peu de liberté. »//»
===== Linux, un système libre =====
Linux est un noyau de système d'exploitation libre, créé en 1991 par Linus Torvalds.
Dans le langage courant, on utilise cependant « Linux » pour désigner l'ensemble d'un système GNU/Linux : un noyau Linux associé à de nombreux logiciels libres.
Contrairement aux systèmes propriétaires, Linux permet notamment :
* d'étudier son fonctionnement ;
* de modifier le système ;
* de partager les logiciels ;
* de disposer d'un contrôle important sur son environnement informatique.
Cette philosophie est particulièrement intéressante dans une démarche d'autonomie : plutôt que de simplement utiliser un outil, on peut chercher à comprendre comment il fonctionne.
===== Le terminal Linux =====
Le terminal est une interface permettant de communiquer avec l'ordinateur en utilisant des commandes textuelles.
Par exemple :
ls
affiche le contenu du répertoire courant.
cd Documents
permet de se déplacer dans le dossier "Documents".
Et :
mkdir test
crée un nouveau répertoire appelé "test".
Le terminal peut sembler austère au début.
Pourtant, il constitue une interface extrêmement puissante : quelques caractères peuvent permettre de manipuler des fichiers, rechercher des informations, automatiser des tâches, installer des logiciels ou programmer.
===== Pourquoi apprendre le terminal ? =====
Apprendre quelques commandes Linux permet de développer une forme de culture informatique pratique.
On découvre progressivement des notions fondamentales :
* fichiers et répertoires ;
* chemins ;
* permissions ;
* processus ;
* utilisateurs ;
* variables ;
* redirections ;
* pipelines ;
* scripts ;
* programmes et bibliothèques.
Le terminal permet également de comprendre ce qui se passe « derrière » les interfaces graphiques.
Une interface graphique masque souvent la complexité.
Le terminal permet de la rendre visible.
===== Termux : Linux dans Android =====
Termux est une application Android qui fournit un environnement de terminal avec une collection de programmes et d'outils Linux.
Il permet notamment d'utiliser sur smartphone :
* un shell ;
* des commandes Unix/Linux ;
* Python ;
* Git ;
* SSH ;
* des compilateurs ;
* des éditeurs de texte ;
* des outils réseau ;
* différents langages de programmation.
Termux ne transforme pas Android en ordinateur Linux classique : il fournit plutôt un environnement Linux utilisable depuis Android, avec ses propres contraintes et adaptations.
C'est particulièrement intéressant pour apprendre et expérimenter sans avoir besoin d'un ordinateur.
===== Installer Termux =====
Il est recommandé d'utiliser une source officielle et maintenue pour obtenir Termux, notamment F-Droid ou les versions officielles du projet.
"Termux sur F-Droid" (https://reference-url-citation.invalid/1)
"Projet Termux sur GitHub" (https://reference-url-citation.invalid/2)
Évitez les APK provenant de sites inconnus : un terminal dispose potentiellement de nombreuses possibilités d'accès au système et il est préférable de savoir exactement d'où provient le logiciel installé.
===== Premiers pas =====
Après l'installation, ouvrir Termux affiche un terminal.
On peut commencer simplement.
Afficher le répertoire courant :
pwd
Lister son contenu :
ls
Créer un répertoire :
mkdir kaizen
Entrer dans le répertoire :
cd kaizen
Créer un fichier :
touch premier_fichier.txt
Afficher le fichier :
ls
Revenir au répertoire précédent :
cd ..
Ces quelques commandes suffisent déjà à commencer à explorer l'environnement.
===== Transformer Termux en petit laboratoire =====
Termux devient particulièrement intéressant lorsqu'on commence à installer des outils.
Par exemple :
pkg update
pkg upgrade
Puis :
pkg install git
ou :
pkg install python
On peut alors utiliser Python directement depuis le smartphone :
python
Et même créer de petits programmes, manipuler des fichiers ou automatiser des tâches.
===== Termux et programmation =====
Un smartphone devient ainsi un petit laboratoire de programmation.
On peut expérimenter avec :
* Python
* PHP
* JavaScript / Node.js
* Shell
* C
* Git
* SSH
Cela ne remplace pas nécessairement un ordinateur pour les gros projets, mais c'est largement suffisant pour apprendre, tester, automatiser et comprendre.
===== Termux et le libre =====
Termux est particulièrement intéressant dans une démarche de sobriété numérique et de logiciel libre.
Un smartphone est généralement utilisé à travers des interfaces conçues pour cacher le fonctionnement interne.
Termux offre une autre porte d'entrée :
«Le smartphone devient également un terminal programmable.»
On peut alors utiliser un appareil courant pour apprendre Linux, expérimenter avec le code et comprendre davantage ce que l'on fait.
===== Quelques commandes à connaître =====
^ Commande ^ Fonction ^
| "pwd" | Afficher le répertoire courant |
| "ls" | Lister les fichiers |
| "cd" | Changer de répertoire |
| "mkdir" | Créer un répertoire |
| "touch" | Créer un fichier vide |
| "cp" | Copier |
| "mv" | Déplacer ou renommer |
| "rm" | Supprimer |
| "cat" | Afficher le contenu d'un fichier |
| "grep" | Rechercher du texte |
| "find" | Rechercher des fichiers |
| "man" | Consulter la documentation |
| "clear" | Nettoyer l'écran |
| "exit" | Quitter le shell |
Attention avec les commandes de suppression, notamment "rm" : le terminal ne demande pas toujours confirmation.
===== Une progression Kaizen =====
Il n'est pas nécessaire d'apprendre cinquante commandes d'un coup.
Commencez avec cinq :
pwd
ls
cd
mkdir
touch
Puis utilisez-les réellement.
Le lendemain, ajoutez "cp".
Puis "mv".
Puis "cat".
Puis "grep".
Petit à petit, le terminal cesse d'être une suite mystérieuse de caractères.
Il devient un outil que l'on comprend.
C'est une belle application du principe Kaizen :
«Une commande comprise vaut mieux que vingt commandes mémorisées.»
===== Pour aller plus loin =====
Lorsque les bases sont acquises, on peut explorer :
* [[linux:arborescence|L'arborescence Linux]]
* [[linux:commandes|Commandes Linux]]
* [[linux:shell|Shell et Bash]]
* [[linux:permissions|Permissions]]
* [[linux:pipes|Pipes et redirections]]
* [[linux:scripts|Scripts shell]]
* [[linux:git|Git]]
* [[linux:ssh|SSH]]
* [[linux:python|Python]]
* [[linux:php|PHP]]
* [[linux:termux|Termux]]
===== Linux, Termux et Ermite Zen =====
Le terminal peut être considéré comme un excellent outil d'autonomie numérique.
Pas besoin de connaître toute l'informatique.
Pas besoin de devenir administrateur système.
Il suffit de commencer à comprendre ce que l'on utilise.
«Ne pas seulement consommer la technologie.
Apprendre à la comprendre, à la contrôler et à créer avec elle.»
C'est peut-être l'une des formes modernes de simplicité volontaire :
moins dépendre de boîtes noires, plus comprendre ses outils.