Termux passo per passo (Parte 2)

В ultima parte avemu cunnisciutu i cumandamenti basi di Termux, stallà una cunnessione SSH à un PC, hà amparatu à creà alias è installate parechje utilità utili. Sta volta ci tocca à passà ancu più, simu cun voi:

  • Scopri Termux:API
  • installate Python è nano, è scrive "Hello, world!" in Python
  • scopre nantu à i script bash è scrive un script cù Termux:API
  • usendu un script bash, Termux: API è Python scriveremu un prugramma simplice

Siccomu avà capiscenu ciò chì facenu i cumandamenti di input, allora da u prossimu passu ùn aghju micca descriverà ogni azzione in tali dettagliu, ma induve ci ponu esse difficultà, spiegheraghju definitivamente.

Aduprate alias assai, cusì l'abbreviazioni aduprate in questa parte sò mostrate quì:

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

U pianu hè prontu, pudete inizià! È, sicuru, ùn vi scurdate micca di a "Magic Tab" (Vede a Parte 1).

mossa 4

Immersione in u Termux: API Rabbit Hole

API quantu hè fusionatu in sta parolla per u core di u codificatore

S'ellu ùn tocca micca u tema di Termux: API, allora tutti i nostri passi puderanu esse ridotti à una semplice retazione di qualchì brochure cum'è "Linux for Dummies", cum'è hè statu ghjustu nutatu in i cumenti à a prima parte.

Prima, installate Termux: API da u Google Play Market (ùn hè micca male di riavvià Termux dopu):

Termux passo per passo (Parte 2)

Dopu, avemu bisognu di stallà u pacchettu API in a cunsola Termux:

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

Per l'esperimentazione aghju utilizatu Android 5.1.1, per i pruprietarii di Android 7 anu bisognu di "prutegge" Termux: API andendu in "Settings"> "Protected Apps" altrimenti API chjama cum'è termux-battery-status, s'impiccarà. (Cm. wiki di prughjettu)

Avà vale a pena guardà più attente à e opportunità acquistate. L'ultima è più dettagliata descrizzione di Termux:API pò esse truvata à wiki di prughjettu. Pruvaraghju di sceglie u più visuale è interessante, chì mi permetterà di riempie a manu per u travagliu indipendente in u futuru.

Certi esempi di Termux:API

  • termux-batteria-status
    Ritorna u statu di a bateria
    Termux passo per passo (Parte 2)
  • termux-luminosità
    Imposta a luminosità di u screnu da 0 à 255
    Termux passo per passo (Parte 2)
  • termux-toast
    Mostra una notificazione di brindisi temporale
    Termux passo per passo (Parte 2)
  • termux-torch
    Include torcia
    Termux passo per passo (Parte 2)
  • termux-wifi-scaninfo
    Ritorna infurmazione nantu à l'ultima scansione di e rete Wi-Fi
    Termux passo per passo (Parte 2)

Hè faciule per vede chì i valori di ritornu sò strings, dizionari, listi di dizionari, in generale, tippi di dati chì Python travaglia bè, cusì u prossimu passu hè di stallà.

mossa 5

Installa Python è nano

Per installà Python, scrivite in u terminal:

updg
apt install python
apt install python2

Avemu avà installatu 2 è 3 Python.

Mentre travagliava nantu à l'articulu, aghju scupertu un altru editore di testu nano chì mi piaceva più di vim, stallàmu:

apt install nano

Hè più faciule d'utilizà cà vim, è nano hà una interfaccia più amichevule. Nant'à un dispositivu Android, vim hè sempre più cunvene.

HelloWorld in Python à Termux

In generale, era pussibule di fà senza questu articulu, ma mette Python in Termux è micca scrive HelloWorld, in my opinion, hè una mala manera.

Ùn aghju micca stabilitu u scopu di insignà à qualcunu Python, cusì quelli chì ùn sanu micca ponu solu copià u codice (o cumincianu à amparà da sè stessu, postu chì ci hè abbastanza literatura), è quelli chì cunnosci ponu fà qualcosa elli stessi. È vi "sottu u guise" mostra sempre un modu per inserisce u testu in u terminal senza un editore.

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 per passo (Parte 2)

Se ùn avete micca nutatu un errore durante u prucessu di input è digià pressatu Enter, allora ùn puderete micca andà à a linea sopra, per fà questu, finisce l'input premendu Ctrl + D (pudete generalmente interrompe Ctrl + D). Z) è ripetite tuttu da u principiu. Dapoi avemu usatu '>' tandu u schedariu sarà cumplitamenti overwritten. Per questu mutivu, ùn ricumandemu micca di utilizà stu metudu di input, salvu chì ùn site sicuru chì scrive u codice immediatamente senza errore.

mossa 6

Bash scripts

I scripts Bash sò una bella manera di automatizà u vostru travagliu di terminal. U script hè un schedariu cù l'estensione .sh (l'estensione hè facultativa) chì cuntene un inseme di cumandamenti di terminal, alcuni di quale avemu digià studiatu. Quì lista di a maiò parte di i cumandamenti, tuttu deve travaglià, ma nutate chì questu hè una lista per "adulti" Linux, micca Termux, ma solu grande materiale nantu à scripts bash.

