В
- Scopri Termux:API
- installate Python è nano, è scrive "Hello, world!" in Python
- scopre nantu à i script bash è scrive un script cù Termux:API
- usendu un script bash, Termux: API è Python scriveremu un prugramma simplice
Siccomu avà capiscenu ciò chì facenu i cumandamenti di input, allora da u prossimu passu ùn aghju micca descriverà ogni azzione in tali dettagliu, ma induve ci ponu esse difficultà, spiegheraghju definitivamente.
Aduprate alias assai, cusì l'abbreviazioni aduprate in questa parte sò mostrate quì:
alias updg='apt update && apt upgrade'
alias py='python'
U pianu hè prontu, pudete inizià! È, sicuru, ùn vi scurdate micca di a "Magic Tab" (
mossa 4
Immersione in u Termux: API Rabbit Hole
API quantu hè fusionatu in sta parolla per u core di u codificatore
S'ellu ùn tocca micca u tema di Termux: API, allora tutti i nostri passi puderanu esse ridotti à una semplice retazione di qualchì brochure cum'è "Linux for Dummies", cum'è hè statu ghjustu nutatu in i cumenti à a prima parte.
Prima, installate Termux: API da u Google Play Market (ùn hè micca male di riavvià Termux dopu):
Dopu, avemu bisognu di stallà u pacchettu API in a cunsola Termux:
updg # Не забываем про alias’ы
apt install termux-api
Per l'esperimentazione aghju utilizatu Android 5.1.1, per i pruprietarii di Android 7 anu bisognu di "prutegge" Termux: API andendu in "Settings"> "Protected Apps" altrimenti API chjama cum'è termux-battery-status
, s'impiccarà. (Cm.
Avà vale a pena guardà più attente à e opportunità acquistate. L'ultima è più dettagliata descrizzione di Termux:API pò esse truvata à
Certi esempi di Termux:API
- termux-batteria-status
Ritorna u statu di a bateria
- termux-luminosità
Imposta a luminosità di u screnu da 0 à 255
- termux-toast
Mostra una notificazione di brindisi temporale
- termux-torch
Include torcia
- termux-wifi-scaninfo
Ritorna infurmazione nantu à l'ultima scansione di e rete Wi-Fi
Hè faciule per vede chì i valori di ritornu sò strings, dizionari, listi di dizionari, in generale, tippi di dati chì Python travaglia bè, cusì u prossimu passu hè di stallà.
mossa 5
Installa Python è nano
Per installà Python, scrivite in u terminal:
updg
apt install python
apt install python2
Avemu avà installatu 2 è 3 Python.
Mentre travagliava nantu à l'articulu, aghju scupertu un altru editore di testu nano chì mi piaceva più di vim, stallàmu:
apt install nano
Hè più faciule d'utilizà cà vim, è nano hà una interfaccia più amichevule. Nant'à un dispositivu Android, vim hè sempre più cunvene.
HelloWorld in Python à Termux
In generale, era pussibule di fà senza questu articulu, ma mette Python in Termux è micca scrive HelloWorld, in my opinion, hè una mala manera.
Ùn aghju micca stabilitu u scopu di insignà à qualcunu Python, cusì quelli chì ùn sanu micca ponu solu copià u codice (o cumincianu à amparà da sè stessu, postu chì ci hè abbastanza literatura), è quelli chì cunnosci ponu fà qualcosa elli stessi. È vi "sottu u guise" mostra sempre un modu per inserisce u testu in u terminal senza un editore.
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)
Se ùn avete micca nutatu un errore durante u prucessu di input è digià pressatu Enter, allora ùn puderete micca andà à a linea sopra, per fà questu, finisce l'input premendu Ctrl + D (pudete generalmente interrompe Ctrl + D). Z) è ripetite tuttu da u principiu. Dapoi avemu usatu '>' tandu u schedariu sarà cumplitamenti overwritten. Per questu mutivu, ùn ricumandemu micca di utilizà stu metudu di input, salvu chì ùn site sicuru chì scrive u codice immediatamente senza errore.
mossa 6
Bash scripts
I scripts Bash sò una bella manera di automatizà u vostru travagliu di terminal. U script hè un schedariu cù l'estensione .sh (l'estensione hè facultativa) chì cuntene un inseme di cumandamenti di terminal, alcuni di quale avemu digià studiatu. Quì
Cù l'aiutu di scripts, pudete automatizà quasi tutte l'azzioni monotoni. Scrivemu u script bash più simplice chì mostra u valore da a variàbile chì hà creatu, aghju aduprà cat di novu, pudete aduprà un editore di testu normale, è quelli chì volenu furmà si ponu utilizà l'eco.
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 cù Termux:API
Scrivemu qualcosa di sfarente da i famusi HelloWorlds, ma cum'è inutile. U nostru script serà:
- eseguite a dumanda API termux-battery-status
- salvà i dati ricevuti à u schedariu test.txt
- stampate dati da un schedariu à u screnu
- eseguisce u prugramma hello-world.py scrittu prima
- scrivite i dati ricevuti da u prugramma à u schedariu test.txt
- stampate dati da un schedariu à u screnu
- move dati da u schedariu à u clipboard
- mostra u cuntenutu di u clipboard
- mostra un missaghju popup cù dati da u clipboard
Prima, crea un cartulare per u travagliu è copià hello-world.py quì cum'è test.py, crea i schedari test.sh è test.txt in questu cartulare:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch создает файлы
chmod +x test.sh
Avà, in ogni modu cunvene, scrivite u script à u schedariu 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
Avà, essendu in u cartulare bashscript, scrivimu ./test.sh
avemu osservatu in u terminal nant'à u dispusitivu Android:
Allora avemu scrittu u script bash pianificatu. Pudete dilute cù l'output à a cunsola di l'infurmazioni nantu à l'esekzione di ogni azzione (using echo), lasciaraghju questu per i lettori.
mossa 7
Facemu qualcosa utile
Relativamente utile
Formulemu i termini di riferimentu
Dopu à u lanciamentu, l'applicazione deve mette una linea aleatoria da u schedariu nantu à u clipboard è avvisà cun un missaghju pop-up.
Piglieremu un script bash cum'è una basa, estraremu una linea aleatoria da un schedariu utilizendu una subrutina Python. Facemu un pianu di travagliu di script:
- Run subroutine
- Trasferisce u risultatu di a subrutina à u clipboard
- Mostra u missaghju popup
Definimu i nomi di u cartulare è i schedarii di l'applicazione:
- rndstr cartulare in u cartulare di casa
- surghjente - u schedariu da quale avemu da piglià linii
- rndstr.py - una subrutina chì mostra una linea aleatoria da u schedariu fonte à a cunsola
- rndstr.sh - schedariu di script
Crea un repertoriu di l'applicazioni è andate à ellu è creanu schedarii quì.
I primi dui punti di u pianu di script ponu esse cumminati da un pipeline, per quessa, utilizendu Termux: API avemu:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
In u schedariu fonte, pudete mette ogni testu divisu logicamente in linii, aghju decisu di mette aforismi:
Elencu di u fugliale di fonte
Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон
Avemu bisognu di creà una subrutina chì estrae una stringa aleatoria da u schedariu fonte.
Scrivemu l'algoritmu di a subrutina:
- Open source file
- Cuntà u numeru di linii in un schedariu apertu
- Chiudi u schedariu (ùn ci hè nunda per mantene apertu per tempu extra)
- Generemu un integer aleatoriu in u numeru di linii di u schedariu fonte
- Open source file
- Sortemu una linea sottu u numeru di u numeru generatu
- Chjudendu u schedariu
Implementemu l'algoritmu in Python (scrivu sottu 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 # закрываем файл
Dopu chì i schedari sò creati è scritti, avete bisognu di dà i permessi di esecuzione di u schedariu rndstr.sh
, è crea un alias per u lanciu rapidu.
alias rnst="~/rndstr/rndstr.sh"
Avà scrivite in u terminal rnst
averemu un aforismu aleatoriu nantu à u clipboard, chì, per esempiu, pò esse usatu in currispundenza.
Quì avemu scrittu almenu qualcosa utile. Relativamente utile.
Ps
In l'ultimu passu, ùn aghju micca furnitu intenzionalmente screenshots è ùn anu micca analizatu in dettagliu alcune di l'azzioni, scrivendu solu u cuntenutu di i schedari per chì i lettori anu l'uppurtunità di travaglià per sè stessu.
Nantu à questu "Termux passu à passu", pensu chì vale a pena finisce. Di sicuru, questi sò solu i primi passi, ma avà pudete avanzà sè stessu.
In principiu, aghju pensatu à mustrà in questu ciclu cumu utilizà nmap, sqlmap, ma senza mè ci sò digià assai articuli nantu à questu tema. Sè vo vulete cuntinuà u ciculu "Termux passu à passu", allura ci hè un sondaghju sottu è in i cumenti pudete suggerisce chì altru scrive.
Solu l'utilizatori registrati ponu participà à l'indagine.
Cuntinuà "Termux passu à passu"?
-
chì
-
No
2 utilizatori anu vutatu. Ùn ci sò astensioni.
Source: www.habr.com