Termux passo dopo passo (Parte 2)

В ultima parte abbiamo familiarizzato con i comandi di base di Termux, impostato una connessione SSH a un PC, imparato a creare alias e installato diverse utili utilità. Questa volta dobbiamo fare un ulteriore passo avanti, siamo con voi:

  • informazioni su Termux:API
  • installa Python e nano e scrivi "Ciao mondo!" in Python
  • conoscere gli script bash e scrivere uno script utilizzando Termux:API
  • utilizzando uno script bash, Termux:API e Python scriveremo un semplice programma

Poiché ora capiamo cosa fanno i comandi di input, dal passaggio successivo non descriverò ogni azione in modo così dettagliato, ma dove potrebbero esserci difficoltà, spiegherò sicuramente.

Uso molto gli alias, quindi le abbreviazioni usate in questa parte sono mostrate qui:

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

Il piano è pronto, puoi iniziare! E, naturalmente, non dimenticare la "scheda magica" (Vedi Parte 1).

Passo 4

Immergersi nel Termux: API Rabbit Hole

API quanto si è fuso in questa parola per il cuore del programmatore

Se non tocchiamo l'argomento Termux: API, allora tutti i nostri passi potrebbero ridursi a una semplice rivisitazione di qualche opuscolo come "Linux for Dummies", come giustamente notato nei commenti alla prima parte.

Innanzitutto, installa Termux: API da Google Play Market (non fa male riavviare Termux in seguito):

Termux passo dopo passo (Parte 2)

Successivamente, dobbiamo installare il pacchetto API nella console Termux:

updg # Не забываем про alias’ы
apt install termux-api

Per la sperimentazione sto usando Android 5.1.1, per i possessori di Android 7 è necessario "proteggere" Termux: API andando su "Impostazioni"> "App protette", altrimenti chiamate API come termux-battery-status, si bloccherà. (Cm. Wiki del progetto)

Ora vale la pena dare un'occhiata più da vicino alle opportunità acquisite. L'ultima e più dettagliata descrizione di Termux:API è disponibile all'indirizzo Wiki del progetto. Cercherò di scegliere il più visivo e interessante, che mi permetterà di riempirmi la mano per un lavoro indipendente in futuro.

Alcuni esempi di Termux:API

  • termux-stato-batteria
    Restituisce lo stato della batteria
    Termux passo dopo passo (Parte 2)
  • termux-luminosità
    Imposta la luminosità dello schermo da 0 a 255
    Termux passo dopo passo (Parte 2)
  • termux toast
    Mostra una notifica di brindisi temporanea
    Termux passo dopo passo (Parte 2)
  • termux-torcia
    Include 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)

È facile vedere che i valori restituiti sono stringhe, dizionari, elenchi di dizionari, in generale, tipi di dati con cui Python funziona alla grande, quindi il passaggio successivo è configurarlo.

Passo 5

Installa Python e nano

Per installare Python, scrivi nel terminale:

updg
apt install python
apt install python2

Ora abbiamo 2 e 3 Python installati.

Mentre lavoravo all'articolo, ho scoperto un altro editor di testo nano che mi è piaciuto più di vim, installiamolo:

apt install nano

È più facile da usare rispetto a vim e nano ha un'interfaccia più user-friendly. Su un dispositivo Android, vim è ancora più conveniente.

HelloWorld in Python su Termux

In generale, era possibile fare a meno di questo oggetto, ma inserire Python in Termux e non scrivere HelloWorld, secondo me, è una cattiva educazione.

Non intendo insegnare Python a nessuno, quindi chi non lo sa può semplicemente copiare il codice (o iniziare a imparare da solo, dato che c'è abbastanza letteratura) e chi lo sa può fare qualcosa da solo. E "sotto le spoglie" mostrerò ancora un modo per inserire il testo nel terminale senza un editor.

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)

Termux passo dopo passo (Parte 2)

Se non hai notato un errore durante il processo di input e hai già premuto Invio, non sarai in grado di andare alla riga sopra, per fare ciò, termina l'input premendo Ctrl + D (puoi generalmente interrompere Ctrl + Z) e ripetere tutto dall'inizio. Poiché abbiamo utilizzato '>', il file verrà completamente sovrascritto. Per questo motivo, sconsiglio di utilizzare questo metodo di input a meno che tu non sia sicuro di scrivere il codice immediatamente senza errori.

Passo 6

Script bash

