В
- Lær om Termux:API
- installer Python og nano, og skriv "Hei, verden!" i Python
- lær om bash-skript og skriv et skript ved hjelp av Termux:API
- ved å bruke et bash-skript, Termux:API og Python vil vi skrive et enkelt program
Siden vi nå forstår hva inngangskommandoene gjør, vil jeg fra neste trinn ikke beskrive hver handling så detaljert, men hvor det kan være vanskeligheter, vil jeg definitivt forklare.
Jeg bruker aliaser mye, så forkortelsene som brukes i denne delen vises her:
alias updg='apt update && apt upgrade'
alias py='python'
Planen er klar, du kan begynne! Og selvfølgelig, ikke glem den "magiske fanen" (
Trinn 4
Dykking nedover Termux:API-kaninhullet
API hvor mye har smeltet sammen i dette ordet for koderens hjerte
Hvis vi ikke berører temaet Termux: API, kan alle trinnene våre reduseres til en enkel gjenfortelling av en brosjyre som "Linux for Dummies", som det med rette ble bemerket i kommentarene til den første delen.
Installer først Termux:API fra Google Play Market (det skader ikke å starte Termux på nytt etterpå):
Deretter må vi installere API-pakken i Termux-konsollen:
updg # Не забываем про alias’ы
apt install termux-api
For eksperimentering bruker jeg Android 5.1.1, for Android 7 må eiere "beskytte" Termux: API ved å gå til "Innstillinger" > "Beskyttede apper", ellers kaller API-er som f.eks. termux-battery-status
, vil henge. (Cm.
Nå er det verdt å se nærmere på de ervervede mulighetene. Den siste og mest detaljerte beskrivelsen av Termux:API finner du på
Noen Termux:API-eksempler
- termux-batteristatus
Returnerer tilstanden til batteriet
- termux-lysstyrke
Stiller inn lysstyrken på skjermen fra 0 til 255
- termux-toast
Viser et midlertidig toastvarsel
- termux-fakkel
Inkluderer lommelykt
- termux-wifi-scaninfo
Returnerer informasjon om siste skanning av Wi-Fi-nettverk
Det er lett å se at returverdiene er strenger, ordbøker, lister over ordbøker, generelt datatyper som Python fungerer bra med, så neste trinn er å sette det opp.
Trinn 5
Installer Python og nano
For å installere Python, skriv i terminalen:
updg
apt install python
apt install python2
Vi har nå installert 2 og 3 Python.
Mens jeg jobbet med artikkelen, oppdaget jeg en annen nanotekstredigerer som jeg likte mer enn vim, la oss installere den:
apt install nano
Det er enklere å bruke enn vim, og nano har et mer brukervennlig grensesnitt. På en Android-enhet er vim fortsatt mer praktisk.
HelloWorld i Python på Termux
I det store og hele var det mulig å klare seg uten denne gjenstanden, men å sette Python i Termux og ikke skrive HelloWorld, etter min mening, er dårlig oppførsel.
Jeg setter meg ikke som mål å lære noen Python, så de som ikke vet kan ganske enkelt kopiere koden (eller begynne å lære på egenhånd, siden det er nok litteratur), og de som vet kan lage noe selv. Og jeg vil "under dekke" fortsatt vise en måte å skrive inn tekst i terminalen uten 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 la merke til en feil under inndataprosessen og allerede har trykket på Enter, vil du ikke kunne gå til linjen ovenfor, for å gjøre dette, avslutter du inntastingen ved å trykke Ctrl + D (du kan vanligvis avbryte Ctrl + Z) og gjenta alt fra begynnelsen. Siden vi brukte '>' vil filen bli fullstendig overskrevet. Av denne grunn anbefaler jeg ikke å bruke denne inndatametoden med mindre du er sikker på at du vil skrive koden umiddelbart uten feil.
Trinn 6
Bash-manus
Bash-skript er en fin måte å automatisere terminalarbeidet på. Skriptet er en fil med filtypen .sh (utvidelsen er valgfri) som inneholder et sett med terminalkommandoer, noen av dem har vi allerede studert. Her
Ved hjelp av skript kan du automatisere nesten alle monotone handlinger. La oss skrive det enkleste bash-skriptet som viser verdien fra variabelen han opprettet, jeg bruker cat igjen, du kan bruke en vanlig teksteditor, og de som spesielt ønsker å trene seg selv kan bruke 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-skript med Termux:API
La oss skrive noe annet enn de beryktede HelloWorlds, men like ubrukelig. Manuset vårt vil være:
- utfør termux-battery-status API-forespørselen
- lagre de mottatte dataene til filen test.txt
- skrive ut data fra en fil til skjermen
- kjør det tidligere skrevne programmet hello-world.py
- skriv dataene mottatt fra programmet til filen test.txt
- skrive ut data fra en fil til skjermen
- flytte data fra fil til utklippstavle
- vise innholdet på utklippstavlen
- vise en popup-melding med data fra utklippstavlen
Opprett først en mappe for jobb og kopier hello-world.py dit som test.py, lag test.sh og test.txt-filer i denne mappen:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch создает файлы
chmod +x test.sh
Nå, på en hvilken som helst praktisk måte, skriv skriptet 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 nå er i bashscript-mappen, skriver vi ./test.sh
vi observerer i terminalen på Android-enheten:
Så vi skrev det planlagte bash-manuset. Du kan fortynne det med utdata til konsollen med informasjon om utførelsen av hver handling (ved hjelp av ekko), jeg vil overlate dette til leserne.
Trinn 7
La oss gjøre noe nyttig
Relativt nyttig
La oss formulere referansevilkårene
Etter oppstart skal applikasjonen plassere en tilfeldig linje fra filen på utklippstavlen og varsle om det med en popup-melding.
Vi vil ta et bash-skript som grunnlag, vi vil trekke ut en tilfeldig linje fra en fil ved hjelp av en Python-subrutine. La oss lage en arbeidsplan for manus:
- Kjør subrutine
- Overfør resultatet av subrutinen til utklippstavlen
- Vis popup-melding
La oss definere navnene på katalogen og programfilene:
- rndstr-mappen i hjemmekatalogen
- kilde - filen som vi tar linjer fra
- rndstr.py - en subrutine som viser en tilfeldig linje fra kildefilen til konsollen
- rndstr.sh - skriptfil
Opprett en programkatalog og flytt til den og lag filer der.
De to første punktene i skriptplanen kan kombineres med en pipeline, som et resultat, ved å bruke Termux: API får vi:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
I kildefilen kan du legge hvilken som helst tekst logisk delt inn i linjer, jeg bestemte meg for å sette aforismer:
Kildefiloppføring
Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон
Vi trenger bare å lage en subrutine som trekker ut en tilfeldig streng fra kildefilen.
La oss skrive algoritmen til subrutinen:
- Åpen kildefil
- Å telle antall linjer i en åpen fil
- Lukk filen (det er ingenting som kan holde den åpen for ekstra tid)
- Vi genererer et tilfeldig heltall innenfor antall linjer i kildefilen
- Åpen kildefil
- Vi sender ut en linje under nummeret til det genererte nummeret
- Lukker 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 # закрываем файл
Etter at filene er opprettet og skrevet, må du gi filen kjøringstillatelser rndstr.sh
, og opprett et alias for hurtigstart.
alias rnst="~/rndstr/rndstr.sh"
Skriver nå i terminal rnst
vi vil få en tilfeldig aforisme på utklippstavlen, som for eksempel kan brukes i korrespondanse.
Her har vi skrevet i det minste noe nyttig. Relativt nyttig.
ps
I det siste trinnet ga jeg med vilje ikke skjermbilder og analyserte ikke noen av handlingene i detalj, og skrev bare innholdet i filene slik at leserne har mulighet til å jobbe på egenhånd.
På denne «Termux steg for steg» synes jeg det er verdt å fullføre. Selvfølgelig er dette bare de aller første trinnene, men nå kan du gå videre selv.
I utgangspunktet planla jeg å vise i denne syklusen hvordan du bruker nmap, sqlmap, men uten meg er det allerede mange artikler om dette emnet. Hvis du vil at jeg skal fortsette «Termux steg for steg»-syklusen, så er det en undersøkelse nedenfor, og i kommentarfeltet kan du foreslå hva annet du kan skrive om.
Kun registrerte brukere kan delta i undersøkelsen.
Fortsette "Termux steg for steg"?
-
Ja
-
Ikke
2 brukere stemte. Det er ingen avståelser.
Kilde: www.habr.com