Termux hap pas hapi (Pjesa 2)

Në pjesën e kaluar Ne kemi njohur komandat bazë të Termux-it, kemi konfiguruar një lidhje SSH me PC-në, kemi mësuar të krijojmë alias-e dhe kemi instaluar disa utilitete të dobishme. Këtë herë do të shkojmë edhe më larg, me ju:

  • do të mësojmë për Termux:API
  • do të instalojmë Python dhe nano, si dhe do të shkruajmë 'Hello, world!' në Python
  • do të mësojmë për skriptet bash dhe do të shkruajmë një skript duke përdorur Termux:API
  • duke përdorur një skript bash, Termux:API dhe Python do të shkruajmë një program të thjeshtë

Tani që kuptojmë se çfarë bëjnë komandat e futura, nga ky hap e tutje nuk do të shpjegoj çdo veprim aq në detaje, por atje ku mund të ketë vështirësi, do të jap shpjegime patjetër.

Unë shpesh përdor alias-e, prandaj shkurtimet e përdorura në këtë pjesë janë këtu:

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

Plani është gati, mund të fillojmë! Dhe natyrisht mos harroni për 'magjikun Tab' (Shihni Pjesën 1).

Hapi 4

Nisemi në të thellën e krimbit Termux:API

API, sa shumë ka në këtë fjalë që bashkohet në zemrën e programuesit

Nëse nuk prekim temën Termux:API, të gjitha hapat tanë mund të përmblidhen në një përmbledhje të thjeshtë të ndonjë broshure si 'Linux për fillestarët', siç u vërejt saktësisht në komentet e pjesës së parë.

Për të filluar, të instalojmë Termux:API nga Google Play Market (pas kësaj, do të ishte mirë të ripërtërihej Termux):

Termux hap pas hapi (Pjesa 2)

Më pas duhet të instalojmë paketën API në konsolën e Termux-it:

updg # Mos harroni për alias-e
apt install termux-api

Për eksperimente, unë po përdor Android 5.1.1, për pronarët e Android 7 nevojitet të 'mbrohet' Termux:API, duke hyrë në 'Cilësimet' > 'Aplikacione të Mbrojtura', nd otherwise calls like termux-battery-status, do të ngecin. (Shihni. wiki e projektit)

Tani është e rëndësishme të njihemi më afër me funksionalitetet e fituara. Përshkrimi më i ri dhe më i detajuar i Termux:API mund të gjendet te wiki e projektit. Unë do të përpiqem të zgjedh atë që është më ilustrues dhe interesant, që do të lejojë të punoni më vetë në të ardhmen.

Disa shembuj të Termux:API

  • termux-battery-status
    Kthen statusin e baterisë
    Termux hap pas hapi (Pjesa 2)
  • termux-brightness
    Cakton ndriçimin e ekranit nga 0 në 255
    Termux hap pas hapi (Pjesa 2)
  • termux-toast
    Shfaq një njoftim të përkohshëm
    Termux hap pas hapi (Pjesa 2)
  • termux-torch
    Aktivizon lampën e dorës
    Termux hap pas hapi (Pjesa 2)
  • termux-wifi-scaninfo
    Kthen informacionin mbi skanimin e fundit të rrjeteve Wi-Fi
    Termux hap pas hapi (Pjesa 2)

Nuk është e vështirë të vërehet se vlerat e kthyer janë strings, dictionaries, lista dictionaries, në përgjithësi lloje të dhënash, me të cilat Python punon shumë mirë, kështu që hapi tjetër do të jetë ta instalojmë.

Hapi 5

Do ta installojmë Python dhe nano

Për të instaluar Python-in, shkruajmë në terminal:

updg
apt install python
apt install python2

Tani kemi instaluar Python 2 dhe 3.

Gjatë punës mbi këtë artikull, zbulova një editor tjetër teksti, nano, i cili më pëlqeu më shumë se vim; le të qëndrojmë ta instalojmë:

apt install nano

E përdorimin e tij është më e lehtë se vim-i, dhe nano ka një ndërfaqe më miqësore. Kurse në një pajisje Android është më e lehtë me vim.

HelloWorld në Python në Termux

Për ta thënë hapur, mund ta kalonim këtë pikë, por të vendosësh Python në Termux dhe të mos shkruash HelloWorld, është një mospërputhje në mendimin tim.

