Термукс алхам алхмаар (2-р хэсэг)

В сүүлийн хэсэг Бид Termux-ийн үндсэн командуудтай танилцаж, PC-тэй SSH холболтыг тохируулж, өөр нэр үүсгэх талаар сурч, хэд хэдэн хэрэгтэй хэрэгслүүдийг суулгасан. Энэ удаад бид цаашаа явах ёстой, бид тантай хамт байна:

  • Termux: API-ийн талаар мэдэж аваарай
  • Python болон nano-г суулгаад "Сайн уу, дэлхий!" гэж бичье. Python дээр
  • bash скриптүүдийн талаар суралцаж, Termux:API ашиглан скрипт бичээрэй
  • Termux:API, Python гэсэн bash скрипт ашиглан энгийн програм бичье

Оруулсан командууд юу хийдгийг бид одоо ойлгож байгаа тул дараагийн алхамаас эхлэн би үйлдэл бүрийг нарийвчлан тайлбарлахгүй, гэхдээ бэрхшээл гарч болзошгүй тохиолдолд би тодорхой тайлбарлах болно.

Би ихэвчлэн бусад нэр ашигладаг тул энэ хэсэгт ашигласан товчилсон үгсийг энд харуулав.

alias updg='apt update && apt upgrade'
alias py='python'

Төлөвлөгөө бэлэн боллоо, бид эхэлж болно! Мэдээжийн хэрэг, "шидэт таб"-ыг бүү мартаарай (1-р хэсгийг үзнэ үү).

4 алхам

Термукс уруу шумбах: API Rabbit Hole

API, энэ үгэнд кодлогчийн зүрх сэтгэлд хэр их нийцсэн бэ

Хэрэв бид Termux:API-ийн сэдвийг хөндөөгүй бол бидний бүх алхамыг эхний хэсгийн тайлбарт зөв тэмдэглэснээр "Дамми нарт зориулсан Линукс" гэх мэт товхимолыг энгийнээр тайлбарлах боломжтой.

Эхлээд Google Play Market-ээс Termux:API-г суулгая (дараа нь Termux-г дахин эхлүүлэхэд гэмгүй):

Термукс алхам алхмаар (2-р хэсэг)

Дараа нь бид API багцыг Termux консол дээр суулгах хэрэгтэй:

updg # Не забываем про alias’ы
apt install termux-api

Миний Android 5.1.1 ашиглаж байгаа туршилтуудын хувьд Android 7 эзэмшигчийн хувьд та Тохиргоо > Хамгаалагдсан програмууд руу орж Termux:API-г "хамгаалах" хэрэгтэй, эс тэгвээс API дуудлагууд: termux-battery-status, хөлдөх болно. (см. төслийн вики)

Одоо олж авсан чадвараа сайтар судлах цаг болжээ. Termux:API-ийн хамгийн сүүлийн бөгөөд дэлгэрэнгүй тайлбарыг эндээс авах боломжтой төслийн вики. Би ирээдүйд бие даан ажиллахад илүү сайн байх боломжийг олгодог хамгийн үзэмжтэй, сонирхолтой зүйлийг сонгохыг хичээх болно.

Termux:API-ийн зарим жишээ

  • termux-батерейны төлөв
    Зайны төлөвийг буцаана
    Термукс алхам алхмаар (2-р хэсэг)
  • termux-гэрэлтэлт
    Дэлгэцийн тод байдлыг 0-ээс 255 хүртэл тохируулна
    Термукс алхам алхмаар (2-р хэсэг)
  • термукс шарсан талх
    Түр зуурын попап мэдэгдлийг харуулна
    Термукс алхам алхмаар (2-р хэсэг)
  • termux-бамбар
    Гар чийдэн орно
    Термукс алхам алхмаар (2-р хэсэг)
  • termux-wifi-scaninfo
    Wi-Fi сүлжээнүүдийн сүүлийн сканнерын талаарх мэдээллийг буцаана
    Термукс алхам алхмаар (2-р хэсэг)

Буцах утгууд нь мөр, толь бичиг, толь бичгийн жагсаалт, үндсэндээ Python-д сайн ажилладаг өгөгдлийн төрлүүд байдаг тул дараагийн алхам бол үүнийг тохируулах явдал юм.

5 алхам

Python болон nano суулгана уу

Python суулгахын тулд терминал дээр бичнэ үү:

updg
apt install python
apt install python2

Одоо бид Python 2, 3 суулгасан.

Энэ нийтлэл дээр ажиллаж байхдаа би өөр нэг текст засварлагч болох nano-г олж нээсэн бөгөөд энэ нь надад vim-ээс илүү таалагдсан тул үүнийг суулгая:

apt install nano

Энэ нь vim-ийг бодвол хэрэглэхэд хялбар бөгөөд нано нь хэрэглэгчдэд ээлтэй интерфэйстэй. Android төхөөрөмж дээр vim нь илүү тохиромжтой хэвээр байна.

Termux дахь Python дахь HelloWorld

Ерөнхийдөө үүнийг хийхгүйгээр хийх боломжтой байсан ч Termux дээр Python суулгаж, HelloWorld гэж бичихгүй байх нь миний бодлоор ёс суртахуунгүй юм.

Миний зорилго бол хэнд ч Python заахгүй, тиймээс мэдэхгүй хүмүүс кодыг хуулж авах боломжтой (эсвэл бие даан сурч эхлэх боломжтой, аз болоход хангалттай уран зохиол байдаг), мэддэг хүмүүс өөрсдөө ямар нэгэн зүйлийг сийлбэрлэх боломжтой. Чимээгүй үед би танд засварлагчгүйгээр терминалд текст оруулах аргыг зааж өгөх болно.

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)

Термукс алхам алхмаар (2-р хэсэг)

Хэрэв оролтын явцад та алдаа анзаараагүй бөгөөд Enter товчийг дарсан бол дээрх мөрөнд очих боломжгүй болно; үүнийг хийхийн тулд Ctrl + D дарж оруулаад дуусгана уу (та Ctrl + Z-г тасалж болно) ба бүх зүйлийг эхнээс нь давт. Бид '>' ашигласан тул файл бүрэн дахин бичигдэх болно. Ийм учраас би кодыг алдаагүй шууд бичих болно гэдэгт итгэлтэй биш л бол энэ оруулах аргыг ашиглахыг зөвлөдөггүй.

6 алхам

Bash скриптүүд

Bash скрипт нь таны терминалын ажлыг автоматжуулах гайхалтай арга юм. Скрипт нь .sh өргөтгөлтэй (өргөтгөл нь нэмэлт) файл бөгөөд терминалын командуудын багцыг агуулсан бөгөөд тэдгээрийн заримыг нь бид аль хэдийн судалсан. Энд ихэнх командын жагсаалт, бүх зүйл ажиллах ёстой, гэхдээ энэ нь "насанд хүрсэн" Линуксийн жагсаалт бөгөөд Termux-д биш, харин зүгээр л гэдгийг анхаарна уу. Bash скрипт дээрх гайхалтай зүйлс.

Скриптийг ашигласнаар та бараг бүх нэг хэвийн үйлдлийг автоматжуулж чадна. Өөрийн үүсгэсэн хувьсагчийн утгыг гаргадаг энгийн bash скрипт бичье, би дахиад cat ашиглах болно, та ердийн текст засварлагч ашиглаж болно, ялангуяа өөрийгөө сургах хүсэлтэй хүмүүс echo ашиглаж болно.

cat >test.sh

export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’

echo $str # Для обращения к переменным перед ними ставится ‘$’

# Ctrl + D

# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым

chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым

./test.sh # Запускаем выполнение нашего скрипта

Термукс алхам алхмаар (2-р хэсэг)

Termux:API-тай Bash скрипт

Алдарт "HelloWorlds"-ээс өөр зүйл бичье, гэхдээ яг л хэрэггүй зүйл. Манай скрипт нь:

  1. termux-battery-status API хүсэлтийг гүйцэтгэх
  2. хүлээн авсан өгөгдлийг test.txt файлд хадгална
  3. Дэлгэц дээрх файлын өгөгдлийг харуулах
  4. Өмнө нь бичсэн hello-world.py програмыг ажиллуул
  5. Програмаас хүлээн авсан өгөгдлийг test.txt файлд бичнэ
  6. Дэлгэц дээрх файлын өгөгдлийг харуулах
  7. файлаас санах ой руу өгөгдөл дамжуулах
  8. санах ойн агуулгыг харуулах
  9. санах ойн мэдээлэл бүхий попап мессежийг харуулах

Эхлээд ажлын хавтас үүсгээд hello-world.py-г тэнд test.py нэрээр хуулж, энэ хавтсанд test.sh болон test.txt файлуудыг үүсгэцгээе.

mkdir bashscript

cat hello-world.py >> bashscript/test.py

cd bashscript/

touch test.sh test.txt # touch создает файлы

chmod +x test.sh

Одоо ямар ч тохиромжтой аргаар скриптийг 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

Одоо бид bashscript хавтсанд байхдаа бичдэг ./test.sh Андройд төхөөрөмж дээрх терминал дээр бид дараахь зүйлийг хардаг.

Термукс алхам алхмаар (2-р хэсэг)

