خطوة خطوة خطوة (الجزء الثاني)



في الجزء الأخير ، التقينا بأوامر 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 #    alias' apt install termux-api 

بالنسبة للتجارب ، أستخدم 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 #     ( 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) 


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


الخطوة 6


مخطوطات باش


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


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


 cat >test.sh export str=", !" #   str #     ", !" #       '=' # export      (..   ) echo $str #        '$' # Ctrl + D # ./test.sh   ,         #        test.sh  chmod +x test.sh # chmod    (+  / - ) # '+x'       ./test.sh #     


لاحظ شخص لطيف بحق أن أمر export لا لزوم له إذا تم استخدام المتغير في نفس البرنامج النصي ، حيث إنه سوف يستغرق المتغير في البيئة ، أي جعله في متناول خارج البرنامج النصي ، ويستهلك ذاكرة إضافية. وبالتالي ، بعد تشغيل test.sh يمكننا الوصول إلى المتغير $str من سطر الأوامر.

النصي باش مع Termux: API


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


  1. تنفيذ طلب API termux لحالة البطارية
  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:



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


الخطوة 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 .    "" 

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


سرد ملف sourse
    . .    .    ,  . .    . .    . .       . .   ,    ,   . .       ,   . .       ,    . .      ,     . .        . .     ,    . .       ,    . .     -  ,    .      ,     .   ,     ,     . .    ,    . .       ,  . .     ,   . .     ,    .     ,   . .          . .         .           ,     . .   -  .  ,  . .         . .     ,   ,  .        . .     ,    ,  ,     . .     !   !  

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


  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 لملف rndstr.sh ، وإنشاء اسم مستعار rndstr.sh السريع.


 alias rnst="~/rndstr/rndstr.sh" 

الآن مع دخول rnst في الجهاز rnst نحصل على قول مأثور عشوائي على الحافظة ، والذي ، على سبيل المثال ، يمكن استخدامه في المراسلات.


لذلك كتبنا على الأقل شيء مفيد. مفيدة نسبيا.


PS


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


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

Source: https://habr.com/ru/post/ar445868/


All Articles