No MÄs iepazinÄmies ar pamata Termux komandas, iestatÄ«jÄm SSH savienojumu ar datoru, apguvÄm alias izveidi un instalÄjÄm dažas noderÄ«gas utilÄ«tas. Å oreiz mÄs dosimies vÄl tÄlÄk, mÄs ar jums:
- uzzinÄsim par Termux:API
- uzstÄdÄ«sim Python un nano, kÄ arÄ« uzrakstÄ«sim 'Hello, world!' Python valodÄ
- uzzinÄsim par bash skriptiem un uzrakstÄ«sim skriptu, izmantojot Termux:API
- izmantojot bash skriptu, Termux:API un Python, uzrakstÄ«sim vienkÄrÅ”u programmu
TÄ kÄ tagad mÄs saprotam, ko dara ievadÄ«tÄs komandas, no Ŕī brīža es tik sÄ«ki nepaskaidroÅ”u katru darbÄ«bu, bet tur, kur varÄtu bÅ«t grÅ«tÄ«bas, es noteikti sniegÅ”u skaidrojumus.
Es bieži izmantoju alias, tÄpÄc Å”ajÄ daÄ¼Ä izmantotÄs saÄ«sinÄjumi ir parÄdÄ«ti Å”eit:
alias updg='apt update && apt upgrade'
alias py='python'PlÄns gatavs, varam sÄkt! Un protams, neaizmirstiet par 'burvÄ«go Tab' ().
4. solis
Ienirstam Termux:API truÅ”u caurumÄ
Cik daudz Å”ajÄ vÄrdÄ sirdÄ« kodÄtÄja saplÅ«st
Ja nerunÄjam par Termux:API, tad visus mÅ«su soļus varÄtu samazinÄt lÄ«dz vienkÄrÅ”am kÄdas broŔūras, piemÄram, 'Linux priekÅ” iesÄcÄjiem', pÄrsakam, kÄ tika pareizi norÄdÄ«ts komentÄros pie pirmÄs daļas.
Vispirms uzstÄdÄ«sim Termux:API no Google Play tirgus (pÄc tam noderÄtu pÄrstartÄt Termux):

PÄc tam mums jÄinstalÄ API pakotne Termux konsolÄ:
updg # Neaizmirstiet par alias
apt install termux-apiEksperimentiem es izmantoju Android 5.1.1, bet Android 7 Ä«paÅ”niekiem jÄ'pasargÄ' Termux: API, dodoties uz āIestatÄ«jumiā > āAizsargÄtÄs lietotnesā, pretÄjÄ gadÄ«jumÄ API izsaukumi, piemÄram, termux-battery-status, iestrÄgs. (Skat. )
Tagad derÄtu tuvÄk iepazÄ«ties ar iegÅ«tajÄm iespÄjÄm. VisjaunÄko un detalizÄtÄko aprakstu par Termux:API var atrast uz . Es centīŔos izvÄlÄties visredzamÄkos un interesantÄkos piemÄrus, kas ļaus apgÅ«t prasmes turpmÄkai patstÄvÄ«gai darbÄ«bai.
KÄ diski Termux:API
- termux-battery-status
Atgriež baterijas stÄvokli

- termux-brightness
Iestata ekrÄna spilgtumu no 0 lÄ«dz 255

- termux-toast
RÄda Ä«slaicÄ«gu izsistomu paziÅojumu

- termux-torch
IeslÄdz lukturÄ«ti

- termux-wifi-scaninfo
Atgriež pÄdÄjÄ Wi-Fi tÄ«klu skenÄÅ”anas informÄciju

Nav grÅ«ti pamanÄ«t, ka atgrieztÄs vÄrtÄ«bas ir virknes, vÄrdnÄ«cas, vÄrdnÄ«cu saraksti, tÄtad datu tipi, ar kuriem Python lieliski strÄdÄ, tÄdÄļ nÄkamais solis bÅ«s tÄ instalÄÅ”ana.
5. solis
InstalÄsim Python un nano
Lai instalÄtu Python, terminÄlÄ« rakstÄm:
updg
apt install python
apt install python2Tagad mums ir instalÄti gan Python 2, gan 3.
Rakstot Å”o rakstu, es atklÄju vÄl vienu teksta redaktoru nano, kas man patÄ«k vairÄk nekÄ vim, tÄpÄc instalÄsim to:
apt install nanoTo ir vieglÄk lietot nekÄ vim, un nano ir draudzÄ«gÄks interfeiss. Android ierÄ«cÄ tomÄr ir ÄrtÄk izmantot vim.
HelloWorld uz Python TermuxÄ
LielÄ mÄrÄ Å”o punktu varÄja izlaist, bet uzstÄdÄ«t Python TermuxÄ un neuzrakstÄ«t HelloWorld, manuprÄt, bÅ«tu nepiedienÄ«gi.
Es neizvirzu mÄrÄ·i iemÄcÄ«t kÄdam Python, tÄpÄc nezinÄtÄji var vienkÄrÅ”i nokopÄt kodu (vai sÄkt mÄcÄ«ties paÅ”i, par laimi, literatÅ«ras ir pietiekami daudz), bet zinÄtÄji var arÄ« paÅ”i kaut ko uzrakstÄ«t. Un es āpavisam klusiā vÄl parÄdīŔu, kÄ ievadÄ«t tekstu terminÄlÄ bez redaktora.
cat >hello-world.py
# Ja neizvÄlas avotu (atgÄdinu, ka cat 1.txt > 2.txt)
# tad cat Åems datus no standarta ievades plÅ«smas,
# vienkÄrÅ”i runÄjot, no tastatÅ«ras ievadÄ«tÄ.
str = 'Hello, world!' # pieŔķiram mainÄ«gajam str vÄrtÄ«bu "Hello, world!"
print (str) # izvadÄm uz ekrÄna mainÄ«gÄ str vÄrtÄ«bu
# Ctrl + D, lai pabeigtu ievadi un saglabÄtu failu (hello-world.py)
py hello-world.py # palaižam failu (py ir alias no python)
Ja ievades laikÄ neesat pamanÄ«jis kļūdu un jau nospiedÄt Enter, tad pÄriet uz iepriekÅ”Äjo rindu neizdosies, tÄpÄc pabeidziet ievadi, nospiežot Ctrl + D (var pat pÄrtraukt ar Ctrl + Z) un atkÄrtojiet visu no sÄkuma. TÄ kÄ mÄs izmantojÄm '>', fails tiks pilnÄ«bÄ pÄrrakstÄ«ts. TÄpÄc neiesaku izmantot Å”Ädu ievades metodi, ja neesat pÄrliecinÄts, ka uzreiz uzrakstÄ«siet kodu bez kļūdÄm.
6. solis
Bash skripti
Bash skripti ir lielisks veids, kÄ automatizÄt darbu ar terminÄli. Skripts ir fails ar paplaÅ”inÄjumu .sh (paplaÅ”inÄjums nav obligÄts), kas satur komandu kopumu, no kurÄm daļu mÄs jau esam izpÄtÄ«juÅ”i. LÅ«k, , viss vajadzÄtu strÄdÄt, bet Åemiet vÄrÄ, ka tas ir saraksts āpieauguÅ”aā Linuxa versijai, nevis Termuxam, taÄu tas ir vienkÄrÅ”i .
Izmantojot skriptus, var automatizÄt praktiski visas monotonÄs darbÄ«bas. UzrakstÄ«sim vienkÄrÅ”u bash skriptu, kas izvada vÄrtÄ«bu no sev radÄ«tÄs mainÄ«gÄs, es atkal izmantoÅ”u cat, bet jÅ«s varat izmantot normÄlu teksta redaktoru, bet tie, kas vÄlas pÄrbaudÄ«t savas prasmes, var izmantot echo.
cat >test.sh
export str="Sveiks, Habr!"
# export izveido mainīgo str
# un pieŔķir tam vÄrtÄ«bu "Sveiks, Habr!"
# Neievietojiet atstarpes pirms un pÄc ā=ā
echo $str # Lai piekļūtu mainÄ«gajiem, pirms tiem jÄliek ā$ā
# Ctrl + D
# ./test.sh, lai palaistu skriptu, bet, ja to tagad izdarīsim, būs kļūda
# Lai novÄrstu kļūdu, jÄpadara fails test.sh izpildÄms
chmod +x test.sh
# chmod maina piekļuves tiesÄ«bas (+ pievienot / - noÅemt)
# ā+xā nozÄ«mÄ, ka mÄs padarÄm failu izpildÄmu
./test.sh # UzsÄkam mÅ«su skripta izpildīŔanu
Bash skripts ar Termux:API
UzrakstÄ«sim jau ko atŔķirÄ«gu no labi zinÄmajiem HelloWorld, bet tikpat bezjÄdzÄ«gu. MÅ«su skripts bÅ«s:
- izpildīt API pieprasījumu termux-battery-status
- saglabÄt iegÅ«tos datus failÄ test.txt
- izvadÄ«t datus no faila ekrÄnÄ
- izpildīt iepriekŔ uzrakstīto programmu hello-world.py
- iegÅ«tos datus no programmas ierakstÄ«t failÄ test.txt
- izvadÄ«t datus no faila ekrÄnÄ
- pÄrsÅ«tÄ«t datus no faila uz starpliktuvi
- izvadÄ«t ekrÄnÄ starpliktuves saturu
- izvadÄ«t uznirstoÅ”o ziÅojumu ar datiem no starpliktuves
Vispirms izveidosim mapi darbam un kopÄsim tur hello-world.py kÄ test.py, izveidosim Å”ajÄ mapÄ failus test.sh un test.txt:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch izveido failus
chmod +x test.shTagad jebkurÄ ÄrtÄ veidÄ ierakstÄ«sim skriptu failÄ 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 # ŠæŃŠ½ŠŗŃ 9Tagad atrodamies mapÄ bashscript, rakstÄm ./test.sh novÄrojam terminÄlÄ« mÅ«su Android ierÄ«cÄ:

LÅ«k, mÄs esam uzrakstÄ«juÅ”i plÄnoto bash skriptu. Varam bagÄtinÄt tÄ izvadi ar informÄciju par katra darbÄ«bas izpildi (izmantojot echo), to atstÄÅ”u lasÄ«tÄjiem.
Sol 7
Izdarīsim kaut ko noderīgu
Relatīvi noderīgi
IzstrÄdÄsim tehnisko uzdevumu
Programmai pÄc palaiÅ”anas jÄievieto nejauÅ”a rinda no faila starpliktuvÄ un jÄinformÄ par to ar uznirstoÅ”o ziÅojumu.
KÄ pamatu Åemsim bash skriptu, nejauÅ”u rindu no faila iegÅ«sim ar Python apakÅ”programmas palÄ«dzÄ«bu. Izveidosim skripta darba plÄnu:
- Palaist apakŔprogrammu
- PÄrraidÄ«t apakÅ”programmas darba rezultÄtu starpliktuvÄ
- IzvadÄ«t uznirstoÅ”o ziÅu
Noteiksim lietojumprogrammas direktoriju un failu nosaukumus:
- mape rndstr mÄjas direktorijÄ
- source ā fails, no kura Åemsim virknes
- rndstr.py ā apakÅ”programma, kas konsolÄ izvada nejauÅ”u virkni no faila source
- rndstr.sh ā skriptu fails
Izveidojam lietojumprogrammas direktoriju un, pÄrvietojoties tajÄ, izveidojam tur failus.
Pirmos divus skripta plÄna punktus var apvienot cauruli, rezultÄtÄ, izmantojot Termux:API, iegÅ«stam:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 Šø 2 ŠæŃŠ½ŠŗŃŃ ŠæŠ»Š°Š½Š° ŃŠ°Š±Š¾ŃŃ
termux-toast "OK" # 3 ŠæŃŠ½ŠŗŃ. ŠŃвоГим Š²ŃŠæŠ»ŃŠ²Š°ŃŃŠµŠµ ŃŠ¾Š¾Š±Ńение "ŠŠ"FailÄ source jÅ«s varat ievietot jebkuru tekstu, loÄ£iski sadalÄ«tu pa rindÄm, es izlÄmu ievietot aforismus:
Faila source saraksts
Sirsnība nav patiesība. L. Lavels
Pacietība un atturība. Epikts
GodÄ«gi ir tikai tas, kas ir bezintereses. J. LabriÄrs
Esi saprÄtÄ«gi drosmÄ«gs. B. Grasians
Laba īpaŔība ir labestība, nevis skaistums. G. Geins
Lieliem darbiem nepiecieŔama neatlaidīga noturība. F. Volters
Ja vÄlies, lai tevi vienmÄr apmierinÄtu, kalpo pats sev. B. Franklins
PÄrlieku pazemÄ«ba ir neviens cits kÄ slÄpta lepnuma. A. Å enjÄ
Ä»oti gudriem cilvÄkiem sÄk neuzticÄties, ja redz viÅu apmulsumu. F. NÄ«Äe
TrÅ«kumam ir norÄde uz lÄ«dzekļu trÅ«kumu, nevis uz godÄ«bas trÅ«kumu. D. BokaÄs
JÄkļūst uzmanÄ«gam, lai pazemÄ«bu nenovestu lÄ«dz pazemojumam. A. Bakihanovs
Kas atsakÄs no daudz, var sev atļaut daudz. J. Å ardons
Kad mums maksÄ par godÄ«gu rÄ«cÄ«bu, to mÅ«s atÅem. N. Å amfors
NesaÅemt vispÄr - nav biedÄjoÅ”i, bet zaudÄt iegÅ«to ir nepatÄ«kami. Klaudijs Elijans
VieglÄk paciest to, ko mÄs nevaram labot. HorÄcijs
Tu nogurst gaidÄ«t, bet cik sliktÄk bÅ«tu, ja gaidīŔana kļūtu nevajadzÄ«ga. B. Å ovs
Viss nÄk laikÄ, ja cilvÄki prot gaidÄ«t. F. Rable
Ar savu pacietÄ«bu mÄs varam sasniegt vairÄk nekÄ ar spÄku. E. Berks
JÄprot paciest to, ko nevar izvairÄ«ties. M. MontÄns
Kas drosmÄ«gs darÄ«jumÄ, tas vÄrdu nebaidÄ«sies. Sofokls
Es nemÄ«lu cÄ«nÄ«ties, es mÄ«lu uzvarÄt. B. Å ovs
SadzÄ«ts un piespiests pie sienas kaÄ·is pÄrvÄrÅ”as par tīģeri. M. Servants
GodÄ«gs cilvÄks nesekos citu pÄdÄm. Kungs KonfÅ«cijs
Liels prÄts izrÄdÄ«s savu spÄku ne tikai spÄjÄ domÄt, bet arÄ« dzÄ«vot. R. Emersons
Slava ir prece, kas nav izdevÄ«ga. DÄrga, bet slikti saglabÄjas. O. Balzaks
SavaldÄ«ba un piemÄrotÄ«ba sarunÄs ir dÄrgÄkas par izteiksmÄ«gumu. F. BÄkons
Kas nevar klusÄt, tas nespÄj arÄ« runÄt. Senekas JaunÄkais
Labi mani ieradumi sastÄv no mazÄm upurÄÅ”anÄm. F. Äestervilds
Labais cilvÄks nav tas, kurÅ” prot darÄ«t labu, bet tas, kurÅ” neprot darÄ«t ļaunu. V. KļiÄevskis
Nepateikties nenovÄrÅ”amiem spriedumiem! AugustÄ«ns
Neko pÄrmÄrÄ«gu!Mums joprojÄm jÄizveido apakÅ”programma, kas izvelk nejauÅ”u rindiÅu no faila source.
Aprakstīsim apakŔprogrammas darbības algoritmu:
- Atveram failu source
- SaskaitÄm rindiÅu skaitu atvÄrtajÄ failÄ
- Aizveram failu (nav jÄtur lieki atvÄrts ilgÄk)
- Ä¢enerÄjam nejauÅ”u veselu skaitli, kas atbilst faila source rindu skaitam
- Atveram failu source
- Izvade rindai ar Ä£enerÄtÄ skaitļa numuru
- Aizveram failu
RealizÄjam algoritmu Python valodÄ (rakstu zem Python 3.7):
import random # importÄjam nejauÅ”u skaitļu Ä£enerÄÅ”anai
import os # ceļa iegūŔanai
path = os.path.abspath(__file__) # iegūstam absolūto ceļu līdz failam rndstr.py
path = os.path.dirname(path) # pÄrveidojam par ceļu uz direktoriju
path = path + 'src/source' # pÄrveidojam par ceļu uz failu source
f = open(path) # atveram failu
i = 0 # nullÄjam skaitÄ«tÄju
for str in f: i+=1 # skaitÄm faila rindas
f.close # aizveram failu
j = int(round(i * random.random())) # Ä£enerÄjam veselu nejauÅ”u skaitli no 0 lÄ«dz i
f = open(path) # atveram failu
i = 0 # nullÄjam skaitÄ«tÄju
for str in f: # pÄrstaigÄjam cauri faila rindÄm
if i == j: # ja rindas skaitÄ«tÄjs atbilst Ä£enerÄtajam skaitlim
print (str, end='') # izvadÄm rindu bez pÄrejas uz jauno rindu
break # izejam no cikla
i+=1 # palielinÄm skaitÄ«tÄju par 1
f.close # aizveram failuPÄc tam, kad faili ir izveidoti un ierakstÄ«ti, nepiecieÅ”ams pieŔķirt izpildes tiesÄ«bas failam rndstr.sh, un izveidot alias Ätrai palaiÅ”anai.
alias rnst="~/rndstr/rndstr.sh"Tagad, ievadot terminÄlÄ« rnst , mÄs saÅemsim nejauÅ”u aforismu, ko var izmantot, piemÄram, sarakstÄs.
MÄs esam uzrakstÄ«juÅ”i kaut ko noderÄ«gu. SalÄ«dzinoÅ”i noderÄ«gu.
P.S.
Es apzinÄti pÄdÄjÄ solÄ« neiekļÄvu ekrÄnÅ”ÄviÅus un neanalizÄju detalizÄti dažas darbÄ«bas, aprakstot tikai failu saturu, lai lasÄ«tÄjiem bÅ«tu iespÄja strÄdÄt patstÄvÄ«gi.
Å ajÄ ciklÄ "Termux soli pa solim", domÄju, ir vÄrts noslÄgt. Protams, tas ir tikai pirmie soļi, bet tagad jÅ«s varat virzÄ«ties uz priekÅ”u paÅ”i.
SÄkotnÄji es plÄnoju parÄdÄ«t, kÄ lietot nmap, sqlmap, taÄu Å”o tÄmu jau ir daudz rakstu bez manis. Ja ir vÄlÄÅ”anÄs, lai es turpinÄtu ciklu "Termux soli pa solim", tad zemÄk ir anketa, un komentÄros varat piedÄvÄt, par ko vÄl rakstÄ«t.
Tikai reÄ£istrÄtie lietotÄji var piedalÄ«ties aptaujÄ. , lÅ«dzu.
TurpinÄt "Termux soli pa solim"?
JÄ
NÄ
BalsojuÅ”i 2 lietotÄji. Nav atturÄjuÅ”os.
Avots: habr.com





