ٽرمڪس قدم بہ قدم (حصو 2)

В آخري حصو اسان بنيادي Termux حڪمن سان واقف ٿي چڪا آهيون، هڪ PC سان هڪ SSH ڪنيڪشن قائم ڪيو، سکيو ته عرف ڪيئن ٺاهيو ۽ ڪيترن ئي مفيد افاديت کي نصب ڪيو. هن ڀيري اسان کي اڃا به اڳتي وڌڻو آهي، اسان توهان سان گڏ آهيون:

  • Termux:API بابت ڄاڻو
  • اچو ته پائٿون ۽ نانو انسٽال ڪريون ۽ پڻ لکون ”هيلو، دنيا! Python ۾
  • bash اسڪرپٽ بابت سکو ۽ Termux:API استعمال ڪندي اسڪرپٽ لکو
  • اچو ته بش اسڪرپٽ، Termux:API ۽ Python استعمال ڪندي هڪ سادي پروگرام لکون

جيئن ته اسان هاڻي سمجهي چڪا آهيون ته داخل ڪيل حڪم ڇا ڪندا آهن، ايندڙ قدم کان آئون هر عمل کي تفصيل سان بيان نه ڪندس، پر جتي مشڪلاتون هجن، آئون ضرور بيان ڪندس.

مان اڪثر عرف استعمال ڪندو آهيان، تنهن ڪري هن حصي ۾ استعمال ڪيل مخففات هتي ڏيکاريا ويا آهن:

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

منصوبو تيار آهي، اسان شروع ڪري سگهون ٿا! ۽ يقينا، "جادو ٽيب" بابت نه وساريو (حصو 1 ڏسو).

قدم 4

ٽرمڪس هيٺ ڊائيونگ: API Rabbit Hole

API، ڪوڊر جي دل لاء هن لفظ ۾ ڪيترو ضم ٿي چڪو آهي

جيڪڏهن اسان Termux:API جي موضوع تي هٿ نه ٿا رکون، ته پوءِ اسان جا سڀئي مرحلا ڪجهه بروشر جي سادي ريٽيلنگ تائين گهٽجي سگهن ٿا جهڙوڪ “لينڪس فار ڊميز”، جيئن ته پهرين حصي جي تبصرن ۾ صحيح طور تي نوٽ ڪيو ويو هو.

پهرين، اچو ته انسٽال ڪريون Termux:API Google Play Market مان (بعد ۾ ٽرمڪس کي ٻيهر شروع ڪرڻ ۾ ڪو به نقصان نه ٿيندو):

ٽرمڪس قدم بہ قدم (حصو 2)

اڳيون اسان کي ٽرمڪس ڪنسول ۾ API پيڪيج کي انسٽال ڪرڻ جي ضرورت آهي:

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

تجربن لاءِ مان Android 5.1.1 استعمال ڪري رهيو آهيان، Android 7 مالڪن لاءِ توهان کي Termux:API کي ’حفاظت‘ ڪرڻ جي ضرورت آهي سيٽنگون > محفوظ ٿيل ائپس ڏانهن وڃڻ سان، ٻي صورت ۾ API ڪالون جهڙوڪ termux-battery-status، منجمد ٿيندو. (سي ايم. پروجيڪٽ wiki)

هاڻي اهو وقت آهي حاصل ڪيل صلاحيتن تي هڪ ويجهي نظر وٺڻ لاء. Termux:API جو سڀ کان تازو ۽ تفصيلي بيان هتي ملي سگهي ٿو پروجيڪٽ wiki. مان ڪوشش ڪندس ته سڀ کان وڌيڪ بصري ۽ دلچسپ چونڊيو، جيڪو مون کي مستقبل ۾ آزاد ڪم تي بهتر ڪرڻ جي اجازت ڏيندو.

Termux:API جا ڪجھ مثال

  • ٽرمڪس-بيٽري- اسٽيٽس
    واپسي جي بيٽري جي حيثيت
    ٽرمڪس قدم بہ قدم (حصو 2)
  • termux- روشني
    0 کان 255 تائين اسڪرين جي روشني کي سيٽ ڪري ٿو
    ٽرمڪس قدم بہ قدم (حصو 2)
  • termux- ٽوسٽ
    هڪ عارضي پاپ اپ نوٽيفڪيشن ڏيکاري ٿو
    ٽرمڪس قدم بہ قدم (حصو 2)
  • ٽرمڪس- مشعل
    ٽارچ شامل آهي
    ٽرمڪس قدم بہ قدم (حصو 2)
  • termux-wifi-scaninfo
    Wi-Fi نيٽ ورڪن جي آخري اسڪين جي باري ۾ معلومات ڏي ٿو
    ٽرمڪس قدم بہ قدم (حصو 2)

اهو ڏسڻ ۾ آسان آهي ته واپسي جا قدر آهن strings، لغات، لغتن جي فهرست، بنيادي طور تي ڊيٽا جا قسم جيڪي Python سان گڏ ڪم ڪن ٿا، پوء ايندڙ قدم ان کي سيٽ ڪرڻ آهي.

قدم 5

پٿون ۽ نانو انسٽال ڪريو

پٿون انسٽال ڪرڻ لاءِ ٽرمينل ۾ لکو:

updg
apt install python
apt install python2

ھاڻي اسان وٽ Python 2 ۽ 3 انسٽال ٿيل آھي.

هن آرٽيڪل تي ڪم ڪرڻ دوران، مون هڪ ٻيو ٽيڪسٽ ايڊيٽر دريافت ڪيو، نانو، جيڪو مون ويم کان وڌيڪ پسند ڪيو، اچو ته ان کي انسٽال ڪريو:

apt install nano

اهو استعمال ڪرڻ آسان آهي ويم کان، ۽ نانو وٽ وڌيڪ صارف دوست انٽرفيس آهي. هڪ Android ڊوائيس تي، ويم اڃا وڌيڪ آسان آهي.

هيلو ورلڊ ٽرمڪس ۾ پٿون ۾

عام طور تي، اهو ممڪن هو ته هن نقطي کان سواء، پر ٽرمڪس ۾ پٿون نصب ڪرڻ ۽ هيلو ورلڊ نه لکڻ، منهنجي خيال ۾، خراب آداب آهي.

منهنجو مقصد ڪنهن کي پٿون سيکارڻ نه آهي، تنهن ڪري جيڪي نه ٿا ڄاڻن اهي صرف ڪوڊ ڪاپي ڪري سگهن ٿا (يا پاڻ سکڻ شروع ڪريو، خوش قسمتي سان ڪافي ادب آهي)، ۽ جيڪي ڄاڻن ٿا اهي پاڻ کي ڪجهه ٺاهي سگهن ٿا. ۽ خاموشيءَ تي، مان توهان کي هڪ طريقو به ڏيکاريندس ته توهان کي ڪنهن ايڊيٽر کان سواءِ ٽرمينل ۾ ٽيڪسٽ داخل ڪرڻ جو.

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

باش اسڪرپٽ

بش اسڪرپٽ توهان جي ٽرمينل ڪم کي خودڪار ڪرڻ لاء هڪ بهترين طريقو آهي. اسڪرپٽ هڪ فائل آهي جنهن ۾ ايڪسٽينشن .sh (ايڪسٽينشن اختياري آهي) جنهن ۾ ٽرمينل ڪمانڊز جو هڪ سيٽ هوندو آهي، جن مان ڪجهه اسان اڳ ۾ ئي پڙهي چڪا آهيون. هتي سڀ کان وڌيڪ حڪمن جي فهرست، هر شي کي ڪم ڪرڻ گهرجي، پر مهرباني ڪري نوٽ ڪريو ته هي هڪ فهرست آهي "بالغ" لينڪس لاء، ۽ نه ٽرمڪس لاء، پر صرف بش اسڪرپٽ تي وڏو سامان.

اسڪرپٽ استعمال ڪندي، توهان خودڪار ڪري سگهو ٿا لڳ ڀڳ سڀني غير معمولي عملن کي. اچو ته هڪ سادو بش اسڪرپٽ لکون جيڪو ان جي ٺاهيل متغير مان قيمت ڪڍي، مان ٻيهر ڪيٽ استعمال ڪندس، توهان هڪ عام ٽيڪسٽ ايڊيٽر استعمال ڪري سگهو ٿا، ۽ جيڪي خاص طور تي پاڻ کي تربيت ڏيڻ چاهين ٿا، اهي ايڪو استعمال ڪري سگهن ٿا.

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

اچو ته بدنام 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

ھاڻي بيش اسڪرپٽ فولڊر ۾ آھي اسين لکون ٿا ./test.sh اسان هڪ Android ڊوائيس تي ٽرمينل ۾ ڏسون ٿا:

ٽرمڪس قدم بہ قدم (حصو 2)

تنهنڪري اسان رٿيل بش اسڪرپٽ لکيو. توھان ان کي گھٽائي سگھوٿا ان کي ٻاھر ڪڍڻ واري معلومات کي ڪنسول ڏانھن ھر عمل جي عمل تي (گونج استعمال ڪندي)، مان ھن کي پڙھندڙن لاءِ ڇڏي ڏيندس.

قدم 7

اچو ته ڪجھ مفيد ڪم ڪريون

نسبتا مفيد

اچو ته ريفرنس جي شرطن کي ترتيب ڏيو
لانچ ڪرڻ کان پوء، ايپليڪيشن کي ڪلپ بورڊ تي فائل مان بي ترتيب واري لائن رکڻ گهرجي ۽ انهي بابت پاپ اپ پيغام سان اطلاع ڏيو.

