Termux etap pa etap (Pati 2)

В dènye pati Nou te fè konesans ak kòmandman Termux debaz yo, mete yon koneksyon SSH ak yon PC, te aprann kijan pou kreye alyas ak enstale plizyè sèvis piblik itil. Fwa sa a nou dwe ale pi lwen, nou avèk ou:

  • aprann sou Termux:API
  • Ann enstale Python ak nano, epi tou ekri "Bonjou, mond!" nan Python
  • aprann sou scripts bash epi ekri yon script lè l sèvi avèk Termux:API
  • Ann ekri yon pwogram senp lè l sèvi avèk yon script bash, Termux:API ak Python

Depi kounye a nou konprann sa kòmandman yo antre fè, soti nan pwochen etap la mwen pa pral dekri chak aksyon an detay sa yo, men kote ka gen difikilte, mwen pral definitivman eksplike.

Mwen souvan itilize alyas, kidonk abrevyasyon yo itilize nan pati sa a yo montre isit la:

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

Plan an pare, nou ka kòmanse! Ak nan kou, pa bliye sou "Onglet majik la" (Gade Pati 1).

Etap 4

Plonje anba Termux:API Rabbit Twou a

API, ki kantite nan pawòl sa a pou kè coder a te fusion

Si nou pa manyen sijè Termux:API a, lè sa a tout etap nou yo ta ka redwi a yon senp rakonte kèk bwochi tankou "Linux for Dummies," jan yo te byen note nan kòmantè yo nan premye pati a.

Premyèman, ann enstale Termux:API soti nan Google Play Market (apre sa li pa pral fè mal rekòmanse Termux):

Termux etap pa etap (Pati 2)

Apre sa, nou bezwen enstale pake API a nan konsole Termux la:

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

Pou eksperyans mwen ap itilize Android 5.1.1, pou mèt Android 7 ou bezwen 'pwoteje' Termux:API a lè w ale nan Anviwònman> Aplikasyon Pwoteje, otreman API apèl tankou termux-battery-status, pral friz. (Cm. wiki pwojè)

Koulye a, li lè yo pran yon gade pi pre nan kapasite yo akeri. Ou ka jwenn deskripsyon ki pi resan ak detaye Termux:API nan wiki pwojè. Mwen pral eseye chwazi pi vizyèl ak enteresan an, ki pral pèmèt mwen jwenn pi bon nan travay endepandan nan tan kap vini an.

Kèk egzanp sou Termux:API

  • termux-batri-estati
    Retounen estati batri a
    Termux etap pa etap (Pati 2)
  • termux-klere
    Mete klète ekran ant 0 ak 255
    Termux etap pa etap (Pati 2)
  • termux-griye
    Montre yon notifikasyon pop-up tanporè
    Termux etap pa etap (Pati 2)
  • termux-torch
    Gen ladann flach
    Termux etap pa etap (Pati 2)
  • termux-wifi-scaninfo
    Retounen enfòmasyon sou dènye eskanè rezo Wi-Fi yo
    Termux etap pa etap (Pati 2)

Li fasil pou wè ke valè retounen yo se fisèl, diksyonè, lis diksyonè, fondamantalman kalite done ki Python travay byen ak, kidonk pwochen etap la se mete li kanpe.

Etap 5

Enstale Python ak nano

Pou enstale Python, ekri nan tèminal la:

updg
apt install python
apt install python2

Koulye a, nou gen Python 2 ak 3 enstale.

Pandan m ap travay sou atik sa a, mwen dekouvri yon lòt editè tèks, nano, ki mwen te renmen plis pase vim, ann enstale li:

apt install nano

Li pi fasil pou itilize pase vim, ak nano gen yon koòdone ki pi fasil pou itilizatè. Sou yon aparèy Android, vim toujou pi pratik.

HelloWorld nan Python nan Termux

An jeneral, li te posib fè san pwen sa a, men enstale Python nan Termux epi yo pa ekri HelloWorld, nan opinyon mwen, se move fason.

Objektif mwen se pa anseye pèsonn Python, kidonk moun ki pa konnen ka senpleman kopye kòd la (oswa kòmanse aprann poukont yo, erezman gen ase literati), ak moun ki konnen yo ka skultur yon bagay tèt yo. Ak sou trankil la, mwen pral montre w tou yon fason yo antre tèks nan tèminal la san yo pa yon editè.

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 etap pa etap (Pati 2)

Si pandan pwosesis la antre ou pa remake yon erè epi ou te deja peze Enter, Lè sa a, ou pa pral kapab ale nan liy ki anwo a; pou fè sa, fini antre nan peze Ctrl + D (ou ka menm entèwonp Ctrl + Z) ak repete tout bagay depi nan konmansman an. Depi nou itilize '>' dosye a pral konplètman reekri. Pou rezon sa a, mwen pa rekòmande pou itilize metòd opinyon sa a sof si ou sèten ou pral ekri kòd la touswit san erè.

Etap 6

Bash scripts

Scripts Bash yo se yon bon fason pou otomatize travay tèminal ou a. Script la se yon dosye ki gen ekstansyon .sh (ektansyon an opsyonèl) ki gen yon seri kòmandman tèminal, kèk nan yo nou te deja etidye. Isit la lis pifò kòmandman yo, tout bagay ta dwe travay, men tanpri sonje ke sa a se yon lis pou "granmoun" Linux, epi yo pa pou Termux, men jis Gwo bagay sou scripts bash.

