Termux étape par étape (partie 2)



Dans la dernière partie, nous avons rencontré les commandes de base de Termux, établi une connexion SSH avec un PC, appris à créer un alias et installé plusieurs utilitaires utiles. Cette fois, nous devons aller encore plus loin, vous et moi:


  • en savoir plus sur Termux: API
  • installez Python et nano, et écrivez également "Bonjour, monde!" en python
  • nous apprenons les scripts bash et écrivons un script en utilisant Termux: API
  • en utilisant un script bash, Termux: API et Python, nous allons écrire un programme simple

Puisque nous comprenons maintenant ce que font les commandes d'entrée, à partir de l'étape suivante, je ne décrirai pas chaque action de manière aussi détaillée, mais là où il peut y avoir des difficultés, je vais certainement l'expliquer.


J'utilise souvent un alias, donc les abréviations utilisées dans cette partie sont affichées ici:


alias updg='apt update && apt upgrade' alias py='python' 

Le plan est prêt, vous pouvez commencer! Et bien sûr, n'oubliez pas le "Magic Tab" ( Voir Partie 1 ).


Étape 4


Plonger dans le terrier du lapin Termux: API


API combien dans ce mot pour le cœur du codeur fusionné


Si nous n'avons pas abordé le sujet de Termux: API, alors toutes nos étapes pourraient être réduites à une simple nouvelle version de certaines brochures telles que Linux for Dummies, comme cela a été noté à juste titre dans les commentaires de la première partie.


Tout d'abord, installez Termux: API à partir de Google Play Market (après cela ne fait pas de mal de redémarrer Termux):



Ensuite, nous devons installer le package API dans la console Termux:


 updg #    alias' apt install termux-api 

Pour les expériences, j'utilise Android 5.1.1, pour les propriétaires d'Android 7, je dois «protéger» Termux: API en allant dans Paramètres> Applications protégées, sinon les appels d'API, tels que termux-battery-status , se bloqueront. (Voir le wiki du projet )


Maintenant, il examine de plus près les capacités acquises. La description la plus récente et détaillée de Termux: API se trouve sur le wiki du projet . J'essaierai de choisir le plus visuel et le plus intéressant, ce qui me permettra de mettre la main sur un travail indépendant à l'avenir.


Quelques exemples de Termux: API


  • termux-battery-status
    Renvoie l'état de la batterie

  • termux-luminosité
    Règle la luminosité de l'écran de 0 à 255

  • termux-toast
    Affiche une notification contextuelle temporaire

  • torche termux
    Allume une lampe de poche

  • termux-wifi-scaninfo
    Renvoie des informations sur la dernière analyse des réseaux Wi-Fi


Il est facile de voir que les valeurs renvoyées sont des chaînes, des dictionnaires, des dictionnaires, en général, les types de données avec lesquels Python fonctionne très bien, donc l'étape suivante consiste à l'installer.


Étape 5


Installer Python et nano


Pour installer Python, nous écrivons dans le terminal:


 updg apt install python apt install python2 

Maintenant, nous avons 2 et 3 Python installés.


Au cours du travail sur cet article, j'ai découvert un autre éditeur de nano texte que j'aimais plus que vim, installons-le:


 apt install nano 

Son utilisation est plus simple que vim, et nano possède une interface plus conviviale. Sur un appareil Android, vim est encore plus pratique.


HelloWorld en Python dans Termux


En gros, vous pourriez vous passer de cet article, mais mettre Python dans Termux et ne pas écrire HelloWorld, à mon avis, de mauvaises manières.


Je n'ai pas pour objectif d'enseigner le Python à quiconque, donc ceux qui ne connaissent pas peuvent simplement copier le code (ou commencer à apprendre par eux-mêmes, il y a suffisamment de littérature), et ceux qui savent peuvent le faire eux-mêmes. Et je vais vous montrer "silencieusement" un moyen d'entrer du texte dans le terminal sans éditeur.


 cat >hello-world.py #     ( cat 1.txt > 2.txt) #  cat       , #     . str = 'Hello, world!' #   str  "Hello, world!" print (str) #       str # Ctrl + D      (hello-world.py) py hello-world.py #   (py  alias  python) 


