Termux urratsez urrats (2. zatia)

В azken zatia Oinarrizko Termux komandoak ezagutu genituen, SSH konexioa konfiguratu genuen ordenagailu batekin, aliasak nola sortzen ikasi genuen eta hainbat utilitate erabilgarri instalatu genituen. Oraingoan urrunago joan behar dugu, zuekin gaude:

  • ikasi Termux:API-ri buruz
  • Instala ditzagun Python eta nano, eta idatzi "Kaixo, mundua!" Python-en
  • ikasi bash scriptei buruz eta idatzi script bat Termux:API erabiliz
  • Idatz dezagun programa sinple bat bash script bat erabiliz, Termux:API eta Python

Orain sartutako komandoek zer egiten duten ulertzen dugunez, hurrengo urratsetik ez dut ekintza bakoitza hain zehatz deskribatuko, baina zailtasunak egon daitezkeen lekuetan, behin betiko azalduko dut.

Askotan erabiltzen ditut aliasak, beraz, zati honetan erabiltzen diren laburdurak hemen erakusten dira:

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

Plana prest dago, has gaitezke! Eta, jakina, ez ahaztu "Fitxa magikoa" (Ikus 1. zatia).

Urratsera 4

Termux-en behera murgiltzea:API Rabbit Hole

API, zenbat batu den kodetzailearen bihotzaren hitz honetan

Termux:API-ren gaia ukitzen ez badugu, gure urrats guztiak "Linux for Dummies" bezalako liburuxka baten berrikuspen soil batera murriztu daitezke, lehen zatiko iruzkinetan ongi adierazi zen bezala.

Lehenik eta behin, instala ditzagun Termux: API Google Play Market-etik (ondoren, ez du kalterik izango Termux berrabiarazteko):

Termux urratsez urrats (2. zatia)

Ondoren API paketea Termux kontsolan instalatu behar dugu:

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

Android 5.1.1 erabiltzen ari naizen esperimentuetarako, Android 7 jabeentzat Termux:API-a "babestu" behar duzu Ezarpenak > Aplikazio babestuak atalera joanez, bestela API-k bezalako deiak egiten ditu. termux-battery-status, izoztu egingo da. (Cm. proiektuaren wikia)

Orain lortutako gaitasunak gertutik aztertzeko garaia da. Termux:API-ren deskribapen berriena eta zehatza helbidean aurki daiteke proiektuaren wikia. Ikusgarriena eta interesgarriena aukeratzen saiatuko naiz, etorkizunean lan independentean hobetzea ahalbidetuko duena.

Termux:API-ren adibide batzuk

  • termux-bateria-egoera
    Bateriaren egoera itzultzen du
    Termux urratsez urrats (2. zatia)
  • termux-distira
    Pantailaren distira 0tik 255era ezartzen du
    Termux urratsez urrats (2. zatia)
  • termux-tostada
    Aldi baterako pop-up jakinarazpena erakusten du
    Termux urratsez urrats (2. zatia)
  • termux-tortxa
    Linterna barne
    Termux urratsez urrats (2. zatia)
  • termux-wifi-scaninfo
    Wi-Fi sareen azken eskaneari buruzko informazioa ematen du
    Termux urratsez urrats (2. zatia)

Erraza da itzultzeko balioak kateak, hiztegiak, hiztegien zerrendak direla, funtsean Python-ek ondo funtzionatzen duen datu motak, beraz, hurrengo urratsa konfiguratzea da.

Urratsera 5

Instalatu Python eta nano

Python instalatzeko, idatzi terminalean:

updg
apt install python
apt install python2

Orain Python 2 eta 3 ditugu instalatuta.

Artikulu honetan lanean ari nintzela, beste testu editore bat aurkitu nuen, nano, vim baino gehiago gustatzen zitzaidana, instala dezagun:

apt install nano

Vim baino errazagoa da erabiltzeko, eta nanok interfaze atseginagoa du. Android gailu batean, vim oraindik erosoagoa da.

HelloWorld Python-en Termux-en

Orokorrean, puntu hau gabe egin daiteke, baina Python Termuxen instalatzea eta HelloWorld ez idaztea, nire ustez, ohitura txarra da.

Nire helburua ez da inori Python irakastea, beraz, ez dakitenek kodea kopiatu besterik ez dute egin (edo bere kabuz ikasten hastea, zorionez literatura nahikoa dago), eta dakitenak beraiek zizelkatu dezakete zerbait. Eta isilean, editorerik gabe terminalean testua sartzeko modua ere erakutsiko dizut.

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 urratsez urrats (2. zatia)

Sarrera prozesuan ez baduzu errorerik nabaritu eta Sartu sakatu baduzu, ezin izango zara goiko lerrora joan; horretarako, amaitu Ctrl + D sakatuz (Ctrl + Z eten dezakezu) eta errepikatu dena hasieratik. '>' erabili dugunez fitxategia guztiz berridatziko da. Horregatik, ez dut gomendatzen sarrera-metodo hau erabiltzea kodea berehala akatsik gabe idatziko duzula ziur ez bazaude.

Urratsera 6

Bash gidoiak

Bash scriptak zure terminaleko lana automatizatzeko modu bikaina dira. Scripta .sh luzapena duen fitxategi bat da (luzapena hautazkoa da) terminaleko komando multzo bat daukana, eta horietako batzuk dagoeneko aztertu ditugu. Hemen komando gehienen zerrenda, denak funtzionatu beharko luke, baina kontuan izan hau Linux "helduentzako" zerrenda bat dela, eta ez Termuxentzat, baizik eta Gauza bikainak bash scriptetan.

Scriptak erabiliz ia ekintza monotono guztiak automatiza ditzakezu. Idatz dezagun bash script soil bat, sortu duen aldagaitik balioa ateratzen duena, berriro cat erabiliko dut, testu-editore normal bat erabil dezakezu eta bereziki beren burua trebatu nahi dutenek echo erabil dezakete.

cat >test.sh

export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’

echo $str # Для обращения к переменным перед ними ставится ‘$’

# Ctrl + D

# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым

chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым

./test.sh # Запускаем выполнение нашего скрипта

Termux urratsez urrats (2. zatia)

Bash script-a Termux:API-rekin

Idatz dezagun HelloWorlds ezagunetatik ezberdina, baina alferrikakoa. Gure gidoia hau izango da:

  1. egin termux-battery-status API eskaera
  2. gorde jasotako datuak test.txt fitxategian
  3. pantailan fitxategi bateko datuak bistaratu
  4. exekutatu aurretik idatzitako hello-world.py programa
  5. Idatzi programatik jasotako datuak test.txt fitxategian
  6. pantailan fitxategi bateko datuak bistaratu
  7. transferitu datuak fitxategi batetik arbelera
  8. arbeleko edukia bistaratu
  9. bistaratu laster-mezu bat arbeleko datuekin

Lehenik eta behin, sor dezagun lanerako karpeta bat eta kopiatu hello-world.py bertan test.py gisa, sortu test.sh eta test.txt fitxategiak karpeta honetan:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Orain, modu egokian, idatzi script-a test.sh fitxategian:

#!/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

Orain idazten dugun bashscript karpetan egonda ./test.sh Android gailu bateko terminalean ikusten dugu:

Termux urratsez urrats (2. zatia)

Beraz, aurreikusitako bash script-a idatzi genuen. Diluitu dezakezu ekintza bakoitzaren exekuzioari buruzko informazioa kontsolara bidaliz (oihartzuna erabiliz), hau irakurleentzat utziko dut.

Urratsera 7

Egin dezagun zerbait erabilgarria

Nahiko erabilgarria

Formulatu ditzagun baldintzak
Abiarazi ondoren, aplikazioak fitxategi batetik ausazko lerro bat jarri beharko luke arbelean eta horren berri eman behar du pop-up mezu batekin.

Har dezagun bash script bat oinarri gisa eta atera dezagun ausazko lerro bat fitxategi batetik Python azpierrutina erabiliz. Egin dezagun gidoiaren plana:

  1. Exekutatu azpierrutina
  2. Transferitu azpirrutinaren emaitza arbelera
  3. Bistaratu laster-mezu bat

Erabaki ditzagun direktorioen eta aplikazioen fitxategien izenak:

  • rndstr karpeta hasierako direktorioan
    • iturburua - lerroak hartuko ditugun fitxategia
    • rndstr.py - iturburu fitxategitik kontsolara ausazko lerro bat inprimatzen duen azpierrutina
    • rndstr.sh - script fitxategia

Aplikazio-direktorioa sortzen dugu eta bertara mugitzen gara eta bertan fitxategiak sortzen ditugu.

Gidoi-planaren lehen bi puntuak kanalizazio baten bidez konbina daitezke, ondorioz, Termux:API erabiliz lortzen dugu:

#!/bin/bash

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

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

Iturburu fitxategian edozein testu jar dezakezu logikoki lerrotan banatuta, aforismoak jartzea erabaki nuen:

Iturburu-fitxategien zerrenda

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

Egin behar duguna da iturburu fitxategitik ausazko kate bat ateratzen duen azpierrutina bat sortzea.
Azpirrutinaren algoritmoa deskriba dezagun:

  1. Ireki iturburu-fitxategia
  2. Irekitako fitxategi bateko lerro kopurua zenbatzea
  3. Itxi fitxategia (ez du balio luzeegi zabalik edukitzeak)
  4. Sortu ausazko zenbaki oso bat iturburu-fitxategiko lerro kopuruaren barruan
  5. Ireki iturburu-fitxategia
  6. Sortutako zenbakiaren zenbakiaren azpian lerro bat bistaratzen dugu
  7. Fitxategia ixtea

Ezar dezagun algoritmoa Python-en (Python 3.7 azpian idazten dut):

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  #  закрываем файл

Fitxategiak sortu eta idatzi ondoren, fitxategiari exekuzio-eskubideak eman behar dizkiozu rndstr.sh, eta sortu alias bat abiarazteko azkar abiarazteko.

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

Orain terminalean sartuz rnst arbelean ausaz aforismo bat jasoko dugu, adibidez, korrespondentzian erabil daitekeena.

Beraz, gutxienez zerbait erabilgarria idatzi genuen. Nahiko erabilgarria.

ps

Azken urratsean, nahita ez dut pantaila-argazkirik eman eta ez ditut ekintza batzuk zehatz-mehatz aztertu, fitxategien edukia soilik deskribatuz irakurleek beren kabuz lan egiteko aukera izan dezaten.

“Termux pausoz pauso” hau bukatzea merezi duela uste dut. Jakina, hauek lehen urratsak baino ez dira, baina orain zure kabuz egin dezakezu aurrera.

Hasieran, serie honetan nmap, sqlmap nola erabili erakusteko asmoa nuen, baina ni gabe ere badaude gai honi buruzko artikulu asko. "Termux urratsez urrats" seriearekin jarraitzea nahi baduzu, behean inkesta bat dago eta iruzkinetan zer gehiago idatzi behar duzun iradoki dezakezu.

Erregistratutako erabiltzaileek soilik parte hartu dezakete inkestan. Hasi saioa, mesedez.

"Termux urratsez urrats" jarraitu?

  • Bai

  • No

2 erabiltzailek eman dute botoa. Ez dago abstentziorik.

Iturria: www.habr.com

Gehitu iruzkin berria