Termux skref fyrir skref (Part 2)

В síðasta hluta við kynntumst grunnskipunum Termux, settum upp SSH tengingu við tölvu, lærðum að búa til alias og settum upp nokkur gagnleg tól. Að þessu sinni verðum við að stíga enn lengra, við erum með þér:

  • Lærðu um Termux: API
  • settu upp Python og nano og skrifaðu "Halló, heimur!" í Python
  • Lærðu um bash forskriftir og skrifaðu handrit með Termux: API
  • með því að nota bash script, Termux:API og Python munum við skrifa einfalt forrit

Þar sem við skiljum núna hvað inntaksskipanirnar gera, þá mun ég ekki lýsa hverri aðgerð í svo smáatriðum frá næsta skrefi, en þar sem erfiðleikar geta verið, mun ég örugglega útskýra.

Ég nota samnefni mikið, svo skammstafanirnar sem notaðar eru í þessum hluta eru sýndar hér:

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

Áætlunin er tilbúin, þú getur byrjað! Og auðvitað, ekki gleyma „töfraflipanum“ (Sjá 1. hluta).

Skref 4

Kafa niður Termux: API kanínuholið

API hversu mikið hefur sameinast í þessu orði fyrir hjarta kóðara

Ef við snertum ekki efni Termux: API, þá væri hægt að draga úr öllum skrefum okkar í einfalda endursögn á einhverjum bæklingi eins og "Linux for Dummies", eins og var réttilega tekið fram í athugasemdum við fyrri hlutann.

Settu fyrst upp Termux:API frá Google Play Market (það sakar ekki að endurræsa Termux eftir á):

Termux skref fyrir skref (Part 2)

Næst þurfum við að setja upp API pakkann í Termux stjórnborðinu:

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

Til tilrauna er ég að nota Android 5.1.1, fyrir Android 7 þurfa eigendur að "vernda" Termux: API með því að fara í 'Stillingar' > 'Vernduð forrit' annars kalla API eins og termux-battery-status, mun hanga. (Cm. verkefni wiki)

Nú er rétt að skoða þau tækifæri sem áunnist hafa. Nýjustu og ítarlegustu lýsingu á Termux: API er að finna á verkefni wiki. Ég mun reyna að velja það sjónræna og áhugaverðasta, sem gerir mér kleift að fylla hönd mína fyrir sjálfstæða vinnu í framtíðinni.

Nokkur Termux: API dæmi

  • termux-rafhlaða-staða
    Skilar stöðu rafhlöðunnar
    Termux skref fyrir skref (Part 2)
  • termux-birtustig
    Stillir birtustig skjásins frá 0 til 255
    Termux skref fyrir skref (Part 2)
  • termux-ristað brauð
    Sýnir tímabundna ristað brauðtilkynningu
    Termux skref fyrir skref (Part 2)
  • termux-kyndill
    Inniheldur vasaljós
    Termux skref fyrir skref (Part 2)
  • termux-wifi-scaninfo
    Skilar upplýsingum um síðustu skönnun á Wi-Fi netkerfum
    Termux skref fyrir skref (Part 2)

Það er auðvelt að sjá að skilgildin eru strengir, orðabækur, listar yfir orðabækur, almennt, gagnategundir sem Python virkar frábærlega með, svo næsta skref er að setja það upp.

Skref 5

Settu upp Python og nano

Til að setja upp Python skaltu skrifa í flugstöðina:

updg
apt install python
apt install python2

Við höfum nú 2 og 3 Python uppsett.

Þegar ég vann að greininni uppgötvaði ég annan nanó textaritil sem mér líkaði meira en vim, við skulum setja hann upp:

apt install nano

Það er auðveldara í notkun en vim og nano er með notendavænna viðmóti. Í Android tæki er vim enn þægilegra.

HelloWorld í Python á Termux

Í stórum dráttum var hægt að vera án þessa hluts, en að setja Python í Termux og skrifa ekki HelloWorld, að mínu mati, er slæmur siður.

Ég set mér ekki það markmið að kenna neinum Python, þannig að þeir sem ekki kunna geta einfaldlega afritað kóðann (eða byrjað að læra á eigin spýtur, þar sem það er nóg af bókmenntum), og þeir sem kunna geta gert eitthvað sjálfir. Og ég mun "undir skjóli" sýna enn leið til að slá inn texta í flugstöðinni án ritstjóra.

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 skref fyrir skref (Part 2)

Ef þú tókst ekki eftir villu meðan á innsláttarferlinu stóð og þegar ýttir á Enter, þá muntu ekki geta farið í línuna hér að ofan, til að gera þetta skaltu enda inntakið með því að ýta á Ctrl + D (þú getur almennt truflað Ctrl + Z) og endurtaktu allt frá upphafi. Þar sem við notuðum '>' þá verður skránni alveg skrifað yfir. Af þessum sökum mæli ég ekki með því að nota þessa innsláttaraðferð nema þú sért viss um að þú skrifar kóðann strax án villna.

Skref 6

bash forskriftir

Bash forskriftir eru frábær leið til að gera flugstöðvarvinnuna sjálfvirka. Handritið er skrá með .sh endingunni (viðbótin er valfrjáls) sem inniheldur mengi flugstöðvarskipana, sumar þeirra höfum við þegar rannsakað. Hérna lista yfir flestar skipanir, allt ætti að virka, en athugaðu að þetta er listi fyrir "fullorðins" Linux, ekki Termux, heldur bara frábært efni um bash handrit.

Með hjálp forskrifta geturðu gert sjálfvirkan nánast allar einhæfar aðgerðir. Skrifum einfaldasta bash forskriftina sem sýnir gildið úr breytunni sem hann bjó til, ég mun nota cat aftur, þú getur notað venjulegan textaritil og þeir sem vilja sérstaklega þjálfa sig geta notað echo.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux skref fyrir skref (Part 2)

Bash handrit með Termux: API

Skrifum eitthvað annað en hina alræmdu HelloWorlds, en jafn ónýtt. Handritið okkar verður:

  1. keyra termux-battery-status API beiðnina
  2. vistaðu móttekin gögn í skrána test.txt
  3. prenta gögn úr skrá á skjáinn
  4. keyra áður skrifað hello-world.py forrit
  5. skrifaðu gögnin sem berast frá forritinu í skrána test.txt
  6. prenta gögn úr skrá á skjáinn
  7. færa gögn úr skrá yfir á klemmuspjald
  8. birta innihald klemmuspjaldsins
  9. birta sprettigluggaskilaboð með gögnum af klemmuspjaldinu

Fyrst skaltu búa til möppu fyrir vinnu og afrita hello-world.py þar sem test.py, búa til test.sh og test.txt skrár í þessari möppu:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Nú, á einhvern þægilegan hátt, skrifaðu handritið í test.sh skrána:

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

Núna, þar sem við erum í bashscript möppunni, skrifum við ./test.sh við fylgjumst með í flugstöðinni á Android tækinu:

Termux skref fyrir skref (Part 2)

Svo við skrifuðum fyrirhugað bash handrit. Þú getur þynnt það út með úttakinu á stjórnborðið með upplýsingum um framkvæmd hverrar aðgerð (með því að nota echo), ég mun skilja þetta eftir fyrir lesendur.

Skref 7

Gerum eitthvað gagnlegt

Tiltölulega gagnlegt

Við skulum móta erindisskilmálana
Eftir ræsingu ætti forritið að setja handahófskennda línu úr skránni á klemmuspjaldið og láta vita um það með sprettigluggaskilaboðum.

Við munum taka bash forskrift sem grunn, við munum draga handahófskennda línu úr skrá með Python undirrútínu. Gerum handritsvinnuáætlun:

  1. Keyra undirrútínu
  2. Flyttu niðurstöðu undirrútínuna yfir á klemmuspjaldið
  3. Birta sprettigluggaskilaboð

Við skulum skilgreina nöfn möppunnar og forritaskráa:

  • rndstr mappa í heimaskránni
    • source - skráin sem við munum taka línur úr
    • rndstr.py - undirrútína sem sýnir handahófskennda línu frá upprunaskránni til stjórnborðsins
    • rndstr.sh - handritaskrá

Búðu til forritaskrá og farðu í hana og búðu til skrár þar.

Hægt er að sameina fyrstu tvo punkta handritsáætlunarinnar með leiðslu, þar af leiðandi með því að nota Termux: API sem við fáum:

#!/bin/bash

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

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

Í frumskránni geturðu sett hvaða texta sem er rökrétt skipt í línur, ég ákvað að setja orðatiltæki:

Upprunaskrá skráning

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

Við þurfum bara að búa til undirrútínu sem dregur út handahófskenndan streng úr frumskránni.
Við skulum skrifa reiknirit undirrútínu:

  1. Opna upprunaskrá
  2. Að telja fjölda lína í opinni skrá
  3. Lokaðu skránni (það er ekkert sem getur haldið henni opinni í lengri tíma)
  4. Við búum til handahófskennda heiltölu innan fjölda lína frumskrárinnar
  5. Opna upprunaskrá
  6. Við gefum út línu undir númeri myndaðs númers
  7. Að loka skránni

Við innleiðum reikniritið í Python (ég skrifa undir Python 3.7):

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

Eftir að skrárnar hafa verið búnar til og skrifaðar þarftu að gefa skrár keyrsluheimildir rndstr.sh, og búðu til samnefni fyrir skjóta ræsingu.

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

Er núna að slá inn í terminal rnst við fáum tilviljunarkennda orðræðu á klemmuspjaldið, sem til dæmis er hægt að nota í bréfaskiptum.

Hér höfum við skrifað að minnsta kosti eitthvað gagnlegt. Tiltölulega gagnlegt.

Ps

Í síðasta skrefi gaf ég viljandi ekki skjáskot og greindi ekki ítarlega sumar aðgerðirnar, skrifaði aðeins innihald skránna svo lesendur hafi tækifæri til að vinna á eigin spýtur.

Á þessum „Termux skref fyrir skref“ finnst mér það þess virði að klára það. Auðvitað eru þetta aðeins fyrstu skrefin, en nú geturðu haldið áfram sjálfur.

Upphaflega ætlaði ég að sýna í þessari lotu hvernig á að nota nmap, sqlmap, en án mín eru nú þegar til fullt af greinum um þetta efni. Ef þú vilt að ég haldi áfram „Termux skref fyrir skref“ hringrásina, þá er könnun hér að neðan og í athugasemdunum geturðu bent á hvað annað til að skrifa um.

Aðeins skráðir notendur geta tekið þátt í könnuninni. Skráðu þig inn, takk.

Halda áfram "Termux skref fyrir skref"?

  • No

2 notendur kusu. Engir sitja hjá.

Heimild: www.habr.com

Bæta við athugasemd