Termux passo dopo passo (Parte 2)

In parte precedente Ci siamo già familiarizzati con i comandi di base di Termux, abbiamo configurato la connessione SSH con il PC, imparato a creare alias e installato diverse utilità utili. Questa volta dobbiamo fare un passo avanti, ecco cosa faremo:

  • scopriremo Termux:API
  • installeremo Python e nano, e scriveremo "Hello, world!" in Python
  • scopriremo gli script bash e scriveremo uno script utilizzando Termux:API
  • utilizzando uno script bash, Termux:API e Python scriveremo un semplice programma

Poiché ora comprendiamo cosa fanno i comandi immessi, da questo punto in poi non descriverò ogni azione nei dettagli, ma spiegherò sicuramente dove potrebbero sorgere difficoltà.

Utilizzo spesso gli alias, quindi le abbreviazioni utilizzate in questa parte sono mostrate qui:

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

Il piano è pronto, possiamo iniziare! E naturalmente non dimenticate il "magico Tab" (Vedi Parte 1).

Passo 4

Immergiamoci nel tunnel del coniglio di Termux:API

API, quante cose si fondono in questa parola nel cuore di un coder

Se non parliamo di Termux:API, tutti i nostri passi potrebbero essere riassunti in una semplice sintesi di qualche opuscolo tipo "Linux per principianti", come è stato giustamente osservato nei commenti alla prima parte.

Per iniziare, installeremo Termux:API dal Google Play Market (dopo sarà utile riavviare Termux):

Termux passo dopo passo (Parte 2)

Subito dopo dobbiamo installare il pacchetto API nella console di Termux:

updg # Non dimentichiamoci degli alias
apt install termux-api

Per gli esperimenti utilizzo Android 5.1.1, per i proprietari di Android 7 è necessario "proteggere" Termux:API, andando in ‘Impostazioni’ > ‘App protette’, altrimenti le chiamate API, come termux-battery-status, si bloccheranno. (Vedi. wiki del progetto)

Ora vale la pena approfondire le nuove funzionalità. La descrizione più recente e dettagliata di Termux:API può essere trovata su wiki del progetto. Cercherò di selezionare le informazioni più chiare e interessanti, che consentiranno di acquisire esperienza per un lavoro autonomo in seguito.

Alcuni esempi di Termux:API

  • termux-battery-status
    Restituisce lo stato della batteria
    Termux passo dopo passo (Parte 2)
  • termux-brightness
    Imposta la luminosità dello schermo da 0 a 255
    Termux passo dopo passo (Parte 2)
  • termux-toast
    Mostra una notifica popup temporanea
    Termux passo dopo passo (Parte 2)
  • termux-torch
    Accende la torcia
    Termux passo dopo passo (Parte 2)
  • termux-wifi-scaninfo
    Restituisce informazioni sull'ultima scansione delle reti Wi-Fi
    Termux passo dopo passo (Parte 2)

Non è difficile notare che i valori restituiti sono stringhe, dizionari, liste di dizionari, insomma tipi di dati con cui Python lavora perfettamente, quindi il passo successivo sarà installarlo.

Passaggio 5

Installeremo Python e nano

Per installare Python, digitiamo nel terminale:

updg
apt install python
apt install python2

Ora abbiamo installato Python 2 e 3.

Durante il lavoro su questo articolo, ho scoperto un altro editor di testo, nano, che mi è piaciuto di più rispetto a vim, quindi installiamolo:

apt install nano

È più facile da usare rispetto a vim e nano ha un'interfaccia più amichevole. Su un dispositivo Android, comunque, è più comodo vim.

HelloWorld in Python su Termux

In realtà si poteva fare anche a meno di questo punto, ma installare Python in Termux e non scrivere HelloWorld, secondo me, è di cattivo gusto.

Non ho come obiettivo insegnare a nessuno Python, quindi chi non sa può semplicemente copiare il codice (o iniziare a studiare da solo, per fortuna ci sono abbastanza libri disponibili), mentre quelli che sanno possono anche inventare qualcosa da soli. E io, "nel frattempo", mostrerò anche un modo per inserire testo nel terminale senza un editor.

cat >hello-world.py     
# Se non si specifica l'origine (ricordo che cat 1.txt > 2.txt)
# cat prenderà i dati dall'input standard,
# per dirla in parole semplici, ciò che viene digitato da tastiera.

str = 'Hello, world!' # assegniamo alla variabile str il valore "Hello, world!"
print (str) # stampiamo a schermo il valore della variabile str

# Ctrl + D per terminare l'inserimento e salvare il file (hello-world.py)

py hello-world.py # eseguiamo il file (py è un alias per python)

Termux passo dopo passo (Parte 2)