Sèvi ak scripts ou ka otomatize prèske tout aksyon monotone. Se pou yo ekri yon senp script bash ki soti valè a soti nan varyab la li te kreye, mwen pral ankò itilize chat, ou ka itilize yon editè tèks nòmal, ak moun ki espesyalman vle fòme tèt yo ka itilize eko.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux etap pa etap (Pati 2)

Bash script ak Termux:API

Ann ekri yon bagay diferan de HelloWorlds yo notwa, men menm jan initil. Script nou an pral:

  1. fè demann API termux-battery-status
  2. sove done yo resevwa nan dosye test.txt la
  3. montre done ki sòti nan yon dosye sou ekran an
  4. egzekite pwogram hello-world.py ki te deja ekri a
  5. Ekri done yo te resevwa nan men pwogram nan nan dosye a test.txt
  6. montre done ki sòti nan yon dosye sou ekran an
  7. transfere done ki sòti nan yon dosye nan clipboard la
  8. montre sa ki nan clipboard la
  9. montre yon mesaj pop-up ak done ki soti nan clipboard la

Premyèman, ann kreye yon katab pou travay epi kopye hello-world.py la kòm test.py, kreye dosye yo test.sh ak test.txt nan katab sa a:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Koulye a, nan nenpòt fason pratik, ekri script la nan dosye a 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

Koulye a, yo te nan katab la bashscript nou ekri ./test.sh Nou wè nan tèminal la sou yon aparèy android:

Termux etap pa etap (Pati 2)

Se konsa, nou te ekri script bash te planifye a. Ou ka delye li lè w bay enfòmasyon sou egzekisyon chak aksyon nan konsole a (lè l sèvi avèk eko), mwen pral kite sa a pou lektè yo.

Etap 7

Ann fè yon bagay itil

Relativman itil

Ann fòmile tèm referans yo
Apre lansman, aplikasyon an ta dwe mete yon liy o aza ki soti nan yon dosye sou clipboard la epi notifye sou sa a ak yon mesaj pop-up.

Ann pran yon script bash kòm yon baz epi ekstrè yon liy o aza nan yon dosye lè l sèvi avèk yon sousroutine Python. Ann fè yon plan pou script la:

  1. Kouri souroutine
  2. Transfere rezilta souroutine a nan clipboard la
  3. Montre yon mesaj pop-up

Ann deside sou non anyè ak dosye aplikasyon yo:

  • rndstr katab nan anyè lakay ou
    • sous - dosye a soti nan ki nou pral pran liy
    • rndstr.py - yon sousroutine ki enprime yon liy o aza soti nan fichye sous la nan konsole a
    • rndstr.sh - dosye script

Nou kreye anyè aplikasyon an epi deplase nan li epi kreye dosye la.

De premye pwen yo nan plan script la ka konbine pa yon tiyo, kòm yon rezilta, lè l sèvi avèk Termux:API nou jwenn:

#!/bin/bash

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

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

Nan dosye sous la ou ka mete nenpòt tèks ki lojikman divize an liy, mwen deside mete aforism:

Lis dosye sous

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

Tout sa nou dwe fè se kreye yon sousroutine ki ekstrè yon fisèl o aza nan dosye sous la.
Ann dekri algorithm souroutine a:

  1. Louvri fichye sous la
  2. Konte kantite liy ki nan yon dosye louvri
  3. Fèmen fichye a (pa gen okenn pwen pou kenbe l louvri pou twò lontan)
  4. Jenere yon nonb antye relatif nan kantite liy ki nan fichye sous la
  5. Louvri fichye sous la
  6. Nou montre yon liy anba nimewo nimewo ki te pwodwi a
  7. Fèmen fichye a

Ann aplike algorithm nan Python (mwen ekri anba 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  #  закрываем файл

Apre yo fin kreye ak ekri dosye yo, ou bezwen bay dwa ekzekisyon nan dosye a rndstr.sh, epi kreye yon alyas pou lansman rapid.

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

Koulye a, pa antre nan tèminal la rnst nou pral resevwa yon aforism o aza sou clipboard la, ki, pou egzanp, ka itilize nan korespondans.

Se konsa, nou te ekri omwen yon bagay itil. Relativman itil.

Ps

Nan dènye etap la, mwen fè espre pa bay Ekran epi yo pa t analize an detay kèk nan aksyon yo, ki dekri sèlman sa ki nan dosye yo pou ke lektè yo te gen opòtinite pou yo travay poukont yo.

Mwen panse ke li vo fini sa a "Termux etap pa etap". Natirèlman, sa yo se jis premye etap yo, men kounye a ou ka avanse poukont ou.

Okòmansman, mwen te planifye yo montre nan seri sa a ki jan yo sèvi ak nmap, sqlmap, men menm san mwen gen deja anpil atik sou sijè sa a. Si ou vle m 'kontinye seri "Termux etap pa etap", Lè sa a, gen yon sondaj anba a ak nan kòmantè yo ou ka sijere ki lòt bagay yo ekri sou.

Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.

Kontinye "Termux etap pa etap"?

  • Да

  • Pa gen

2 itilizatè yo te vote. Pa gen abstansyon.

Sous: www.habr.com

Add nouvo kòmantè