Termux pass pass (Parti 2)

В l-aħħar parti sirna midħla tal-kmandi bażiċi ta’ Termux, waqqafna konnessjoni SSH ma’ PC, tgħallimna kif noħolqu alias u installajna diversi utilitajiet utli. Din id-darba rridu nimxu aktar, aħna magħkom:

  • tgħallem dwar Termux:API
  • installa Python u nano, u ikteb "Hello, world!" f'Python
  • titgħallem dwar skripts bash u ikteb skript billi tuża Termux:API
  • billi tuża script bash, Termux:API u Python se niktbu programm sempliċi

Peress li issa nifhmu x'jagħmlu l-kmandi tal-input, allura mill-pass li jmiss mhux se niddeskrivi kull azzjoni f'tali dettall, iżda fejn jista 'jkun hemm diffikultajiet, definittivament se nispjega.

Jien nuża psewdonimi ħafna, għalhekk l-abbrevjazzjonijiet użati f'din il-parti huma murija hawn:

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

Il-pjan huwa lest, tista 'tibda! U ovvjament, tinsiex dwar il-"magic Tab" (Ara l-Parti 1).

Pass 4

Għadds fit-Termux: API Rabbit Hole

API kemm ingħaqad f'din il-kelma għall-qalb tal-kodifikatur

Jekk ma nmissux it-tema ta' Termux: API, allura l-passi kollha tagħna jistgħu jitnaqqsu għal sempliċi relling ta' xi fuljett bħal "Linux for Dummies", kif ġie nnutat sewwa fil-kummenti għall-ewwel parti.

L-ewwel, installa Termux:API mill-Google Play Market (ma jagħmilx ħsara li terġa' tibda Termux wara):

Termux pass pass (Parti 2)

Sussegwentement, irridu ninstallaw il-pakkett API fil-console Termux:

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

Għall-esperimentazzjoni qed nuża Android 5.1.1, għas-sidien ta' Android 7 jeħtieġ li "jipproteġu" Termux: API billi jmorru 'Settings' > 'Apps Protetti' inkella API jsejjaħ bħal termux-battery-status, se hang. (Cm. wiki tal-proġett)

Issa ta 'min jagħti ħarsa aktar mill-qrib lejn l-opportunitajiet miksuba. L-aħħar deskrizzjoni u l-aktar dettaljata ta' Termux:API tista' tinstab fuq wiki tal-proġett. Se nipprova nagħżel l-aktar viżwali u interessanti, li se jippermettili nimla idejja għal xogħol indipendenti fil-futur.

Xi eżempji Termux:API

  • termux-batterija-istatus
    Jirritorna l-istat tal-batterija
    Termux pass pass (Parti 2)
  • termux-luminożità
    Issettja l-luminożità tal-iskrin minn 0 sa 255
    Termux pass pass (Parti 2)
  • termux-toast
    Juri notifika temporanja toast
    Termux pass pass (Parti 2)
  • termux-torċa
    Jinkludi flashlight
    Termux pass pass (Parti 2)
  • termux-wifi-scaninfo
    Jirritorna informazzjoni dwar l-aħħar skan tan-netwerks Wi-Fi
    Termux pass pass (Parti 2)

Huwa faċli li tara li l-valuri ta 'ritorn huma kordi, dizzjunarji, listi ta' dizzjunarji, b'mod ġenerali, tipi ta 'dejta li Python jaħdem tajjeb magħhom, għalhekk il-pass li jmiss huwa li twaqqafha.

Pass 5

Installa Python u nano

Biex tinstalla Python, ikteb fit-terminal:

updg
apt install python
apt install python2

Issa għandna 2 u 3 Python installati.

Waqt li naħdem fuq l-artiklu, skoprejt editur ieħor tat-test nano li għoġobni aktar minn vim, ejja ninstallawh:

apt install nano

Huwa aktar faċli biex tużah minn vim, u nano għandu interface aktar faċli għall-utent. Fuq apparat Android, vim għadu aktar konvenjenti.

HelloWorld f'Python f'Termux

B'mod ġenerali, kien possibbli li wieħed jgħaddi mingħajr dan l-oġġett, iżda li tpoġġi Python f'Termux u ma tiktebx HelloWorld, fl-opinjoni tiegħi, hija manjieri ħżiena.

Jien ma nistabbilixxix lili nnifsi l-għan li ngħallem lil xi ħadd Python, għalhekk dawk li ma jafux jistgħu sempliċement jikkopjaw il-kodiċi (jew jibdew jitgħallmu waħedhom, peress li hemm biżżejjed letteratura), u dawk li jafu jistgħu jagħmlu xi ħaġa huma stess. U jien ser "taħt l-iskuża" xorta nuri mod kif tidħol it-test fit-terminal mingħajr editur.

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 pass pass (Parti 2)

Jekk ma ndunajtx żball waqt il-proċess ta 'input u diġà ppressat Enter, allura ma tkunx tista' tmur fil-linja ta 'hawn fuq, biex tagħmel dan, ittemm l-input billi tagħfas Ctrl + D (ġeneralment tista' tinterrompi Ctrl + Z) u rrepeti kollox mill-bidu. Peress li użajna '>' allura l-fajl se jinkiteb kompletament. Għal din ir-raġuni, ma nirrakkomandax li tuża dan il-metodu ta 'input sakemm ma tkunx ċert li se tikteb il-kodiċi immedjatament mingħajr żbalji.

Pass 6

skripts Bash

L-iskripts Bash huma mod tajjeb ħafna biex awtomat ix-xogħol terminali tiegħek. L-iskrittura hija fajl bl-estensjoni .sh (l-estensjoni hija fakultattiva) li fih sett ta 'kmandi tat-terminal, li wħud minnhom diġà studajna. Hawn lista tal-biċċa l-kbira tal-kmandi, kollox għandu jaħdem, iżda innota li din hija lista għal Linux "adulti", mhux Termux, iżda biss materjal kbir fuq skripts bash.

Bl-għajnuna ta 'skripts, tista' awtomat kważi l-azzjonijiet monotoni kollha. Ejja niktbu l-iskrittura bash l-aktar sempliċi li turi l-valur mill-varjabbli li ħoloq, jien ser nuża qattus mill-ġdid, tista 'tuża editur tat-test normali, u dawk li speċjalment jixtiequ jħarrġu lilhom infushom jistgħu jużaw 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 pass pass (Parti 2)

Bash script ma Termux:API

Ejja niktbu xi ħaġa differenti mill-famużi HelloWorlds, iżda daqstant inutli. L-iskript tagħna se jkun:

  1. tesegwixxi t-talba tal-API termux-battery-status
  2. ħlief id-data riċevuta fil-fajl test.txt
  3. tipprintja dejta minn fajl għall-iskrin
  4. tesegwixxi l-programm hello-world.py miktub qabel
  5. ikteb id-dejta riċevuta mill-programm fil-fajl test.txt
  6. tipprintja dejta minn fajl għall-iskrin
  7. iċċaqlaq id-data mill-fajl għall-clipboard
  8. juri l-kontenut tal-clipboard
  9. juri messaġġ popup b'dejta mill-clipboard

L-ewwel, oħloq folder għax-xogħol u kkopja hello-world.py hemmhekk bħala test.py, oħloq fajls test.sh u test.txt f'dan il-folder:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Issa, bi kwalunkwe mod konvenjenti, ikteb l-iskript fil-fajl 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

Issa, qed fil-folder bashscript, niktbu ./test.sh aħna nosservaw fit-terminal fuq l-apparat Android:

Termux pass pass (Parti 2)

Allura ktibna l-iskript bash ippjanat. Tista 'tħallat bl-output għall-console ta' informazzjoni dwar l-eżekuzzjoni ta 'kull azzjoni (bl-użu ta' echo), se nħalli dan għall-qarrejja.

