V oleme tutvunud Termux’i baaskäskudega, seadnud SSH ühenduse arvutiga, õppinud looma alias'e ja paigaldanud mitu kasulikku utiliiti. Seekord astume veel kaugemale, me:
- õpime tundma Termux:API
- paigaldame Python'i ja nano ning kirjutame «Hello, world!» Python'is
- õpime tundma bash-skripte ning kirjutame skripti, kasutades Termux:API'd
- kasutades bash-skripti, Termux:API't ja Python'it, kirjutame lihtsa programmi
Kuna me nüüd mõistame, mida sisestatud käsud teevad, ei hakka ma edaspidi iga tegevust nii detailselt kirjeldama, kuid seal, kus võivad tekkida raskused, annan kindlasti selgitusi.
Kasutän tihti alias'e, seega on selles osas kasutatud lühendid siin näidatud:
alias updg='apt update && apt upgrade'
alias py='python'Plaan on valmis, saame alustada! Ja loomulikult ärge unustage «maagilist Tab'i» ().
4. samm
Sukeldume Termux:API krüptolõksu
API, kui palju on selle sõna sees kodeerija südamesse sulandunud
Kui mitte puudutada Termux:API teemat, oleks kõik meie sammud võinud kokku võtta lihtsalt mingisuguse brošüüri nagu „Linux algajatele” ümberjutustamiseks, nagu esimeses osas kommentaarides õigesti märkisite.
Alustuseks installime Termux:API Google Play turult (pärast seda ei tee paha Termuxi taaskäivitamine):

Seejärel peame Termuxi konsoolis installima API paketi:
updg # Ärge unustage alias'e
apt install termux-apiEksperimenteerin Android 5.1.1-l, Android 7 omanikel tuleb „kaitsta” Termux: API, minnes ‘Seaded’ > ‘Kaitstud rakendused’, vastasel juhul jäävad API kõned, nagu termux-battery-status, hanguma. (Vaata. )
Nüüd tasub tutvuda omandatud võimalustega. Kõige värskema ja üksikasjalikuma kirjelduse Termux:API kohta leiate . Püüan välja valida kõige silmatorkavama ja huvitavama, mis aitab saada oskusi iseseivaks tööks edaspidi.
Mõned Termux:API näidised
- termux-battery-status
Tagastab aku staatuse

- termux-brightness
Seab ekraani heledust vahemikus 0 kuni 255

- termux-toast
Kuvab ajutise tütarühi teate

- termux-torch
Lülitab taskulambi sisse

- termux-wifi-scaninfo
Tagastab teabe viimase Wi-Fi võrgu skaneerimise kohta

On lihtne märkida, et tagastatavad väärtused on stringid, sõnastikud, sõnastike loendid, üldiselt andmetüübid, millega Python suurepäraselt koostööd teeb, seetõttu järgmiseks sammuks installime selle.
Samm 5
Installime Python ja nano
Python'i paigaldamiseks kirjutame terminali:
updg
apt install python
apt install python2Nüüd on meil installitud Python 2 ja 3.
Artikli kirjutamise ajal avastasin veel ühe tekstiredaktori nano, mis meeldis mulle rohkem kui vim, installime selle:
apt install nanoSelle kasutamine on lihtsam kui vim'i omad, ja nano omab sõbralikumat liidest. Android-seadmes on siiski mugavam kasutada vim'i.
HelloWorld Pythonis Termuxis
Suuresti oleks saanud ka sellest punktist mööda minna, kuid Python'i paigaldamine Termux'i ja mitte HelloWorld'i kirjutamine oleks minu arvates imelik.
Ma ei püüa kedagi Python'i õpetada, seega võivad teadmata lihtsalt kopeerida koodi (või alustada iseseisvat õppimist, sest kirjandust on piisavalt), ja need, kes juba teavad, võivad ise midagi kirjutada. Ja "õhkõrnalt" näitan ma veel viisi, kuidas terminalis teksti sisestada ilma redigeerijata.
cat >hello-world.py
# Kui te ei näita allikat (meenutan cat 1.txt > 2.txt)
# siis cat võtab andmed standardse sisendvoo kaudu,
# lihtsamalt öeldes, klaviatuurilt sisestatud andmed.
str = 'Hello, world!' # omistame muutujaile str väärtuse "Hello, world!"
print (str) # kuvame ekraanile muutuja str väärtuse
# Ctrl + D lõpetab sisendi ja salvestab faili (hello-world.py)
py hello-world.py # käivitage fail (py on lühend pythonist)
Kui sisestamise ajal ei märganud te viga ja vajutasite Enter, siis ei saa te liikuda üleviimisele, lõpetage sisend vajutades Ctrl + D (võite ka katkestada Ctrl + Z) ja korrake kõike algusest. Kuna me kasutasime '>', siis fail kirjutatakse täielikult üle. Seetõttu ei soovita ma seda sisestusmeetodit kasutada, kui te ei ole kindel, et kirjutate koodi kohe ilma vigadeta.
Samm 6
Bash-skripti
Bash-skripti on suurepärane viis terminali töö automatiseerimiseks. Skript on fail laiendiga .sh (laiend ei ole kohustuslik), mis sisaldab terminali käskude kogumit, millest osa oleme juba õppinud. Siin on , kõik peaks töötama, kuid pidage meeles, et see on „küps” Linuxi loend, mitte Termuxi jaoks, ning see on lihtsalt .
Skriptide abil saab automatiseerida praktiliselt kõiki rutiinseid toiminguid. Kirjutame kõige lihtsama bash-skripti, mis väljastab väärtuse, mille tema endaga loonud, ja ma kasutan jälle cat’i, teie aga võite kasutada normaalset tekstiredaktorit, ja kes soovib, võib harjutada echo kasutamist.
cat >test.sh
export str="Tere, Habr!"
# export loob muutuja str
# ja määrab sellele väärtuseks "Tere, Habr!"
# Ärge lisage tühikuid enne ega pärast ‘=’
echo $str # Muutujate poole pöördumiseks asetage enne neid ‘$’
# Ctrl + D
# ./test.sh skripti käivitamiseks, kuid kui seda praegu teha, siis tuleb viga
# vea vältimiseks peate faili test.sh täitmiseks õigustama
chmod +x test.sh
# chmod muudab juurdepääsuõigusi (+ lisab / - eemaldab)
# ‘+x’ tähendab, et teeme failist täidetava
./test.sh # Käivitame skripti täitmise
Bash-skript Termux:API-ga
Käime kirjutama midagi, mis erineb nendest kuulsatest HelloWorld’idest, kuid on sama kasutu. Meie skript on:
- teostama API päringut termux-battery-status
- salvestama saadud andmed faili test.txt
- väljastama andmed failist ekraanile
- teostama varem kirjutatud programmi hello-world.py
- saadud programmi andmed salvestama faili test.txt
- väljastama andmed failist ekraanile
- üle kandma andmed failist lõikepuhvrisse
- väljastama ekraanile lõikepuhvri sisu
- väljastama hüpikakna, kus on andmed lõikepuhvrist
Esiteks loome töökausta ja kopeerime sinna hello-world.py nimega test.py, loome selles kaustas failid test.sh ja test.txt:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch loob failid
chmod +x test.shNüüd kirjutame faili test.sh skripti mistahes mugaval viisil:
#!/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 # пункт 9Nüüd, olles bashscript kaustas, kirjutame ./test.sh vaatame Android seadme terminalis:

Nii, oleme kirjutanud plaanitud bash-skripti. Võib lisada selle väljaandmise kohta teavet konsolisse (kasutades echo), see jääb lugejatele.
Samm 7
Teeme midagi kasulikku
Suhteliselt kasulik
Vormistame tehnilise ülesande
Rakendus peab pärast käivitamist panema lõikepuhvrisse juhusliku rea failist ja teavitama sellest hüpikakna kaudu.
Võtame aluseks bash-skripti, juhusliku rea faili seest ekstraheerimiseks kasutame Python'i alamprogrammi. Koostame skripti tööplaani:
- Käivita alamprogramm
- Edasta alamprogrammi töö tulemus lõikepulti
- Kuva hüpikaken
Määratleme rakenduse kaustade ja failide nimed:
- kaust rndstr kodukataloogis
- source — fail, millest võtame read
- rndstr.py — alamprogramm, mis väljastab järjendi juhusliku rea failist source
- rndstr.sh — skriptifail
Loome rakenduse katalooge ja liikudes sinna loome seal failid.
Kava esimesed kaks punkti saab ühendada toruks, lõpuks, kasutades Termux:API saame:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"Faili source võid paigutada mistahes teksti, mis on loogiliselt jagatud ridadesse, ma otsustasin lisada aforisme:
Faili sourse loend
Siirus ei ole tõde. L. Laval
Kannata ja ole mõõdukas. Epiktet
Ainult see, mis onullesüdamlik. J. La Bruyère
Ole kaalutletult julge. B. Gracián
Heatahtlikkus on ilusast parem. G. Heine
Suurettevõtete jaoks on vajalik väsimatu järjepidevus. F. Voltaire
Kui soovid, et sulle alati meelditaks, teenid ise ennast. B. Franklin
Liigne tagasihoidlikkus on mitte midagi muud kui varjatud uhkus. A. Chenier
Väga intelligentsetele inimestele ei usaldata, kui nad näevad nende häbitunnet. F. Nietzsche
Vaesus näitab vahendite puudumist, mitte rikka olemise puudumist. D. Boccaccio
Tuleb ettevaatlikult suhtuda tagasihoidlikkuse alandamiseni. A. Bakikhanov
Kes loobub paljust, võib endale palju lubada. J. Chardon
Kui meid tasustatakse üllas tegu eest, siis võetakse see meilt ära. N. Chamfort
Pole hirmu mitte saada, aga saada saadud on kurb. Klaudius Elian
On kergem taluda seda, mida me ei saa parandada. Horatius
Väsid ootamast, kuid kui palju halvem oleks, kui ootamiseks ei jääkski enam midagi. B. Shaw
Kõik tuleb õigel ajal, kui inimesed oskavad oodata. F. Rabelais
Oma kannatlikkuse abil võime saavutada rohkem kui jõud. E. Burke
Peab oskama taluda seda, mida ei saa vältida. M. Montaigne
Kes on tehingus julge, ei karda sõnu. Sofokles
Ma ei armasta võidelda, ma armastan võita. B. Shaw
Jahmunud ja seina ääres surutud kass muutub tiigri sarnaseks. M. Cervantes
Auhinnaline inimene ei käi teiste jälgedes. Konfutsius
Suuremeelsus avaldab oma jõudu mitte ainult mõelda oskuses, vaid ka elada oskuses. R. Emerson
Kuulsus on ebasoodsus. See maksab palju, kuid püsib halvasti. O. Balzac
Käitumine ja asjakohasus vestlustes on värvikusest olulisem. F. Bacon
Kes ei oska vaikida, see ei suuda ka rääkida. Seneca Noorem
Heade kommete aluseks on väikesed ohvrid. F. Chesterfield
Hea inimene ei ole see, kes oskab head teha, vaid see, kes ei oska kurja teha. V. Kliuchevsky
Ärge tehke pöördumatuid otsuseid! Augustine
Mitte midagi liiga palju! SolonMeil jääb jäänud luua alamprogramm, mis tõmbab juhusliku rea failist source.
Kirjutame välja alamprogrammi töö algoritmi:
- Avame faili source
- Loeme avatud faili ridade arvu
- Sulgeme faili (pole mõtet seda üleliia avatud hoida)
- Genereerime juhusliku täisarvu faili source ridade arvu piires
- Avame faili source
- Kuvame rea, mille number on genereeritud number
- Sulgeme faili
Rakendame algoritmi Pythonis (kirjutan Python 3.7 jaoks):
import random # importime juhuslikke numbreid
import os # teede saamiseks
path = os.path.abspath(__file__) # saame otsetee faili rndstr.py
path = os.path.dirname(path) # saame tee katalooge
path = path + '/source' # muundame faili source teeks
f = open(path) # avame faili
i = 0 # lähtestame loenduri
for str in f: i+=1 # loeme faili ridu
f.close # sulgeme faili
j = int(round(i * random.random())) # genereerime täisarvu vahemikus 0 kuni i
f = open(path) # avame faili
i = 0 # lähtestame loenduri
for str in f: # läbitseme faili ridu
if i == j: # kui loenduri väärtus on genereeritud arv
print (str, end='') # prindime rea ilma uuele reale minemata
break # väljumine tsüklist
i+=1 # suurendame loendurit 1 võrra
f.close # sulgeme failiPärast failide loomist ja salvestamist on vajalik anda failile täitmisõigused rndstr.sh, ja luua alias kiireks käivitamiseks.
alias rnst="~/rndstr/rndstr.sh"Nüüd sisestades terminalis rnst saame lõikelauale juhusliku aforismi, mida võib kasutada näiteks vestluses.
Nüüd oleme kirjutanud vähemalt midagi kasulikku. Suhteliselt kasulikku.
P.s.
Ma tahtlikult ei toonud viimasel sammul välja ekraanipilte ja ei analüüsinud üksikasjalikult mõningaid toiminguid, vaid lihtsalt kirjeldasin failide sisu, et lugejatel oleks võimalus ise töötada.
Arvan, et on aeg lõpetada see 'Termux samm-sammult'. Loomulikult on need alles esimesed sammud, kuid nüüd saate edasi liikuda iseseisvalt.
Alguses kavatsesin selles tsüklis näidata, kuidas kasutada nmap'i, sqlmap'i, kuid sellel teemal on juba palju artikleid. Kui soovite, et ma jätkaksin tsüklit 'Termux samm-sammult', siis allpool on küsitlus ja kommentaarides võite pakkuda, millest veel kirjutada.
Ainult registreeritud kasutajad saavad küsitluses osaleda. , palun.
Kas soovite jätkata 'Termux samm-sammult'?
Jah
Ei
Hääletas 2 kasutajat. Vastasid ei ole.
Allikas: habr.com





