
في الجزء الأخير ، التقينا بأوامر Termux الأساسية ، وقمنا بإعداد اتصال SSH بجهاز كمبيوتر ، وتعلمنا كيفية إنشاء اسم مستعار وتثبيت العديد من الأدوات المساعدة المفيدة. هذه المرة علينا أن نتقدم أكثر ، أنت وأنا:
- تعرف على Termux: API
- تثبيت Python و nano ، وكتابة أيضًا "Hello، world!" في الثعبان
- نتعرف على البرامج النصية للباش وكتابة السيناريو باستخدام Termux: API
- باستخدام برنامج نصي bash و Termux: API و Python ، سنقوم بكتابة برنامج بسيط
بما أننا نفهم الآن ما تفعله أوامر الإدخال ، فمن الخطوة التالية لن أصف كل إجراء بمثل هذه التفاصيل ، ولكن أينما توجد صعوبات ، سأشرح بالتأكيد.
غالبًا ما أستخدم الاسم المستعار ، لذلك تظهر الاختصارات المستخدمة في هذا الجزء هنا:
alias updg='apt update && apt upgrade' alias py='python'
الخطة جاهزة ، يمكنك البدء! وبالطبع ، لا تنسى "علامة التبويب السحرية" ( انظر الجزء الأول ).
الخطوة 4
الغوص في حفرة الأرنب Termux: API
API كم في هذه الكلمة لقلب المبرمج دمجها
إذا لم نتطرق إلى موضوع Termux: API ، فيمكن تقليص جميع خطواتنا إلى إعادة سرد بسيطة لبعض الكتيبات مثل Linux for Dummies ، كما تمت الإشارة إليه بحق في التعليقات على الجزء الأول.
أولاً ، قم بتثبيت Termux: API من سوق Google Play (بعد عدم تأهله لإعادة تشغيل Termux):

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

- termux السطوع
يضبط سطوع الشاشة من 0 إلى 255

- termux-نخب
يظهر إشعارًا منبثقًا مؤقتًا

- الشعلة نهاية
يتحول على مصباح يدوي

- termux-واي فاي scaninfo
إرجاع معلومات حول آخر مسح لشبكات Wi-Fi

من السهل أن نرى أن القيم التي يتم إرجاعها هي سلاسل ، قواميس ، قواميس ، بشكل عام ، أنواع البيانات التي يعمل معها Python ، لذلك فإن الخطوة التالية هي تثبيتها.
الخطوة 5
تثبيت بايثون و نانو
لتثبيت Python ، نكتب في المحطة:
updg apt install python apt install python2
الآن لدينا 2 و 3 بيثون مثبتة.
خلال العمل على هذه المقالة ، اكتشفت محرر نصوص nano آخر أعجبني أكثر من vim ، فلنقم بتثبيته:
apt install nano
استخدامه أسهل من vim ، ويحتوي nano على واجهة سهلة الاستخدام. على جهاز Android ، لا يزال vim أكثر ملاءمة.
HelloWorld في بيثون في Termux
بشكل عام ، يمكنك الاستغناء عن هذا العنصر ، لكن ضع Python في Termux ولا تكتب HelloWorld ، في رأيي ، لغة سيئة.
لم أضع هدفي لتعليم أي شخص بيثون ، لذلك يمكن لأولئك الذين لا يعرفون ببساطة نسخ الكود (أو البدء في التعلم بمفردهم ، وهناك ما يكفي من الأدب) ، وأولئك الذين يعرفون يستطيعون فعل ذلك بأنفسهم. وسأظهر "بصمت" طريقة لإدخال نص في المحطة بدون محرر.
cat >hello-world.py

إذا لم تلاحظ خطأً أثناء عملية الإدخال وضغطت بالفعل على Enter ، فلن تتمكن من الانتقال إلى السطر أعلاه. للقيام بذلك ، قم بإنهاء الإدخال عن طريق الضغط على Ctrl + D (يمكنك مقاطعة Ctrl + Z تمامًا) والتكرار من البداية. بما أننا استخدمنا ">" ، فسيتم إعادة كتابة الملف بالكامل. لهذا السبب ، لا أوصي باستخدام طريقة الإدخال هذه إذا لم تكن متأكدًا من أنك ستكتب الشفرة على الفور دون أخطاء.
الخطوة 6
مخطوطات باش
تعتبر البرامج النصية للباش طريقة رائعة لأتمتة العمل مع الجهاز. البرنامج النصي هو ملف ذو ملحق .sh (ملحق اختياري) يحتوي على مجموعة من أوامر المحطة الطرفية ، بعضها درسنا بالفعل. في ما يلي قائمة بمعظم الأوامر ، يجب أن يعمل كل شيء ، لكن لاحظ أن هذه قائمة لنظام Linux "للبالغين" ، وليس لنظام Termux ، ولكن هذه مجرد أشياء رائعة لنصوص bash .
باستخدام البرامج النصية ، يمكنك أتمتة جميع الإجراءات رتابة تقريبا. سنقوم بكتابة أبسط نص bash يعرض القيمة من المتغير الذي أنشأه ، وسأستخدم cat مرة أخرى ، ويمكنك استخدام محرر نص عادي ، وأولئك الذين يرغبون في تدريب أنفسهم يمكنهم استخدام الصدى.
cat >test.sh export str=", !"

لاحظ شخص لطيف بحق أن أمر
export
لا لزوم له إذا تم استخدام المتغير في نفس البرنامج النصي ، حيث إنه سوف يستغرق المتغير في البيئة ، أي جعله في متناول خارج البرنامج النصي ، ويستهلك ذاكرة إضافية. وبالتالي ، بعد تشغيل
test.sh
يمكننا الوصول إلى المتغير
$str
من سطر الأوامر.
النصي باش مع Termux: API
دعنا نكتب شيئًا مختلفًا عن HelloWorlds سيئة السمعة ، ولكن بلا فائدة. سيكون نصنا:
- تنفيذ طلب API termux لحالة البطارية
- احفظ البيانات المستلمة في ملف test.txt
- عرض البيانات من ملف على الشاشة
- تنفيذ برنامج hello-world.py المكتوب مسبقًا
- اكتب البيانات الواردة من البرنامج إلى ملف test.txt
- عرض البيانات من ملف على الشاشة
- نقل البيانات من ملف إلى الحافظة
- عرض محتويات الحافظة
- عرض رسالة منبثقة مع بيانات من الحافظة
أولاً ، قم بإنشاء مجلد للعمل ونسخ 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
الآن ، بأي طريقة مريحة ، نكتب البرنامج النصي في ملف test.sh:
الآن ، في مجلد bashscript ، نكتب. / test.sh نلاحظه في الجهاز الطرفي على جهاز Android:

لذلك كتبنا السيناريو باش المخطط. يمكنك تخفيفه بإخراج وحدة التحكم في المعلومات حول تنفيذ كل إجراء (باستخدام الصدى) ، سأترك هذا للقراء.
الخطوة 7
دعونا نفعل شيئا مفيدا
مفيدة نسبيا
نحن صياغة الشروط المرجعية
بعد البدء ، يجب أن يضع التطبيق خطًا عشوائيًا من الملف على الحافظة ويبلغ عن ذلك برسالة منبثقة.
سنأخذ نص bash كقاعدة أساسية ، وسنقوم باستخراج سطر عشوائي من ملف باستخدام روتين Python. لنعد خطة عمل نصية:
- تشغيل الروتين الفرعي
- نقل نتيجة الروتين إلى الحافظة
- عرض رسالة منبثقة
سنبت في أسماء الدليل وملفات التطبيق:
- مجلد rndstr في الدليل الرئيسي
- المصدر - الملف الذي سنتخذ منه الخطوط
- rndstr.py - روتين يخرج إلى وحدة التحكم خط عشوائي من الملف المصدر
- rndstr.sh - ملف البرنامج النصي
نقوم بإنشاء دليل التطبيق ، وبعد الانتقال إليه ، نقوم بإنشاء ملفات هناك.
يمكن دمج النقطتين الأوليين من خطة البرنامج النصي بخط أنابيب ، نتيجة لذلك ، باستخدام Termux: API نحصل على:
في الملف المصدر يمكنك وضع أي نص مقسم منطقياً إلى سطور ، قررت أن أضع الأمثال:
سرد ملف sourse . . . , . . . . . . . . , , . . , . . , . . , . . . . , . . , . . - , . , . , , . . , . . , . . , . . , . , . . . . . , . . - . , . . . . , , . . . , , , . . ! !
يبقى لنا إنشاء روتين استخراج خط عشوائي من الملف المصدر.
سنصف خوارزمية البرنامج الفرعي:
- افتح الملف المصدر
- حساب عدد الأسطر في ملف مفتوح
- نقوم بإغلاق الملف (لا يوجد شيء لإبقائه مفتوحًا كثيرًا من الوقت)
- قم بإنشاء عدد صحيح عشوائي في عدد أسطر الملف المصدر
- افتح الملف المصدر
- نطبع خطًا تحت رقم الرقم الذي تم إنشاؤه
- أغلق الملف
ننفذ الخوارزمية في بيثون (أكتب تحت بيثون 3.7):
import random
بعد إنشاء الملفات وتسجيلها ، تحتاج إلى منح حقوق rndstr.sh
لملف rndstr.sh
، وإنشاء اسم مستعار rndstr.sh
السريع.
alias rnst="~/rndstr/rndstr.sh"
الآن مع دخول rnst
في الجهاز rnst
نحصل على قول مأثور عشوائي على الحافظة ، والذي ، على سبيل المثال ، يمكن استخدامه في المراسلات.
لذلك كتبنا على الأقل شيء مفيد. مفيدة نسبيا.
PS
في الخطوة الأخيرة ، لم أقم بإعطاء لقطات عن عمد ولم أحلل بالتفصيل بعض الإجراءات ، وكتب فقط محتويات الملفات بحيث أتيحت للقراء الفرصة للعمل بمفردهم.
في البداية ، خططت لإظهار كيفية استخدام nmap ، sqlmap في هذه السلسلة ، لكن بدوني يوجد بالفعل الكثير من المقالات حول هذا الموضوع. إذا كنت تريد مني متابعة "Termux خطوة بخطوة" ، فهناك استطلاع أدناه ، وفي التعليقات يمكنك اقتراح ما يمكن الكتابة عنه.