Nuk e kam qëllim të mësoj askënd Python, kështu që ata që nuk e dinë mund të kopjojnë thjesht kodin (ose të fillojnë të mësojnë vetë, fatmirësisht ka shumë materiale), ndërsa ata që e dinë mund të krijojnë ndonjë gjë. Dhe unë, ndërkohë, do të tregoj në mënyrë ‘të lehtë’ një mënyrë për të futur tekst në terminal pa editor.

cat >hello-world.py     
# Nëse nuk e specifikoni burimin (po e kujtoj cat 1.txt > 2.txt)
# atëherë cat do të marrë të dhënat nga rrjedha standarde e hyrjes,
# të thënë ndryshe, nga ajo që shkruani në tastierë.

str = 'Hello, world!' # i jepim variablës str vlerën "Hello, world!"
print (str) # e shfaqim në ekran vlerën nga variabla str

# Ctrl + D për të përfunduar hyrjen dhe për të ruajtur skedarin (hello-world.py)

py hello-world.py # e запускаем skedarin (py është alias për python)

Termux hap pas hapi (Pjesa 2)

Nëse gjatë hyrjes nuk e keni vërejtur një gabim dhe tashmë keni shtypur Enter, nuk mund të kaloni në vijën e sipërme; për këtë, përfundojeni hyrjen duke shtypur Ctrl + D (mund ta ndërprisni fare me Ctrl + Z) dhe përsërisni të gjitha nga fillimi. Duke qenë se e përdorëm ‘>’, skedari do të rishkruhet plotësisht. Për këtë arsye, nuk e rekomandoj këtë metodë hyrjeje, nëse nuk jeni të sigurt se do të shkruani kodin menjëherë pa gabime.

Hapi 6

Bash-skripte

Bash-skripte janë një mënyrë e shkëlqyer për automatizimin e punës me terminalin. Skripti përbëhet nga një skedar me përcaktimin .sh (përcaktimi nuk është detyrues) që përmban një sërë komandash të terminalit, disa prej të cilave i kemi studiuar tashmë. Ja lista e shumicës së komandave, gjithçka duhet të funksionojë, por kini parasysh se kjo është lista për ‘Linux të rritur’, jo për Termux, dhe kjo është vetëm material fantastik për bash-skripte.

Me ndihmën e skripteve, mund të automatizojmë praktikisht të gjitha veprimet monotone. Le të shkruajmë një skript të thjeshtë bash që shfaq vlerën nga variabla që krijon vetë, unë do të përdor përsëri cat-in, por ju mund të përdorni një redaktues të zakonshëm teksti, dhe ata që dëshirojnë të praktikojnë mund të përdorin echo.

cat >test.sh

export str="Përshëndetje, Habr!"
# export krijon variablën str
# dhe i jep asaj vlerën "Përshëndetje, Habr!"
# Mos vendosni hapësira përpara dhe pas ‘=’

echo $str # Për të aksesuar variablat, para tyre vendoset ‘$’

# Ctrl + D

# ./test.sh për të ekzekutuar skriptin, por nëse e bëni tani do të ketë një gabim
# për të eliminuar gabimin, duhet ta bëni skedarin test.sh ekzekutues

chmod +x test.sh
# chmod ndryshon të drejtat e aksesit (+ shto / - hiq)
# ‘+x’ do të thotë se e bëjmë skedarin ekzekutues

./test.sh # Fillojmë ekzekutimin e skriptit tonë

Termux hap pas hapi (Pjesa 2)

Bash-skripti me Termux:API

Të shkruajmë tashmë diçka që dallon nga të famshmet HelloWorld, por po aq të pavlera. Skripti ynë do të jetë:

  1. të kryejë një kërkesë API termux-battery-status
  2. të ruajë të dhënat e marra në skedarin test.txt
  3. të shfaqë të dhënat nga skedari në ekran
  4. të ekzekutojë programin e shkruar më parë hello-world.py
  5. të ruajë të dhënat nga programi në skedarin test.txt
  6. të shfaqë të dhënat nga skedari në ekran
  7. të transferojë të dhënat nga skedari në clipboard
  8. të shfaqë në ekran përmbajtjen e clipboard-it
  9. të shfaqë një mesazh të këndshëm me të dhënat nga clipboard-i