Pass 7

Ejja nagħmlu xi ħaġa utli

Relattivament utli

Ejja nifformulaw it-termini ta' referenza
Wara t-tnedija, l-applikazzjoni għandha tpoġġi linja każwali mill-fajl fuq il-clipboard u tinnotifika dwarha b'messaġġ pop-up.

Se nieħdu skript bash bħala bażi, se niġbdu linja każwali minn fajl billi tuża subrutina Python. Ejja nagħmlu pjan ta' ħidma ta' skript:

  1. Mexxi subrutina
  2. Ittrasferixxi r-riżultat tas-subrutina fil-clipboard
  3. Uri messaġġ popup

Ejja niddefinixxu l-ismijiet tad-direttorju u l-fajls tal-applikazzjoni:

  • folder rndstr fid-direttorju tad-dar
    • sors - il-fajl li minnu se nieħdu linji
    • rndstr.py - subrutina li turi linja każwali mill-fajl tas-sors għall-console
    • rndstr.sh - fajl b'kitba

Oħloq direttorju tal-applikazzjoni u mxi lejh u oħloq fajls hemmhekk.

L-ewwel żewġ punti tal-pjan tal-iskript jistgħu jiġu kkombinati b'pipeline, bħala riżultat, billi tuża Termux: API niksbu:

#!/bin/bash

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

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

Fil-fajl tas-sors, tista 'tpoġġi kwalunkwe test loġikament maqsum f'linji, iddeċidejt li npoġġi aforiżmi:

Elenku tal-fajl tas-sors

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

Għandna bżonn biss li noħolqu subrutine li estratti string każwali mill-fajl tas-sors.
Ejja nikteb l-algoritmu tas-subrutina:

  1. Fajl ta' sors miftuħ
  2. Għadd tan-numru ta 'linji f'fajl miftuħ
  3. Agħlaq il-fajl (m'hemm xejn li jżommu miftuħ għal ħin żejjed)
  4. Aħna niġġeneraw numru sħiħ bl-addoċċ fin-numru ta 'linji tal-fajl tas-sors
  5. Fajl ta' sors miftuħ
  6. Aħna noħorġu linja taħt in-numru tan-numru ġġenerat
  7. L-għeluq tal-fajl

Aħna nimplimentaw l-algoritmu f'Python (nikteb taħt 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  #  закрываем файл

Wara li l-fajls jinħolqu u jinkitbu, għandek bżonn tagħti l-permessi tal-eżekuzzjoni tal-fajl rndstr.sh, u oħloq alias għal tnedija malajr.

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

Issa ittajpja terminali rnst se nġibu aforiżmu każwali fuq il-clipboard, li, pereżempju, jista 'jintuża fil-korrispondenza.

Hawnhekk ktibna mill-inqas xi ħaġa utli. Relattivament utli.

Ps

Fl-aħħar pass, intenzjonalment ma pprovejtx screenshots u ma analizejtx fid-dettall xi wħud mill-azzjonijiet, billi nikteb biss il-kontenut tal-fajls sabiex il-qarrejja jkollhom l-opportunità li jaħdmu waħedhom.

Fuq dan "Termux pass pass", naħseb li ta' min jispiċċa. Naturalment, dawn huma biss l-ewwel passi, imma issa tista’ timxi ‘l quddiem lilek innifsek.

Inizjalment, ippjanajt li nuri f'dan iċ-ċiklu kif tuża nmap, sqlmap, iżda mingħajri diġà hemm ħafna artikoli dwar dan is-suġġett. Jekk tridni nkompli ċ-ċiklu “Termux pass pass”, allura hemm stħarriġ hawn taħt u fil-kummenti tista’ tissuġġerixxi x’iktar tikteb dwaru.

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Kompli "Termux pass pass"?

  • Iva

  • Nru

2 utenti vvutaw. M'hemmx astensjonijiet.

Sors: www.habr.com

Żid kumment