اچو ته بش اسڪرپٽ کي بنياد طور وٺون ۽ پيٿون سب روٽين استعمال ڪندي فائل مان بي ترتيب واري لائن ڪڍون. اچو ته اسڪرپٽ لاء هڪ منصوبو ٺاهيو:

  1. subroutine هلائڻ
  2. subroutine جو نتيجو ڪلپ بورڊ ڏانهن منتقل ڪريو
  3. هڪ پاپ اپ پيغام ڏيکاريو

اچو ته ڊائريڪٽري ۽ ايپليڪيشن فائلن جي نالن تي فيصلو ڪريون:

  • گهر ڊاريڪٽري ۾ rndstr فولڊر
    • ذريعو - فائل جنهن مان اسان لائينون کڻنداسين
    • rndstr.py - هڪ سب روٽين جيڪو پرنٽ ڪري ٿو بي ترتيب واري لائن سورس فائل کان ڪنسول تائين
    • rndstr.sh - اسڪرپٽ فائل

اسان ايپليڪيشن ڊاريڪٽري ٺاهي ۽ ان ۾ وڃو ۽ اتي فائلون ٺاهي.

اسڪرپٽ پلان جي پهرين ٻن نقطن کي پائپ لائن ذريعي گڏ ڪري سگهجي ٿو، نتيجي طور، Termux:API استعمال ڪندي اسان حاصل ڪريون ٿا:

#!/bin/bash

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

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

ماخذ فائل ۾ توهان ڪنهن به متن کي منطقي طور تي لائنن ۾ ورهائي سگهو ٿا، مون فيصلو ڪيو ته aphorisms:

ماخذ فائل لسٽنگ

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

اسان کي صرف اهو ڪرڻو آهي ته هڪ سبروٽين ٺاهيو آهي جيڪو ماخذ فائل مان بي ترتيب واري تار ڪڍي ٿو.
اچو ته subroutine جي الگورتھم کي بيان ڪريون:

  1. ذريعو فائل کوليو
  2. کليل فائل ۾ لائنن جو تعداد ڳڻڻ
  3. فائل بند ڪريو (ان کي گھڻي عرصي تائين کليل رکڻ ۾ ڪو به نقطو نه آھي)
  4. ماخذ فائل ۾ لائينن جي تعداد اندر بي ترتيب انٽيجر ٺاھيو
  5. ذريعو فائل کوليو
  6. اسان ٺاهيل نمبر جي نمبر هيٺ هڪ لڪير ڏيکاريندا آهيون
  7. فائل بند ڪرڻ

اچو ته پائٿون ۾ الگورٿم لاڳو ڪريون (آئون لکان ٿو پٿون 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 اسان کي ڪلپ بورڊ تي هڪ بي ترتيبي aphoism ملي ويندي، جنهن کي، مثال طور، خط و ڪتابت ۾ استعمال ڪري سگهجي ٿو.

تنهنڪري اسان گهٽ ۾ گهٽ ڪجهه مفيد لکيو. نسبتا مفيد.

زبور

آخري مرحلي ۾، مون ڄاڻي واڻي اسڪرين شاٽ مهيا نه ڪيا ۽ ڪجھ عملن جو تفصيلي تجزيو نه ڪيو، صرف فائلن جي مواد کي بيان ڪيو ويو ته جيئن پڙهندڙن کي پنهنجو پاڻ تي ڪم ڪرڻ جو موقعو ملي.

مان سمجهان ٿو ته اهو "ٽرمڪس قدم قدم" کي ختم ڪرڻ جي قابل آهي. يقينن، اهي صرف پهريون قدم آهن، پر هاڻي توهان اڳتي وڌو ٿا پنهنجو پاڻ تي.

شروعات ۾، مون هن سيريز ۾ ڏيکارڻ جي رٿابندي ڪئي ته ڪيئن استعمال ڪجي nmap، sqlmap، پر مون کان سواءِ هن موضوع تي اڳ ۾ ئي ڪيترائي مضمون موجود آهن. جيڪڏھن توھان چاھيو ٿا ته مان ”ٽرمڪس قدم بہ قدم“ سيريز جاري رکان، پوءِ ھيٺ ھڪ سروي آھي ۽ تبصرن ۾ توھان تجويز ڪري سگھو ٿا ته ٻيو ڇا لکجي.

صرف رجسٽرڊ استعمال ڪندڙ سروي ۾ حصو وٺي سگهن ٿا. سائن ان ڪريو، توهان جي مهرباني.

جاري رکو ”ٽرمڪس قدم بہ قدم“؟

  • ته

  • نه

2 صارفين ووٽ ڪيو. ڪابه رڪاوٽ نه آهي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو