Termux cam wrth gam (Rhan 2)

В rhan olaf daethom yn gyfarwydd â gorchmynion sylfaenol Termux, sefydlu cysylltiad SSH â PC, dysgu sut i greu alias a gosod nifer o gyfleustodau defnyddiol. Y tro hwn mae'n rhaid i ni gamu hyd yn oed ymhellach, rydyn ni gyda chi:

  • dysgu am Termux: API
  • gosod Python a nano, ac ysgrifennu "Helo, byd!" yn Python
  • dysgu am sgriptiau bash ac ysgrifennu sgript gan ddefnyddio Termux:API
  • gan ddefnyddio sgript bash, Termux:API a Python byddwn yn ysgrifennu rhaglen syml

Gan ein bod bellach yn deall beth mae'r gorchmynion mewnbwn yn ei wneud, yna o'r cam nesaf ni fyddaf yn disgrifio pob cam gweithredu mor fanwl, ond lle gall fod anawsterau, byddaf yn bendant yn esbonio.

Rwy’n defnyddio arallenwau yn aml, felly mae’r byrfoddau a ddefnyddir yn y rhan hon i’w gweld yma:

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

Mae'r cynllun yn barod, gallwch chi ddechrau! Ac wrth gwrs, peidiwch ag anghofio am y "tab hud" (Gweler Rhan 1).

Cam 4

Plymio i Lawr y Termux:API Rabbit Hole

API faint sydd wedi uno yn y gair hwn ar gyfer calon y codwr

Os na fyddwn yn cyffwrdd â phwnc Termux: API, yna gallai ein holl gamau gael eu lleihau i ailadroddiad syml o lyfryn fel "Linux for Dummies", fel y nodwyd yn gywir yn y sylwadau i'r rhan gyntaf.

Yn gyntaf, gosodwch Termux:API o'r Google Play Market (nid yw'n brifo ailgychwyn Termux wedyn):

Termux cam wrth gam (Rhan 2)

Nesaf, mae angen i ni osod y pecyn API yn y consol Termux:

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

Ar gyfer arbrofi rwy'n defnyddio Android 5.1.1, ar gyfer Android 7 mae angen i berchnogion "amddiffyn" Termux: API trwy fynd i 'Settings'> 'Protected Apps', fel arall mae galwadau API fel termux-battery-status, Bydd hongian. (Cm. wiki prosiect)

Nawr mae'n werth edrych yn agosach ar y cyfleoedd a gafwyd. Mae'r disgrifiad diweddaraf a mwyaf manwl o Termux:API i'w weld yn wiki prosiect. Byddaf yn ceisio dewis y rhai mwyaf gweledol a diddorol, a fydd yn caniatáu imi lenwi fy llaw ar gyfer gwaith annibynnol yn y dyfodol.

Rhai enghreifftiau Termux: API

  • termux-batri-statws
    Yn dychwelyd cyflwr y batri
    Termux cam wrth gam (Rhan 2)
  • termux-disgleirdeb
    Yn gosod disgleirdeb y sgrin o 0 i 255
    Termux cam wrth gam (Rhan 2)
  • termux-tost
    Yn dangos hysbysiad tost dros dro
    Termux cam wrth gam (Rhan 2)
  • termux-torch
    Yn cynnwys flashlight
    Termux cam wrth gam (Rhan 2)
  • termux-wifi-scaninfo
    Yn dychwelyd gwybodaeth am y sgan diwethaf o rwydweithiau Wi-Fi
    Termux cam wrth gam (Rhan 2)

Mae'n hawdd gweld bod y gwerthoedd dychwelyd yn llinynnau, geiriaduron, rhestrau o eiriaduron, yn gyffredinol, mathau o ddata y mae Python yn gweithio'n wych gyda nhw, felly y cam nesaf yw ei sefydlu.

Cam 5

Gosod Python a nano

I osod Python, ysgrifennwch yn y derfynell:

updg
apt install python
apt install python2

Bellach mae gennym ni 2 a 3 Python wedi'u gosod.

Wrth weithio ar yr erthygl, darganfyddais olygydd testun nano arall yr oeddwn yn ei hoffi yn fwy na vim, gadewch i ni ei osod:

apt install nano

Mae'n haws ei ddefnyddio na vim, ac mae gan nano ryngwyneb haws ei ddefnyddio. Ar ddyfais Android, mae vim yn dal yn fwy cyfleus.

HelloWorld yn Python yn Termux

Ar y cyfan, roedd yn bosibl gwneud heb yr eitem hon, ond mae rhoi Python yn Termux a pheidio ag ysgrifennu HelloWorld, yn fy marn i, yn moesau drwg.

Nid wyf yn anelu at ddysgu Python i unrhyw un, felly gall y rhai nad ydynt yn gwybod gopïo'r cod (neu ddechrau dysgu ar eu pen eu hunain, gan fod digon o lenyddiaeth), a gall y rhai sy'n gwybod wneud rhywbeth eu hunain. A byddaf yn "dan gochl" yn dal i ddangos ffordd i fewnbynnu testun yn y derfynell heb olygydd.

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 cam wrth gam (Rhan 2)

Os na wnaethoch sylwi ar wall yn ystod y broses fewnbynnu a'ch bod eisoes wedi pwyso Enter, yna ni fyddwch yn gallu mynd i'r llinell uchod, i wneud hyn, terfynwch y mewnbwn trwy wasgu Ctrl + D (yn gyffredinol gallwch dorri ar draws Ctrl + Z) ac ailadrodd popeth o'r dechrau. Gan i ni ddefnyddio '>' yna bydd y ffeil yn cael ei throsysgrifo'n llwyr. Am y rheswm hwn, nid wyf yn argymell defnyddio'r dull mewnbwn hwn oni bai eich bod yn siŵr y byddwch yn ysgrifennu'r cod ar unwaith heb wallau.

Cam 6

Sgriptiau Bash

Mae sgriptiau Bash yn ffordd wych o awtomeiddio'ch gwaith terfynol. Mae'r sgript yn ffeil gyda'r estyniad .sh (mae'r estyniad yn ddewisol) sy'n cynnwys set o orchmynion terfynell, yr ydym eisoes wedi astudio rhai ohonynt. Yma rhestr o'r mwyafrif o orchmynion, dylai popeth weithio, ond nodwch mai rhestr ar gyfer Linux "oedolyn" yw hon, nid Termux, ond dim ond deunydd gwych ar sgriptiau bash.

Gyda chymorth sgriptiau, gallwch awtomeiddio bron pob gweithred undonog. Gadewch i ni ysgrifennu'r sgript bash symlaf sy'n dangos gwerth y newidyn a greodd, byddaf yn defnyddio cath eto, gallwch ddefnyddio golygydd testun arferol, a gall y rhai sydd am hyfforddi eu hunain yn arbennig ddefnyddio adlais.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux cam wrth gam (Rhan 2)

Sgript bash gyda Termux:API

Gadewch i ni ysgrifennu rhywbeth gwahanol i'r HelloWorlds drwg-enwog, ond yr un mor ddiwerth. Ein sgript fydd:

  1. gweithredu'r cais termux-battery-status API
  2. arbed y data a dderbyniwyd i'r ffeil test.txt
  3. argraffu data o ffeil i'r sgrin
  4. gweithredu'r rhaglen hello-world.py a ysgrifennwyd yn flaenorol
  5. ysgrifennu'r data a dderbyniwyd o'r rhaglen i'r ffeil test.txt
  6. argraffu data o ffeil i'r sgrin
  7. symud data o ffeil i clipfwrdd
  8. arddangos cynnwys y clipfwrdd
  9. arddangos neges naid gyda data o'r clipfwrdd

Yn gyntaf, creu ffolder ar gyfer gwaith a chopïo hello-world.py yno fel test.py, creu ffeiliau test.sh a test.txt yn y ffolder hwn:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Nawr, mewn unrhyw ffordd gyfleus, ysgrifennwch y sgript i'r ffeil 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

Nawr, gan ein bod yn y ffolder bashscript, rydyn ni'n ysgrifennu ./test.sh rydym yn arsylwi yn y derfynell ar y ddyfais Android:

Termux cam wrth gam (Rhan 2)

Felly fe wnaethon ni ysgrifennu'r sgript bash arfaethedig. Gallwch ei wanhau gyda'r allbwn i'r consol gwybodaeth ar gyflawni pob gweithred (gan ddefnyddio adlais), gadawaf hyn i'r darllenwyr.

Cam 7

Gadewch i ni wneud rhywbeth defnyddiol

Cymharol ddefnyddiol

Gadewch i ni lunio'r cylch gorchwyl
Ar ôl ei lansio, dylai'r cais osod llinell ar hap o'r ffeil ar y clipfwrdd a hysbysu amdano gyda neges naid.

Byddwn yn cymryd sgript bash fel sail, byddwn yn tynnu llinell ar hap o ffeil gan ddefnyddio is-reolwaith Python. Gadewch i ni wneud cynllun gwaith sgript:

  1. Rhedeg is-reolwaith
  2. Trosglwyddwch ganlyniad yr is-reolwaith i'r clipfwrdd
  3. Arddangos neges naid

Gadewch i ni ddiffinio enwau'r cyfeiriadur a'r ffeiliau cais:

  • ffolder rndstr yn y cyfeiriadur cartref
    • ffynhonnell - y ffeil y byddwn yn cymryd llinellau ohoni
    • rndstr.py - is-reolwaith sy'n dangos llinell ar hap o'r ffeil ffynhonnell i'r consol
    • rndstr.sh - ffeil sgript

Creu cyfeiriadur cais a symud iddo a chreu ffeiliau yno.

Gellir cyfuno dau bwynt cyntaf y cynllun sgript trwy biblinell, o ganlyniad, gan ddefnyddio Termux: API a gawn:

#!/bin/bash

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

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

Yn y ffeil ffynhonnell, gallwch chi roi unrhyw destun wedi'i rannu'n linellau yn rhesymegol, penderfynais roi aphorisms:

Rhestr ffeil ffynhonnell

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

Mae angen i ni greu is-reolwaith sy'n tynnu llinyn ar hap o'r ffeil ffynhonnell.
Gadewch i ni ysgrifennu algorithm yr is-reolwaith:

  1. Ffeil ffynhonnell agored
  2. Cyfrif nifer y llinellau mewn ffeil agored
  3. Cau'r ffeil (does dim byd i'w gadw ar agor am amser ychwanegol)
  4. Rydym yn cynhyrchu cyfanrif ar hap o fewn nifer llinellau'r ffeil ffynhonnell
  5. Ffeil ffynhonnell agored
  6. Rydym yn allbynnu llinell o dan rif y rhif a gynhyrchir
  7. Cau'r ffeil

Rydyn ni'n gweithredu'r algorithm yn Python (rwy'n ysgrifennu o dan 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  #  закрываем файл

Ar ôl i'r ffeiliau gael eu creu a'u hysgrifennu, mae angen i chi roi caniatâd gweithredu'r ffeil rndstr.sh, a chreu alias ar gyfer lansiad cyflym.

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

Nawr teipio yn y derfynell rnst byddwn yn cael aphorism ar hap ar y clipfwrdd, y gellir, er enghraifft, ei ddefnyddio mewn gohebiaeth.

Yma rydym wedi ysgrifennu o leiaf rhywbeth defnyddiol. Cymharol ddefnyddiol.

Ps

Yn y cam olaf, ni wnes i ddarparu sgrinluniau yn fwriadol ac ni wnes i ddadansoddi rhai o'r gweithredoedd yn fanwl, gan ysgrifennu cynnwys y ffeiliau yn unig fel bod darllenwyr yn cael cyfle i weithio ar eu pen eu hunain.

Ar y "Termux cam wrth gam" hwn, rwy'n meddwl ei fod yn werth ei orffen. Wrth gwrs, dim ond y camau cyntaf yw'r rhain, ond nawr gallwch chi symud ymlaen eich hun.

I ddechrau, roeddwn i'n bwriadu dangos yn y cylch hwn sut i ddefnyddio nmap, sqlmap, ond heb i mi mae yna lawer o erthyglau ar y pwnc hwn eisoes. Os ydych chi am i mi barhau â'r cylch “Termux fesul cam”, yna mae arolwg isod ac yn y sylwadau gallwch chi awgrymu beth arall i ysgrifennu amdano.

Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg. Mewngofnodios gwelwch yn dda.

Parhau "Termux cam wrth gam"?

  • Oes

  • Dim

Pleidleisiodd 2 ddefnyddiwr. Nid oes unrhyw ymatal.

Ffynhonnell: hab.com

Ychwanegu sylw