В
- Ismerje meg a Termux:API-t
- telepítse a Python-t és a nano-t, és írja be a "Hello, world!" Pythonban
- ismerkedjen meg a bash szkriptekkel, és írjon egy szkriptet a Termux:API használatával
- egy bash szkript, Termux:API és Python segítségével írunk egy egyszerű programot
Mivel most már értjük, mit csinálnak a beviteli parancsok, ezért a következő lépéstől kezdve nem írok le ilyen részletesen minden egyes műveletet, de ahol nehézségek adódhatnak, azt mindenképpen elmagyarázom.
Sokat használok álneveket, ezért az ebben a részben használt rövidítések itt láthatók:
alias updg='apt update && apt upgrade'
alias py='python'
Kész a terv, indulhat! És természetesen ne feledkezzünk meg a "varázslapról" (
Lépés 4
Merülés lefelé a Termuxon: API Rabbit Hole
API mennyit egyesült ebben a szóban a kódoló szívére
Ha nem érintjük a Termux: API témáját, akkor minden lépésünket le lehetne redukálni néhány brosúra egyszerű újramondására, mint például a "Linux for Dummies", amint azt az első részhez fűzött megjegyzésekben helyesen megjegyeztük.
Először telepítse a Termux:API-t a Google Play Marketről (utólag nem árt újraindítani a Termuxot):
Ezután telepítenünk kell az API-csomagot a Termux konzolon:
updg # Не забываем про alias’ы
apt install termux-api
Kísérletezéshez Android 5.1.1-et használok, Android 7 tulajdonosoknak meg kell "védeniük" a Termux: API-t a "Beállítások" > "Védett alkalmazások" menüpontban, ellenkező esetben az API-hívások, mint pl. termux-battery-status
, lógni fog. (Cm.
Most érdemes alaposabban szemügyre venni a megszerzett lehetőségeket. A Termux:API legújabb és legrészletesebb leírása a címen található
Néhány Termux:API példa
- termux-battery-status
Visszaadja az akkumulátor állapotát
- termux-fényerő
A képernyő fényerejét 0 és 255 között állítja be
- termux-pirítós
Ideiglenes pohárköszöntőt jelenít meg
- termux-fáklya
Zseblámpát tartalmaz
- termux-wifi-scaninfo
Információkat ad vissza a Wi-Fi hálózatok legutóbbi vizsgálatáról
Könnyen belátható, hogy a visszatérési értékek karakterláncok, szótárak, szótárak listái, általában olyan adattípusok, amelyekkel a Python remekül működik, ezért a következő lépés a beállítás.
Lépés 5
Telepítse a Python-t és a nano-t
A Python telepítéséhez írja be a terminálba:
updg
apt install python
apt install python2
Most már telepítve van a 2 és 3 Python.
A cikken dolgozva felfedeztem egy másik nano szövegszerkesztőt, ami jobban tetszett, mint a vim, telepítsük fel:
apt install nano
Használata egyszerűbb, mint a vim, és a nano felhasználóbarátabb felülettel rendelkezik. Android-eszközön a vim még mindig kényelmesebb.
HelloWorld Pythonban a Termuxnál
Általánosságban elmondható, hogy ezt az elemet nélkülözni lehetett, de a Python-t berakni Termuxba és nem írni a HelloWorld-et szerintem rossz modor.
Nem tűztem ki magamnak azt a célt, hogy Python-t tanítsak senkinek, így aki nem ismeri, az egyszerűen lemásolhatja a kódot (vagy elkezdhet önállóan tanulni, hiszen van elég szakirodalom), aki pedig ismeri, az maga is készíthet valamit. És "álarc alatt" továbbra is megmutatom, hogyan lehet szöveget bevinni a terminálba szerkesztő nélkül.
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)
Ha nem vett észre hibát a beviteli folyamat során, és már megnyomta az Entert, akkor nem tud a fenti sorra lépni, ehhez fejezze be a bevitelt a Ctrl + D megnyomásával (általában megszakíthatja a Ctrl + Z) és ismételje meg mindent az elejétől. Mivel a '>'-t használtuk, a fájl teljesen felül lesz írva. Emiatt nem javaslom ennek a beviteli módnak a használatát, hacsak nem biztos abban, hogy azonnal hibamentesen írja meg a kódot.
Lépés 6
Bash szkriptek
A Bash-szkriptek nagyszerű lehetőséget nyújtanak a terminálmunka automatizálására. A szkript egy .sh kiterjesztésű fájl (a kiterjesztés nem kötelező), amely terminálparancsokat tartalmaz, amelyek közül néhányat már tanulmányoztunk. Itt
A szkriptek segítségével szinte minden monoton művelet automatizálható. Írjuk meg a legegyszerűbb bash szkriptet, ami az általa létrehozott változóból jeleníti meg az értéket, én megint cat-et használok, használhatsz normál szövegszerkesztőt, aki pedig különösen edzeni akarja magát, az echo-t.
cat >test.sh
export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’
echo $str # Для обращения к переменным перед ними ставится ‘$’
# Ctrl + D
# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым
chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым
./test.sh # Запускаем выполнение нашего скрипта
Bash szkript a Termux:API-val
Írjunk valami mást, mint a hírhedt HelloWorlds, de ugyanolyan haszontalan. A forgatókönyvünk a következő lesz:
- hajtsa végre a termux-battery-status API kérést
- mentse a kapott adatokat a teszt.txt fájlba
- adatok nyomtatása fájlból a képernyőre
- futtassa a korábban megírt hello-world.py programot
- írjuk a programtól kapott adatokat a teszt.txt fájlba
- adatok nyomtatása fájlból a képernyőre
- adatok áthelyezése fájlból a vágólapra
- megjeleníti a vágólap tartalmát
- megjelenít egy felugró üzenetet a vágólapról származó adatokkal
Először hozzon létre egy mappát a munka számára, és másolja oda a hello-worl.py fájlt test.py néven, hozzon létre test.sh és test.txt fájlokat ebben a mappában:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch создает файлы
chmod +x test.sh
Most bármilyen kényelmes módon írja be a szkriptet a test.sh fájlba:
#!/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
Most, hogy a bashscript mappában vagyunk, írunk ./test.sh
megfigyeljük az Android-eszköz termináljában:
Így megírtuk a tervezett bash forgatókönyvet. Hígíthatja az egyes műveletek végrehajtásáról szóló információs konzol kimenetével (echo segítségével), ezt meghagyom az olvasóknak.
Lépés 7
Csináljunk valami hasznosat
Viszonylag hasznos
Fogalmazzuk meg a feladatkört
Indítás után az alkalmazásnak a fájlból egy véletlenszerű sort kell helyeznie a vágólapra, és erről egy felugró üzenettel értesítenie kell.
Egy bash szkriptet veszünk alapul, egy fájlból egy Python szubrutin segítségével kivonunk egy véletlenszerű sort. Készítsünk egy script munkatervet:
- Futtassa az alprogramot
- Az alprogram eredményét vigye át a vágólapra
- Előugró üzenet megjelenítése
Határozzuk meg a könyvtár és az alkalmazásfájlok nevét:
- rndstr mappát a saját könyvtárban
- forrás - az a fájl, amelyből sorokat veszünk
- rndstr.py – egy szubrutin, amely véletlenszerű sort jelenít meg a forrásfájlból a konzolba
- rndstr.sh - script fájl
Hozzon létre egy alkalmazáskönyvtárat, lépjen oda, és hozzon létre fájlokat.
A szkriptterv első két pontja egy csővezetékkel kombinálható, így a Termux: API használatával a következőt kapjuk:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
A forrásfájlban bármilyen szöveget logikailag sorokra bonthat, úgy döntöttem, hogy aforizmákat teszek:
Forrásfájlok listája
Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон
Csak létre kell hoznunk egy szubrutint, amely kivon egy véletlenszerű karakterláncot a forrásfájlból.
Írjuk fel az alprogram algoritmusát:
- Nyílt forráskódú fájl
- Sorok számának számolása egy nyitott fájlban
- Zárja be a fájlt (nincs semmi, ami miatt hosszabb ideig nyitva kell tartani)
- A forrásfájl sorainak számán belül véletlenszerű egész számot generálunk
- Nyílt forráskódú fájl
- A generált szám száma alá egy sort adunk ki
- A fájl bezárása
Az algoritmust Pythonban valósítjuk meg (Python 3.7 alatt írom):
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 # закрываем файл
A fájlok létrehozása és írása után meg kell adnia a fájl végrehajtási engedélyeit rndstr.sh
, és hozzon létre egy álnevet a gyors indításhoz.
alias rnst="~/rndstr/rndstr.sh"
Most írja be a terminálba rnst
véletlenszerű aforizmát kapunk a vágólapra, amit például a levelezésben is használhatunk.
Itt legalább valami hasznosat írtunk. Viszonylag hasznos.
ps
Az utolsó lépésben szándékosan nem készítettem képernyőképeket, és nem elemeztem részletesen egyes műveleteket, csak a fájlok tartalmát írtam, hogy az olvasóknak lehetőségük legyen önállóan dolgozni.
Ezen a "Termuxon lépésről lépésre" szerintem érdemes befejezni. Természetesen ezek csak a legelső lépések, de most már te is előre léphetsz.
Kezdetben azt terveztem, hogy ebben a ciklusban bemutatom az nmap, sqlmap használatát, de nélkülem már rengeteg cikk született ebben a témában. Ha szeretnéd, hogy folytassam a „Termux lépésről lépésre” ciklust, akkor lent van egy kérdőív és kommentben tudtok javasolni, hogy miről írhatnátok még.
A felmérésben csak regisztrált felhasználók vehetnek részt.
Folytassa a "Termux lépésről lépésre"?
-
Igen
-
Nincs
2 felhasználó szavazott. Nincs tartózkodás.
Forrás: will.com