Së pari, le të krijojmë një dosje për punë dhe të kopjojmë hello-world.py si test.py, krijojmë në këtë dosje skedarët test.sh dhe test.txt:

mkdir bashscript

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

cd bashscript/

touch test.sh test.txt # touch krijon skedarë

chmod +x test.sh

Tani, me çdo mënyrë të përshtatshme, të shkruajmë skriptin në skedarin 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

Tani, duke qenë në dosjen bashscript, shkruajmë ./test.sh vëzhgojmë në terminal në pajisjen Android:

Termux hap pas hapi (Pjesa 2)

Kështu, ne krijuam skriptin bash të planifikuar. Mund ta zbukuroni me shfaqjen e informacionit në konsolë për përfundimin e çdo veprimi (përdorimin e echo), këtë do ta lë për lexuesit.

Hapi 7

Të bëjmë diçka të dobishme

Relativisht e dobishme

Të formulojmë detyrën teknike
Aplikacioni duhet, pas ekzekutimit, të vendosë një varg rastësor nga skedari në clipboard dhe të njoftojë për këtë me një mesazh të këndshëm.

Si bazë do të marrim skriptin bash, dhe vargun rastësor nga skedari do ta nxjerrim përmes një nënprogrami në Python. Të hartojmë planin e punës së skriptit:

  1. Të ekzekutojmë nënprogramin
  2. Shkruani rezultatin e funksionit në mbajtësin e duarve
  3. Shfaq një mesazh dritare

Të përcaktojmë emrat e drejtorive dhe skedave të aplikacionit:

  • directory rndstr në direktorinë e shtëpisë
    • source — skedari nga i cili do të marrim rreshtat
    • rndstr.py — funksioni që jep një varg të rastësishëm në konsolë nga skedari source
    • rndstr.sh — skedari i skriptit

Krijojmë drejtorinë e aplikacionit dhe, duke u zhvendosur atje, krijojmë skedarët.

Dy pikë të para të planit të skriptit mund të mblidhen me një tub, në përfundim, duke përdorur Termux:API marrim:

#!/bin/bash

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

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

Në skedarin source mund të vendosni çfarëdo teksti të ndarë logjikisht në rreshta, unë vendosa të vendos aforizmat:

Listing i skedarit source

Sinqeriteti s'është e vërtetë. L. Lavelle
Duroni dhe përmbahuni. Epikteti
Vetëm ajo që është e pafavorshme është e ndershme. J. Labruyère
Bëhu i mençur dhe trim. B. Gracian
Benevolenca është më e mirë se bukuria. G. Heyne
Për veprat e mëdha nevojitet një qëndrim i palodhur. F. Voltaire
Nëse dëshiron që të tjerët të të pëlqejnë gjithmonë, shërbeji vetes. B. Franklin
Skromësia e tepruar nuk është gjë tjetër veçse një krenari e fshehur. A. Shenier
Njerëzit shumë inteligjentë nuk besohen, nëse shohin ngërçin e tyre. F. Nietzsche
Varfëria tregon mungesën e mjeteve, jo mungesën e nderit. D. Boccaccio
Duhet të ruhemi nga çuarja e skromësisë në një shkallë të nënshtrimit. A. Bakihanov
Ai që heq dorë nga shumë, mund të lejojë shumë për vete. J. Chardon
Kur na paguajnë për një akt të ndershëm, ai na merret. N. Chamfort
Të mos e marrësh fare - nuk është e frikshme, por të humbasësh atë që ke marrë është e dhimbshme. Klavdi Elian
Është më lehtë të durosh durimin atë që nuk mund ta rregullosh. Horaci
U lodhe të presësh, por sa më keq do ishte, nëse do të nuk kishit asgjë për të pritur. B. Shaw
Të gjitha vijnë në kohë, nëse njerëzit dinë të presin. F. Rabelais
Me durimin tonë mund të arrijmë më shumë sesa me forcën. E. Burke
Duhet të dijmë të durojmë atë që nuk mund të shmangim. M. Montaigne
Ai që është guximtar në punë, nuk do të friksohet nga fjalët. Sofokliu
Unë nuk pëlqej të luftoj, unë pëlqej të fitoj. B. Shaw
Një mace e ngacmuar dhe e shtyrë në mur shndërrohet në tigër. M. Cervantes
Një njeri i denjë nuk shkon në gjurmët e tjerëve. Konfuci
Një mendje e madhe do të tregojë forcën e saj jo vetëm në aftësinë për të menduar, por edhe në aftësinë për të jetuar. R. Emerson
Lavdia është një mall të cilin është e vështirë ta ruash. Kushton shtrenjë, ruhet keq. O. Balzac
Shtypja dhe përshtatja në biseda janë më shumë se elokuenca. F. Bacon
Kush nuk di të hesht, nuk është i aftë as të flasë. Seneka i Riu
Manerët e mira përbëhen nga sakrifica të vogla. F. Chesterfield
Një njeri i mirë nuk është ai që di të bëjë të mira, por ai që nuk di të bëjë keq. V. Klyuchevsky
Mos jepni gjykime të pakthyeshme! Augustin
Asgjë e tepërt! Soloni

