Termux gav bi gav (Beş 2)

В beşa dawî Me bi fermanên bingehîn ên Termux re nas kir, pêwendiyek SSH bi PC-yê re saz kir, fêr bû ku meriv çawa navan biafirîne û gelek karûbarên kêrhatî saz kir. Vê carê divê em hê pêşdetir biçin, em bi we re ne:

  • li ser Termux:API fêr bibin
  • Ka em Python û nano saz bikin, û her weha binivîsin "Silav, cîhan!" li Python
  • li ser nivîsarên bash fêr bibin û bi Termux:API skrîptekê binivîsin
  • Werin em bernameyek hêsan bi karanîna skrîptek bash, Termux:API û Python binivîsin

Ji ber ku em naha fam dikin ku emrên têketinê çi dikin, ji gava pêş de ez ê her kiryarek wusa bi hûrgulî venabêjim, lê li ku derê dibe ku dijwarî hebin, ez ê bê guman rave bikim.

Ez bi gelemperî navnavan bikar tînim, ji ber vê yekê kurtenivîsên ku di vê beşê de têne bikar anîn li vir têne destnîşan kirin:

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

Plan amade ye, em dikarin dest pê bikin! Û bê guman, "Tabika sêrbaz" ji bîr nekin (Binêre Beş 1).

gav 4

Diving Down the Termux:API Rabbit Hole

API, çiqas di vê peyvê de ji bo dilê koderê hevgirtî ye

Ger em dest nedin mijara Termux:API, wê hingê hemî gavên me dikarin bi vegotinek hêsan a hin broşurên mîna "Linux for Dummies" kêm bibin, wekî ku di şîroveyên beşa yekem de rast hate destnîşan kirin.

Pêşî, bila em Termux:API-ê ji Bazara Google Play saz bikin (paşê ji nû ve destpêkirina Termux zirarê nade):

Termux gav bi gav (Beş 2)

Piştre em hewce ne ku pakêta API-ê di konsolê Termux de saz bikin:

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

Ji bo ceribandinan ez Android 5.1.1 bikar tînim, ji bo xwedan Android 7 divê hûn Termux:API 'parastinê' bikin û biçin Settings > Serlêdanên Parastî, wekî din API bang dike termux-battery-status, dê cemidîne. (Cm. proje wiki)

Naha ew dem e ku meriv ji nêz ve li kapasîteyên bidestxistî binêre. Danasîna herî dawî û berfireh a Termux:API dikare li vir were dîtin proje wiki. Ez ê hewl bidim ku ya herî dîtbar û balkêş hilbijêrin, ku dê bihêle ku ez di pêşerojê de di xebata serbixwe de çêtir bibim.

Hin mînakên Termux:API

  • termux-battery-status
    Rewşa pîlê vedigerîne
    Termux gav bi gav (Beş 2)
  • termux-brightness
    Ronahiya ekranê ji 0 heta 255 destnîşan dike
    Termux gav bi gav (Beş 2)
  • termux-toast
    Agahiyek pop-upê ya demkî nîşan dide
    Termux gav bi gav (Beş 2)
  • termux-torch
    Di nav de çira
    Termux gav bi gav (Beş 2)
  • termux-wifi-scaninfo
    Agahdariya li ser paşîna paşîn a torên Wi-Fi vedigerîne
    Termux gav bi gav (Beş 2)

Hêsan e ku meriv bibîne ku nirxên vegerê rêzik, ferheng, navnîşên ferhengan in, di bingeh de celebên daneyê ku Python bi wan re baş dixebite, ji ber vê yekê gava paşîn sazkirina wê ye.

gav 5

Python û nano saz bikin

Ji bo sazkirina Python, di termînalê de binivîsin:

updg
apt install python
apt install python2

Naha me Python 2 û 3 saz kiriye.

Dema ku li ser vê gotarê dixebitim, min edîtorek nivîsê ya din, nano, ku min ji vim-ê bêtir jê hez kir, kifş kir, em wê saz bikin:

apt install nano

Bikaranîna wê ji vim-ê hêsantir e, û nano pêwendiyek bikarhêner-hevaltir heye. Li ser cîhazek Android-ê, vim hîn hêsantir e.

