Termux خطوة بخطوة (الجزء 2)

В الجزء الاخير تعرفنا على الأوامر الأساسية لـ Termux ، وقمنا بإعداد اتصال SSH بجهاز كمبيوتر ، وتعلمنا كيفية إنشاء أسماء مستعارة وقمنا بتثبيت العديد من الأدوات المساعدة المفيدة. هذه المرة علينا أن نخطو أبعد من ذلك ، فنحن معك:

  • تعرف على Termux: API
  • قم بتثبيت Python و nano ، واكتب "Hello، world!" في بايثون
  • تعرف على نصوص bash واكتب نصًا باستخدام Termux: API
  • باستخدام سكربت bash ، Termux: API و Python سنكتب برنامجًا بسيطًا

نظرًا لأننا نفهم الآن ما تفعله أوامر الإدخال ، فلن أصف من الخطوة التالية كل إجراء بمثل هذه التفاصيل ، ولكن في حالة وجود صعوبات ، سأشرح بالتأكيد.

أستخدم الأسماء المستعارة كثيرًا ، لذا تظهر الاختصارات المستخدمة في هذا الجزء هنا:

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

الخطة جاهزة ، يمكنك البدء! وبالطبع لا تنسى "علامة التبويب السحرية" (انظر الجزء 1).

الخطوة 4

الغوص أسفل Termux: API Rabbit Hole

API كم تم دمجها في هذه الكلمة لقلب المبرمج

إذا لم نتطرق إلى موضوع Termux: API ، فيمكن عندئذٍ اختزال جميع خطواتنا إلى إعادة سرد بسيطة لبعض الكتيبات مثل "Linux for Dummies" ، كما تمت الإشارة إليه بحق في التعليقات على الجزء الأول.

أولاً ، قم بتثبيت Termux: API من سوق Google Play (لا يضر إعادة تشغيل Termux بعد ذلك):

Termux خطوة بخطوة (الجزء 2)

بعد ذلك ، نحتاج إلى تثبيت حزمة API في وحدة تحكم Termux:

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

للتجربة ، أستخدم Android 5.1.1 ، بالنسبة لمالكي Android 7 ، يحتاجون إلى "حماية" Termux: API بالانتقال إلى "الإعدادات"> "التطبيقات المحمية" ، وإلا فإن استدعاءات واجهة برمجة التطبيقات مثل termux-battery-statusسوف يتعطل. (سم. ويكي المشروع)

الآن يجدر إلقاء نظرة فاحصة على الفرص المكتسبة. أحدث وصف تفصيلي لـ Termux: يمكن العثور على API على ويكي المشروع. سأحاول اختيار أكثر الأشياء المرئية والمثيرة للاهتمام ، والتي ستسمح لي بملء يدي للعمل المستقل في المستقبل.

بعض Termux: أمثلة API

  • وضع البطارية
    يعيد حالة البطارية
    Termux خطوة بخطوة (الجزء 2)
  • سطوع المدى
    يضبط سطوع الشاشة من 0 إلى 255
    Termux خطوة بخطوة (الجزء 2)
  • تيرمو توست
    يظهر إشعار نخب مؤقت
    Termux خطوة بخطوة (الجزء 2)
  • الشعلة
    يتضمن مصباح يدوي
    Termux خطوة بخطوة (الجزء 2)
  • Termux-wifi-scaninfo
    يعرض معلومات حول آخر فحص لشبكات Wi-Fi
    Termux خطوة بخطوة (الجزء 2)

من السهل أن ترى أن القيم المرتجعة هي سلاسل وقواميس وقوائم قواميس ، بشكل عام ، أنواع البيانات التي تعمل بايثون معها بشكل رائع ، لذا فإن الخطوة التالية هي إعدادها.

الخطوة 5

قم بتثبيت Python و nano

لتثبيت Python ، اكتب في Terminal:

updg
apt install python
apt install python2

لدينا الآن 2 و 3 بايثون مثبتة.

أثناء العمل على المقالة ، اكتشفت محرر نصوص نانوي آخر أعجبني أكثر من vim ، دعنا نثبته:

apt install nano

