Termux քայլ առ քայլ (մաս 2)

В վերջին մասը մենք ծանոթացանք Termux-ի հիմնական հրամաններին, ստեղծեցինք SSH միացում ԱՀ-ին, սովորեցինք, թե ինչպես ստեղծել alias և տեղադրեցինք մի քանի օգտակար կոմունալ ծառայություններ: Այս անգամ մենք պետք է ավելի հեռուն գնանք, մենք ձեզ հետ ենք.

  • իմացեք Termux:API-ի մասին
  • տեղադրեք Python-ը և nano-ն և գրեք «Բարև, աշխարհ»: Python-ում
  • սովորեք bash սկրիպտների մասին և գրեք սկրիպտ՝ օգտագործելով Termux:API
  • օգտագործելով bash script, Termux:API և Python մենք կգրենք պարզ ծրագիր

Քանի որ մենք հիմա հասկանում ենք, թե ինչ են անում մուտքագրված հրամանները, հաջորդ քայլից յուրաքանչյուր գործողություն այդքան մանրամասն չեմ նկարագրի, բայց որտեղ կարող են դժվարություններ լինել, անպայման կբացատրեմ։

Ես շատ եմ օգտագործում կեղծանունները, ուստի այս մասում օգտագործված հապավումները ներկայացված են այստեղ.

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

Պլանը պատրաստ է, կարող եք սկսել: Եվ, իհարկե, մի մոռացեք «կախարդական ներդիրի» մասին (Տես Մաս 1).

Քայլ 4

Սուզվելով Termux:API Rabbit Hole-ով

API որքան է միաձուլվել այս բառի մեջ կոդավորողի սրտի համար

Եթե ​​չանդրադառնանք Termux-ի թեմային.

Նախ, տեղադրեք Termux:API-ն Google Play Market-ից (հետագայում Termux-ը վերագործարկելը չի ​​խանգարի).

Termux քայլ առ քայլ (մաս 2)

Հաջորդը, մենք պետք է տեղադրենք API փաթեթը Termux կոնսոլում.

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

Փորձարկումների համար ես օգտագործում եմ Android 5.1.1, Android 7-ի համար սեփականատերերը պետք է «պաշտպանեն» Termux: API՝ անցնելով «Կարգավորումներ» > «Պաշտպանված հավելվածներ», հակառակ դեպքում API-ն կանչում է, termux-battery-status, կկախվի։ (Սմ. նախագծի վիքի)

Այժմ արժե ավելի ուշադիր նայել ձեռք բերված հնարավորություններին։ Termux:API-ի վերջին և առավել մանրամասն նկարագրությունը կարելի է գտնել այստեղ նախագծի վիքի. Կփորձեմ ընտրել ամենավիզուալն ու հետաքրքիրը, ինչը թույլ կտա ձեռքս լցնել ապագայում ինքնուրույն աշխատանքի համար։

Որոշ Termux:API օրինակներ

  • termux-battery-status
    Վերադարձնում է մարտկոցի վիճակը
    Termux քայլ առ քայլ (մաս 2)
  • termux-պայծառություն
    Սահմանում է էկրանի պայծառությունը 0-ից մինչև 255
    Termux քայլ առ քայլ (մաս 2)
  • termux-toast
    Ցույց է տալիս ժամանակավոր տոստ ծանուցում
    Termux քայլ առ քայլ (մաս 2)
  • termux-torch
    Ներառում է լապտեր
    Termux քայլ առ քայլ (մաս 2)
  • termux-wifi-scaninfo
    Վերադարձնում է տեղեկատվություն Wi-Fi ցանցերի վերջին սկանավորման մասին
    Termux քայլ առ քայլ (մաս 2)

Հեշտ է տեսնել, որ վերադարձվող արժեքները տողեր են, բառարաններ, բառարանների ցուցակներ, ընդհանուր առմամբ տվյալների տեսակները, որոնց հետ Python-ը հիանալի է աշխատում, ուստի հաջորդ քայլը այն կարգավորելն է:

Քայլ 5

Տեղադրեք Python և nano

Python-ը տեղադրելու համար տերմինալում գրեք.

updg
apt install python
apt install python2

Այժմ մենք ունենք 2 և 3 Python տեղադրված:

Հոդվածի վրա աշխատելիս ես հայտնաբերեցի մեկ այլ նանո տեքստային խմբագրիչ, որն ինձ ավելի շատ դուր եկավ, քան vim-ը, եկեք տեղադրենք այն.

apt install nano

Այն ավելի հեշտ է օգտագործել, քան vim-ը, իսկ nano-ն ավելի հարմար ինտերֆեյս ունի: Android սարքում vim-ը դեռ ավելի հարմար է:

HelloWorld Python-ում Termux-ում

Մեծ հաշվով առանց այս տարրի կարելի էր, բայց Python-ը Termux-ում դնելն ու HelloWorld չգրելը, իմ կարծիքով, վատ բարքեր են։

Ես իմ առաջ նպատակ չեմ դնում որևէ մեկին Python սովորեցնել, այնպես որ նրանք, ովքեր չգիտեն, կարող են պարզապես պատճենել կոդը (կամ սկսել ինքնուրույն սովորել, քանի որ բավականաչափ գրականություն կա), իսկ նրանք, ովքեր գիտեն, կարող են ինքնուրույն ինչ-որ բան պատրաստել: Եվ ես դեռ «քողի տակ» ցույց կտամ առանց խմբագրի տերմինալում տեքստ մուտքագրելու միջոց:

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 քայլ առ քայլ (մաս 2)

Եթե ​​մուտքագրման գործընթացում սխալ չեք նկատել և արդեն սեղմել եք Enter, ապա չեք կարողանա անցնել վերևի տող, դա անելու համար ավարտեք մուտքագրումը սեղմելով Ctrl + D (ընդհանուր առմամբ կարող եք ընդհատել Ctrl +-ը: Զ) և ամեն ինչ կրկնել սկզբից: Քանի որ մենք օգտագործել ենք «>», ապա ֆայլը ամբողջությամբ կվերագրվի: Այդ իսկ պատճառով ես խորհուրդ չեմ տալիս օգտագործել այս մուտքագրման մեթոդը, քանի դեռ համոզված չեք, որ անմիջապես կգրեք կոդը առանց սխալների:

Քայլ 6

Bash սցենարներ

Bash սկրիպտները ձեր տերմինալային աշխատանքը ավտոմատացնելու հիանալի միջոց են: Սկրիպտը .sh ընդլայնմամբ ֆայլ է (ընդլայնումն ընտրովի է), որը պարունակում է տերմինալային հրամանների մի շարք, որոնցից մի քանիսն արդեն ուսումնասիրել ենք։ Այստեղ հրամանների մեծամասնության ցանկը, ամեն ինչ պետք է աշխատի, բայց նկատի ունեցեք, որ սա «չափահաս» Linux-ի ցուցակ է, ոչ թե Termux-ի, այլ պարզապես հիանալի նյութ bash սցենարների վրա.

Սցենարների օգնությամբ կարող եք ավտոմատացնել գրեթե բոլոր միապաղաղ գործողությունները։ Եկեք գրենք ամենապարզ bash սկրիպտը, որը ցույց է տալիս արժեքը նրա ստեղծած փոփոխականից, ես նորից կօգտագործեմ cat-ը, դուք կարող եք օգտագործել նորմալ տեքստային խմբագրիչ, իսկ նրանք, ովքեր հատկապես ցանկանում են մարզվել, կարող են օգտագործել 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 քայլ առ քայլ (մաս 2)

Bash սկրիպտ Termux:API-ով

Եկեք գրենք տխրահռչակ HelloWorlds-ից տարբեր, բայց նույնքան անօգուտ: Մեր սցենարը կլինի.

  1. կատարել termux-battery-status API հարցումը
  2. ստացված տվյալները պահել test.txt ֆայլում
  3. տպել տվյալները ֆայլից էկրանին
  4. գործարկել նախկինում գրված hello-world.py ծրագիրը
  5. գրեք ծրագրից ստացված տվյալները test.txt ֆայլում
  6. տպել տվյալները ֆայլից էկրանին
  7. տեղափոխել տվյալները ֆայլից clipboard
  8. ցուցադրել clipboard-ի բովանդակությունը
  9. ցուցադրել թռուցիկ հաղորդագրություն clipboard-ի տվյալների հետ

Նախ, ստեղծեք թղթապանակ աշխատանքի համար և պատճենեք hello-world.py-ն այնտեղ որպես test.py, ստեղծեք test.sh և test.txt ֆայլեր այս թղթապանակում.

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Այժմ, ցանկացած հարմար ձևով, գրեք սցենարը 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 # пункт 9

Այժմ, լինելով bashscript թղթապանակում, գրում ենք ./test.sh Android սարքի տերմինալում մենք դիտարկում ենք.

Termux քայլ առ քայլ (մաս 2)

Այսպիսով, մենք գրեցինք պլանավորված bash սցենարը: Դուք կարող եք այն նոսրացնել յուրաքանչյուր գործողության կատարման վերաբերյալ տեղեկատվության վահանակի ելքով (օգտագործելով արձագանք), ես սա կթողնեմ ընթերցողներին:

Քայլ 7

Եկեք մի օգտակար բան անենք

Համեմատաբար օգտակար

Ձևակերպենք տեխնիկական առաջադրանքը
Գործարկումից հետո հավելվածը պետք է ֆայլից պատահական տող տեղադրի clipboard-ի վրա և տեղեկացնի դրա մասին թռուցիկ հաղորդագրության միջոցով:

Մենք որպես հիմք կվերցնենք bash սկրիպտը, մենք կհանենք պատահական տող ֆայլից՝ օգտագործելով Python ենթածրագրերը: Եկեք կազմենք սցենարի աշխատանքային պլան.

  1. Գործարկել ենթածրագրերը
  2. Ենթածրագրի արդյունքը փոխանցեք clipboard
  3. Ցուցադրել թռուցիկ հաղորդագրություն

Եկեք սահմանենք գրացուցակի և հավելվածի ֆայլերի անունները.

  • rndstr թղթապանակը տնային գրացուցակում
    • աղբյուր - ֆայլը, որից մենք տողեր կվերցնենք
    • rndstr.py - ենթածրագր, որը ցուցադրում է պատահական տող սկզբնաղբյուր ֆայլից մինչև վահանակ
    • rndstr.sh - սցենարի ֆայլ

Ստեղծեք հավելվածի գրացուցակ և տեղափոխեք այն և այնտեղ ստեղծեք ֆայլեր:

Սցենարի պլանի առաջին երկու կետերը կարող են համակցվել խողովակաշարով, արդյունքում, օգտագործելով Termux: API, մենք ստանում ենք.

#!/bin/bash

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

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

Աղբյուրի ֆայլում դուք կարող եք տեղադրել ցանկացած տեքստ, որը տրամաբանորեն բաժանված է տողերի, ես որոշեցի տեղադրել աֆորիզմներ.

Աղբյուրի ֆայլերի ցանկը

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

Մենք պարզապես պետք է ստեղծենք ենթածրագր, որը սկզբնաղբյուր ֆայլից կհանի պատահական տող:
Գրենք ենթածրագրի ալգորիթմը.

  1. Բաց կոդով ֆայլ
  2. Բաց ֆայլում տողերի քանակի հաշվում
  3. Փակեք ֆայլը (այն լրացուցիչ ժամանակ բաց պահելու ոչինչ չկա)
  4. Մենք ստեղծում ենք պատահական ամբողջ թիվ սկզբնաղբյուր ֆայլի տողերի քանակով
  5. Բաց կոդով ֆայլ
  6. Ստեղծված թվի տակ տող ենք դուրս բերում
  7. Ֆայլի փակում

Մենք իրականացնում ենք ալգորիթմը Python-ում (ես գրում եմ 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  #  закрываем файл

Ֆայլերը ստեղծվելուց և գրվելուց հետո պետք է ֆայլի կատարման թույլտվություններ տալ rndstr.sh, և արագ գործարկման համար ստեղծեք կեղծանուն:

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

Այժմ մուտքագրում ենք տերմինալում rnst մենք պատահական աֆորիզմ կստանանք clipboard-ում, որը, օրինակ, կարող է օգտագործվել նամակագրության մեջ:

Այստեղ մենք գոնե մի օգտակար բան ենք գրել։ Համեմատաբար օգտակար:

Սաղ

Վերջին քայլում ես միտումնավոր չտրամադրեցի սքրինշոթներ և մանրամասն չվերլուծեցի որոշ գործողություններ՝ գրելով միայն ֆայլերի բովանդակությունը, որպեսզի ընթերցողները հնարավորություն ունենան ինքնուրույն աշխատելու։

Այս «Termux քայլ առ քայլ» վրա, կարծում եմ, արժե ավարտել։ Իհարկե, սրանք միայն առաջին քայլերն են, բայց հիմա դուք ինքներդ կարող եք առաջ շարժվել։

Սկզբում ես նախատեսում էի այս ցիկլում ցույց տալ, թե ինչպես օգտագործել nmap, sqlmap, բայց առանց ինձ արդեն կան բազմաթիվ հոդվածներ այս թեմայով: Եթե ​​ցանկանում եք շարունակել «Termux քայլ առ քայլ» ցիկլը, ապա ստորև կա հարցում և մեկնաբանություններում կարող եք առաջարկել, թե էլ ինչի մասին գրել։

Հարցմանը կարող են մասնակցել միայն գրանցված օգտվողները։ Մուտք գործել, խնդրում եմ:

Շարունակե՞լ «Termux քայլ առ քայլ»:

  • Այո

  • Ոչ

Քվեարկել է 2 օգտատեր։ Ձեռնպահներ չկան։

Source: www.habr.com

Добавить комментарий