Na mbetet të krijojmë një podprogram që nxjerr një varg të rastësishëm nga skedari source.
Do të përshkruajmë algoritmin e funksionimit të podprogramit:

  1. Hap skedarin source
  2. Numërojmë numrin e rreshtave në skedarin e hapur
  3. Mbyllim skedarin (nuk ka nevojë ta mbajmë hapur më gjatë se kaq)
  4. Gjenerojmë një numër të rastësishëm të plotë brenda numrit të rreshtave të dosjes source
  5. Hap skedarin source
  6. Shfaqim rreshtin me numrin e numrit të gjeneruar
  7. Mbyllim dosjen

Implementojmë algoritmin në Python (po shkruaj për Python 3.7):

import random  # importojmë për gjenerimin e numrave të rastësishëm
import os  # për marrjen e rrugës

path = os.path.abspath(__file__)  # marrim rrugën e drejtpërdrejtë për dosjen rndstr.py
path = os.path.dirname(path)  # e konvertojmë në rrugë për dosjen
path = path  + ' /source'  # e konvertojmë në rrugë për dosjen source

f = open(path)  # hapim dosjen
i = 0  # fillojmë numërimin
for str in f: i+=1  # numërojmë rreshtat e dosjes
f.close  # mbyllim dosjen

j = int(round(i * random.random()))  # gjenerojmë një numër të plotë të rastësishëm nga 0 deri në i

f = open(path)  # hapim dosjen
i = 0  # fillojmë numërimin
for str in f:  # kalojmë përmes rreshtave të dosjes
    if i == j:  # nëse numri i rreshtave është i barabartë me numrin e gjeneruar
        print (str, end='')  # shfaqim rreshtin pa kaluar në një të re
        break  # dalim nga cikli
    i+=1  # rrisim numërimin me 1
f.close  # mbyllim dosjen

Pasi që skedarët të jenë krijuar dhe shkruar, duhet t'i jepni të drejtat për ekzekutimin e skedarit rndstr.sh, dhe të krijoni një alias për ekzekutim të shpejtë.

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

Tani, duke futur në terminal rnst do të marrim në clipboard një aforizëm të rastësishëm, i cili, për shembull, mund të përdoret në komunikim.

Këtu kemi shkruar diçka të dobishme. Relativisht të dobishme.

P.s.

Qëllimisht, në hapin e fundit nuk e përfshiva një screenshot dhe nuk shqyrtova disa veprime në detaje, duke përshkruar vetëm përmbajtjen e skedarëve, për të dhënë lexuesve mundësinë të punojnë vetë.

Me këtë "Termux hap pas hapi", mendoj se është koha të mbyllemi. Sigurisht, këto janë vetëm hapat e parë, por tani mund të lëvizni përpara vetë.

Fillimisht planifikova të tregoj në këtë cikël se si të përdorim nmap, sqlmap, por edhe pa mua ka shumë artikuj në këtë temë. Nëse dëshironi që unë të vazhdoj ciklin "Termux hap pas hapi", atëherë më poshtë është një anketë dhe në komentet mund të sugjeroni për çfarë të shkruaj edhe një herë.

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. Hyni, ju lutem.

Të vazhdojmë "Termux hap pas hapi"?

  • Po.

  • Jo

Kemi votuar 2 përdorues. Asnjë abstenim.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster