Termux hatua kwa hatua (Sehemu ya 2)

В sehemu ya mwisho tulifahamiana na amri za kimsingi za Termux, tukasanidi unganisho la SSH kwa Kompyuta, tukajifunza jinsi ya kuunda alias na kusanikisha huduma kadhaa muhimu. Wakati huu tunapaswa kupiga hatua zaidi, tuko pamoja nawe:

  • jifunze kuhusu Termux:API
  • sakinisha Python na nano, na uandike "Hujambo, ulimwengu!" katika Python
  • jifunze juu ya maandishi ya bash na uandike hati kwa kutumia Termux:API
  • kwa kutumia hati ya bash, Termux:API na Python tutaandika programu rahisi

Kwa kuwa sasa tunaelewa kile amri zilizoingia zinafanya, kutoka kwa hatua inayofuata sitaelezea kila hatua kwa undani kama hiyo, lakini ambapo kunaweza kuwa na shida, hakika nitaelezea.

Ninatumia lakabu nyingi, kwa hivyo vifupisho vilivyotumika katika sehemu hii vinaonyeshwa hapa:

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

Mpango uko tayari, unaweza kuanza! Na bila shaka, usisahau kuhusu "kichupo cha uchawi" (Angalia Sehemu ya 1).

Hatua ya 4

Kupiga mbizi Chini ya Termux: API Sungura Hole

API ni kiasi gani kimeunganishwa katika neno hili kwa moyo wa msimbo

Ikiwa hatutagusa mada ya Termux: API, basi hatua zetu zote zinaweza kupunguzwa kwa utaftaji rahisi wa brosha fulani kama "Linux for Dummies", kama ilivyobainishwa kwa usahihi kwenye maoni hadi sehemu ya kwanza.

Kwanza, sakinisha Termux:API kutoka Soko la Google Play (haina madhara kuwasha tena Termux baadaye):

Termux hatua kwa hatua (Sehemu ya 2)

Ifuatayo, tunahitaji kusanikisha kifurushi cha API kwenye koni ya Termux:

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

Kwa majaribio ninatumia Android 5.1.1, kwa wamiliki wa Android 7 wanahitaji "kulinda" Termux: API kwa kwenda kwenye 'Settings' > 'Protected Apps' vinginevyo API itapiga simu kama vile. termux-battery-status, itaning'inia. (Sentimita. wiki ya mradi)

Sasa inafaa kuangalia kwa karibu fursa zilizopatikana. Maelezo ya hivi punde na ya kina zaidi ya Termux:API yanaweza kupatikana katika wiki ya mradi. Nitajaribu kuchagua zaidi ya kuona na ya kuvutia, ambayo itaniruhusu kujaza mkono wangu kwa kazi ya kujitegemea katika siku zijazo.

Baadhi ya Termux: API mifano

  • termux-betri-hali
    Hurejesha hali ya betri
    Termux hatua kwa hatua (Sehemu ya 2)
  • termux-mwangaza
    Huweka mwangaza wa skrini kutoka 0 hadi 255
    Termux hatua kwa hatua (Sehemu ya 2)
  • termux-toast
    Inaonyesha arifa ya muda ya toast
    Termux hatua kwa hatua (Sehemu ya 2)
  • termux-mwenge
    Inajumuisha tochi
    Termux hatua kwa hatua (Sehemu ya 2)
  • termux-wifi-scaninfo
    Hurejesha maelezo kuhusu utafutaji wa mwisho wa mitandao ya Wi-Fi
    Termux hatua kwa hatua (Sehemu ya 2)

Ni rahisi kuona kwamba maadili ya kurudi ni kamba, kamusi, orodha za kamusi, kwa ujumla, aina za data ambazo Python inafanya kazi vizuri, kwa hivyo hatua inayofuata ni kuiweka.

Hatua ya 5

Weka Python na nano

Ili kufunga Python, andika kwenye terminal:

updg
apt install python
apt install python2

Sasa tuna Python 2 na 3 iliyosakinishwa.

Wakati nikifanya kazi kwenye nakala hiyo, niligundua hariri nyingine ya maandishi ya nano ambayo nilipenda zaidi kuliko vim, wacha tuisanishe:

apt install nano

Ni rahisi kutumia kuliko vim, na nano ina kiolesura cha kirafiki zaidi. Kwenye kifaa cha Android, vim bado ni rahisi zaidi.

HelloWorld katika Python huko Termux

Kwa kiasi kikubwa, iliwezekana kufanya bila kipengee hiki, lakini kuweka Python katika Termux na si kuandika HelloWorld, kwa maoni yangu, ni tabia mbaya.

Sijiwekei lengo la kufundisha mtu yeyote Python, kwa hivyo wale ambao hawajui wanaweza kunakili msimbo tu (au kuanza kujifunza peke yao, kwa kuwa kuna fasihi ya kutosha), na wale wanaojua wanaweza kutengeneza kitu wenyewe. Nami "chini ya kivuli" bado nitaonyesha njia ya kuingiza maandishi kwenye terminal bila mhariri.

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 hatua kwa hatua (Sehemu ya 2)

Ikiwa haukuona hitilafu wakati wa mchakato wa uingizaji na tayari umesisitiza Ingiza, basi hutaweza kwenda kwenye mstari hapo juu, ili kufanya hivyo, malizia pembejeo kwa kushinikiza Ctrl + D (unaweza kukatiza kwa ujumla Ctrl + Z) na kurudia kila kitu tangu mwanzo. Kwa kuwa tulitumia '>' basi faili itafutwa kabisa. Kwa sababu hii, sipendekezi kutumia njia hii ya kuingiza isipokuwa una uhakika kwamba utaandika msimbo mara moja bila makosa.

Hatua ya 6

maandishi ya bash

Maandishi ya Bash ni njia nzuri ya kubinafsisha kazi yako ya wastaafu. Hati ni faili iliyo na kiendelezi cha .sh (kiendelezi ni cha hiari) kilicho na seti ya amri za wastaafu, ambazo baadhi yake tumejifunza tayari. Hapa orodha ya amri nyingi, kila kitu kinapaswa kufanya kazi, lakini kumbuka kuwa hii ni orodha ya "watu wazima" Linux, si Termux, lakini tu nyenzo nzuri kwenye maandishi ya bash.

Kwa msaada wa maandishi, unaweza kubinafsisha karibu vitendo vyote vya monotonous. Wacha tuandike maandishi rahisi zaidi ya bash ambayo yanaonyesha dhamana kutoka kwa kibadilishaji alichounda, nitatumia paka tena, unaweza kutumia kihariri cha maandishi cha kawaida, na wale ambao wanataka kujifundisha wenyewe wanaweza kutumia 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 hatua kwa hatua (Sehemu ya 2)

Hati ya Bash iliyo na Termux:API

Wacha tuandike kitu tofauti na HelloWorlds maarufu, lakini haina maana. Nakala yetu itakuwa:

  1. tekeleza ombi la termux-battery-status API
  2. hifadhi data iliyopokelewa kwenye faili test.txt
  3. chapisha data kutoka kwa faili hadi skrini
  4. tekeleza programu ya hello-world.py iliyoandikwa hapo awali
  5. andika data iliyopokelewa kutoka kwa programu hadi faili test.txt
  6. chapisha data kutoka kwa faili hadi skrini
  7. kuhamisha data kutoka kwa faili hadi kwenye ubao wa kunakili
  8. onyesha yaliyomo kwenye ubao wa kunakili
  9. onyesha ujumbe ibukizi na data kutoka kwenye ubao wa kunakili

Kwanza, unda folda ya kazi na unakili hello-world.py hapo kama test.py, unda faili za test.sh na test.txt kwenye folda hii:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Sasa, kwa njia yoyote rahisi, andika hati kwa faili ya 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

Sasa, tukiwa kwenye folda ya bashscript, tunaandika ./test.sh tunaona kwenye terminal kwenye kifaa cha Android:

Termux hatua kwa hatua (Sehemu ya 2)

Kwa hivyo tuliandika hati ya bash iliyopangwa. Unaweza kuipunguza na pato kwa koni ya habari juu ya utekelezaji wa kila hatua (kwa kutumia echo), nitaacha hii kwa wasomaji.

Hatua ya 7

Hebu tufanye jambo la manufaa

Inafaa kwa kiasi

Hebu tutengeneze hadidu za rejea
Baada ya uzinduzi, programu inapaswa kuweka laini ya nasibu kutoka kwa faili kwenye ubao wa kunakili na kuarifu kuihusu kwa ujumbe ibukizi.

Tutachukua hati ya bash kama msingi, tutatoa laini isiyo ya kawaida kutoka kwa faili kwa kutumia njia ndogo ya Python. Wacha tufanye mpango wa kazi ya maandishi:

  1. Endesha utaratibu mdogo
  2. Hamisha matokeo ya utaratibu mdogo kwenye ubao wa kunakili
  3. Onyesha ujumbe ibukizi

Wacha tufafanue majina ya saraka na faili za programu:

  • rndstr folda kwenye saraka ya nyumbani
    • chanzo - faili ambayo tutachukua mistari
    • rndstr.py - utaratibu mdogo unaoonyesha laini isiyo ya kawaida kutoka kwa faili ya chanzo hadi koni
    • rndstr.sh - faili ya hati

Unda saraka ya programu na uhamishe kwake na uunda faili hapo.

Pointi mbili za kwanza za mpango wa hati zinaweza kuunganishwa na bomba, kama matokeo, kwa kutumia Termux: API tunapata:

#!/bin/bash

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

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

Katika faili ya chanzo, unaweza kuweka maandishi yoyote kimantiki yaliyogawanywa katika mistari, niliamua kuweka aphorisms:

Orodha ya faili za chanzo

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

Tunahitaji tu kuunda utaratibu mdogo ambao hutoa mfuatano wa nasibu kutoka kwa faili chanzo.
Wacha tuandike algorithm ya subroutine:

  1. Fungua faili ya chanzo
  2. Kuhesabu idadi ya mistari katika faili wazi
  3. Funga faili (hakuna kitu cha kuiweka wazi kwa muda wa ziada)
  4. Tunatengeneza nambari kamili ndani ya idadi ya mistari ya faili chanzo
  5. Fungua faili ya chanzo
  6. Tunatoa mstari chini ya nambari ya nambari inayozalishwa
  7. Kufunga faili

Tunatumia algorithm katika Python (ninaandika chini ya 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  #  закрываем файл

Baada ya faili kuundwa na kuandikwa, unahitaji kutoa ruhusa ya utekelezaji wa faili rndstr.sh, na uunde lakabu kwa uzinduzi wa haraka.

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

Sasa unaandika kwenye terminal rnst tutapata aphorism ya nasibu kwenye ubao wa kunakili, ambayo, kwa mfano, inaweza kutumika katika mawasiliano.

Hapa tumeandika angalau kitu muhimu. Inafaa kwa kiasi.

Zab

Katika hatua ya mwisho, kwa makusudi sikutoa viwambo vya skrini na sikuchambua kwa undani baadhi ya vitendo, kuandika tu yaliyomo kwenye faili ili wasomaji wawe na fursa ya kufanya kazi peke yao.

Kwenye hii "Termux hatua kwa hatua", nadhani inafaa kumaliza. Kwa kweli, hizi ni hatua za kwanza tu, lakini sasa unaweza kusonga mbele mwenyewe.

Hapo awali, nilipanga kuonyesha katika mzunguko huu jinsi ya kutumia nmap, sqlmap, lakini bila mimi tayari kuna nakala nyingi kwenye mada hii. Ikiwa unataka niendelee mzunguko wa "Termux hatua kwa hatua", basi kuna uchunguzi hapa chini na katika maoni unaweza kupendekeza nini kingine cha kuandika.

Watumiaji waliojiandikisha pekee ndio wanaweza kushiriki katika utafiti. Weka sahihitafadhali.

Ungependa kuendelea "Termux hatua kwa hatua"?

  • Да

  • Hakuna

Watumiaji 2 walipiga kura. Hakuna abstentions.

Chanzo: mapenzi.com

Kuongeza maoni