टर्मक्स स्टेप बाय स्टेप (भाग 2)

В शेवटचा भाग आम्ही टर्मक्सच्या मूलभूत आज्ञांशी परिचित झालो, पीसीवर एसएसएच कनेक्शन सेट केले, उपनाव कसे तयार करायचे ते शिकलो आणि अनेक उपयुक्त उपयुक्तता स्थापित केल्या. यावेळी आम्हाला आणखी पुढे जायचे आहे, आम्ही तुमच्या सोबत आहोत.

  • Termux:API बद्दल जाणून घ्या
  • पायथन आणि नॅनो स्थापित करा आणि "हॅलो, वर्ल्ड!" लिहा. Python मध्ये
  • बॅश स्क्रिप्ट्सबद्दल जाणून घ्या आणि Termux:API वापरून स्क्रिप्ट लिहा
  • बॅश स्क्रिप्ट, टर्मक्स:एपीआय आणि पायथन वापरून आपण एक साधा प्रोग्राम लिहू

इनपुट कमांड्स काय करतात हे आता आम्हाला समजले आहे, तर पुढच्या पायरीपासून मी प्रत्येक क्रियेचे तपशीलवार वर्णन करणार नाही, परंतु जिथे अडचण येऊ शकते, मी निश्चितपणे स्पष्ट करेन.

मी उपनावे खूप वापरतो, म्हणून या भागात वापरलेली संक्षेप येथे दर्शविली आहेत:

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

योजना तयार आहे, तुम्ही सुरू करू शकता! आणि अर्थातच, "जादू टॅब" बद्दल विसरू नका (भाग १ पहा).

4 पाऊल

टर्मक्स डाउन डायव्हिंग:एपीआय रॅबिट होल

कोडरच्या हृदयासाठी API या शब्दात किती विलीन झाले आहे

जर आम्ही Termux: API च्या विषयाला स्पर्श केला नाही, तर आमचे सर्व टप्पे "Linux for Dummies" सारख्या ब्रोशरच्या सोप्या रीटेलिंगपर्यंत कमी केले जाऊ शकतात, जसे की पहिल्या भागावरील टिप्पण्यांमध्ये योग्यरित्या नमूद केले होते.

प्रथम, Google Play Market वरून Termux:API स्थापित करा (त्यानंतर टर्मक्स रीस्टार्ट करण्यास त्रास होत नाही):

टर्मक्स स्टेप बाय स्टेप (भाग 2)

पुढे, आम्हाला टर्मक्स कन्सोलमध्ये API पॅकेज स्थापित करणे आवश्यक आहे:

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

प्रयोगासाठी मी Android 5.1.1 वापरत आहे, Android 7 मालकांना Termux: API "सेटिंग्ज" > 'संरक्षित अॅप्स' वर जाऊन "संरक्षित" करणे आवश्यक आहे अन्यथा API कॉल termux-battery-status, लटकतील. (सेमी. प्रकल्प विकी)

आता मिळवलेल्या संधींचे बारकाईने निरीक्षण करणे योग्य आहे. Termux:API चे नवीनतम आणि सर्वात तपशीलवार वर्णन येथे आढळू शकते प्रकल्प विकी. मी सर्वात दृश्य आणि मनोरंजक निवडण्याचा प्रयत्न करेन, जे मला भविष्यात स्वतंत्र कामासाठी माझा हात भरण्याची परवानगी देईल.

काही Termux:API उदाहरणे

  • termux-बॅटरी-स्थिती
    बॅटरीची स्थिती परत करते
    टर्मक्स स्टेप बाय स्टेप (भाग 2)
  • टर्मक्स-ब्राइटनेस
    स्क्रीनची चमक 0 ते 255 पर्यंत सेट करते
    टर्मक्स स्टेप बाय स्टेप (भाग 2)
  • टर्मक्स-टोस्ट
    तात्पुरती टोस्ट सूचना दाखवते
    टर्मक्स स्टेप बाय स्टेप (भाग 2)
  • टर्मक्स-टॉर्च
    फ्लॅशलाइटचा समावेश आहे
    टर्मक्स स्टेप बाय स्टेप (भाग 2)
  • टर्मक्स-वायफाय-स्कॅन माहिती
    वाय-फाय नेटवर्कच्या शेवटच्या स्कॅनबद्दल माहिती मिळवते
    टर्मक्स स्टेप बाय स्टेप (भाग 2)

हे पाहणे सोपे आहे की रिटर्न व्हॅल्यूज म्हणजे स्ट्रिंग्स, डिक्शनरी, डिक्शनरीच्या याद्या, सर्वसाधारणपणे, डेटा प्रकार ज्यावर पायथन उत्तम काम करतो, त्यामुळे पुढील पायरी म्हणजे ते सेट करणे.

5 पाऊल

पायथन आणि नॅनो स्थापित करा

पायथन स्थापित करण्यासाठी, टर्मिनलमध्ये लिहा:

updg
apt install python
apt install python2

आमच्याकडे आता 2 आणि 3 Python स्थापित आहेत.

लेखावर काम करत असताना, मला आणखी एक नॅनो टेक्स्ट एडिटर सापडला जो मला vim पेक्षा जास्त आवडला, चला तो स्थापित करू:

apt install nano

हे vim पेक्षा वापरणे सोपे आहे आणि नॅनोमध्ये अधिक वापरकर्ता-अनुकूल इंटरफेस आहे. Android डिव्हाइसवर, vim अजूनही अधिक सोयीस्कर आहे.

टर्मक्स येथे Python मध्ये 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)

टर्मक्स स्टेप बाय स्टेप (भाग 2)

जर तुम्हाला इनपुट प्रक्रियेदरम्यान एरर लक्षात आली नाही आणि आधीच एंटर दाबले असेल, तर तुम्ही वरील ओळीवर जाऊ शकणार नाही, हे करण्यासाठी, Ctrl + D दाबून इनपुट समाप्त करा (आपण सामान्यतः Ctrl + मध्ये व्यत्यय आणू शकता. Z) आणि सुरुवातीपासून सर्वकाही पुन्हा करा. आम्ही '>' वापरल्यामुळे फाइल पूर्णपणे ओव्हरराईट होईल. या कारणास्तव, मी ही इनपुट पद्धत वापरण्याची शिफारस करत नाही जोपर्यंत तुम्हाला खात्री नसेल की तुम्ही त्रुटींशिवाय कोड त्वरित लिहाल.

6 पाऊल

बॅश स्क्रिप्ट्स

बॅश स्क्रिप्ट हे तुमचे टर्मिनल काम स्वयंचलित करण्याचा उत्तम मार्ग आहे. स्क्रिप्ट ही .sh एक्स्टेंशन (विस्तार ऐच्छिक आहे) असलेली फाइल आहे ज्यामध्ये टर्मिनल कमांड्सचा संच आहे, ज्यापैकी काही आम्ही आधीच अभ्यासले आहेत. येथे बहुतेक आदेशांची यादी, सर्वकाही कार्य केले पाहिजे, परंतु लक्षात ठेवा की ही "प्रौढ" लिनक्सची यादी आहे, टर्मक्स नाही, परंतु फक्त बॅश स्क्रिप्ट्सवर उत्तम साहित्य.

स्क्रिप्टच्या मदतीने, आपण जवळजवळ सर्व नीरस क्रिया स्वयंचलित करू शकता. चला सर्वात सोपी बॅश स्क्रिप्ट लिहू जी त्याने तयार केलेल्या व्हेरिएबलमधून मूल्य दर्शवते, मी पुन्हा कॅट वापरेन, तुम्ही सामान्य मजकूर संपादक वापरू शकता आणि ज्यांना विशेषत: स्वतःला प्रशिक्षित करायचे आहे ते इको वापरू शकतात.

cat >test.sh

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

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

# Ctrl + D

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

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

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

टर्मक्स स्टेप बाय स्टेप (भाग 2)

Termux:API सह बॅश स्क्रिप्ट

कुख्यात HelloWorlds पेक्षा काहीतरी वेगळं लिहूया, पण अगदी निरुपयोगी. आमची स्क्रिप्ट असेल:

  1. termux-battery-status API विनंती कार्यान्वित करा
  2. प्राप्त डेटा test.txt फाइलमध्ये सेव्ह करा
  3. फाइलमधून स्क्रीनवर डेटा मुद्रित करा
  4. पूर्वी लिहिलेला hello-world.py प्रोग्राम कार्यान्वित करा
  5. प्रोग्राममधून मिळालेला डेटा test.txt फाइलवर लिहा
  6. फाइलमधून स्क्रीनवर डेटा मुद्रित करा
  7. फाइलमधून क्लिपबोर्डवर डेटा हलवा
  8. क्लिपबोर्डची सामग्री प्रदर्शित करा
  9. क्लिपबोर्डवरील डेटासह पॉपअप संदेश प्रदर्शित करा

प्रथम, कामासाठी एक फोल्डर तयार करा आणि तेथे test.py म्हणून hello-world.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 डिव्हाइसवरील टर्मिनलमध्ये निरीक्षण करतो:

टर्मक्स स्टेप बाय स्टेप (भाग 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. फाइल बंद करत आहे

आम्ही 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 आम्हाला क्लिपबोर्डवर एक यादृच्छिक सूत्र मिळेल, जे, उदाहरणार्थ, पत्रव्यवहारात वापरले जाऊ शकते.

येथे आम्ही किमान काहीतरी उपयुक्त लिहिले आहे. तुलनेने उपयुक्त.

PS

शेवटच्या टप्प्यात, मी जाणूनबुजून स्क्रीनशॉट प्रदान केले नाहीत आणि काही क्रियांचे तपशीलवार विश्लेषण केले नाही, फक्त फायलींमधील सामग्री लिहिली जेणेकरून वाचकांना स्वतःहून कार्य करण्याची संधी मिळेल.

या "टर्मक्स स्टेप बाय स्टेप" वर, मला वाटते की ते पूर्ण करणे योग्य आहे. अर्थात, ही फक्त पहिली पायरी आहेत, परंतु आता तुम्ही स्वतः पुढे जाऊ शकता.

सुरुवातीला, मी या चक्रात nmap, sqlmap कसे वापरायचे ते दर्शविण्याची योजना आखली, परंतु माझ्याशिवाय या विषयावर आधीच बरेच लेख आहेत. मी "टर्मक्स स्टेप बाय स्टेप" सायकल चालू ठेवू इच्छित असल्यास, खाली एक सर्वेक्षण आहे आणि टिप्पण्यांमध्ये तुम्ही आणखी काय लिहावे ते सुचवू शकता.

केवळ नोंदणीकृत वापरकर्तेच सर्वेक्षणात भाग घेऊ शकतात. साइन इन करा, आपले स्वागत आहे.

"टर्मक्स स्टेप बाय स्टेप" सुरू ठेवायचे?

  • होय

  • कोणत्याही

2 वापरकर्त्यांनी मतदान केले. कोणतेही abstentions नाहीत.

स्त्रोत: www.habr.com

एक टिप्पणी जोडा