Termux steg för steg (del 2)

В sista delen Vi bekantade oss med de grundläggande Termux-kommandona, satte upp en SSH-anslutning med en PC, lärde oss hur man skapar alias och installerade flera användbara verktyg. Den här gången måste vi gå ännu längre, vi är med dig:

  • lär dig om Termux:API
  • Låt oss installera Python och nano, och även skriva "Hej, värld!" i Python
  • lär dig om bash-skript och skriv ett skript med Termux:API
  • Låt oss skriva ett enkelt program med ett bash-skript, Termux:API och Python

Eftersom vi nu förstår vad de inmatade kommandona gör kommer jag från nästa steg inte att beskriva varje åtgärd så detaljerat, men var det kan finnas svårigheter kommer jag definitivt att förklara.

Jag använder ofta alias, så förkortningarna som används i den här delen visas här:

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

Planen är klar, vi kan börja! Och naturligtvis, glöm inte den "magiska fliken" (Se del 1).

Steg 4

Dyk ner i Termux:API-kaninhålet

API, hur mycket i det här ordet för kodarens hjärta har smält samman

Om vi ​​inte berör ämnet Termux:API, kan alla våra steg reduceras till en enkel återberättelse av någon broschyr som "Linux for Dummies", vilket med rätta noterades i kommentarerna till den första delen.

Låt oss först installera Termux:API från Google Play Market (efteråt skadar det inte att starta om Termux):

Termux steg för steg (del 2)

Därefter måste vi installera API-paketet i Termux-konsolen:

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

För experiment som jag använder Android 5.1.1, för Android 7-ägare måste du "skydda" Termux:API genom att gå till Inställningar > Skyddade appar, annars API-anrop som t.ex. termux-battery-status, kommer att frysa. (Centimeter. projekt wiki)

Nu är det dags att titta närmare på de förvärvade förmågorna. Den senaste och detaljerade beskrivningen av Termux:API finns på projekt wiki. Jag kommer att försöka välja det mest visuella och intressanta, vilket gör att jag kan bli bättre på självständigt arbete i framtiden.

Några exempel på Termux:API

  • termux-batteristatus
    Återställer batteristatus
    Termux steg för steg (del 2)
  • termux-ljusstyrka
    Ställer in skärmens ljusstyrka från 0 till 255
    Termux steg för steg (del 2)
  • termux-toast
    Visar ett tillfälligt popup-meddelande
    Termux steg för steg (del 2)
  • termux-fackla
    Inkluderar ficklampa
    Termux steg för steg (del 2)
  • termux-wifi-scaninfo
    Returnerar information om den senaste genomsökningen av Wi-Fi-nätverk
    Termux steg för steg (del 2)

Det är lätt att se att returvärdena är strängar, ordböcker, listor med ordböcker, i princip datatyper som Python fungerar bra med, så nästa steg är att ställa in det.

Steg 5

Installera Python och nano

För att installera Python, skriv i terminalen:

updg
apt install python
apt install python2

Nu har vi Python 2 och 3 installerade.

När jag arbetade med den här artikeln upptäckte jag en annan textredigerare, nano, som jag gillade mer än vim, låt oss installera den:

apt install nano

Det är lättare att använda än vim, och nano har ett mer användarvänligt gränssnitt. På en Android-enhet är vim fortfarande bekvämare.

HelloWorld i Python i Termux

I stort sett gick det att klara sig utan denna punkt, men att installera Python i Termux och inte skriva HelloWorld, enligt mig, är dåligt uppförande.

Mitt mål är inte att lära någon Python, så de som inte kan kan helt enkelt kopiera koden (eller börja lära sig på egen hand, lyckligtvis finns det tillräckligt med litteratur), och de som vet kan skulptera något själva. Och i det tysta kommer jag också att visa dig ett sätt att skriva in text i terminalen utan en redigerare.

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 steg för steg (del 2)

Om du under inmatningsprocessen inte märkte ett fel och redan tryckte på Enter, kommer du inte att kunna gå till raden ovan; för att göra detta, avsluta inmatningen genom att trycka på Ctrl + D (du kan till och med avbryta Ctrl + Z) och upprepa allt från början. Eftersom vi använde '>' kommer filen att skrivas om helt. Av denna anledning rekommenderar jag inte att du använder den här inmatningsmetoden om du inte är säker på att du kommer att skriva koden direkt utan fel.

Steg 6

Bash manus

Bash-skript är ett utmärkt sätt att automatisera ditt terminalarbete. Skriptet är en fil med filtillägget .sh (tillägget är valfritt) som innehåller en uppsättning terminalkommandon, av vilka vi redan har studerat några. Här lista över de flesta kommandon, allt borde fungera, men observera att detta är en lista för "vuxen" Linux, och inte för Termux, utan bara Bra grejer på bash-skript.

