ٹرمکس مرحلہ وار (حصہ 2)

В آخری حصہ ہم نے ٹرمکس کے بنیادی کمانڈز سے واقفیت حاصل کی، پی سی کے ساتھ ایک SSH کنکشن قائم کیا، عرف بنانے کا طریقہ سیکھا اور کئی مفید یوٹیلیٹیز کو انسٹال کیا۔ اس بار ہمیں اور بھی قدم بڑھانا ہے، ہم آپ کے ساتھ ہیں:

  • Termux:API کے بارے میں جانیں۔
  • ازگر اور نینو انسٹال کریں، اور "ہیلو، ورلڈ!" لکھیں۔ ازگر میں
  • bash اسکرپٹس کے بارے میں جانیں اور Termux:API کا استعمال کرتے ہوئے اسکرپٹ لکھیں۔
  • ایک bash اسکرپٹ، Termux:API اور Python کا استعمال کرتے ہوئے ہم ایک سادہ پروگرام لکھیں گے۔

چونکہ اب ہم سمجھ گئے ہیں کہ ان پٹ کمانڈز کیا کرتی ہیں، اس لیے اگلے مرحلے سے میں ہر ایکشن کو اتنی تفصیل سے بیان نہیں کروں گا، لیکن جہاں مشکلات ہو سکتی ہیں، وہ ضرور بیان کروں گا۔

میں عرفی نام بہت استعمال کرتا ہوں، اس لیے اس حصے میں استعمال ہونے والے مخففات یہاں دکھائے گئے ہیں:

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

منصوبہ تیار ہے، آپ شروع کر سکتے ہیں! اور یقینا، "جادو ٹیب" کے بارے میں مت بھولنا (حصہ 1 دیکھیں).

4 مرحلہ

ٹرمکس کے نیچے ڈائیونگ: اے پی آئی ریبٹ ہول

کوڈر کے دل کے لیے اس لفظ میں API کتنا ضم ہو گیا ہے۔

اگر ہم Termux: API کے موضوع کو نہیں چھوتے ہیں، تو ہمارے تمام اقدامات کچھ بروشر جیسے "Linux for Dummies" کی ایک سادہ سی ریٹیلنگ تک کم ہو سکتے ہیں، جیسا کہ پہلے حصے کے تبصروں میں بجا طور پر نوٹ کیا گیا تھا۔

پہلے، گوگل پلے مارکیٹ سے Termux:API انسٹال کریں (بعد میں ٹرمکس کو دوبارہ شروع کرنے سے کوئی تکلیف نہیں ہوتی):

ٹرمکس مرحلہ وار (حصہ 2)

اگلا، ہمیں ٹرمکس کنسول میں API پیکیج انسٹال کرنے کی ضرورت ہے:

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

تجربے کے لیے میں اینڈرائیڈ 5.1.1 استعمال کر رہا ہوں، اینڈرائیڈ 7 کے مالکان کو ٹرمکس: API کو 'سیٹنگز' > 'پروٹیکٹڈ ایپس' پر جا کر "محفوظ" کرنا ہوگا ورنہ API کالز جیسے termux-battery-status، لٹک جائے گا۔ (سینٹی میٹر. پروجیکٹ ویکی)

اب یہ حاصل شدہ مواقع پر گہری نظر ڈالنے کے قابل ہے۔ Termux:API کی تازہ ترین اور سب سے زیادہ تفصیلی تفصیل یہاں مل سکتی ہے۔ پروجیکٹ ویکی. میں سب سے زیادہ بصری اور دلچسپ انتخاب کرنے کی کوشش کروں گا، جو مجھے مستقبل میں آزادانہ کام کے لیے اپنا ہاتھ بھرنے کی اجازت دے گا۔

کچھ Termux:API مثالیں۔

  • termux-battery-status
    بیٹری کی حالت لوٹاتا ہے۔
    ٹرمکس مرحلہ وار (حصہ 2)
  • ٹرمکس چمک
    اسکرین کی چمک کو 0 سے 255 تک سیٹ کرتا ہے۔
    ٹرمکس مرحلہ وار (حصہ 2)
  • ٹرمکس ٹوسٹ
    ایک عارضی ٹوسٹ اطلاع دکھاتا ہے۔
    ٹرمکس مرحلہ وار (حصہ 2)
  • ٹرمکس ٹارچ
    ٹارچ پر مشتمل ہے۔
    ٹرمکس مرحلہ وار (حصہ 2)
  • termux-wifi-scaninfo
    Wi-Fi نیٹ ورکس کے آخری اسکین کے بارے میں معلومات لوٹاتا ہے۔
    ٹرمکس مرحلہ وار (حصہ 2)

یہ دیکھنا آسان ہے کہ واپسی کی قدریں سٹرنگز، لغات، لغات کی فہرستیں ہیں، عام ڈیٹا کی قسمیں جن کے ساتھ Python بہت اچھا کام کرتا ہے، اس لیے اگلا مرحلہ اسے ترتیب دینا ہے۔

5 مرحلہ

ازگر اور نینو انسٹال کریں۔

Python انسٹال کرنے کے لیے، ٹرمینل میں لکھیں:

updg
apt install python
apt install python2

اب ہمارے پاس 2 اور 3 Python انسٹال ہیں۔

مضمون پر کام کرتے ہوئے، میں نے ایک اور نینو ٹیکسٹ ایڈیٹر دریافت کیا جو مجھے vim سے زیادہ پسند ہے، آئیے اسے انسٹال کریں:

apt install nano

یہ vim کے مقابلے میں استعمال کرنا آسان ہے، اور نینو میں زیادہ صارف دوست انٹرفیس ہے۔ اینڈرائیڈ ڈیوائس پر ویم اب بھی زیادہ آسان ہے۔

ٹرمکس میں پائیتھن میں ہیلو ورلڈ

مجموعی طور پر، اس آئٹم کے بغیر کرنا ممکن تھا، لیکن ٹرمکس میں 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 مرحلہ

باش اسکرپٹس

باش اسکرپٹس آپ کے ٹرمینل کے کام کو خودکار کرنے کا بہترین طریقہ ہیں۔ سکرپٹ ایک فائل ہے جس میں .sh ایکسٹینشن ہے (ایکسٹینشن اختیاری ہے) جس میں ٹرمینل کمانڈز کا ایک سیٹ ہے، جن میں سے کچھ کا ہم پہلے ہی مطالعہ کر چکے ہیں۔ یہاں زیادہ تر احکامات کی فہرست، سب کچھ کام کرنا چاہئے، لیکن یاد رکھیں کہ یہ "بالغ" لینکس کی فہرست ہے، نہ کہ Termux، بلکہ صرف باش اسکرپٹس پر بہت اچھا مواد.

سکرپٹ کی مدد سے، آپ تقریباً تمام نیرس اعمال کو خودکار کر سکتے ہیں۔ آئیے سب سے آسان باش اسکرپٹ لکھتے ہیں جو اس کے بنائے ہوئے ویری ایبل سے ویلیو دکھاتا ہے، میں دوبارہ کیٹ استعمال کروں گا، آپ عام ٹیکسٹ ایڈیٹر استعمال کرسکتے ہیں، اور جو لوگ خاص طور پر خود کو تربیت دینا چاہتے ہیں وہ ایکو استعمال کرسکتے ہیں۔

cat >test.sh

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

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

# Ctrl + D

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

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

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

ٹرمکس مرحلہ وار (حصہ 2)

ٹرمکس کے ساتھ باش اسکرپٹ: 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

اب، bashscript فولڈر میں ہونے کی وجہ سے، ہم لکھتے ہیں۔ ./test.sh ہم اینڈرائیڈ ڈیوائس پر ٹرمینل میں مشاہدہ کرتے ہیں:

ٹرمکس مرحلہ وار (حصہ 2)

لہذا ہم نے منصوبہ بند باش اسکرپٹ لکھا۔ آپ اسے ہر ایکشن (ایکو کا استعمال کرتے ہوئے) کے بارے میں معلومات کے کنسول میں آؤٹ پٹ کے ساتھ کمزور کر سکتے ہیں، میں اسے قارئین کے لیے چھوڑ دوں گا۔

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 пункт. Выводим всплывающее сообщение "ОК"

سورس فائل میں، آپ کسی بھی متن کو منطقی طور پر لائنوں میں تقسیم کر سکتے ہیں، میں نے aphorisms ڈالنے کا فیصلہ کیا:

ماخذ فائل کی فہرست

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

ہمیں صرف ایک سب روٹین بنانے کی ضرورت ہے جو سورس فائل سے بے ترتیب تار نکالتا ہے۔
آئیے سب روٹین کا الگورتھم لکھتے ہیں:

  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

نیا تبصرہ شامل کریں