Termux inyathelo ngenyathelo (Icandelo 2)

В inxalenye yokugqibela siye saqhelana nemiyalelo esisiseko yeTermux, seta uqhagamshelo lwe-SSH kwiPC, safunda ukwenza ii-alias kunye nokufaka izinto ezininzi eziluncedo. Ngeli xesha kufuneka sinyathele ngakumbi, sikuwe:

  • funda malunga neTermux:API
  • faka iPython kunye ne-nano, kwaye ubhale "Molo, hlabathi!" kwiPython
  • funda malunga nezikripthi ze-bash kwaye ubhale iskripthi usebenzisa i-termux: API
  • usebenzisa i-bash script, Termux: API kunye nePython siya kubhala inkqubo elula

Ekubeni ngoku siyaqonda ukuba yintoni imiyalelo yokufaka igalelo, ngoko ukusuka kwinqanaba elilandelayo andiyi kuchaza isenzo ngasinye kwiinkcukacha ezinjalo, kodwa apho kunokubakho ubunzima, ndiya kuchaza ngokuqinisekileyo.

Ndisebenzisa iziteketiso kakhulu, ke izifinyezo ezisetyenziswe kweli candelo zibonisiwe apha:

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

Isicwangciso silungile, ungaqala! Kwaye ke, musa ukulibala malunga "neTab yomlingo" (Jonga iCandelo 1).

Isinyathelo 4

Ukuntywila phantsi kweSigaba: API Rabbit Hole

I-API idityaniswe malini kweli gama kwintliziyo yekhowudi

Ukuba asiyikuchukumisa isihloko se-Termux: API, ke onke amanyathelo ethu angancitshiswa ukuba aphinde abuyele kwincwadana ethile efana ne "Linux for Dummies", njengoko kwaphawulwa ngokufanelekileyo kwizimvo kwinxalenye yokuqala.

Okokuqala, faka i-termux: API kwiMarike ye-Google Play (ayibuhlungu ukuqala kwakhona i-Termux emva koko):

Termux inyathelo ngenyathelo (Icandelo 2)

Okulandelayo, kufuneka sifake iphakheji ye-API kwikhonsoli ye-Termux:

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

Ukuzama ndisebenzisa i-Android 5.1.1, ye-Android 7 abanini kufuneka "bakhusele" Termux: API ngokuya kwi-'Settings' > 'Protected Apps' kungenjalo i-API ibiza njenge termux-battery-status, iya kuxhoma. (I-cm. wiki yeprojekthi)

Ngoku kuyafaneleka ukuba sijonge ngakumbi amathuba afunyenweyo. Inkcazo yamva nje kunye neyona nkcukacha ye-Termux: API inokufumaneka wiki yeprojekthi. Ndiya kuzama ukukhetha eyona nto ibonakalayo kwaye inomdla, eya kundivumela ukuba ndizalise isandla sam kumsebenzi ozimeleyo kwixesha elizayo.

Eminye Termux:API imizekelo

  • termux-ibhetri-imo
    Ibuyisela imeko yebhetri
    Termux inyathelo ngenyathelo (Icandelo 2)
  • termux-ukukhanya
    Iseta ukukhanya kwesikrini ukusuka ku-0 ukuya ku-255
    Termux inyathelo ngenyathelo (Icandelo 2)
  • termux-toast
    Ibonisa isaziso sexeshana
    Termux inyathelo ngenyathelo (Icandelo 2)
  • termux-totshi
    Ibandakanya isibane
    Termux inyathelo ngenyathelo (Icandelo 2)
  • termux-wifi-scaninfo
    Ibuyisela ulwazi malunga nokuskena kokugqibela kothungelwano lwe-Wi-Fi
    Termux inyathelo ngenyathelo (Icandelo 2)

Kulula ukubona ukuba amaxabiso embuyekezo yimitya, izichazi-magama, uluhlu lwezichazi-magama, ngokubanzi, iindidi zedatha iPython esebenza kakuhle nazo, ke inyathelo elilandelayo kukuseta.

Isinyathelo 5

Faka iPython kunye ne-nano

Ukufakela iPython, bhala kwi-terminal:

updg
apt install python
apt install python2

Ngoku sinePython emi-2 neyesi-3 efakiweyo.

Ngelixa ndisebenza kwinqaku, ndifumene omnye umhleli wombhalo we-nano endiwuthande ngaphezu kwe-vim, masiyifake:

apt install nano

Kulula ukuyisebenzisa kune-vim, kwaye i-nano inonxibelelwano olusebenziseka lula. Kwisixhobo se-Android, i-vim isasebenza ngakumbi.

HelloWorld kwiPython eTermux

Ngokubanzi, bekunokwenzeka ukwenza ngaphandle kwale nto, kodwa ukubeka iPython kwi-Termux kwaye ungabhali i-HelloWorld, ngombono wam, kukuziphatha okubi.

Andizibeki usukelo lokufundisa nabani na iPython, ngoko ke abo bangayaziyo banokukhuphela ikhowudi (okanye baqalise ukufunda bebodwa, kuba kukho uncwadi olwaneleyo), kwaye abo baziyo banokwenza into ngokwabo. Kwaye ndiza "phantsi komfanekiso" ndisabonisa indlela yokufaka umbhalo kwi-terminal ngaphandle komhleli.

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 inyathelo ngenyathelo (Icandelo 2)

Ukuba awuqaphelanga mpazamo ngexesha lenkqubo yokufaka kwaye sele ucinezele u-Enter, ngoko awuyi kukwazi ukuya kumgca ongentla, ukwenza oku, phelisa igalelo ngokucinezela i-Ctrl + D (unokuphazamisa ngokubanzi i-Ctrl + Z) kwaye phinda yonke into ukusuka ekuqaleni. Kuba sisebenzise '>' ke ifayile iya kubhalwa ngaphezulu ngokupheleleyo. Ngesi sizathu, andicebisi ukusebenzisa le ndlela yokufaka ngaphandle kokuba uqinisekile ukuba uya kubhala ikhowudi ngokukhawuleza ngaphandle kweempazamo.

Isinyathelo 6

Izikripthi zeBash

Izikripthi zeBash ziyindlela entle yokwenza umsebenzi wakho weterminal. Ushicilelo yifayile enolwandiso lwe-.sh (ulwandiso alukhethi) luqulathe uluhlu lwemiyalelo yesiphelo, eminye yayo sele siyifundile. Apha uluhlu lwemiyalelo emininzi, yonke into kufuneka isebenze, kodwa qaphela ukuba olu luhlu lweLinux "yabantu abadala", hayi iTermux, kodwa nje imathiriyeli enkulu kwizikripthi ze-bash.

Ngoncedo lwezikripthi, unokwenza ngokuzenzekelayo phantse zonke izenzo ezingabonakaliyo. Masibhale esona script silula se-bash esibonisa ixabiso ukusuka kuguquko alwenzileyo, ndiya kusebenzisa ikati kwakhona, ungasebenzisa umhleli wesicatshulwa oqhelekileyo, kwaye abo bafuna ukuziqeqesha ngakumbi banokusebenzisa i-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 inyathelo ngenyathelo (Icandelo 2)

Bash iskripthi esine-Termux:API

Masibhale into eyahlukileyo kwi-HelloWorlds edume kakubi, kodwa ingenamsebenzi. Iskripthi sethu siya kuba:

  1. yenza isicelo se-termux-ibhetri-imeko ye-API
  2. gcina idatha efunyenweyo kwifayile test.txt
  3. printa idatha ukusuka kwifayile ukuya kwikhusi
  4. yenza inkqubo ebhalwe ngaphambili hello-world.py
  5. bhala idatha efunyenwe kwinkqubo kwifayile test.txt
  6. printa idatha ukusuka kwifayile ukuya kwikhusi
  7. hambisa idata kwifayile kwibhodi eqhotyoshwayo
  8. bonisa imixholo yebhodi eqhotyoshwayo
  9. bonisa umyalezo ozivelelayo ngedatha esuka kwibhodi eqhotyoshwayo

Okokuqala, yenza ifolda yomsebenzi kwaye ukhuphele i-hello-world.py apho njenge-test.py, yenza i-test.sh kunye neefayile ze-test.txt kule folda:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Ngoku, nangayiphi na indlela efanelekileyo, bhala iskripthi kwifayile ye-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

Ngoku, ekubeni kwifolda ye-bashscript, sibhala ./test.sh sibona kwi-terminal kwisixhobo se-Android:

Termux inyathelo ngenyathelo (Icandelo 2)

Ke sibhale iskripthi se-bash esicwangcisiweyo. Unokuyihlambulula kunye nemveliso kwi-console yolwazi malunga nokuphunyezwa kwesenzo ngasinye (usebenzisa i-echo), ndiya kushiya oku kubafundi.

Isinyathelo 7

Masenze into eluncedo

Iluncedo ngokwentelekiso

Masiqulunqe imiqathango yereferensi
Emva kokuqaliswa, isicelo kufuneka sibeke umgca ongaqhelekanga kwifayile ekwibhodi eqhotyoshwayo kwaye yazise ngayo ngomyalezo ozivelelayo.

Siza kuthatha iskripthi se-bash njengesiseko, siya kukhupha umgca ongaqhelekanga kwifayile usebenzisa i-subroutine yePython. Masenze isicwangciso somsebenzi weskripthi:

  1. Qhuba inkqubo engaphantsi
  2. Dlulisa isiphumo senkqubo engaphantsi kwibhodi eqhotyoshwayo
  3. Bonisa umyalezo ovelelayo

Masichaze amagama kavimba weefayili kunye neefayile zesicelo:

  • rndstr ulawulo kulawulo lwasekhaya
    • umthombo - ifayile apho siya kuthatha imigca
    • rndstr.py - i-subroutine ebonisa umgca ongakhethiyo ukusuka kwifayile yemvelaphi ukuya kwiconsole
    • rndstr.sh - ifayile yeskripthi

Yenza uluhlu lwesicelo kwaye uye kuyo kwaye wenze iifayile apho.

Amanqaku amabini okuqala esicwangciso sombhalo angadibaniswa ngumbhobho, ngenxa yoko, usebenzisa i-Termux: API esiyifumanayo:

#!/bin/bash

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

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

Kwifayile yemvelaphi, ungabeka nasiphi na isicatshulwa ngokwahlulwe ngokwengqiqo kwimigca, ndigqibe kwelokuba ndibeke aphorisms:

Uluhlu lweefayile zemvelaphi

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

Sidinga nje ukwenza i-subroutine ekhupha umtya ongaqhelekanga kwifayile yomthombo.
Masibhale i-algorithm ye-subroutine:

  1. Vula ifayile yemvelaphi
  2. Ukubala inani lemigca kwifayile evuliweyo
  3. Vala ifayile (akukho nto yokuyigcina ivuliwe ixesha elongezelelweyo)
  4. Senza inani elipheleleyo kwinani lemigca yefayile yemvelaphi
  5. Vula ifayile yemvelaphi
  6. Sikhupha umgca phantsi kwenani lenani elenziweyo
  7. Ukuvala ifayile

Sisebenzisa i-algorithm kwiPython (ndibhala phantsi kwePython 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  #  закрываем файл

Emva kokuba iifayile zenziwe kwaye zibhaliwe, kufuneka unike iimvume zokuphumeza ifayile rndstr.sh, kwaye wenze i-alias yokuqaliswa ngokukhawuleza.

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

Ngoku chwetheza kwi-terminal rnst siya kufumana i-aphorism engaqhelekanga kwibhodi eqhotyoshwayo, ethi, umzekelo, isetyenziswe kwimbalelwano.

Apha sibhale ubuncinane into eluncedo. Iluncedo ngokwentelekiso.

INdu

Kwinqanaba lokugqibela, andizange ndibonelele nge-screenshots kwaye andizange ndihlalutye ngokucacileyo ezinye zezenzo, ndibhala kuphela iziqulatho zeefayile ukwenzela ukuba abafundi babe nethuba lokusebenza ngokwabo.

Kule "Termux inyathelo ngesinyathelo", ndicinga ukuba kufanelekile ukugqiba. Ewe, la ngamanyathelo okuqala kuphela, kodwa ngoku ungaqhubela phambili ngokwakho.

Ekuqaleni, ndicwangcise ukubonisa kulo mjikelo indlela yokusebenzisa i-nmap, sqlmap, kodwa ngaphandle kwam sele kukho amanqaku amaninzi kwesi sihloko. Ukuba ufuna ukuba ndiqhubeke nomjikelo we "Termux inyathelo ngenyathelo", ke kukho uphando olungezantsi kwaye kwizimvo ungacebisa ukuba yeyiphi enye into onokuthi ubhale ngayo.

Ngabasebenzisi ababhalisiweyo kuphela abanokuthatha inxaxheba kuphando. Ngena, ndiyacela.

Qhubeka "Inyathelo ngenyathelo letermux"?

  • ukuba

  • akukho

2 abasebenzisi bavoti. Akukho zithintelo.

umthombo: www.habr.com

Yongeza izimvo