В
- Termux:API haqqında məlumat əldə edin
- Python və nano-nu quraşdırın və "Salam, dünya!" Python dilində
- bash skriptləri haqqında məlumat əldə edin və Termux:API istifadə edərək skript yazın
- bash skripti, Termux:API və Python istifadə edərək sadə bir proqram yazacağıq
Giriş əmrlərinin nə etdiyini indi başa düşdüyümüz üçün növbəti addımdan hər bir hərəkəti belə ətraflı təsvir etməyəcəyəm, lakin çətinliklər ola biləcəyi yerlərdə mütləq izah edəcəyəm.
Mən ləqəblərdən çox istifadə edirəm, ona görə də bu hissədə istifadə olunan abbreviaturalar burada göstərilir:
alias updg='apt update && apt upgrade'
alias py='python'
Plan hazırdır, başlaya bilərsiniz! Və əlbəttə ki, "sehrli nişanı" unutma (
4 addım
Termuxdan aşağı dalış:API Rabbit Hole
API nə qədər kodlaşdırıcının ürəyi üçün bu sözlə birləşdi
Termux: API mövzusuna toxunmasaq, bütün addımlarımızı birinci hissənin şərhlərində haqlı olaraq qeyd edildiyi kimi, "Butaforlar üçün Linux" kimi bəzi broşuranın sadə təkrarlanmasına qədər azaldıla bilər.
Əvvəlcə Google Play Market-dən Termux:API-ni quraşdırın (sonra Termux-u yenidən işə salmağın zərəri yoxdur):
Sonra API paketini Termux konsolunda quraşdırmalıyıq:
updg # Не забываем про alias’ы
apt install termux-api
Təcrübə üçün mən Android 5.1.1-dən istifadə edirəm, Android 7 sahibləri Termux: API-nı "Parametrlər" > "Qorunan Proqramlar"a keçərək "qorumalıdırlar", əks halda API zəngləri kimi termux-battery-status
, asılacaq. (Santimetr.
İndi əldə edilmiş imkanlara daha yaxından nəzər salmağa dəyər. Termux:API-nin ən son və ən ətraflı təsvirini burada tapa bilərsiniz
Bəzi Termux:API nümunələri
- termux-batareya-status
Batareyanın vəziyyətini qaytarır
- termux-parlaqlıq
Ekranın parlaqlığını 0-dan 255-ə qədər təyin edir
- termux-tost
Müvəqqəti tost bildirişini göstərir
- termux-məşəl
Fənər daxildir
- termux-wifi-scaninfo
Wi-Fi şəbəkələrinin son skanı haqqında məlumatı qaytarır
Qaytarılan dəyərlərin sətirlər, lüğətlər, lüğətlərin siyahıları, ümumiyyətlə, Python-un əla işlədiyi məlumat növləri olduğunu görmək asandır, ona görə də növbəti addım onu qurmaqdır.
5 addım
Python və nano quraşdırın
Python quraşdırmaq üçün terminala yazın:
updg
apt install python
apt install python2
İndi bizdə 2 və 3 Python quraşdırılıb.
Məqalə üzərində işləyərkən vimdən daha çox bəyəndiyim başqa bir nano mətn redaktoru kəşf etdim, onu quraşdıraq:
apt install nano
Onun istifadəsi vim-dən daha asandır və nano daha rahat interfeysə malikdir. Android cihazında vim hələ də daha rahatdır.
Termux-da Python-da HelloWorld
Ümumiyyətlə, bu element olmadan etmək mümkün idi, lakin Python-u Termux-a yerləşdirmək və HelloWorld yazmamaq, məncə, pis davranışdır.
Mən heç kimə Python öyrətmək niyyətində deyiləm, ona görə də bilməyənlər sadəcə kodu köçürə bilsinlər (ya da kifayət qədər ədəbiyyat olduğu üçün özləri öyrənməyə başlasınlar), bilənlər isə özləri nəsə düzəldə bilsinlər. Mən isə hələ də redaktor olmadan terminala mətn daxil etməyin yolunu “qıda altında” göstərəcəyəm.
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)
Daxiletmə prosesində xəta görməmisinizsə və artıq Enter düyməsini basmısınızsa, o zaman yuxarıdakı sətirə keçə bilməyəcəksiniz, bunun üçün Ctrl + D düymələrini basaraq daxiletməni bitirin (ümumiyyətlə Ctrl + düymələrini kəsə bilərsiniz. Z) və hər şeyi əvvəldən təkrarlayın. Biz '>' istifadə etdiyimiz üçün fayl tamamilə üzərinə yazılacaq. Bu səbəbdən kodu dərhal səhvsiz yazacağınıza əmin olmasanız, bu giriş metodundan istifadə etməyi məsləhət görmürəm.
6 addım
Bash skriptləri
Bash skriptləri terminal işinizi avtomatlaşdırmaq üçün əla yoldur. Skript .sh uzantısına malik fayldır (uzatma isteğe bağlıdır) bir sıra terminal əmrlərini ehtiva edir, bəzilərini artıq öyrənmişik. Budur
Skriptlərin köməyi ilə demək olar ki, bütün monoton hərəkətləri avtomatlaşdıra bilərsiniz. Onun yaratdığı dəyişəndən dəyəri göstərən ən sadə bash skriptini yazaq, mən yenə cat istifadə edəcəm, siz normal mətn redaktorundan istifadə edə bilərsiniz, xüsusilə özünü məşq etmək istəyənlər echo-dan istifadə edə bilər.
cat >test.sh
export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’
echo $str # Для обращения к переменным перед ними ставится ‘$’
# Ctrl + D
# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым
chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым
./test.sh # Запускаем выполнение нашего скрипта
Termux:API ilə Bash skripti
Gəlin bədnam HelloWorlds-dən fərqli bir şey yazaq, amma bir o qədər də faydasız. Skriptimiz belə olacaq:
- termux-battery-status API sorğusunu yerinə yetirin
- alınan məlumatları test.txt faylında saxlayın
- məlumatı fayldan ekrana çap edin
- əvvəllər yazılmış hello-world.py proqramını icra edin
- proqramdan alınan məlumatları test.txt faylına yazın
- məlumatı fayldan ekrana çap edin
- məlumatı fayldan panoya köçürün
- mübadilə buferinin məzmununu göstərin
- panoya məlumatlarla pop-up mesajı göstərin
Əvvəlcə iş üçün bir qovluq yaradın və hello-world.py-ni ora test.py olaraq kopyalayın, bu qovluqda test.sh və test.txt faylları yaradın:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch создает файлы
chmod +x test.sh
İndi istənilən rahat şəkildə skripti test.sh faylına yazın:
#!/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
İndi bashscript qovluğunda olmaqla biz yazırıq ./test.sh
Android cihazındakı terminalda müşahidə edirik:
Beləliklə, planlaşdırılan bash skriptini yazdıq. Siz hər bir hərəkətin yerinə yetirilməsi haqqında məlumat konsoluna çıxışla seyreltə bilərsiniz (echo istifadə edərək), bunu oxuculara buraxacağam.
7 addım
Gəlin faydalı bir şey edək
Nisbətən faydalıdır
Texniki tapşırıqları tərtib edək
Başladıqdan sonra proqram panoya fayldan təsadüfi bir xətt qoymalı və bu barədə pop-up mesajı ilə məlumat verməlidir.
Bash skriptini əsas götürəcəyik, Python alt proqramından istifadə edərək fayldan təsadüfi bir xətt çıxaracağıq. Skript iş planını tərtib edək:
- Alt proqramı işə salın
- Alt proqramın nəticəsini panoya köçürün
- Açılan mesajı göstərin
Kataloq və proqram fayllarının adlarını müəyyən edək:
- ev kataloqunda rndstr qovluğu
- mənbə - sətirləri götürəcəyimiz fayl
- rndstr.py - mənbə faylından konsola təsadüfi bir xətt göstərən alt proqram
- rndstr.sh - skript faylı
Proqram kataloqu yaradın və ona keçin və orada fayllar yaradın.
Skript planının ilk iki nöqtəsi bir boru kəməri ilə birləşdirilə bilər, nəticədə Termux: API istifadə edərək əldə edirik:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
Mənbə faylına məntiqi olaraq sətirlərə bölünmüş istənilən mətni qoya bilərsiniz, mən aforizmlər qoymaq qərarına gəldim:
Mənbə fayl siyahısı
Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон
Sadəcə mənbə faylından təsadüfi sətir çıxaran bir alt proqram yaratmalıyıq.
Alt proqramın alqoritmini yazaq:
- Açıq mənbə faylı
- Açıq faylda sətirlərin sayının hesablanması
- Faylı bağlayın (əlavə vaxt üçün açıq saxlamaq üçün heç nə yoxdur)
- Mənbə faylının sətirlərinin sayı daxilində təsadüfi bir tam ədəd yaradırıq
- Açıq mənbə faylı
- Yaranan nömrənin nömrəsinin altında bir xətt çıxarırıq
- Faylın bağlanması
Alqoritmi Python-da həyata keçiririk (Python 3.7 altında yazıram):
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 # закрываем файл
Fayllar yaradıldıqdan və yazıldıqdan sonra faylın icrası üçün icazələr verməlisiniz rndstr.sh
, və sürətli işə salmaq üçün ləqəb yaradın.
alias rnst="~/rndstr/rndstr.sh"
İndi terminalda yazın rnst
panoya təsadüfi bir aforizm alacağıq, məsələn, yazışmalarda istifadə edilə bilər.
Burada ən azı faydalı bir şey yazdıq. Nisbətən faydalıdır.
Ps
Son mərhələdə mən qəsdən skrinşot təqdim etmədim və bəzi hərəkətləri ətraflı təhlil etmədim, yalnız faylların məzmununu yazdım ki, oxucular öz başlarına işləmək imkanı əldə etsinlər.
Bu "Addım-addım Termux" haqqında düşünürəm ki, bitirməyə dəyər. Əlbəttə ki, bunlar yalnız ilk addımlardır, amma indi özünüz irəliləyə bilərsiniz.
Əvvəlcə mən bu sikldə nmap, sqlmap-dan necə istifadə edəcəyimi göstərməyi planlaşdırmışdım, amma mənsiz artıq bu mövzuda çoxlu məqalələr var. "Termux addım-addım" dövrünə davam etməyimi istəyirsinizsə, aşağıda bir sorğu var və şərhlərdə başqa nə haqqında yazmağı təklif edə bilərsiniz.
Sorğuda yalnız qeydiyyatdan keçmiş istifadəçilər iştirak edə bilər.
"Termux addım-addım" davam etdirilsin?
-
Bəli
-
Heç bir
2 istifadəçi səs verdi. Bitərəf qalan yoxdur.
Mənbə: www.habr.com