Gli script Bash sono un ottimo modo per automatizzare il lavoro del tuo terminale. Lo script è un file con estensione .sh (l'estensione è facoltativa) contenente un insieme di comandi da terminale, alcuni dei quali sono già stati studiati. Qui elenco della maggior parte dei comandi, tutto dovrebbe funzionare, ma nota che questo è un elenco per Linux "per adulti", non Termux, ma solo ottimo materiale sugli script bash.

Con l'aiuto degli script, puoi automatizzare quasi tutte le azioni monotone. Scriviamo lo script bash più semplice che mostra il valore della variabile che ha creato, userò di nuovo cat, puoi usare un normale editor di testo e quelli che vogliono allenarsi in particolare possono usare echo.

cat >test.sh

export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’

echo $str # Для обращения к переменным перед ними ставится ‘$’

# Ctrl + D

# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым

chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым

./test.sh # Запускаем выполнение нашего скрипта

Termux passo dopo passo (Parte 2)

Script bash con Termux:API

Scriviamo qualcosa di diverso dai famigerati HelloWorlds, ma altrettanto inutili. Il nostro copione sarà:

  1. eseguire la richiesta API termux-battery-status
  2. salvare i dati ricevuti nel file test.txt
  3. stampare i dati da un file sullo schermo
  4. eseguire il programma hello-world.py precedentemente scritto
  5. scrivere i dati ricevuti dal programma nel file test.txt
  6. stampare i dati da un file sullo schermo
  7. spostare i dati dal file negli appunti
  8. visualizzare il contenuto degli appunti
  9. visualizzare un messaggio popup con i dati dagli appunti

Innanzitutto, crea una cartella per il lavoro e copia hello-world.py lì come test.py, crea i file test.sh e test.txt in questa cartella:

mkdir bashscript

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

cd bashscript/

touch test.sh test.txt # touch создает файлы

chmod +x test.sh

Ora, in qualsiasi modo conveniente, scrivi lo script nel file 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

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

Termux passo dopo passo (Parte 2)

Quindi abbiamo scritto lo script bash pianificato. Puoi diluirlo con l'output sulla console delle informazioni sull'esecuzione di ogni azione (usando l'eco), lo lascerò ai lettori.

Passo 7

Facciamo qualcosa di utile

Relativamente utile

Formuliamo i termini di riferimento
Dopo l'avvio, l'applicazione dovrebbe inserire una riga casuale dal file negli appunti e notificarla con un messaggio pop-up.

Prenderemo come base uno script bash, estrarremo una riga casuale da un file utilizzando una subroutine Python. Facciamo un piano di lavoro per la sceneggiatura:

  1. Esegui subroutine
  2. Trasferisci il risultato della subroutine negli appunti
  3. Visualizza messaggio popup

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

  • Cartella rndstr nella home directory
    • source - il file da cui prenderemo le righe
    • rndstr.py - una subroutine che visualizza una riga casuale dal file sorgente alla console
    • rndstr.sh - file di script

Crea una directory dell'applicazione e spostati su di essa e crea i file lì.

I primi due punti dello script plan possono essere combinati da una pipeline, di conseguenza, utilizzando Termux: API otteniamo:

#!/bin/bash

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

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

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

Elenco dei file di origine

Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон

Abbiamo solo bisogno di creare una subroutine che estragga una stringa casuale dal file sorgente.
Scriviamo l'algoritmo della subroutine:

  1. File di origine aperta
  2. Contare il numero di righe in un file aperto
  3. Chiudi il file (non c'è nulla che lo tenga aperto per tempi supplementari)
  4. Generiamo un numero intero casuale all'interno del numero di righe del file sorgente
  5. File di origine aperta
  6. Produciamo una riga sotto il numero del numero generato
  7. Chiusura del fascicolo

Implementiamo l'algoritmo in Python (scrivo sotto 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  #  закрываем файл

Dopo che i file sono stati creati e scritti, è necessario concedere i permessi di esecuzione del file rndstr.she creare un alias per l'avvio rapido.

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

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

Qui abbiamo scritto almeno qualcosa di utile. Relativamente utile.

Ps

Nell'ultimo passaggio, non ho intenzionalmente fornito screenshot e non ho analizzato in dettaglio alcune delle azioni, scrivendo solo il contenuto dei file in modo che i lettori abbiano la possibilità di lavorare da soli.

Su questo "Termux passo dopo passo", penso che valga la pena finire. Naturalmente, questi sono solo i primissimi passi, ma ora puoi andare avanti da solo.

Inizialmente, avevo in programma di mostrare in questo ciclo come usare nmap, sqlmap, ma senza di me ci sono già molti articoli su questo argomento. Se vuoi che continui il ciclo "Termux passo dopo passo", allora c'è un sondaggio qui sotto e nei commenti puoi suggerire cos'altro scrivere.

Solo gli utenti registrati possono partecipare al sondaggio. AccediPer favore.

Continuare "Termux passo dopo passo"?

  • No

2 utenti hanno votato. Non ci sono astensioni.

Fonte: habr.com

Aggiungi un commento