Se durante l'inserimento non hai notato un errore e hai già premuto Invio, non potrai passare alla riga sopra; per farlo, termina l'inserimento premendo Ctrl + D (puoi anche interrompere completamente con Ctrl + Z) e ripeti tutto dall'inizio. Poiché abbiamo utilizzato '>', il file sarà completamente sovrascritto. Per questo motivo, non consiglio di utilizzare questo metodo di inserimento se non sei sicuro che scriverai il codice corretto subito.

Passaggio 6

Script Bash

Gli script Bash sono un modo fantastico per automatizzare il lavoro nel terminale. Uno script è un file con estensione .sh (l'estensione non è obbligatoria) contenente un insieme di comandi del terminale, alcuni dei quali abbiamo già studiato. Ecco l'elenco della maggior parte dei comandi, tutto dovrebbe funzionare, ma fai attenzione, poiché questo è un elenco per un Linux "adulto" e non per Termux, ecco un semplicemente materiale eccezionale sugli script bash.

Con gli script è possibile automatizzare praticamente tutte le azioni monotone. Scriveremo un semplice script bash che visualizza il valore di una variabile creata dallo stesso script, utilizzerò ancora cat, ma potete usare un normale editor di testo, e coloro che desiderano allenarsi possono utilizzare echo.

cat >test.sh

export str="Ciao, Habr!"
# export crea la variabile str
# e le assegna il valore "Ciao, Habr!"
# Non inserite spazi prima e dopo '='

echo $str # Per accedere alle variabili si utilizza il simbolo '$' prima di esse

# Ctrl + D

# ./test.sh per eseguire lo script, ma se lo fate adesso ci sarà un errore
# per risolvere l'errore è necessario rendere il file test.sh eseguibile

chmod +x test.sh
# chmod modifica i permessi di accesso (+ aggiungere / - rimuovere)
# ‘+x’ significa che rendiamo il file eseguibile

./test.sh # Avviamo l'esecuzione del nostro script

Termux passo dopo passo (Parte 2)

Script Bash con Termux:API

Scriviamo qualcosa che si discosti dai soliti HelloWorld, ma che sia altrettanto inutile. Il nostro script sarà:

  1. eseguire una richiesta all'API termux-battery-status
  2. salvare i dati ricevuti nel file test.txt
  3. visualizzare i dati del file sullo schermo
  4. eseguire il programma hello-world.py precedentemente scritto
  5. scrivere i dati ricevuti dal programma nel file test.txt
  6. visualizzare i dati del file sullo schermo
  7. copiare i dati dal file negli appunti
  8. visualizzare il contenuto degli appunti sullo schermo
  9. visualizzare un messaggio pop-up con i dati dagli appunti

Iniziamo creando una cartella per lavorare e copiamo hello-world.py come test.py, creando all'interno di questa cartella i file test.sh e test.txt:

mkdir bashscript

cat hello-world.py >> bashscript/test.py

cd bashscript/

touch test.sh test.txt # touch crea i file

chmod +x test.sh

Ora scriviamo lo script nel file test.sh in qualsiasi modo conveniente:

#!/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

Ora, mentre ci troviamo nella cartella bashscript, scriviamo ./test.sh osserviamo nel terminale sul dispositivo Android:

Termux passo dopo passo (Parte 2)

Ecco, abbiamo scritto lo script bash programmato. Possiamo arricchirlo con un output in console delle informazioni riguardanti l'esecuzione di ogni azione (utilizzando echo), lascio questo ai lettori.

Passo 7

Facciamo qualcosa di utile

Relativamente utile

Formuliamo un compito tecnico
L'applicazione deve, dopo l'avvio, copiare negli appunti una riga casuale dal file e notificare con un messaggio pop-up.

Prenderemo come base uno script bash, per estrarre una riga casuale dal file utilizzeremo una sottoprogrammazione in Python. Strutturiamo il piano di lavoro dello script:

  1. Avviare la sottoprogramma
  2. Trasferire il risultato del sottoprogramma negli appunti
  3. Visualizzare un messaggio popup

Definiamo i nomi della directory e dei file dell'applicazione:

  • cartella rndstr nella directory home
    • source — file da cui prenderemo le righe
    • rndstr.py — sottoprogramma che stampa nel terminale una riga casuale dal file source
    • rndstr.sh — file di script

Creiamo la directory dell'applicazione e, una volta entrati, creiamo i file al suo interno.

I primi due punti del piano dello script possono essere combinati in un pipe, risultando in: utilizzando Termux:API otteniamo:

#!/bin/bash

python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы

termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"

Nel file source puoi inserire qualsiasi testo logicamente diviso in righe, ho deciso di inserire aforismi:

Elenco del file source

L'autenticità non è la verità. L. Lavelle
Sopporta e trattieni. Epitteto
Nobile è solo ciò che è altruista. J. La Bruyère
Sii con prudenza coraggioso. B. Gracian
La bontà è migliore della bellezza. G. Heine
Per grandi opere è necessaria una costanza instancabile. F. Voltaire
Se vuoi sempre compiacere, servi te stesso. B. Franklin
L'eccessiva modestia non è altro che orgoglio nascosto. A. Chénier
Le persone molto intelligenti iniziano a non essere fidate se si vedono in imbarazzo. F. Nietzsche
La povertà indica mancanza di mezzi, non di nobiltà. D. Boccaccio
Bisogna fare attenzione a non spingere la modestia fino all'umiliazione. A. Bakikhanov
Chi rinuncia a molto, può permettersi molto. J. Chardon
Quando ci pagano per un atto nobile, ce lo portano via. N. Chamfort
Non ricevere affatto non è spaventoso, ma perdere ciò che si è ottenuto è doloroso. Claudio Eliano
È più facile sopportare pazientemente ciò che non possiamo correggere. Orazio
Ti stanchi ad aspettare, ma quanto sarebbe peggio se non ci fosse nulla da aspettare? B. Shaw
Tutto arriva in tempo, se le persone sanno aspettare. F. Rabelais
Con la nostra pazienza possiamo ottenere di più che con la forza. E. Burke
Bisogna sapersi adattare a ciò che non si può evitare. M. Montaigne
Chi è audace nel fare, non teme le parole. Sofocle
Non amo combattere, amo vincere. B. Shaw
Un gatto braccato e accostato al muro diventa una tigre. M. Cervantes
Una persona dignitosa non segue le orme degli altri. Confucio
Un grande pensiero mostrerà la propria forza non solo nell'abilità di pensare, ma anche nell'abilità di vivere. R. Emerson
La gloria è una merce svantaggiosa. Costa caro e si conserva male. O. Balzac
La riservatezza e la pertinenza nei discorsi valgono più dell'eloquenza. F. Bacon
Chi non sa tacere, non può nemmeno parlare. Seneca il Giovane
Le buone maniere consistono in piccoli sacrifici. F. Chesterfield
Una persona buona non è quella che sa fare del bene, ma quella che non sa far del male. V. Ključevskij
Non pronunciare giudizi irrevocabili! Agostino
Nulla di eccessivo! Solone

Ci rimane da creare una sottoprogramma che estrae una riga casuale dal file source.
Dettagliamo l'algoritmo di funzionamento della sottoprogramma:

  1. Apriamo il file source
  2. Contiamo il numero di righe nel file aperto
  3. Chiudiamo il file (non ha senso tenerlo aperto più del necessario)
  4. Generiamo un numero intero casuale all'interno del numero di righe del file source
  5. Apriamo il file source
  6. Stampiamo la riga con il numero generato
  7. Chiudiamo il file

Implementiamo l'algoritmo in Python (sto scrivendo per Python 3.7):

import random  #  importiamo per generare numeri casuali
import os  #  per ottenere il percorso

path = os.path.abspath(__file__)  #  otteniamo il percorso diretto al file rndstr.py
path = os.path.dirname(path)  #  trasformiamo in percorso della directory
path = path  + ' /source'  #  trasformiamo in percorso del file source

f = open(path)  #  apriamo il file
i = 0  #  azzeriamo il contatore
for str in f: i+=1  #  contiamo le righe del file
f.close  #  chiudiamo il file

j = int(round(i * random.random()))  #  generiamo un numero intero casuale da 0 a i

f = open(path)  #  apriamo il file
i = 0  #  azzeriamo il contatore
for str in f:  #  scorriamo le righe dal file
    if i == j:  #  se il contatore delle righe è uguale al numero generato
        print (str, end='')  #  stampiamo la riga senza andare a capo
        break  #  uscire dal ciclo
    i+=1  #  incrementiamo il contatore di 1
f.close  #  chiudiamo il file

Dopo che i file sono stati creati e scritti, è necessario dare i permessi di esecuzione al file rndstr.sh, e creare un alias per un avvio veloce.

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

Ora, digitando nel terminale rnst otterremo negli appunti un aforisma casuale, che ad esempio può essere utilizzato nella corrispondenza.

Ecco che abbiamo scritto qualcosa di utile. Relativamente utile.

P.s.

Ho volutamente omesso degli screenshot nell'ultimo passaggio e non ho analizzato in dettaglio alcune azioni, descrivendo solo il contenuto dei file, affinché i lettori avessero la possibilità di lavorare in autonomia.

Con questo 'Termux passo dopo passo', penso sia giunto il momento di concludere. Ovviamente si tratta solo dei primi passi, ma ora potete procedere da soli.

Inizialmente avevo pianificato di mostrare in questo ciclo come utilizzare nmap, sqlmap, ma ci sono già molti articoli su questo argomento. Se desiderate che continui il ciclo 'Termux passo dopo passo', c'è un sondaggio qui sotto e nei commenti potete suggerire su cosa scrivere ancora.

Solo gli utenti registrati possono partecipare al sondaggio. Accedi, per favore.

Continuare 'Termux passo dopo passo'?

  • No

Hanno votato 2 utenti. Non ci sono astenuti.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster