Termux addım-addım (2-ci hissə)

В son hissə biz Termux-un əsas əmrləri ilə tanış olduq, PC ilə SSH bağlantısı qurduq, ləqəblərin necə yaradılmasını öyrəndik və bir neçə faydalı utilitlər quraşdırdıq. Bu dəfə daha da irəli getməliyik, sizinləyik:

  • 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 (1-ci hissəyə baxın).

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):

Termux addım-addım (2-ci hissə)

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. layihə wiki)

İ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 layihə wiki. Gələcəkdə müstəqil iş üçün əlimi doldurmağa imkan verəcək ən vizual və maraqlı olanı seçməyə çalışacağam.

Bəzi Termux:API nümunələri

  • termux-batareya-status
    Batareyanın vəziyyətini qaytarır
    Termux addım-addım (2-ci hissə)
  • termux-parlaqlıq
    Ekranın parlaqlığını 0-dan 255-ə qədər təyin edir
    Termux addım-addım (2-ci hissə)
  • termux-tost
    Müvəqqəti tost bildirişini göstərir
    Termux addım-addım (2-ci hissə)
  • termux-məşəl
    Fənər daxildir
    Termux addım-addım (2-ci hissə)
  • termux-wifi-scaninfo
    Wi-Fi şəbəkələrinin son skanı haqqında məlumatı qaytarır
    Termux addım-addım (2-ci hissə)

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)

Termux addım-addım (2-ci hissə)

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 ən çox əmrlərin siyahısı, hər şey işləməlidir, lakin qeyd edin ki, bu Termux deyil, sadəcə olaraq "böyüklər" Linux üçün bir siyahıdır bash skriptləri haqqında əla material.

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 addım-addım (2-ci hissə)

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:

  1. termux-battery-status API sorğusunu yerinə yetirin
  2. alınan məlumatları test.txt faylında saxlayın
  3. məlumatı fayldan ekrana çap edin
  4. əvvəllər yazılmış hello-world.py proqramını icra edin
  5. proqramdan alınan məlumatları test.txt faylına yazın
  6. məlumatı fayldan ekrana çap edin
  7. məlumatı fayldan panoya köçürün
  8. mübadilə buferinin məzmununu göstərin
  9. 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:

Termux addım-addım (2-ci hissə)

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:

  1. Alt proqramı işə salın
  2. Alt proqramın nəticəsini panoya köçürün
  3. 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:

  1. Açıq mənbə faylı
  2. Açıq faylda sətirlərin sayının hesablanması
  3. Faylı bağlayın (əlavə vaxt üçün açıq saxlamaq üçün heç nə yoxdur)
  4. Mənbə faylının sətirlərinin sayı daxilində təsadüfi bir tam ədəd yaradırıq
  5. Açıq mənbə faylı
  6. Yaranan nömrənin nömrəsinin altında bir xətt çıxarırıq
  7. 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. Daxil olunxahiş edirəm.

"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

Добавить комментарий