Тиймээс бид төлөвлөсөн bash скриптийг бичсэн. Та үйлдэл бүрийн гүйцэтгэлийн талаарх мэдээллийг консол дээр гаргах замаар шингэлж болно (echo ашиглан), би үүнийг уншигчдад үлдээх болно.

7 алхам

Хэрэгтэй зүйл хийцгээе

Харьцангуй ашигтай

Ажлын даалгаврыг томъёолъё
Аппликешныг ажиллуулсны дараа санах ой дээрх файлаас санамсаргүй мөрийг байрлуулж, энэ тухай гарч ирэх мессежээр мэдэгдэх ёстой.

Bash скриптийг үндэс болгон авч, Python дэд программыг ашиглан файлаас санамсаргүй мөр гаргаж авцгаая. Скриптийн төлөвлөгөөг гаргацгаая:

  1. Дэд програмыг ажиллуулах
  2. Дэд программын үр дүнг санах ой руу шилжүүлнэ
  3. Попап мессеж харуулах

Лавлах болон програмын файлуудын нэрийг шийдье.

  • гэрийн директор дахь rndstr хавтас
    • эх сурвалж - бидний мөр авах файл
    • rndstr.py - эх файлаас консол руу санамсаргүй мөр хэвлэдэг дэд програм
    • rndstr.sh - скрипт файл

Бид програмын лавлах үүсгээд түүн рүү шилжиж тэнд файл үүсгэнэ.

Скрипт төлөвлөгөөний эхний хоёр цэгийг дамжуулах шугамаар нэгтгэж болох бөгөөд үүний үр дүнд Termux:API ашиглан бид дараахь зүйлийг олж авна.

#!/bin/bash

python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы

termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"

Эх файлд та ямар ч текстийг логикоор мөр болгон хувааж болно, би афоризмуудыг оруулахаар шийдсэн:

Эх файлын жагсаалт

Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон

Бидний хийх ёстой зүйл бол эх файлаас санамсаргүй мөр гаргаж авах дэд программ үүсгэх явдал юм.
Дэд программын алгоритмыг тайлбарлая:

  1. Эх файлыг нээнэ үү
  2. Нээлттэй файлын мөрийн тоог тоолох
  3. Файлыг хаах (хэт удаан нээлттэй байлгах нь утгагүй)
  4. Эх файл дахь мөрийн тоонд санамсаргүй бүхэл тоо үүсгэнэ
  5. Эх файлыг нээнэ үү
  6. Бид үүсгэсэн тооны дугаарын доор мөрийг харуулна
  7. Файлыг хааж байна

Алгоритмыг Python дээр хэрэгжүүлье (би 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  #  закрываем файл

Файлуудыг үүсгэж, бичсэний дараа та файлд гүйцэтгэх эрхийг өгөх хэрэгтэй rndstr.sh, мөн хурдан эхлүүлэхийн тулд өөр нэр үүсгэнэ үү.

alias rnst="~/rndstr/rndstr.sh"

Одоо терминал руу орох замаар rnst Бид санах ойд санамсаргүй афоризм хүлээн авах болно, жишээлбэл, захидал харилцаанд ашиглаж болно.

Тиймээс бид ядаж хэрэгтэй зүйл бичсэн. Харьцангуй ашигтай.

П.

Сүүлийн шатанд би дэлгэцийн агшинг зориудаар өгөөгүй бөгөөд зарим үйлдлүүдийг нарийвчлан шинжилээгүй бөгөөд зөвхөн файлын агуулгыг тайлбарлаж, уншигчдад бие даан ажиллах боломжтой болсон.

Энэ "Термуксийг алхам алхмаар" дуусгах нь зүйтэй гэж би бодож байна. Мэдээжийн хэрэг, эдгээр нь зөвхөн эхний алхамууд боловч одоо та өөрөө урагшлах боломжтой.

Эхэндээ би энэ цувралд nmap, sqlmap-ийг хэрхэн ашиглах талаар харуулахаар төлөвлөж байсан ч надгүйгээр ч гэсэн энэ сэдвээр олон нийтлэл гарсан байна. Хэрэв та намайг "Термукс алхам алхмаар" цувралыг үргэлжлүүлэхийг хүсвэл доор санал асуулга байгаа бөгөөд та өөр юу бичих талаар санал болгож болно.

Зөвхөн бүртгэлтэй хэрэглэгчид санал асуулгад оролцох боломжтой. Нэвтрэх, гуйя.

"Термуксийг алхам алхмаар" үргэлжлүүлэх үү?

  • Тийм

  • Ямар ч

2 хэрэглэгч санал өгсөн. Түдгэлзсэн санал байхгүй.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх