A Megismertük a Termux alapvető parancsait, beállítottuk az SSH kapcsolatot a PC-vel, megtanultuk, hogyan lehet aliasokat létrehozni, és telepítettünk néhány hasznos segédprogramot. Ezúttal egy lépéssel tovább haladunk, és a következőket fogjuk tenni:
- megismerkedünk a Termux:API-val
- telepítjük a Pythont és a nano-t, valamint megírjuk a "Hello, world!"-ot Pythonban
- megismerkedünk a bash-scriptekkel, és írunk egy scriptet a Termux:API felhasználásával
- bash-scripttel, Termux:API-val és Pythonnal létrehozunk egy egyszerű programot
Mivel most már értjük, mit csinálnak a beírt parancsok, a következő lépéstől kezdve nem fogom annyira részletesen kifejteni az egyes lépéseket, viszont ahol nehézségek adódhatnak, ott mindenképpen magyarázni fogok.
Gyakran használok aliasokat, ezért az ezen a részen használt rövidítések itt láthatók:
alias updg='apt update && apt upgrade'
alias py='python'A terv készen áll, kezdődhet a munka! Ne feledkezzetek meg a "varázslatos Tab"-ról ().
4. lépés
Mélyebbre ásunk a Termux:API nyújtotta lehetőségekben
Mennyi minden rejlik ebben a szóban a kóderek szívében
Ha nem érintjük a Termux:API témát, akkor minden lépésünket egyszerűen egy "Linux kezdőknek" típusú brosúra átírására lehetne redukálni, ahogyan azt az első részhez írt megjegyzésekben helyesen megjegyezték.
Először telepítsük a Termux:API-t a Google Play Áruházból (ezután nem árt újraindítani a Termux-ot):

Ezután telepítenünk kell az API csomagot a Termux konzoljában:
updg # Ne feledkezzünk meg az aliasokról
apt install termux-apiKísérletezéshez Android 5.1.1-et használok, az Android 7 tulajdonosainak "védelmet" kell beállítaniuk a Termux: API-hoz, a 'Beállítások' > 'Védett alkalmazások' menüpont alatt, különben az API hívások, mint például termux-battery-status, le fognak fagyani. (Lásd: )
Most már érdemes közelebbről megismerkednünk a megszerzett lehetőségekkel. A Termux:API legfrissebb és leg részletesebb leírását itt találhatjuk: . Én pedig megpróbálom a legszembetűnőbb és legérdekesebb részeket kiemelni, hogy gyakorolni tudjunk a további önálló munkához.
Néhány példa a Termux:API-ra
- termux-battery-status
Visszaadja az akkumulátor állapotát

- termux-brightness
Beállítja a képernyő fényerejét 0 és 255 között

- termux-toast
Megjelenít egy ideiglenes felugró értesítést

- termux-torch
Bekapcsolja a zseblámpát

- termux-wifi-scaninfo
Visszaadja az utolsó Wi-Fi hálózatok szkennelésének információit

Nem nehéz észrevenni, hogy a visszaadott értékek karakterláncok, szótárak, szótárok listái, tehát olyan adattípusok, amelyekkel a Python remekül működik, ezért következő lépésként telepítjük.
5. lépés
Telepítjük a Python-t és a nano-t
A Python telepítéséhez a terminálba írjuk:
updg
apt install python
apt install python2Most már telepítve van a Python 2 és 3.
A cikk írása közben felfedeztem egy másik szövegszerkesztőt, a nanót, amely jobban tetszik, mint a vim, telepítsük hát:
apt install nanoHasználni egyszerűbb, mint a vim-et, és a nano barátságosabb felhasználói felülettel rendelkezik. Android eszközön mégis kényelmesebb a vim.
HelloWorld Pythonban a Termux-ban
Összességében el lehetett volna hagyni ezt a pontot, de Python-t telepíteni a Termux-ra és nem írni HelloWorld-öt, szerintem ízléstelen.
Nem az a célom, hogy bárkit is megtanítsak Python-ra, így aki nem tudja, egyszerűen másolhatja a kódot (vagy elkezdheti a tanulást, hiszen bőven van irodalom), a tudók pedig maguk is alkothatnak valamit. Közben pedig még bemutatom, hogyan lehet szöveget bevinni a terminálba szerkesztő nélkül.
cat >hello-world.py
# Ha nem adjuk meg a forrást (emlékeztető: cat 1.txt > 2.txt)
# a cat az alapértelmezett bemeneti folyamataiból fog adatokat kapni,
# egyszerűbben megfogalmazva, az íróasztalról billentyűzetről beírt adatokat.
str = 'Hello, world!' # az str változónak értéket adunk: "Hello, world!"
print (str) # megjelenítjük a str változó értékét a képernyőn
# Ctrl + D a bevitel befejezéséhez és fájlba íráshoz (hello-world.py)
py hello-world.py # a fájl indítása (py a python alias)
Ha közben nem vettél észre hibát a bevitel során és már megnyomtad az Enter-t, akkor nem tudod visszalépni az előző sorra, ezért be kell fejezned a bevitel Ctrl + D megnyomásával (vagy meg is szakíthatod Ctrl + Z), és kezdd elölről. Mivel a '>'-t használtuk, a fájl teljesen felül lesz írva. Ezért nem ajánlom, hogy ilyen módon adj be adatokat, ha nem vagy biztos benne, hogy azonnal, hibák nélkül írod a kódot.
6. lépés
Bash-scriptek
A Bash-scriptek nagyszerű módszerei a terminál munkafolyamatainak automatizálására. A script egy .sh kiterjesztésű fájl (a kiterjesztés nem kötelező), amely a terminál parancsait tartalmazza, néhányat már tanulmányoztunk. Íme , mindennek működnie kell, de vedd figyelembe, hogy ez a lista a „felnőtt” Linux-hoz készült, nem a Termux-hoz, ez pedig egyszerűen .
A szkriptekkel gyakorlatilag minden monoton feladat automatizálható. Írjunk egy egyszerű bash-szkriptet, amely kiírja a saját magának létrehozott változó értékét, én ismét a cat-et fogom használni, de Ön egy normális szövegszerkesztőt is használhat, míg a különösen elszántak megpróbálhatják az echo-t.
cat >test.sh
export str="Helló, Habr!"
# az export létrehozza a str változót
# és a "Helló, Habr!" értéket rendeli hozzá
# Ne helyezzen szóközöket az ‘=’ elé és mögé
echo $str # A változókhoz való hozzáférés előtt a ‘$’ jelet kell használni
# Ctrl + D
# ./test.sh a szkript futtatásához, de ha most megpróbáljuk, hiba lép fel
# a hiba elkerüléséhez a test.sh fájlt végrehajthatóvá kell tenni
chmod +x test.sh
# a chmod a hozzáférési jogokat változtatja meg (+ hozzáadni / - elvenni)
# a ‘+x’ jelenti, hogy a fájlt végrehajthatóvá tesszük
./test.sh # Futtatjuk a szkriptünket
Bash-szkript a Termux:API-hoz
Írjunk már valamit, ami eltér a klasszikus HelloWorld-öktől, de ugyanolyan haszontalan. A szkriptünk a következő lesz:
- API kérés végrehajtása a termux-battery-status-tól
- a kapott adatokat a test.txt fájlba menteni
- az adatokat kiírni a fájlból a képernyőre
- a korábban írt hello-world.py programot futtatni
- a program által kapott adatokat a test.txt fájlba írni
- az adatokat kiírni a fájlból a képernyőre
- az adatokat a fájlból a vágólapra másolni
- a vágólap tartalmát a képernyőre kiírni
- felugró üzenetet megjeleníteni a vágólap adatával
Először hozzunk létre egy mappát a munkához, és másoljuk bele a hello-world.py-t test.py néven, hozzuk létre ebben a mappában a test.sh és test.txt fájlokat:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # a touch fájlokat hoz létre
chmod +x test.shMost bármilyen kényelmes módon írjuk a test.sh fájlba a szkriptet:
#!/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 # пункт 9Most, hogy a bashscript mappában vagyunk, írjuk be: ./test.sh figyeljük a terminált az Android eszközön:

Így megírtuk a tervezett bash-szkriptet. Fűszerezhetjük a kimenetet a végrehajtott műveletek információjával (az echo segítségével), ezt az olvasókra bízom.
7. lépés
Csináljunk valami hasznosat
Viszonylag hasznos
Fogalmazzuk meg a műszaki követelményeket
A programnak a futás után egy véletlenszerű sort kell a vágólapra helyeznie a fájlból és erről felugró üzenettel értesíteni.
Alapul vesszük a bash-szkriptet, a véletlenszerű sort a fájlból Python alprogram segítségével fogjuk beszerezni. Készítsük el a szkript munkatervét:
- Indítsuk el az alprogramot
- A program működésének eredményét másold a vágólapra
- Jelenítsd meg a felugró üzenetet
Határozzuk meg az alkalmazás könyvtárának és fájljainak nevét:
- rndstr mappa a felhasználói könyvtárban
- source — a fájl, ahonnan a sorokat fogjuk venni
- rndstr.py — a program, ami a source fájlból véletlenszerű sort ír ki a konzolra
- rndstr.sh — a script fájl
Létrehozzuk az alkalmazás könyvtárát, és átlépve abba, ott létrehozzuk a fájlokat.
A script terv első két pontja összekapcsolható egy csővezetékkel, végül a Termux:API használatával megkaphatjuk:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"A source fájlba bármilyen logikailag sorokra bontott szöveget beírhatsz, én aforizmákat döntöttem el beletenni:
A source fájl listázása
A becsületesség nem az igazság. L. Lavelle
Tűrj és tartózkodj. Epiktétosz
Csak az lehet nemes, ami önzetlen. J. La Bruyère
Legyél bölcsen bátor. B. Gracián
A kedvesség jobb, mint a szépség. G. Heine
Nagy tettekhez kitartó állhatatosság szükséges. F. Voltaire
Ha azt akarod, hogy mindig kedvezzenek neked, szolgáld meg magadat. B. Franklin
A mértéktelen szerénység nem más, mint rejtett büszkeség. A. Chénier
A túlzottan okos emberek iránt kezdenek bizalmatlanná válni, ha látják a zavarukat. F. Nietzsche
A szegénység a források hiányát jelzi, nem a nemesség hiányát. D. Boccaccio
Vigyázni kell arra, hogy a szerénységet ne alázzuk meg. A. Bakihanov
Aki sok mindent visszautasít, az sok mindent megengedhet magának. J. Chardon
Ha jótettért kifizetnek, azt tőlünk elrabolják. N. Chamfort
Nem kapni egyáltalán - nem félelmetes, de amit kaptunk, azt elveszíteni szomorú. Klaudius Aelianus
Könnyebb türelemmel elviselni azt, amit nem lehet megváltoztatni. Horatius
Fárasztó várni, de mennyivel rosszabb lenne, ha már nem lenne mit várni. B. Shaw
Minden a megfelelő időben jön, ha az emberek tudnak várni. F. Rabelais
A türelmünkkel többet érhetünk el, mint az erőnkkel. E. Burke
Meg kell tanulni elviselni, amit elkerülni nem lehet. M. Montaigne
Aki bátor a tettekben, az nem ijed meg a szavaktól. Szophoklész
Nem szeretek harcolni, szeretem a győzelmet. B. Shaw
A zaklatott és sarokba szorított macska tigerré változik. M. Cervantes
A méltányos ember nem követi mások nyomdokait. Konfuciusz
A nagy elme nemcsak a gondolkodás képességében mutatja meg erejét, hanem az életben való ügyességében is. R. Emerson
A hírnév egy nem jövedelmező termék. Drága, és rosszul megőrzi magát. O. Balzac
A visszafogottság és a körültekintés a beszélgetésekben többet ér, mint a szónoki képesség. F. Bacon
Aki nem tud hallgatni, az beszélni sem képes. Seneca Fiatalabb
A jó modor apró áldozatokból áll. F. Chesterfield
A kedves ember nem az, aki jót cselekszik, hanem az, aki nem tud rosszat tenni. V. Kljucsevski
Ne mondj visszafordíthatatlan ítéleteket! Augusztinusz
Semmi sem túlzás! SzolónMég létre kell hoznunk egy almódszert, amely véletlenszerű sort választ ki a source fájlból.
Írjuk le az almódszer működésének algoritmusát:
- Megnyitjuk a source fájlt
- Megszámoljuk a megnyitott fájl sorainak számát
- Bezárjuk a fájlt (nincs szükség arra, hogy feleslegesen nyitva tartsuk)
- Generáljunk véletlenszerű egész számot a source fájl sorainak számán belül.
- Megnyitjuk a source fájlt
- Kiírjuk a generált szám szerinti sort.
- Bezárjuk a fájlt.
Algoritmust valósítunk meg Pythonban (Python 3.7 alatt írok):
import random # véletlenszámok generálásához
import os # az elérési út megkapásához
path = os.path.abspath(__file__) # megkapjuk a rndstr.py fájl abszolút elérési útját
path = os.path.dirname(path) # átalakítjuk a könyvtár elérési útjára
path = path + 'source' # átalakítjuk a source fájl elérési útjára
f = open(path) # megnyitjuk a fájlt
i = 0 # nullázzuk a számlálót
for str in f: i+=1 # megszámoljuk a fájl sorait
f.close # bezárjuk a fájlt
j = int(round(i * random.random())) # generálunk egy véletlenszerű egész számot 0 és i között
f = open(path) # megnyitjuk a fájlt
i = 0 # nullázzuk a számlálót
for str in f: # bejárjuk a fájl sorait
if i == j: # ha a sorok számlálója egyenlő a generált számmal
print(str, end='') # kiírjuk a sort új sor nélkül
break # kilépünk a ciklusból
i+=1 # növeljük a számlálót 1-gyel
f.close # bezárjuk a fájltMiután a fájlok létrejöttek és mentésre kerültek, végrehajtási jogosultságot kell adni a fájlnak. rndstr.sh, és létre kell hozni egy alias-t a gyors indításhoz.
alias rnst="~/rndstr/rndstr.sh"Most, ha a terminálba beírjuk, rnst , akkor a vágólapra egy véletlenszerű aforizmát kapunk, amelyet például felhasználhatunk a levelezés során.
Így írtunk valami hasznosat. Viszonylag hasznosat.
P.s.
Szándékosan nem mutattam be képernyőfelvételeket az utolsó lépésnél, és nem tárgyaltam részletesen néhány műveletet, csak a fájlok tartalmát írtam le, hogy az olvasóknak lehetőségük legyen önállóan dolgozni.
Ezzel a "Termux lépésről lépésre" sorozattal szerintem érdemes befejezni. Természetesen ez csak a legelső lépések, de most már önállóan is tudtok haladni.
Eredetileg azt terveztem, hogy megmutatom ennek a ciklusnak a keretein belül, hogyan használjuk az nmap-et, sqlmap-et, de nélkülem is sok cikk szól már erről a témáról. Ha szeretnétek, hogy folytassam a "Termux lépésről lépésre" ciklust, akkor lent található egy kérdőív, és a kommentekben javasolhattok, miről írjak még.
Csak a regisztrált felhasználók vehetnek részt a szavazáson. , kérem.
Folytassam a "Termux lépésről lépésre"-t?
Igen
Nem
2 felhasználó szavazott. Tartózkodó nincs.
Forrás: habr.com





