В
- lære om Termux:API
- installer Python og nano, og skriv "Hej, verden!" i Python
- lær om bash-scripts og skriv et script ved hjælp af Termux:API
- ved hjælp af et bash-script, Termux:API og Python vil vi skrive et simpelt program
Da vi nu forstår, hvad inputkommandoerne gør, vil jeg fra næste trin ikke beskrive hver handling så detaljeret, men hvor der kan være vanskeligheder, vil jeg helt sikkert forklare.
Jeg bruger meget aliaser, så forkortelserne brugt i denne del er vist her:
alias updg='apt update && apt upgrade'
alias py='python'
Planen er klar, du kan begynde! Og selvfølgelig, glem ikke den "magiske fane" (
Trin 4
Dykning ned i Termux:API-kaninhullet
API hvor meget er smeltet sammen i dette ord for koderens hjerte
Hvis vi ikke berører emnet Termux: API, så kunne alle vores trin reduceres til en simpel genfortælling af en eller anden brochure som "Linux for Dummies", som det med rette blev bemærket i kommentarerne til den første del.
Installer først Termux:API fra Google Play Market (det skader ikke at genstarte Termux bagefter):
Dernæst skal vi installere API-pakken i Termux-konsollen:
updg # Не забываем про alias’ы
apt install termux-api
Til eksperimenter bruger jeg Android 5.1.1, for Android 7 skal ejere "beskytte" Termux: API ved at gå til 'Indstillinger' > 'Beskyttede apps', ellers API-kald som f.eks. termux-battery-status
, vil hænge. (Cm.
Nu er det værd at se nærmere på de erhvervede muligheder. Den seneste og mest detaljerede beskrivelse af Termux:API kan findes på
Nogle Termux:API eksempler
- termux-batteri-status
Returnerer batteriets tilstand
- termux-lysstyrke
Indstiller skærmens lysstyrke fra 0 til 255
- termux-toast
Viser en midlertidig toast-meddelelse
- termux-fakkel
Inkluderer lommelygte
- termux-wifi-scaninfo
Returnerer oplysninger om den sidste scanning af Wi-Fi-netværk
Det er let at se, at returværdierne er strenge, ordbøger, lister over ordbøger, generelt datatyper, som Python fungerer godt med, så næste trin er at sætte det op.
Trin 5
Installer Python og nano
For at installere Python skal du skrive i terminalen:
updg
apt install python
apt install python2
Vi har nu 2 og 3 Python installeret.
Mens jeg arbejdede på artiklen, opdagede jeg en anden nano-teksteditor, som jeg kunne lide mere end vim, lad os installere den:
apt install nano
Det er nemmere at bruge end vim, og nano har en mere brugervenlig grænseflade. På en Android-enhed er vim stadig mere praktisk.
HelloWorld i Python på Termux
I det store og hele var det muligt at undvære denne vare, men at sætte Python i Termux og ikke skrive HelloWorld, er efter min mening dårlig maner.
Jeg sætter mig ikke som mål at undervise nogen i Python, så dem, der ikke kender det, kan blot kopiere koden (eller begynde at lære på egen hånd, da der er litteratur nok), og dem, der ved, kan lave noget selv. Og jeg vil stadig "under dække" vise en måde at indtaste tekst i terminalen uden en editor.
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)
Hvis du ikke har bemærket en fejl under indtastningsprocessen og allerede har trykket på Enter, så vil du ikke være i stand til at gå til linjen ovenfor. For at gøre dette skal du afslutte indtastningen ved at trykke på Ctrl + D (du kan generelt afbryde Ctrl + Z) og gentag alt fra begyndelsen. Da vi brugte '>' vil filen blive fuldstændigt overskrevet. Af denne grund anbefaler jeg ikke at bruge denne inputmetode, medmindre du er sikker på, at du vil skrive koden med det samme uden fejl.
Trin 6
Bash scripts
Bash-scripts er en fantastisk måde at automatisere dit terminalarbejde på. Scriptet er en fil med filtypenavnet .sh (udvidelsen er valgfri), der indeholder et sæt terminalkommandoer, hvoraf nogle vi allerede har studeret. Her
Ved hjælp af scripts kan du automatisere næsten alle monotone handlinger. Lad os skrive det enkleste bash-script, der viser værdien fra den variabel, han oprettede, jeg bruger cat igen, du kan bruge en normal teksteditor, og dem, der især vil træne sig selv, kan bruge echo.
cat >test.sh
export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’
echo $str # Для обращения к переменным перед ними ставится ‘$’
# Ctrl + D
# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым
chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым
./test.sh # Запускаем выполнение нашего скрипта
Bash-script med Termux:API
Lad os skrive noget andet end de berygtede HelloWorlds, men lige så ubrugeligt. Vores script bliver:
- udfør termux-battery-status API-anmodningen
- gem de modtagne data i filen test.txt
- udskrive data fra en fil til skærmen
- kør det tidligere skrevne hello-world.py-program
- skriv data modtaget fra programmet til filen test.txt
- udskrive data fra en fil til skærmen
- flytte data fra fil til udklipsholder
- vise indholdet af udklipsholderen
- vise en pop op-meddelelse med data fra udklipsholderen
Først skal du oprette en mappe til arbejde og kopiere hello-world.py dertil som test.py, oprette test.sh og test.txt filer i denne mappe:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch создает файлы
chmod +x test.sh
Nu, på enhver bekvem måde, skriv scriptet til 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 er i bashscript-mappen, skriver vi ./test.sh
vi observerer i terminalen på Android-enheden:
Så vi skrev det planlagte bash-manuskript. Du kan fortynde det med output til konsollen af information om udførelsen af hver handling (ved hjælp af ekko), jeg vil overlade dette til læserne.
Trin 7
Lad os gøre noget nyttigt
Relativt brugbart
Lad os formulere kommissoriet
Efter lanceringen skal applikationen placere en tilfældig linje fra filen på udklipsholderen og give besked om det med en pop-up-meddelelse.
Vi vil tage et bash-script som grundlag, vi vil udtrække en tilfældig linje fra en fil ved hjælp af en Python-underrutine. Lad os lave en arbejdsplan for manuskriptet:
- Kør subrutine
- Overfør resultatet af subrutinen til udklipsholderen
- Vis pop op-meddelelse
Lad os definere navnene på mappen og programfilerne:
- rndstr mappe i hjemmemappe
- kilde - filen, som vi tager linjer fra
- rndstr.py - en underrutine, der viser en tilfældig linje fra kildefilen til konsollen
- rndstr.sh - script-fil
Opret en applikationsmappe og flyt til den og opret filer der.
De første to punkter i scriptplanen kan kombineres af en pipeline, som et resultat, ved hjælp af Termux: API får vi:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
I kildefilen kan du sætte enhver tekst logisk opdelt i linjer, jeg besluttede at sætte aforismer:
Kildefilliste
Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон
Vi skal bare lave en underrutine, der udtrækker en tilfældig streng fra kildefilen.
Lad os skrive subrutinens algoritme:
- Åbn kildefil
- Tæller antallet af linjer i en åben fil
- Luk filen (der er intet til at holde den åben i ekstra tid)
- Vi genererer et tilfældigt heltal inden for antallet af linjer i kildefilen
- Åbn kildefil
- Vi udskriver en linje under nummeret på det genererede nummer
- Lukning af filen
Vi implementerer algoritmen i Python (jeg 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 at filerne er oprettet og skrevet, skal du give filudførelsestilladelser rndstr.sh
, og opret et alias til hurtig lancering.
alias rnst="~/rndstr/rndstr.sh"
Skriver nu i terminal rnst
vi får en tilfældig aforisme på klippebordet, som fx kan bruges i korrespondance.
Her har vi i det mindste skrevet noget brugbart. Relativt brugbart.
Ps
I det sidste trin gav jeg med vilje ikke skærmbilleder og analyserede ikke i detaljer nogle af handlingerne, idet jeg kun skrev indholdet af filerne, så læserne har mulighed for at arbejde på egen hånd.
På denne "Termux step by step" synes jeg det er værd at afslutte. Det er selvfølgelig kun de allerførste skridt, men nu kan du selv komme videre.
Oprindeligt planlagde jeg at vise i denne cyklus, hvordan man bruger nmap, sqlmap, men uden mig er der allerede en masse artikler om dette emne. Hvis du vil have mig til at fortsætte "Termux step by step" cyklussen, så er der en undersøgelse nedenfor, og i kommentarerne kan du foreslå, hvad du ellers skal skrive om.
Kun registrerede brugere kan deltage i undersøgelsen.
Fortsæt "Termux trin for trin"?
-
Ja
-
Nej
2 brugere stemte. Der er ingen undladelser.
Kilde: www.habr.com