إنه أسهل في الاستخدام من vim ، ولدى nano واجهة أكثر سهولة في الاستخدام. على جهاز Android ، لا يزال vim أكثر ملاءمة.

HelloWorld في Python في Termux

بشكل عام ، كان من الممكن الاستغناء عن هذا العنصر ، لكن وضع Python في Termux وعدم كتابة 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)

Termux خطوة بخطوة (الجزء 2)

إذا لم تلاحظ خطأ أثناء عملية الإدخال وضغطت بالفعل على Enter ، فلن تتمكن من الانتقال إلى السطر أعلاه ، للقيام بذلك ، قم بإنهاء الإدخال بالضغط على Ctrl + D (يمكنك بشكل عام مقاطعة Ctrl + Z) وكرر كل شيء من البداية. نظرًا لأننا استخدمنا ">" ، فسيتم استبدال الملف بالكامل. لهذا السبب ، لا أوصي باستخدام طريقة الإدخال هذه إلا إذا كنت متأكدًا من أنك ستكتب الرمز على الفور بدون أخطاء.

الخطوة 6

مخطوطات باش

تعد نصوص Bash طريقة رائعة لأتمتة عملك الطرفي. النص عبارة عن ملف بامتداد .sh (الامتداد اختياري) يحتوي على مجموعة من الأوامر الطرفية ، والتي درسنا بعضها بالفعل. هنا قائمة بمعظم الأوامر، كل شيء يجب أن يعمل ، لكن لاحظ أن هذه قائمة لينكس "للبالغين" ، وليست ترموكس ، ولكن فقط مادة رائعة على مخطوطات باش.

بمساعدة البرامج النصية ، يمكنك أتمتة جميع الإجراءات الرتيبة تقريبًا. دعنا نكتب أبسط نصوص 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 # Запускаем выполнение нашего скрипта

Termux خطوة بخطوة (الجزء 2)

سكربت باش مع Termux: API

دعنا نكتب شيئًا مختلفًا عن HelloWorlds سيئ السمعة ، ولكن لا فائدة منه. سيكون نصنا:

  1. تنفيذ طلب واجهة برمجة التطبيقات (termux-battery-status)
  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 نلاحظ في المحطة على جهاز Android:

Termux خطوة بخطوة (الجزء 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 пункт. Выводим всплывающее сообщение "ОК"

في الملف المصدر ، يمكنك وضع أي نص مقسمًا منطقيًا إلى سطور ، قررت أن أضع الأمثال:

قائمة ملف المصدر

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

نحتاج فقط إلى إنشاء روتين فرعي يستخرج سلسلة عشوائية من الملف المصدر.
لنكتب خوارزمية الروتين الفرعي:

  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 سنحصل على قول مأثور عشوائي على الحافظة ، والذي ، على سبيل المثال ، يمكن استخدامه في المراسلات.

هنا كتبنا على الأقل شيئًا مفيدًا. مفيد نسبيا.

ملاحظة

في الخطوة الأخيرة ، لم أقم عن قصد بتقديم لقطات شاشة ولم أحلل بعض الإجراءات بالتفصيل ، وكتبت فقط محتويات الملفات حتى تتاح للقراء فرصة العمل بأنفسهم.

في هذا "Termux خطوة بخطوة" ، أعتقد أنه يستحق الانتهاء. بالطبع ، هذه ليست سوى الخطوات الأولى ، ولكن يمكنك الآن المضي قدمًا بنفسك.

في البداية ، خططت لإظهار كيفية استخدام nmap و sqlmap في هذه الدورة ، ولكن بدوني هناك بالفعل الكثير من المقالات حول هذا الموضوع. إذا كنت تريد مني متابعة دورة "Termux خطوة بخطوة" ، فهناك استطلاع أدناه وفي التعليقات يمكنك اقتراح ما تريد الكتابة عنه أيضًا.

يمكن للمستخدمين المسجلين فقط المشاركة في الاستطلاع. تسجيل الدخول، من فضلك.

متابعة "Termux خطوة بخطوة"؟

  • نعم

  • لا

صوت 2 من المستخدمين. لا يوجد ممتنعون عن التصويت.

المصدر: www.habr.com

إضافة تعليق