Cù l'aiutu di scripts, pudete automatizà quasi tutte l'azzioni monotoni. Scrivemu u script bash più simplice chì mostra u valore da a variàbile chì hà creatu, aghju aduprà cat di novu, pudete aduprà un editore di testu normale, è quelli chì volenu furmà si ponu utilizà l'eco.

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 per passo (Parte 2)

Script Bash cù Termux:API

Scrivemu qualcosa di sfarente da i famusi HelloWorlds, ma cum'è inutile. U nostru script serà:

  1. eseguite a dumanda API termux-battery-status
  2. salvà i dati ricevuti à u schedariu test.txt
  3. stampate dati da un schedariu à u screnu
  4. eseguisce u prugramma hello-world.py scrittu prima
  5. scrivite i dati ricevuti da u prugramma à u schedariu test.txt
  6. stampate dati da un schedariu à u screnu
  7. move dati da u schedariu à u clipboard
  8. mostra u cuntenutu di u clipboard
  9. mostra un missaghju popup cù dati da u clipboard

Prima, crea un cartulare per u travagliu è copià hello-world.py quì cum'è test.py, crea i schedari test.sh è test.txt in questu cartulare:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Avà, in ogni modu cunvene, scrivite u script à u schedariu 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

Avà, essendu in u cartulare bashscript, scrivimu ./test.sh avemu osservatu in u terminal nant'à u dispusitivu Android:

Termux passo per passo (Parte 2)

Allora avemu scrittu u script bash pianificatu. Pudete dilute cù l'output à a cunsola di l'infurmazioni nantu à l'esekzione di ogni azzione (using echo), lasciaraghju questu per i lettori.

mossa 7

Facemu qualcosa utile

Relativamente utile

Formulemu i termini di riferimentu
Dopu à u lanciamentu, l'applicazione deve mette una linea aleatoria da u schedariu nantu à u clipboard è avvisà cun un missaghju pop-up.

Piglieremu un script bash cum'è una basa, estraremu una linea aleatoria da un schedariu utilizendu una subrutina Python. Facemu un pianu di travagliu di script:

  1. Run subroutine
  2. Trasferisce u risultatu di a subrutina à u clipboard
  3. Mostra u missaghju popup

Definimu i nomi di u cartulare è i schedarii di l'applicazione:

  • rndstr cartulare in u cartulare di casa
    • surghjente - u schedariu da quale avemu da piglià linii
    • rndstr.py - una subrutina chì mostra una linea aleatoria da u schedariu fonte à a cunsola
    • rndstr.sh - schedariu di script

Crea un repertoriu di l'applicazioni è andate à ellu è creanu schedarii quì.

I primi dui punti di u pianu di script ponu esse cumminati da un pipeline, per quessa, utilizendu Termux: API avemu:

#!/bin/bash

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

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

In u schedariu fonte, pudete mette ogni testu divisu logicamente in linii, aghju decisu di mette aforismi:

Elencu di u fugliale di fonte

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

Avemu bisognu di creà una subrutina chì estrae una stringa aleatoria da u schedariu fonte.
Scrivemu l'algoritmu di a subrutina:

  1. Open source file
  2. Cuntà u numeru di linii in un schedariu apertu
  3. Chiudi u schedariu (ùn ci hè nunda per mantene apertu per tempu extra)
  4. Generemu un integer aleatoriu in u numeru di linii di u schedariu fonte
  5. Open source file
  6. Sortemu una linea sottu u numeru di u numeru generatu
  7. Chjudendu u schedariu

Implementemu l'algoritmu in Python (scrivu sottu 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  #  закрываем файл

Dopu chì i schedari sò creati è scritti, avete bisognu di dà i permessi di esecuzione di u schedariu rndstr.sh, è crea un alias per u lanciu rapidu.

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

Avà scrivite in u terminal rnst averemu un aforismu aleatoriu nantu à u clipboard, chì, per esempiu, pò esse usatu in currispundenza.

Quì avemu scrittu almenu qualcosa utile. Relativamente utile.

Ps

In l'ultimu passu, ùn aghju micca furnitu intenzionalmente screenshots è ùn anu micca analizatu in dettagliu alcune di l'azzioni, scrivendu solu u cuntenutu di i schedari per chì i lettori anu l'uppurtunità di travaglià per sè stessu.

Nantu à questu "Termux passu à passu", pensu chì vale a pena finisce. Di sicuru, questi sò solu i primi passi, ma avà pudete avanzà sè stessu.

In principiu, aghju pensatu à mustrà in questu ciclu cumu utilizà nmap, sqlmap, ma senza mè ci sò digià assai articuli nantu à questu tema. Sè vo vulete cuntinuà u ciculu "Termux passu à passu", allura ci hè un sondaghju sottu è in i cumenti pudete suggerisce chì altru scrive.

Solu l'utilizatori registrati ponu participà à l'indagine. Firmà lu, per piacè.

Cuntinuà "Termux passu à passu"?

  • chì

  • No

2 utilizatori anu vutatu. Ùn ci sò astensioni.

Source: www.habr.com

Add a comment