Termux samm-sammult (Osa 2).

Uues eelmisel osal me tutvustasime Termux’i põhilisi käske, seadsime PC-iga SSH-ühenduse, õppisime looma alias'e ja installisime mõned kasulikud utiliidid. Seekord astume veel kaugemale, me:

  • saame teada Termux:API-st
  • installime Python’i ja nano, samuti kirjutame „Tere, maailm!” Python’is
  • õpime tundma bash-skripte ja kirjutame skripti, mis kasutab Termux:API-d
  • kasutades bash-skripti, Termux:API-d ja Python’it kirjutame lihtsa programmi

Kuna me nüüd mõistame, mida sisestatud käskudel teha lasta, siis järgmise sammu juures ei hakka ma iga toimingut nii põhjalikult seletama, kuid seal, kus võivad olla raskused, annan kindlasti selgitusi.

Ma kasutan sageli alias'e, seega on selles osas kasutatud lühendeid näidatud siin:

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

Plaani on valmis, saab alustada! Ja muidugi ärge unustage „maagilist Tab’it” (Vaata osa 1).

Samm 4

Süveneme Termux:API krüptosse

API, kui palju on selle sõna sees kooderi südame jaoks kokkupuuteid

Kui me ei puudutaks Termux:API teemat, oleks kõik meie sammud võimalik kokku võtta lihtsalt mingi brošüüri nagu „Linux algajatele” rääkimisega, nagu õigesti märgiti esimese osa kommentaarides.

Alustamiseks installime Termux:API Google Play turult (pärast tuleks Termux uuesti käivitada):

Termux samm-sammult (Osa 2).

Seejärel peame installima Termux’i API paketi Termux'i konsoolis:

updg # Ärge unustage alias'e
apt install termux-api

Eksperimenteerin Android 5.1.1 peal, Android 7 omanikele tuleb Termux:API "katte alla võtta", minnes 'Seaded' > 'Kaitstud rakendused', vastasel juhul API kutsete, nagu termux-battery-status, toimingud jäävad seisma. (Vaata. projekt wiki)

Nüüd on aeg tutvuda saadud võimalustega lähemalt. Kõige värskemat ja põhjalikumat kirjeldust Termux:API-st leiab aadressilt projekt wiki. Üritan valida kõige silmatorkavama ja huvitavama, mis aitab käe harjutamisel edasiste iseseisvate tööde jaoks.

Mõned näited Termux:API-st

  • termux-battery-status
    Tagastab aku oleku
    Termux samm-sammult (Osa 2).
  • termux-brightness
    Seab ekraani heleduse vahemikus 0 kuni 255
    Termux samm-sammult (Osa 2).
  • termux-toast
    Kuvab ajutise hüpikteate
    Termux samm-sammult (Osa 2).
  • termux-torch
    Lülitab taskulambi sisse
    Termux samm-sammult (Osa 2).
  • termux-wifi-scaninfo
    Tagastab viimase Wi-Fi võrgu skaneerimise teabe
    Termux samm-sammult (Osa 2).

Pole raske märgata, et tagastatud väärtused on stringid, sõnastikud, sõnastike loendid, üldiselt andmetüübid, millega Python suurepäraselt töötab, seega installime järgmise sammuna selle.

Samm 5

Paigaldame Python'i ja nano

Python'i installimiseks kirjuta terminalis:

updg
apt install python
apt install python2

Nüüd on meil installitud Python 2 ja 3.

Artikli kirjutamise käigus avastasin veel ühe tekstiredaktori, nano, mis meeldib mulle rohkem kui vim, paigaldame selle:

apt install nano

Selle kasutamine on lihtsam kui vim'i, ja nano omab sõbralikumat liidest. Android-seadmest on siiski mugavam kasutada vim'i.

HelloWorld Pythonis Termuxis

Tegelikult oleks olnud võimalik ka ilma selle punktita hakkama saada, kuid Python'i paigaldamine Termux'i ja HelloWorld'i kirjutamata jäämine on minu arvates vale.

Ma ei püüa kedagi õpetada Python'is, seega need, kes ei tea, võivad lihtsalt kopeerida koodi (või alustada iseseisvat õppimist, õnneks on kirjandust piisavalt), ja need, kes teavad, võivad ise midagi kirjutada. Ja ma näitan "ühtlasi" ka, kuidas terminalis teksti sisestada ilma redaktorita.

cat >hello-world.py     
# Kui allikat ei täpsustata (mäletan, et cat 1.txt > 2.txt)
# siis cat võtab andmed standardse sisendi voogust,
# lihtsamalt öeldes klaviatuurilt sissetulev.

str = 'Hello, world!' # määrame muutuja str väärtuse "Hello, world!"
print (str) # Prindime ekraanile muutuja str väärtuse

# Ctrl + D lõpetab sisendi ja salvestab faili (hello-world.py)

py hello-world.py # Käivitame faili (py on alias python'i jaoks)

Termux samm-sammult (Osa 2).

Kui sisestamise protsessis sa ei märganud viga ning oled juba Enter'it vajutanud, siis ei saa sa üle minna eelmisse ritta, lõpetamiseks vajuta Ctrl + D (võid ka täielikult katkestada Ctrl + Z) ja korda kõike algusest. Kuna kasutasime '>' siis faili kirjutatakse täielikult üle. Seetõttu ei soovita ma sellist sisestamismeetodit kasutada, kui sa ei ole kindel, et kirjutad koodi kohe ilma vigadeta.

Samm 6

Bash-skripti

Bash-skripti on suurepärane viis terminali töö automatiseerimiseks. Skript on fail, mis on .sh laiendiga (laiend ei ole kohustuslik) ja sisaldab kogumit terminali käske, millest osa oleme juba õppinud. Siin on enamik käskude loetelu, kõik peaks tööle hakkama, kuid pange tähele, et see on loetelu "täiskasvanute" Linux'ile, mitte Termux'ile, ja siin on lihtsalt suurepärane materjal bash-skriptide kohta.

Scriptide abil saab automatiseerida pea kõiki monotoonseid toiminguid. Kirjutame kõige lihtsama bash-skripti, mis väljastab väärtuse, mis on ise loodud, ja kasutan taas cat'i; te saate kasutada normaalset tekstiredaktorit, aga eriti soovijad võivad harjutada echo'ga.

cat >test.sh

export str="Tere, Habr!"
# export loob muutujat str
# ja määrab sellele väärtuse "Tere, Habr!"
# Ärge jätke tühikuid enne ja pärast '='

echo $str # Muutujatele viitamiseks tuleb nende ette panna '$'

# Ctrl + D

# .\/test.sh skripti käivitamiseks, kuid kui seda nüüd teha, tekib viga
# vea vältimiseks peab fail test.sh olema täitmiseks lubatud

chmod +x test.sh
# chmod muudab pääsuõigusi (+ lisada / - eemaldada)
# '+x' tähendab, et teeme faili täitmiseks lubatuks

.\/test.sh # Käivitame oma skripti täitmise

Termux samm-sammult (Osa 2).

Bash-skript Termux:API jaoks

Kiri kirjutame juba miskit, mis erineb kuulsatest HelloWorld'idest, aga on sama kasutu. Meie skript teeb järgmist:

  1. teeb API päringu termux-battery-status
  2. salvestab saadud andmed faili test.txt
  3. väljastab faili andmed ekraanile
  4. täidab varem kirjutatud programmi hello-world.py
  5. saadud programmist andmed salvestatakse faili test.txt
  6. väljastab faili andmed ekraanile
  7. ülewied kirjutatakse andmed failist vahemällu
  8. väljastatakse ekraanile vahemälu sisu
  9. väljastatakse hüpikakna teade vahemälu andmetest

Esiteks loome töödeldavale kaustale ja kopeerime sinna hello-world.py failina test.py, loome selles kaustas failid test.sh ja test.txt:

mkdir bashscript

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

cd bashscript/

touch test.sh test.txt # touch loob failid

chmod +x test.sh

Nüüd kirjutame failile test.sh skripti mis tahes mugaval viisil:

#!/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

Nüüd, olles bashscript kaustas, kirjutame ./test.sh vaatame Android seadme terminalis:

Termux samm-sammult (Osa 2).

Nüüd oleme kirjutanud kavandatud bash-skripti. Selle väljundit saab täiendada konsolile iga toimingu täitmise kohta teabe väljastamisega (echo abil), jätan selle lugejate hooleks.

Samm 7

Teeme lõpuks midagi kasulikku

Suhteliselt kasulik

Koostame tehnilise ülesande
Rakendus peaks pärast käivitamist kopeerima vahemällu juhusliku stringi failist ja teavitama sellest hüpikakna teatega.

Võtame aluseks bash-skripti, juhusliku stringi failist ekstraktime Python'i abiprogrammiga. Koostame skripti tööplaani:

  1. Käivitada abiprogramm
  2. Kanda tulemus alaprogrammi tööst lõikepresidendil
  3. Kuva hüpikaken

Leppige kokku rakenduse kataloogide ja failide nimed:

  • kataloog rndstr kodukataloogis
    • source — fail, millest võtame read
    • rndstr.py — alaprogramm, mis väljastab juhusliku rea failist source konsoolis
    • rndstr.sh — skriptifail

Loome rakenduse katalooge ja liikudes sinna, loome seal failid.

Skripti plaani kahte esimest punkti saab kombineerida torustikus, tulemuseks, kasutades Termux:API saame:

#!/bin/bash

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

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

Faili source saate paigutada mis tahes teksti, mis on loogiliselt jagatud ridadeks, otsustasin paigutada aforisme:

Faili source loetelu

Siirus ei ole tõde. L. Lavelle
Ole kannatlik ja peatuma. Epiktet
Ainult see on üllas, mis on isetu. J. La Bruyère
Ole mõistlikult julge. B. Gracian
Headus on parem kui ilu. G. Heine
Suurepäraste tegude jaoks on vajalik väsimatu püsivus. F. Voltaire
Kui sa tahad, et sulle alati meelditaks, teenindage iseennast. B. Franklin
Liigne tagasihoidlikkus on mitte midagi muud kui varjatud uhkus. A. Chenier
Ükski väga intelligentne inimene ei saa usaldusväärseks, kui teda nähakse häbelikuna. F. Nietzsche
Vaesus näitab vahendite puudumist, mitte üllasuse puudumist. D. Boccaccio
Peame ettevaatlikud olema, et tagasihoidlikkus ei muutuks alanduseks. A. Bakikhanov
Kes loobub paljust, võib endale lubada palju. J. Chardon
Kui meile makstakse ülla teo eest, siis võtame selle meist ära. N. Chamfort
Sugugi mitte saada - pole hirmutav, aga saadud kaotamine on kurb. Klaudius Elian
On kergem kannatada kannatlikult seda, mida me ei saa parandada. Horatius
Sa väsid ootamise eest, aga kui halb oleks, kui ei olekski enam oodata. B. Shaw
Kõik tuleb õigel ajal, kui inimesed oskavad oodata. F. Rabelais
Oma kannatlikkusega võime saavutada rohkem kui jõu abil. E. Burke
Peame oskama taluda seda, mida ei saa vältida. M. Montaigne
Kes on teoses julge, ei karda sõnu. Sofokles
Ma ei armasta vaielda, ma armastan võita. B. Shaw
Survestatud ja nurka surutud kass muutub tiigriks. M. Cervantes
Auväärne inimene ei käi teiste jälgedes. Konfutsius
Suurepärane meel näitab oma jõudu mitte ainult mõtlemise oskuses, vaid ka elamise oskuses. R. Emerson
Kuulsus on kahjumlik kaup. See maksab palju, aga püsib halvasti. O. Balzac
Piiratus ja sobivus vestluses on väärtuslikumad kui kõneoskus. F. Bacon
Kes ei oska vaikida, ei oska ka rääkida. Seneca Noorem
Head kombed koosnevad väikestest ohvritest. F. Chesterfield
Hea inimene pole see, kes oskab head teha, vaid see, kes ei oska halba teha. V. Kljuchevsky
Ärge tehke pöördumatuid otsuseid! Augustinus
Noh, mitte liiga palju! Solon

Meil on jäänud luua alamprogrammi, mis tõmbab juhusliku rea failist source.
Kirjutame välja alamprogrammi töö algoritmi:

  1. Avame faili source
  2. Loeme avatud failis olevate ridade arvu
  3. Sulgeme faili (pole mõtet hoida seda liigse aja jooksul öppinguna)
  4. Kogume juhuslik täisarv faili source ridade arvust
  5. Avame faili source
  6. Väljastame juhusliku numbri järgi vastava rea
  7. Sulgeme faili

Rakendame algoritmi Pythonis (kirjutan Python 3.7 jaoks):

import random  #  juhuslike arvude genereerimiseks
import os  #  tee saamiseks

path = os.path.abspath(__file__)  #  saadame otse tee faili rndstr.py
path = os.path.dirname(path)  #  muudame tee kaustapuhuks
path = path  + 'source'  #  muudame faili source teeks

f = open(path)  #  avame faili
i = 0  #  lähtestame loenduri
for str in f: i+=1  #  loendame faili read
f.close  #  sulgeme faili

j = int(round(i * random.random()))  #  genereerime juhusliku täisarvu vahemikus 0 kuni i

f = open(path)  #  avame faili
i = 0  #  lähtestame loenduri
for str in f:  #  käime failis läbi read
    if i == j:  #  kui loenduri väärtus on genereeritud numbriga sama
        print (str, end='')  #  väljastame rea ilma uuele reale liikumata
        break  #  lõpetame tsükli
    i+=1  #  suurendame loenduri väärtust 1 võrra
f.close  #  sulgeme faili

Pärast failide loomist ja kirjutamist tuleb faili käivitusõigused määrata rndstr.sh, ja luua alias kiireks käivitamiseks.

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

Nüüd, kui sisestate terminalis rnst , saame vahemällu juhusliku aforismi, mida võib näiteks kasutada vestluses.

Nüüd oleme kirjutanud vähemalt midagi kasulikku. Suhteliselt kasulikku.

P.s.

Jätan viimases etapis tahtlikult vahele ekraanivõtted ja ei käsitle detailides mõningaid toiminguid, tuues välja ainult failide sisu, et lugejad saaksid ise töötada.

Käesolev "Termux samm-sammult" lõppeb, usun, et need on vaid esimesed sammud, kuid nüüd saate edasi liikuda ise.

Alguses kavatsesin näidata selles tsüklis, kuidas kasutada nmap'i, sqlmap'i, kuid ilma minuta on sellel teemal juba palju artikleid. Kui soovite, et jätkaksin tsüklit "Termux samm-sammult", siis siin on küsitlus ja kommentaarides saate soovitada, millest veel kirjutada.

Ainult registreeritud kasutajad saavad küsitluses osaleda. Logige sisse, palun.

Kas jätkata "Termux samm-sammult"?

  • Jah

  • Ei

Hääletas 2 kasutajat. Erakondi ei ole.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster