Termux ধাপে ধাপে (পর্ব 2)

В শেষ অংশ আমরা Termux এর মৌলিক কমান্ডের সাথে পরিচিত হয়েছি, একটি পিসিতে একটি SSH সংযোগ সেট আপ করেছি, কীভাবে উপনাম তৈরি করতে হয় তা শিখেছি এবং বেশ কয়েকটি দরকারী ইউটিলিটি ইনস্টল করেছি। এইবার আমাদের আরও এগিয়ে যেতে হবে, আমরা আপনার সাথে আছি:

  • Termux:API সম্পর্কে জানুন
  • পাইথন এবং ন্যানো ইনস্টল করুন এবং লিখুন "হ্যালো, বিশ্ব!" পাইথনে
  • ব্যাশ স্ক্রিপ্ট সম্পর্কে জানুন এবং Termux:API ব্যবহার করে একটি স্ক্রিপ্ট লিখুন
  • একটি bash স্ক্রিপ্ট, Termux:API এবং Python ব্যবহার করে আমরা একটি সাধারণ প্রোগ্রাম লিখব

যেহেতু আমরা এখন বুঝতে পারছি ইনপুট কমান্ডগুলি কী করে, তাই পরবর্তী ধাপ থেকে আমি প্রতিটি ক্রিয়াকে এত বিস্তারিতভাবে বর্ণনা করব না, তবে যেখানে অসুবিধা হতে পারে, আমি অবশ্যই ব্যাখ্যা করব।

আমি অনেক উপনাম ব্যবহার করি, তাই এই অংশে ব্যবহৃত সংক্ষিপ্ত রূপগুলি এখানে দেখানো হয়েছে:

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

পরিকল্পনা প্রস্তুত, আপনি শুরু করতে পারেন! এবং অবশ্যই, "জাদু ট্যাব" সম্পর্কে ভুলবেন না (পার্ট 1 দেখুন).

পইঠা 4

ডাইভিং ডাউন দ্য টার্মক্স:এপিআই র্যাবিট হোল

এপিআই কতটা একত্রিত হয়েছে এই শব্দে কোডারের হৃদয়ের জন্য

যদি আমরা Termux: API-এর বিষয়ে স্পর্শ না করি, তাহলে আমাদের সমস্ত পদক্ষেপগুলিকে "লিনাক্স ফর ডামিস" এর মতো কিছু ব্রোশারের একটি সাধারণ পুনঃনির্ধারণে হ্রাস করা যেতে পারে, যেমনটি প্রথম অংশের মন্তব্যগুলিতে যথাযথভাবে উল্লেখ করা হয়েছিল।

প্রথমে, গুগল প্লে মার্কেট থেকে Termux:API ইন্সটল করুন (এর পর Termux রিস্টার্ট করলে কোনো ক্ষতি হবে না):

Termux ধাপে ধাপে (পর্ব 2)

পরবর্তী, আমাদের Termux কনসোলে API প্যাকেজ ইনস্টল করতে হবে:

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

পরীক্ষা-নিরীক্ষার জন্য আমি অ্যান্ড্রয়েড 5.1.1 ব্যবহার করছি, অ্যান্ড্রয়েড 7-এর মালিকদের "সুরক্ষা" করতে হবে Termux: API 'সেটিংস' > 'সুরক্ষিত অ্যাপস'-এ গিয়ে অন্যথায় API কল termux-battery-status, স্তব্ধ হবে. (সেমি. প্রকল্প উইকি)

এখন এটি অর্জিত সুযোগগুলি ঘনিষ্ঠভাবে দেখার মূল্য। Termux:API-এর সর্বশেষ এবং সবচেয়ে বিশদ বিবরণ এখানে পাওয়া যাবে প্রকল্প উইকি. আমি সবচেয়ে চাক্ষুষ এবং আকর্ষণীয় চয়ন করার চেষ্টা করব, যা আমাকে ভবিষ্যতে স্বাধীন কাজের জন্য আমার হাত পূরণ করার অনুমতি দেবে।

কিছু Termux:API উদাহরণ

  • termux-ব্যাটারি-স্থিতি
    ব্যাটারির অবস্থা ফেরত দেয়
    Termux ধাপে ধাপে (পর্ব 2)
  • termux-উজ্জ্বলতা
    0 থেকে 255 পর্যন্ত স্ক্রিনের উজ্জ্বলতা সেট করে
    Termux ধাপে ধাপে (পর্ব 2)
  • termux-টোস্ট
    একটি অস্থায়ী টোস্ট বিজ্ঞপ্তি দেখায়
    Termux ধাপে ধাপে (পর্ব 2)
  • termux-টর্চ
    টর্চলাইট অন্তর্ভুক্ত
    Termux ধাপে ধাপে (পর্ব 2)
  • termux-ওয়াইফাই-স্ক্যানইনফো
    Wi-Fi নেটওয়ার্কগুলির শেষ স্ক্যান সম্পর্কে তথ্য প্রদান করে৷
    Termux ধাপে ধাপে (পর্ব 2)

