Termux askel askeleelta (osa 2)

В viimeinen osa Tutustuimme Termuxin peruskomentoihin, perustimme SSH-yhteyden PC:hen, opimme luomaan aliaksia ja asensimme useita hyödyllisiä apuohjelmia. Tällä kertaa meidän on astuttava vielä pidemmälle, olemme kanssasi:

  • oppia Termux:API:stä
  • asenna Python ja nano ja kirjoita "Hei, maailma!" Pythonissa
  • oppia bash-skripteistä ja kirjoittaa komentosarja Termux:API:n avulla
  • käyttämällä bash-skriptiä, Termux:API:tä ja Pythonia kirjoitamme yksinkertaisen ohjelman

Koska ymmärrämme nyt, mitä syöttökomennot tekevät, seuraavasta vaiheesta lähtien en kuvaile jokaista toimintaa niin yksityiskohtaisesti, mutta missä voi olla vaikeuksia, selitän ehdottomasti.

Käytän aliaksia paljon, joten tässä osassa käytetyt lyhenteet näkyvät tässä:

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

Suunnitelma on valmis, voit aloittaa! Ja tietenkään älä unohda "taikavälilehteä" (Katso osa 1).

Vaihe 4

Sukellus alas Termux:API Rabbit Hole

API kuinka paljon on sulautunut tähän sanaan kooderin sydämelle

Jos emme kosketa Termux: API-aihetta, kaikki vaiheemme voidaan lyhentää jonkin esitteen, kuten "Linux for Dummies", yksinkertaiseksi uudelleenkertomiseksi, kuten ensimmäisen osan kommenteissa aivan oikein todettiin.

Asenna ensin Termux:API Google Play Marketista (ei haittaa käynnistää Termux uudelleen jälkeenpäin):

Termux askel askeleelta (osa 2)

Seuraavaksi meidän on asennettava API-paketti Termux-konsoliin:

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

Kokeilua varten käytän Android 5.1.1:tä, Android 7:n omistajien on "suojattava" Termux: API menemällä kohtaan "Asetukset" > "Suojatut sovellukset", muuten API-kutsut, kuten termux-battery-status, roikkuu. (cm. projekti wiki)

Nyt on syytä tarkastella lähemmin hankittuja mahdollisuuksia. Uusin ja yksityiskohtaisin kuvaus Termux:API:stä löytyy osoitteesta projekti wiki. Yritän valita visuaalisimman ja mielenkiintoisimman, jonka avulla voin täyttää käteni itsenäiseen työskentelyyn tulevaisuudessa.

Jotkut Termux:API-esimerkit

  • termux-akun tila
    Palauttaa akun tilan
    Termux askel askeleelta (osa 2)
  • termux-kirkkaus
    Asettaa näytön kirkkauden 0 - 255
    Termux askel askeleelta (osa 2)
  • termux-paahtoleipää
    Näyttää väliaikaisen paahtoleipäilmoituksen
    Termux askel askeleelta (osa 2)
  • termux-taskulamppu
    Sisältää taskulampun
    Termux askel askeleelta (osa 2)
  • termux-wifi-scaninfo
    Palauttaa tiedot viimeisimmästä Wi-Fi-verkkojen tarkistuksesta
    Termux askel askeleelta (osa 2)

On helppo nähdä, että palautusarvot ovat merkkijonoja, sanakirjoja, sanakirjaluetteloita, yleensä tietotyyppejä, joiden kanssa Python toimii hyvin, joten seuraava askel on määrittää se.

Vaihe 5

Asenna Python ja nano

Asenna Python kirjoittamalla terminaaliin:

updg
apt install python
apt install python2

Meillä on nyt asennettuna 2 ja 3 Python.

Työstäessäni artikkelia löysin toisen nano-tekstieditorin, josta pidin enemmän kuin vim, asenna se:

apt install nano

Se on helpompi käyttää kuin vim, ja nanossa on käyttäjäystävällisempi käyttöliittymä. Android-laitteella vim on edelleen kätevämpi.

HelloWorld Pythonissa Termuxissa

Pääsääntöisesti ilman tätä esinettä pystyi pärjäämään, mutta Pythonin laittaminen Termuxiin ja HelloWorldin kirjoittamatta jättäminen on mielestäni huonoa käytöstä.

En aseta itselleni tavoitteeksi opettaa kenellekään Pythonia, joten ne jotka eivät osaa, voivat yksinkertaisesti kopioida koodin (tai aloittaa oppimisen itse, koska kirjallisuutta on tarpeeksi), ja tietävät voivat tehdä jotain itse. Ja "varjolla" näytän silti tavan kirjoittaa tekstiä terminaaliin ilman editoria.

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 askel askeleelta (osa 2)

Jos et huomannut virhettä syöttöprosessin aikana ja painat jo Enter, et voi siirtyä yllä olevalle riville, lopeta syöttö painamalla Ctrl + D (voit yleensä keskeyttää Ctrl + Z) ja toista kaikki alusta. Koska käytimme '>', tiedosto korvataan kokonaan. Tästä syystä en suosittele tämän syöttötavan käyttöä, ellet ole varma, että kirjoitat koodin välittömästi ilman virheitä.

Vaihe 6

Bash-skriptit

Bash-skriptit ovat loistava tapa automatisoida päätetyösi. Skripti on tiedosto, jonka pääte on .sh (laajennus on valinnainen), joka sisältää joukon päätekomentoja, joista olemme jo tutkineet. Tässä luettelo useimmista komennoista, kaiken pitäisi toimia, mutta huomaa, että tämä on luettelo "aikuisten" Linuxille, ei Termuxille, vaan vain loistava materiaali bash-skripteistä.