Si, pendant le processus de saisie, vous n'avez pas remarqué d'erreur et que vous avez déjà appuyé sur Entrée, vous ne pourrez pas accéder à la ligne ci-dessus. Pour ce faire, terminez la saisie en appuyant sur Ctrl + D (vous pouvez interrompre Ctrl + Z au total) et répétez depuis le début. Puisque nous avons utilisé '>', le fichier sera complètement réécrit. Pour cette raison, je ne recommande pas d'utiliser cette méthode d'entrée si vous n'êtes pas sûr de pouvoir écrire le code immédiatement sans erreur.


Étape 6


Scripts Bash


Les scripts Bash sont un excellent moyen d'automatiser le travail avec le terminal. Le script est un fichier avec l'extension .sh (l'extension est facultative) contenant un ensemble de commandes de terminal, dont certaines ont déjà été étudiées. Voici une liste de la plupart des commandes , tout devrait fonctionner, mais notez que c'est une liste pour Linux "adulte", et non pour Termux, mais c'est juste une bonne chose pour les scripts bash .


À l'aide de scripts, vous pouvez automatiser presque toutes les actions monotones. Nous allons écrire le script bash le plus simple qui affiche la valeur de la variable qu'il a créée, j'utiliserai à nouveau cat, vous pouvez utiliser un éditeur de texte normal, et ceux qui veulent se former peuvent utiliser echo.


 cat >test.sh export str=", !" #   str #     ", !" #       '=' # export      (..   ) echo $str #        '$' # Ctrl + D # ./test.sh   ,         #        test.sh  chmod +x test.sh # chmod    (+  / - ) # '+x'       ./test.sh #     


Une personne aimable a remarqué à juste titre que la commande d' export est superflue si la variable est utilisée dans le même script, car elle emmènera la variable dans l'environnement, c'est-à-dire la rendra accessible en dehors du script, en prenant de la mémoire supplémentaire. Ainsi, après avoir exécuté test.sh nous pouvons accéder à la variable $str à partir de la ligne de commande.

Script Bash avec Termux: API


Écrivons quelque chose de différent des fameux HelloWorlds, mais tout aussi inutile. Notre script sera:


  1. exécuter la requête API termux-battery-status
  2. enregistrer les données reçues dans le fichier test.txt
  3. afficher les données d'un fichier sur l'écran
  4. exécuter le programme hello-world.py écrit plus tôt
  5. écrire les données reçues du programme dans le fichier test.txt
  6. afficher les données d'un fichier sur l'écran
  7. transférer des données du fichier vers le presse-papiers
  8. afficher le contenu du presse-papiers
  9. afficher un message contextuel avec les données du presse-papiers

Tout d'abord, créez un dossier pour le travail et copiez-y hello-world.py en tant que test.py, créez les fichiers test.sh et test.txt dans ce dossier:


 mkdir bashscript cat hello-world.py >> bashscript/test.py cd bashscript/ touch test.sh test.txt # touch   chmod +x test.sh 

Maintenant, d'une manière pratique, nous écrivons le script dans le fichier test.sh:


 #!/bin/bash #       #! ( ) #          clear #    termux-battery-status > test.txt #  1  2    cat test.txt #  3 python test.py > test.txt #  4  5 cat test.txt #  6 cat test.txt | termux-clipboard-set #  7 # |  .          termux-clipboard-get #  8 termux-clipboard-get | termux-toast #  9 

Maintenant, étant dans le dossier bashscript, nous écrivons ./test.sh que nous observons dans le terminal sur l'appareil Android:



Nous avons donc écrit le script bash prévu. Vous pouvez le diluer avec la sortie sur la console d'informations sur l'exécution de chaque action (en utilisant l'écho), je laisserai cela aux lecteurs.


Étape 7


Faisons quelque chose d'utile


Relativement utile


Nous formulons les termes de référence
Après le démarrage, l'application doit placer une ligne aléatoire du fichier dans le presse-papiers et en informer avec un message contextuel.


Nous prendrons un script bash comme base, nous extrairons une ligne aléatoire d'un fichier en utilisant une routine Python. Faisons un plan de travail de script:


  1. Exécuter un sous-programme
  2. Transférer le résultat de la routine dans le presse-papiers
  3. Afficher un message contextuel

Nous déciderons des noms du répertoire et des fichiers d'application:


  • dossier rndstr dans le répertoire personnel
    • source - le fichier à partir duquel nous prendrons les lignes
    • rndstr.py - une routine qui renvoie à la console une ligne aléatoire à partir du fichier source
    • rndstr.sh - fichier de script

Nous créons le répertoire de l'application et, après y avoir emménagé, nous y créons des fichiers.


Les deux premiers points du plan de script peuvent être combinés avec un pipeline, par conséquent, en utilisant Termux: API, nous obtenons:


 #!/bin/bash python ~/rndstr/rndstr.py | termux-clipboard-set # 1  2    termux-toast "OK" # 3 .    "" 

Dans le fichier source, vous pouvez mettre n'importe quel texte divisé logiquement en lignes, j'ai décidé de mettre des aphorismes:


Liste des fichiers sourse
    . .    .    ,  . .    . .    . .       . .   ,    ,   . .       ,   . .       ,    . .      ,     . .        . .     ,    . .       ,    . .     -  ,    .      ,     .   ,     ,     . .    ,    . .       ,  . .     ,   . .     ,    .     ,   . .          . .         .           ,     . .   -  .  ,  . .         . .     ,   ,  .        . .     ,    ,  ,     . .     !   !  

Il nous reste à créer une routine qui extrait une ligne aléatoire du fichier source.
Nous décrirons l'algorithme du sous-programme:


  1. Ouvrez le fichier source
  2. Compter le nombre de lignes dans un fichier ouvert
  3. Nous fermons le fichier (il n'y a rien pour le garder trop longtemps ouvert)
  4. Génère un entier aléatoire dans le nombre de lignes du fichier source
  5. Ouvrez le fichier source
  6. Nous imprimons une ligne sous le numéro du numéro généré
  7. Fermez le fichier

Nous implémentons l'algorithme en Python (j'écris sous Python 3.7):


 import random  #      import os  #    path = os.path.abspath(__file__) #       rndstr.py path = os.path.dirname(path)  #      path = path  + '/source' #       source f = open(path)  #   i = 0  #   for str in f: i+=1  #    f.close()  #   j = int(round(i * random.random()))  #      0  i f = open(path)  #   i = 0  #   for str in f:  #       if i == j:  #             print (str, end='')  #             break #       i+=1  #    1 f.close()  #   

Une fois les fichiers créés et enregistrés, vous devez accorder des droits d'exécution au fichier rndstr.sh et créer un alias pour un lancement rapide.


 alias rnst="~/rndstr/rndstr.sh" 

rnst maintenant en rnst dans le terminal rnst nous obtenons un aphorisme aléatoire sur le presse-papiers, qui, par exemple, peut être utilisé dans la correspondance.


Nous avons donc écrit au moins quelque chose d'utile. Relativement utile.


PS


Dans la dernière étape, je n'ai délibérément pas donné de captures d'écran et n'ai pas analysé en détail certaines des actions, écrivant uniquement le contenu des fichiers afin que les lecteurs aient la possibilité de travailler seuls.


Au départ, j'avais prévu de montrer comment utiliser nmap, sqlmap dans cette série, mais sans moi, il y a déjà beaucoup d'articles sur ce sujet. Si vous voulez que je continue "Termux étape par étape", alors il y a un sondage ci-dessous, et dans les commentaires, vous pouvez suggérer quoi d'autre à écrire.

Source: https://habr.com/ru/post/fr445868/


All Articles