Med hjälp av skript kan du automatisera nästan alla monotona handlingar. Låt oss skriva ett enkelt bash-skript som matar ut värdet från variabeln det skapade, jag kommer återigen att använda cat, du kan använda en vanlig textredigerare, och de som särskilt vill träna sig själva kan använda 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 steg för steg (del 2)

Bash script med Termux:API

Låt oss skriva något annat än de ökända HelloWorlds, men lika värdelöst. Vårt manus kommer att vara:

  1. utför termux-battery-status API-begäran
  2. spara mottagen data till filen test.txt
  3. visa data från en fil på skärmen
  4. kör det tidigare skrivna programmet hello-world.py
  5. Skriv data som tas emot från programmet till filen test.txt
  6. visa data från en fil på skärmen
  7. överföra data från en fil till urklipp
  8. visa innehållet i klippbordet
  9. visa ett popup-meddelande med data från klippbordet

Låt oss först skapa en mapp för arbetet och kopiera hello-world.py dit som test.py, skapa filerna test.sh och test.txt i den här mappen:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Nu, på något bekvämt sätt, skriv skriptet till test.sh-filen:

#!/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är vi nu är i bashscript-mappen skriver vi ./test.sh Vi ser i terminalen på en Android-enhet:

Termux steg för steg (del 2)

Så vi skrev det planerade bashmanuset. Du kan späda ut det genom att mata ut information om utförandet av varje åtgärd till konsolen (med eko), jag lämnar detta till läsarna.

Steg 7

Låt oss göra något användbart

Relativt användbar

Låt oss formulera referensvillkoren
Efter lansering bör applikationen placera en slumpmässig rad från en fil på urklippet och meddela detta med ett popup-meddelande.

Låt oss ta ett bash-skript som grund och extrahera en slumpmässig rad från en fil med en Python-subrutin. Låt oss göra en plan för manuset:

  1. Kör subrutin
  2. Överför resultatet av subrutinen till urklippet
  3. Visa ett popup-meddelande

Låt oss bestämma namnen på katalogen och programfilerna:

  • rndstr-mappen i hemkatalogen
    • source - filen som vi tar linjer från
    • rndstr.py - en subrutin som skriver ut en slumpmässig rad från källfilen till konsolen
    • rndstr.sh - skriptfil

Vi skapar applikationskatalogen och flyttar in i den och skapar filer där.

De första två punkterna i skriptplanen kan kombineras av en pipeline, som ett resultat av att använda Termux:API får vi:

#!/bin/bash

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

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

I källfilen kan du lägga vilken text som helst logiskt uppdelad i rader, jag bestämde mig för att sätta aforismer:

Lista över källfiler

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

Allt vi behöver göra är att skapa en subrutin som extraherar en slumpmässig sträng från källfilen.
Låt oss beskriva subrutinens algoritm:

  1. Öppna källfilen
  2. Räknar antalet rader i en öppen fil
  3. Stäng filen (ingen idé att ha den öppen för länge)
  4. Generera ett slumpmässigt heltal inom antalet rader i källfilen
  5. Öppna källfilen
  6. Vi visar en rad under numret på det genererade numret
  7. Stänger filen

Låt oss implementera algoritmen i Python (jag skriver under 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  #  закрываем файл

Efter att filerna har skapats och skrivits måste du ge exekveringsrättigheter till filen rndstr.sh, och skapa ett alias för snabbstart.

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

Nu genom att gå in i terminalen rnst vi kommer att få en slumpmässig aforism på klippbordet, som till exempel kan användas i korrespondens.

Så vi skrev åtminstone något användbart. Relativt användbar.

Ps

I det sista steget tillhandahöll jag medvetet inte skärmdumpar och analyserade inte i detalj några av åtgärderna, och beskrev bara innehållet i filerna så att läsarna hade möjlighet att arbeta på egen hand.

Jag tycker att det är värt att avsluta denna "Termux steg för steg". Naturligtvis är detta bara de allra första stegen, men nu kan du gå vidare på egen hand.

Från början planerade jag att visa i den här serien hur man använder nmap, sqlmap, men även utan mig finns det redan många artiklar om detta ämne. Om du vill att jag ska fortsätta serien ”Termux steg för steg” så finns det en enkät nedan och i kommentarerna kan du tipsa om vad mer att skriva om.

Endast registrerade användare kan delta i undersökningen. Logga in, Snälla du.

Fortsätta "Termux steg för steg"?

  • Ja

  • Ingen

2 användare röstade. Det finns inga nedlagda röster.

Källa: will.com

Lägg en kommentar