Skriptien avulla voit automatisoida lähes kaikki yksitoikkoiset toiminnot. Kirjoitetaan yksinkertaisin bash-skripti, joka näyttää arvon hänen luomasta muuttujasta, käytän taas cat, voit käyttää normaalia tekstieditoria ja ne, jotka haluavat erityisesti kouluttaa itseään, voivat käyttää echoa.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux askel askeleelta (osa 2)

Bash-skripti Termux:API:n kanssa

Kirjoitetaanpa jotain erilaista kuin pahamaineinen HelloWorlds, mutta yhtä hyödytön. Käsikirjoituksemme tulee olemaan:

  1. suorita termux-battery-status API-pyyntö
  2. tallenna vastaanotetut tiedot tiedostoon test.txt
  3. tulostaa tiedot tiedostosta näytölle
  4. suorita aiemmin kirjoitettu hello-world.py-ohjelma
  5. kirjoita ohjelmasta saadut tiedot tiedostoon testi.txt
  6. tulostaa tiedot tiedostosta näytölle
  7. siirtää tietoja tiedostosta leikepöydälle
  8. näyttää leikepöydän sisällön
  9. näyttää ponnahdusikkunan, joka sisältää tiedot leikepöydältä

Luo ensin kansio työlle ja kopioi hello-world.py sinne nimellä test.py, luo test.sh- ja test.txt-tiedostot tähän kansioon:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Kirjoita nyt skripti millä tahansa kätevällä tavalla test.sh-tiedostoon:

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

Nyt kun olemme bashscript-kansiossa, kirjoitamme ./test.sh havaitsemme Android-laitteen terminaalissa:

Termux askel askeleelta (osa 2)

Joten kirjoitimme suunnitellun bash-käsikirjoituksen. Voit laimentaa sen tulosteella konsoliin, jossa on tietoja kunkin toiminnon suorittamisesta (kaiun avulla), jätän tämän lukijoille.

Vaihe 7

Tehdään jotain hyödyllistä

Suhteellisen hyödyllinen

Muotoillaan toimeksianto
Käynnistyksen jälkeen sovelluksen tulee asettaa satunnainen rivi tiedostosta leikepöydälle ja ilmoittaa siitä ponnahdusviestillä.

Otamme pohjaksi bash-skriptin, puramme satunnaisen rivin tiedostosta Python-alirutiinilla. Tehdään käsikirjoitustyösuunnitelma:

  1. Suorita aliohjelma
  2. Siirrä aliohjelman tulos leikepöydälle
  3. Näytä ponnahdusikkuna

Määritetään hakemisto- ja sovellustiedostojen nimet:

  • rndstr-kansio kotihakemistossa
    • lähde - tiedosto, josta otamme rivejä
    • rndstr.py - aliohjelma, joka näyttää satunnaisen rivin lähdetiedostosta konsoliin
    • rndstr.sh - komentosarjatiedosto

Luo sovellushakemisto ja siirry siihen ja luo tiedostot sinne.

Käsikirjoitussuunnitelman kaksi ensimmäistä pistettä voidaan yhdistää liukuhihnalla, minkä seurauksena Termuxin: API:n avulla saamme:

#!/bin/bash

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

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

Lähdetiedostoon voit laittaa minkä tahansa tekstin loogisesti jaettuna riveihin, päätin laittaa aforismeja:

Lähdetiedostoluettelo

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

Meidän on vain luotava aliohjelma, joka poimii satunnaisen merkkijonon lähdetiedostosta.
Kirjoitetaan aliohjelman algoritmi:

  1. Avoimen lähdekoodin tiedosto
  2. Rivien lukumäärän laskeminen avoimessa tiedostossa
  3. Sulje tiedosto (ei ole mitään, mikä voisi pitää sen auki ylimääräistä aikaa)
  4. Luomme satunnaisen kokonaisluvun lähdetiedoston rivien lukumäärän sisällä
  5. Avoimen lähdekoodin tiedosto
  6. Tulostamme rivin luodun luvun numeron alle
  7. Tiedoston sulkeminen

Toteutamme algoritmin Pythonissa (kirjoitan Python 3.7:n alla):

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  #  закрываем файл

Kun tiedostot on luotu ja kirjoitettu, sinun on annettava tiedostoille suoritusoikeudet rndstr.shja luo alias pikakäynnistystä varten.

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

Kirjoita nyt terminaaliin rnst saamme leikepöydälle satunnaisen aforismin, jota voidaan käyttää esimerkiksi kirjeenvaihdossa.

Tänne olemme kirjoittaneet ainakin jotain hyödyllistä. Suhteellisen hyödyllinen.

Ps

Viimeisessä vaiheessa en tarkoituksella antanut kuvakaappauksia enkä analysoinut yksityiskohtaisesti joitain toimintoja, kirjoittaen vain tiedostojen sisällön, jotta lukijoilla on mahdollisuus työskennellä itse.

Tämä "Termux askel askeleelta" on mielestäni viimeistelemisen arvoinen. Tietenkin nämä ovat vasta ensimmäisiä askeleita, mutta nyt voit siirtyä eteenpäin itse.

Alun perin ajattelin näyttää tässä syklissä, kuinka nmap- ja sqlmap-ohjelmia käytetään, mutta ilman minua tästä aiheesta on jo paljon artikkeleita. Jos haluat minun jatkavan "Termux askel askeleelta" -sykliä, niin alla on kysely ja kommenteissa voit ehdottaa mitä muuta kirjoittaisi.

Vain rekisteröityneet käyttäjät voivat osallistua kyselyyn. Kirjaudu sisään, ole kiltti.

Jatketaanko "Termux askel askeleelta"?

  • Kyllä

  • Ei

2 käyttäjää äänesti. Ei pidättyneitä äänestämästä.

Lähde: will.com

Lisää kommentti