HelloWorld li Python li Termux

Bi gelemperî, gengaz bû ku bêyî vê xalê were kirin, lê sazkirina Python li Termux û nenivîsandina HelloWorld, bi dîtina min, şêwazek xirab e.

Armanca min ne ew e ku ez hînî kesî bikim Python, ji ber vê yekê yên ku nizanin dikarin bi hêsanî kodê kopî bikin (an jî bi serê xwe dest bi fêrbûnê bikin, xwezî têra wêjeyê heye), û yên ku dizanin dikarin bi xwe tiştek bişon. Û li ser bêdeng, ez ê rêyek jî nîşanî we bidim ku hûn bêyî edîtorê di termînalê de nivîsê têkevin.

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 gav bi gav (Beş 2)

Ger di dema pêvajoya têketinê de we xeletiyek nedît û berê pêl Enter kiribe, wê hingê hûn ê nikaribin biçin rêza li jor; ji bo vê yekê, bi tikandina Ctrl + D-ê têketinê biqedînin (hûn dikarin Ctrl + Z jî qut bikin) û her tiştî ji destpêkê ve dubare bike. Ji ber ku me '>' bikar anî, pel dê bi tevahî ji nû ve were nivîsandin. Ji ber vê yekê, ez vê rêbaza têketinê pêşniyar nakim heya ku hûn pê ewle nebin ku hûn ê tavilê kodê bêyî xeletî binivîsin.

gav 6

Nivîsarên Bash

Skrîptên Bash rêyek girîng e ku hûn karê termînalê otomatîk bikin. Skrîpt pelek e bi dirêjkirina .sh (bervekirin vebijarkî ye) ku komek fermanên termînalê vedihewîne, ku hin ji wan me berê xwendiye. Vir lîsteya herî emrên, divê her tişt bixebite, lê ji kerema xwe not bikin ku ev navnîşek ji bo Linux-ê "mezin" e, û ne ji bo Termux, lê tenê Tiştên mezin li ser nivîsarên bash.

Bi karanîna senaryoyan hûn dikarin hema hema hemî kiryarên monoton otomatîk bikin. Ka em skrîptek bash a hêsan binivîsin ku nirxê ji guherbara ku wê afirandiye derdixe, ez ê dîsa cat bikar bînim, hûn dikarin edîtorek nivîsê ya normal bikar bînin, û yên ku bi taybetî dixwazin xwe perwerde bikin dikarin echo bikar bînin.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux gav bi gav (Beş 2)

Nivîsara Bash bi Termux:API

Werin em ji HelloWorlds-ên navdar tiştek cûda binivîsin, lê ew qas bêkêr. Nivîsara me dê bibe:

  1. daxwaza API-ê ya termux-battery-status pêk bînin
  2. daneyên wergirtî di pelê test.txt de tomar bike
  3. daneyên pelê li ser ekranê nîşan bide
  4. bernameya hello-world.py ya ku berê hatî nivîsandin bicîh bîne
  5. Daneyên ku ji bernameyê hatine wergirtin di pelê test.txt de binivîsin
  6. daneyên pelê li ser ekranê nîşan bide
  7. daneyan ji pelê veguhezîne ser clipboard
  8. naveroka clipboard nîşan bide
  9. peyamek pop-up bi daneya ji clipboard nîşan bide

Pêşî, em peldankek ji bo xebatê biafirînin û hello-world.py li wir wekî test.py kopî bikin, pelan test.sh û test.txt di vê peldankê de biafirînin:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Naha, bi her awayê hêsan, skrîptê li pelê test.sh binivîsin:

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

Naha em di peldanka bashscript de dinivîsin ./test.sh Em di termînalê de li ser cîhazek Android-ê dibînin:

Termux gav bi gav (Beş 2)

Ji ber vê yekê me skrîpta bash a plankirî nivîsî. Hûn dikarin wê bi derxistina agahdariya li ser pêkanîna her çalakiyê li konsolê (bikaranîna echo) veqetînin, ez ê vê yekê ji xwendevanan re bihêlim.

gav 7

Werin em tiştekî kêrhatî bikin

nisbeten kêrhatî

Werin em şertên referansê formule bikin
Piştî destpêkirinê, pêdivî ye ku serîlêdan xêzek rasthatî ji pelek li ser klîpboardê bi cîh bike û bi peyamek pop-up re vê yekê agahdar bike.

Ka em skrîptek bash wekî bingehek bigirin û bi karanîna binavûdengek Python xêzek bêserûber ji pelê derxînin. Ka em ji bo senaryoyê planek çêbikin:

  1. Binrûtîn bixebitîne
  2. Encama binrûtînê veguhezîne ser clipboard
  3. Peyamek pop-up nîşan bide

Ka em li ser navên pelrêça û pelên serîlêdanê biryar bidin:

  • Peldanka rndstr di pelrêça malê de
    • çavkanî - pelê ku em ê rêzan jê bistînin
    • rndstr.py - binavberek ku ji pelê çavkanî berbi konsolê xêzek bêserûber çap dike
    • rndstr.sh - pelê skrîptê

Em pelrêça serîlêdanê diafirînin û diçin nav wê û li wir pelan diafirînin.

Du xalên pêşîn ên plansaziya skrîptê dikarin ji hêla boriyê ve bêne hev kirin, di encamê de, bi karanîna Termux:API em distînin:

#!/bin/bash

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

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

Di pelê çavkaniyê de hûn dikarin her nivîsek bi mentiqî li rêzan dabeş bikin, min biryar da ku aforîzmayan deynim:

Navnîşa pelê çavkaniyê

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

Tiştê ku divê em bikin ev e ku birûtekek ku ji pelê çavkaniyê rêzek bêserûber derxe biafirînin.
Ka em algorîtmaya binrûtîn diyar bikin:

  1. Pelê çavkaniyê vekin
  2. Di pelek vekirî de hejmara rêzan dihejmêre
  3. Pelê bigre (ne wateya ku ew pir dirêj vekirî bimîne)
  4. Di nav hejmara rêzikên pelê çavkaniyê de jimareyek bêkêmasî çêbike
  5. Pelê çavkaniyê vekin
  6. Em xêzek li binê hejmara hejmara hatî çêkirin nîşan didin
  7. Girtina pelê

Ka em algorîtmayê di Python de bicîh bikin (ez di bin Python 3.7 de dinivîsim):

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

Piştî ku pel hatin çêkirin û nivîsandin, hûn hewce ne ku mafên darvekirinê bidin pelê rndstr.sh, û ji bo destpêkirina bilez navekî biafirînin.

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

Niha bi ketina termînalê rnst em ê aforîzmek bêserûber li ser clipboard-ê bistînin, ku, mînakî, dikare di pêwendiyê de were bikar anîn.

Ji ber vê yekê me bi kêmanî tiştek kêrhatî nivîsand. nisbeten kêrhatî.

ZEBR

Di gava paşîn de, min bi qestî dîmenên dîmen peyda nekir û hin kiryaran bi hûrgulî analîz nekir, tenê naveroka dosyayan rave kir da ku xwendevan fersendê hebe ku bi serê xwe bixebitin.

Ez difikirim ku hêja ye ku ev "Termux gav bi gav" biqedîne. Bê guman, ev tenê gavên pêşîn in, lê naha hûn dikarin bi tena serê xwe pêşde biçin.

Di destpêkê de, min plan kir ku di vê rêzê de nîşan bidim ka meriv çawa nmap, sqlmap bikar tîne, lê bêyî min jî jixwe gelek gotar li ser vê mijarê hene. Heke hûn dixwazin ez rêzenivîsa "Termux gav bi gav" bidomînim, wê hingê li jêr anketek heye û di şîroveyan de hûn dikarin pêşniyar bikin ka meriv li ser çi binivîsîne.

Tenê bikarhênerên qeydkirî dikarin beşdarî anketê bibin. Têketinji kerema xwe.

"Termux gav bi gav" bidomînin?

  • ku

  • na

2 bikarhêneran deng dan. Bê alî tune ne.

Source: www.habr.com

Add a comment