В
- aprendre sobre Termux:API
- instal·leu Python i nano i escriviu "Hola, món!" en Python
- aprendre sobre els scripts bash i escriure un script amb Termux:API
- utilitzant un script bash, Termux:API i Python escriurem un programa senzill
Com que ara entenem què fan les ordres d'entrada, a partir del pas següent no descriuré cada acció amb tant de detall, però quan hi pugui haver dificultats, definitivament ho explicaré.
Utilitzo molt àlies, de manera que les abreviatures utilitzades en aquesta part es mostren aquí:
alias updg='apt update && apt upgrade'
alias py='python'
El pla està llest, ja pots començar! I, per descomptat, no us oblideu de la "pestanya màgica" (
Pas 4
Immersió pel Termux: API Rabbit Hole
API quant s'ha fusionat en aquesta paraula per al cor del codificador
Si no toquem el tema de Termux: API, aleshores tots els nostres passos es podrien reduir a una simple repetició d'algun fulletó com "Linux for Dummies", com es va assenyalar amb raó als comentaris de la primera part.
Primer, instal·leu Termux:API des de Google Play Market (no fa mal reiniciar Termux després):
A continuació, hem d'instal·lar el paquet API a la consola Termux:
updg # Не забываем про alias’ы
apt install termux-api
Per experimentar, estic fent servir Android 5.1.1, els propietaris d'Android 7 han de "protegir" Termux: API anant a "Configuració" > "Aplicacions protegides", en cas contrari, l'API crida com termux-battery-status
, penjarà. (Cm.
Ara val la pena mirar més de prop les oportunitats adquirides. La descripció més recent i detallada de Termux:API es pot trobar a
Alguns exemples de Termux:API
- termux-estat de la bateria
Retorna l'estat de la bateria
- termux-lluminositat
Estableix la brillantor de la pantalla de 0 a 255
- termux-torrada
Mostra una notificació de brindis temporal
- termux-torxa
Inclou llanterna
- termux-wifi-scaninfo
Retorna informació sobre l'última exploració de xarxes Wi-Fi
És fàcil veure que els valors de retorn són cadenes, diccionaris, llistes de diccionaris, en general, tipus de dades amb els quals Python funciona molt bé, de manera que el següent pas és configurar-lo.
Pas 5
Instal·leu Python i nano
Per instal·lar Python, escriviu al terminal:
updg
apt install python
apt install python2
Ara tenim instal·lat Python 2 i 3.
Mentre treballava en l'article, vaig descobrir un altre editor de text nano que m'agradava més que vim, instal·lem-lo:
apt install nano
És més fàcil d'utilitzar que vim i el nano té una interfície més fàcil d'utilitzar. En un dispositiu Android, vim encara és més convenient.
HelloWorld a Python a Termux
En general, era possible prescindir d'aquest element, però posar Python a Termux i no escriure HelloWorld, al meu entendre, és una mala educació.
No pretenc ensenyar Python a ningú, de manera que els que no ho saben poden simplement copiar el codi (o començar a aprendre pel seu compte, ja que hi ha prou literatura), i els que ho saben poden fer alguna cosa ells mateixos. I "sota la disfressa" encara mostraré una manera d'introduir text al terminal sense un 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)
Si no heu notat cap error durant el procés d'entrada i ja heu premut Enter, no podreu anar a la línia de dalt, per fer-ho, finalitzeu l'entrada prement Ctrl + D (generalment podeu interrompre Ctrl + D). Z) i repeteix-ho tot des del principi. Com que hem utilitzat '>', el fitxer es sobreescriurà completament. Per aquest motiu, no recomano utilitzar aquest mètode d'entrada tret que estigueu segur que escriureu el codi immediatament sense errors.
Pas 6
Scripts Bash
Els scripts Bash són una bona manera d'automatitzar el treball del vostre terminal. L'script és un fitxer amb l'extensió .sh (l'extensió és opcional) que conté un conjunt d'ordres de terminal, algunes de les quals ja hem estudiat. Aquí
Amb l'ajuda dels scripts, podeu automatitzar gairebé totes les accions monòtones. Escrivim l'script bash més senzill que mostri el valor de la variable que va crear, tornaré a utilitzar cat, podeu utilitzar un editor de text normal i aquells que vulguin entrenar-se especialment poden utilitzar echo.
cat >test.sh
export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’
echo $str # Для обращения к переменным перед ними ставится ‘$’
# Ctrl + D
# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым
chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым
./test.sh # Запускаем выполнение нашего скрипта
Script Bash amb Termux:API
Escrivim alguna cosa diferent dels notoris HelloWorlds, però igual de inútil. El nostre guió serà:
- executeu la sol·licitud de l'API termux-battery-status
- deseu les dades rebudes al fitxer test.txt
- imprimir dades d'un fitxer a la pantalla
- executeu el programa hello-world.py escrit anteriorment
- escriviu les dades rebudes del programa al fitxer test.txt
- imprimir dades d'un fitxer a la pantalla
- moure les dades del fitxer al porta-retalls
- mostrar el contingut del porta-retalls
- mostrar un missatge emergent amb dades del porta-retalls
Primer, creeu una carpeta per treballar i copieu-hi hello-world.py com a test.py, creeu fitxers test.sh i test.txt en aquesta carpeta:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch создает файлы
chmod +x test.sh
Ara, de qualsevol manera convenient, escriviu l'script al fitxer 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
Ara, en estar a la carpeta bashscript, escrivim ./test.sh
observem al terminal del dispositiu Android:
Així que vam escriure l'script de bash previst. Podeu diluir-lo amb la sortida a la consola d'informació sobre l'execució de cada acció (utilitzant echo), això ho deixaré per als lectors.
Pas 7
Fem alguna cosa útil
Relativament útil
Formulem els termes de referència
Després del llançament, l'aplicació hauria de col·locar una línia aleatòria del fitxer al porta-retalls i notificar-ho amb un missatge emergent.
Prenem com a base un script bash, extreurem una línia aleatòria d'un fitxer utilitzant una subrutina de Python. Fem un pla de treball del guió:
- Executeu la subrutina
- Transferiu el resultat de la subrutina al porta-retalls
- Mostra un missatge emergent
Definim els noms del directori i dels fitxers d'aplicació:
- carpeta rndstr al directori d'inici
- font - el fitxer del qual agafarem les línies
- rndstr.py: una subrutina que mostra una línia aleatòria des del fitxer font fins a la consola
- rndstr.sh - fitxer d'script
Creeu un directori d'aplicació i aneu-hi i creeu-hi fitxers.
Els dos primers punts del pla de script es poden combinar mitjançant un pipeline, com a resultat, utilitzant Termux: API obtenim:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
Al fitxer font, podeu posar qualsevol text dividit lògicament en línies, vaig decidir posar aforismes:
Llistat de fitxers font
Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон
Només hem de crear una subrutina que extreu una cadena aleatòria del fitxer font.
Escrivim l'algorisme de la subrutina:
- Fitxer de codi obert
- Comptar el nombre de línies d'un fitxer obert
- Tanqueu el fitxer (no hi ha res que el mantingui obert durant més temps)
- Generem un nombre enter aleatori dins del nombre de línies del fitxer font
- Fitxer de codi obert
- Sortim una línia sota el número del número generat
- Tancant l'arxiu
Implementem l'algorisme a Python (escric sota 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 # закрываем файл
Un cop creats i escrits els fitxers, heu de donar els permisos d'execució del fitxer rndstr.sh
, i creeu un àlies per a un llançament ràpid.
alias rnst="~/rndstr/rndstr.sh"
Ara escrivint al terminal rnst
obtindrem un aforisme aleatori al porta-retalls, que, per exemple, es pot utilitzar en correspondència.
Aquí hem escrit almenys alguna cosa útil. Relativament útil.
ps
En l'últim pas, intencionadament no vaig proporcionar captures de pantalla i no vaig analitzar en detall algunes de les accions, escrivint només el contingut dels fitxers perquè els lectors tinguessin l'oportunitat de treballar pel seu compte.
En aquest "Termux pas a pas", crec que val la pena acabar. Per descomptat, aquests són només els primers passos, però ara podeu avançar vosaltres mateixos.
Inicialment, tenia previst mostrar en aquest cicle com utilitzar nmap, sqlmap, però sense mi ja hi ha molts articles sobre aquest tema. Si voleu que continuï el cicle "Termux pas a pas", hi ha una enquesta a continuació i als comentaris podeu suggerir què més escriure.
Només els usuaris registrats poden participar en l'enquesta.
Continueu "Termux pas a pas"?
-
Sí
-
No
Han votat 2 usuaris. No hi ha abstencions.
Font: www.habr.com