এটা দেখা সহজ যে রিটার্ন মান হল স্ট্রিং, অভিধান, অভিধানের তালিকা, সাধারণভাবে, ডাটা টাইপ যা পাইথন খুব ভালো কাজ করে, তাই পরবর্তী ধাপ হল এটি সেট আপ করা।

পইঠা 5

পাইথন এবং ন্যানো ইনস্টল করুন

পাইথন ইনস্টল করতে, টার্মিনালে লিখুন:

updg
apt install python
apt install python2

আমরা এখন 2 এবং 3 পাইথন ইনস্টল করেছি।

নিবন্ধে কাজ করার সময়, আমি আরেকটি ন্যানো পাঠ্য সম্পাদক আবিষ্কার করেছি যা আমি ভিমের চেয়ে বেশি পছন্দ করেছি, আসুন এটি ইনস্টল করি:

apt install nano

এটি ভিমের চেয়ে ব্যবহার করা সহজ এবং ন্যানোতে আরও ব্যবহারকারী-বান্ধব ইন্টারফেস রয়েছে। একটি অ্যান্ড্রয়েড ডিভাইসে, ভিম এখনও আরও সুবিধাজনক।

টার্মক্সে পাইথনে হ্যালোওয়ার্ল্ড

সর্বোপরি, এই আইটেমটি ছাড়া এটি করা সম্ভব ছিল, তবে টার্মক্সে পাইথন স্থাপন করা এবং হ্যালোওয়ার্ল্ড না লেখা, আমার মতে, খারাপ আচরণ।

আমি নিজে কাউকে পাইথন শেখানোর লক্ষ্য নির্ধারণ করি না, তাই যারা জানেন না তারা কেবল কোডটি অনুলিপি করতে পারেন (বা নিজেরাই শেখা শুরু করতে পারেন, যেহেতু যথেষ্ট সাহিত্য রয়েছে), এবং যারা জানেন তারা নিজেরাই কিছু তৈরি করতে পারেন। এবং আমি "ছদ্মবেশে" এখনও একটি সম্পাদক ছাড়া টার্মিনালে পাঠ্য প্রবেশ করার একটি উপায় দেখাব৷

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 ধাপে ধাপে (পর্ব 2)

আপনি যদি ইনপুট প্রক্রিয়া চলাকালীন কোনো ত্রুটি লক্ষ্য না করেন এবং ইতিমধ্যে এন্টার চাপেন, তাহলে আপনি উপরের লাইনে যেতে পারবেন না, এটি করার জন্য, 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 # Запускаем выполнение нашего скрипта

Termux ধাপে ধাপে (পর্ব 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

এখন, bashscript ফোল্ডারে থাকা, আমরা লিখি ./test.sh আমরা অ্যান্ড্রয়েড ডিভাইসের টার্মিনালে পর্যবেক্ষণ করি:

Termux ধাপে ধাপে (পর্ব 2)

তাই আমরা পরিকল্পিত ব্যাশ স্ক্রিপ্ট লিখেছি। আপনি প্রতিটি ক্রিয়া সম্পাদনের (ইকো ব্যবহার করে) তথ্যের কনসোলে আউটপুট দিয়ে এটিকে পাতলা করতে পারেন, আমি এটি পাঠকদের জন্য ছেড়ে দেব।

পইঠা 7

এর দরকারী কিছু করা যাক

তুলনামূলকভাবে দরকারী

এর রেফারেন্স শর্তাবলী প্রণয়ন করা যাক
লঞ্চের পরে, অ্যাপ্লিকেশনটিকে ক্লিপবোর্ডে ফাইল থেকে একটি এলোমেলো লাইন স্থাপন করা উচিত এবং একটি পপ-আপ বার্তা দিয়ে এটি সম্পর্কে অবহিত করা উচিত।

আমরা একটি ভিত্তি হিসাবে একটি ব্যাশ স্ক্রিপ্ট নেব, আমরা পাইথন সাবরুটিন ব্যবহার করে একটি ফাইল থেকে একটি র্যান্ডম লাইন বের করব। একটি স্ক্রিপ্ট কাজের পরিকল্পনা করা যাক:

  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. ফাইল বন্ধ করা হচ্ছে

আমরা পাইথনে অ্যালগরিদম বাস্তবায়ন করি (আমি পাইথন 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

একটি মন্তব্য জুড়ুন