Termux ทีละขั้นตอน (ตอนที่ 2)

В ส่วนสุดท้าย เราได้ทำความคุ้นเคยกับคำสั่งพื้นฐานของ Termux ตั้งค่าการเชื่อมต่อ SSH กับพีซี เรียนรู้วิธีสร้างนามแฝงและติดตั้งยูทิลิตี้ที่มีประโยชน์หลายอย่าง ครั้งนี้เราต้องก้าวไปอีกขั้น เราอยู่กับคุณ:

  • เรียนรู้เกี่ยวกับ Termux:API
  • ติดตั้ง Python และ nano แล้วเขียนว่า "Hello, world!" ในไพธอน
  • เรียนรู้เกี่ยวกับสคริปต์ทุบตีและเขียนสคริปต์โดยใช้ Termux:API
  • โดยใช้สคริปต์ทุบตี Termux:API และ Python เราจะเขียนโปรแกรมอย่างง่าย

เนื่องจากตอนนี้เราเข้าใจแล้วว่าคำสั่งอินพุตทำอะไร จากนั้นขั้นตอนต่อไปฉันจะไม่อธิบายการดำเนินการแต่ละอย่างในรายละเอียดดังกล่าว แต่ในกรณีที่อาจมีปัญหา ฉันจะอธิบายอย่างแน่นอน

ฉันใช้นามแฝงบ่อย ดังนั้นตัวย่อที่ใช้ในส่วนนี้จึงแสดงไว้ที่นี่:

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

แผนพร้อมแล้ว เริ่มได้เลย! และแน่นอนอย่าลืมเกี่ยวกับ "แท็บมายากล" (ดูส่วนที่ 1).

ขั้นตอนที่ 4

เจาะลึก Termux:API Rabbit Hole

API รวมอยู่ในคำนี้มากแค่ไหนสำหรับหัวใจของ coder

หากเราไม่แตะต้องหัวข้อของ Termux: API ขั้นตอนทั้งหมดของเราอาจลดลงเหลือเพียงการบอกเล่าโบรชัวร์ง่ายๆ เช่น "Linux for Dummies" ตามที่ระบุไว้อย่างถูกต้องในความคิดเห็นในส่วนแรก

ขั้นแรก ติดตั้ง Termux:API จาก Google Play Market (การรีสตาร์ท Termux ในภายหลังไม่ใช่เรื่องเสียหาย):

Termux ทีละขั้นตอน (ตอนที่ 2)

ต่อไป เราต้องติดตั้งแพ็คเกจ 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 ทีละขั้นตอน (ตอนที่ 2)
  • ความสว่างของ termux
    ตั้งค่าความสว่างของหน้าจอตั้งแต่ 0 ถึง 255
    Termux ทีละขั้นตอน (ตอนที่ 2)
  • termux-ขนมปังปิ้ง
    แสดงการแจ้งเตือนขนมปังปิ้งชั่วคราว
    Termux ทีละขั้นตอน (ตอนที่ 2)
  • ไฟฉาย termux
    รวมถึงไฟฉาย
    Termux ทีละขั้นตอน (ตอนที่ 2)
  • termux-wifi-สแกนข้อมูล
    ส่งคืนข้อมูลเกี่ยวกับการสแกนเครือข่าย Wi-Fi ครั้งล่าสุด
    Termux ทีละขั้นตอน (ตอนที่ 2)

เป็นเรื่องง่ายที่จะเห็นว่าค่าที่ส่งคืนคือสตริง พจนานุกรม รายการพจนานุกรม โดยทั่วไปคือประเภทข้อมูลที่ Python ใช้งานได้ดี ดังนั้นขั้นตอนต่อไปคือการตั้งค่า

ขั้นตอนที่ 5

ติดตั้ง Python และ nano

ในการติดตั้ง Python ให้เขียนในเทอร์มินัล:

updg
apt install python
apt install python2

ตอนนี้เราได้ติดตั้ง Python 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 (นามสกุลนี้เป็นทางเลือก) ที่มีชุดคำสั่งเทอร์มินัล ซึ่งบางส่วนเราได้ศึกษาไปแล้ว ที่นี่ รายการคำสั่งส่วนใหญ่ทุกอย่างควรใช้งานได้ แต่โปรดทราบว่านี่เป็นรายการสำหรับ Linux "สำหรับผู้ใหญ่" ไม่ใช่ Termux แต่เป็นเพียง เนื้อหาที่ยอดเยี่ยมเกี่ยวกับสคริปต์ทุบตี.

ด้วยความช่วยเหลือของสคริปต์ คุณสามารถทำให้การกระทำที่ซ้ำซากจำเจเกือบทั้งหมดเป็นไปโดยอัตโนมัติ มาเขียนสคริปต์ทุบตีที่ง่ายที่สุดที่แสดงค่าจากตัวแปรที่เขาสร้างขึ้น ฉันจะใช้ 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. ดำเนินการตามคำขอ API ของ 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)

ดังนั้นเราจึงเขียนสคริปต์ทุบตีที่วางแผนไว้ คุณสามารถเจือจางด้วยเอาต์พุตไปยังคอนโซลของข้อมูลเกี่ยวกับการดำเนินการของแต่ละการกระทำ (โดยใช้ echo) ฉันจะปล่อยให้ผู้อ่าน

ขั้นตอนที่ 7

มาทำสิ่งที่เป็นประโยชน์กันเถอะ

ค่อนข้างมีประโยชน์

มากำหนดเงื่อนไขการอ้างอิงกัน
หลังจากเปิดตัว แอปพลิเคชันควรวางบรรทัดสุ่มจากไฟล์บนคลิปบอร์ดและแจ้งเตือนด้วยข้อความป๊อปอัป

เราจะใช้สคริปต์ทุบตีเป็นพื้นฐาน เราจะแยกบรรทัดสุ่มออกจากไฟล์โดยใช้รูทีนย่อย 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 เราจะได้รับคำพังเพยแบบสุ่มบนคลิปบอร์ดซึ่งสามารถใช้ในการติดต่อได้

ที่นี่เราได้เขียนสิ่งที่มีประโยชน์อย่างน้อย ค่อนข้างมีประโยชน์

ps

ในขั้นตอนที่แล้ว ฉันตั้งใจไม่ให้ภาพหน้าจอและไม่ได้วิเคราะห์การดำเนินการบางอย่างโดยละเอียด โดยเขียนเฉพาะเนื้อหาของไฟล์เพื่อให้ผู้อ่านมีโอกาสทำงานด้วยตนเอง

ใน "Termux ทีละขั้นตอน" ฉันคิดว่ามันคุ้มค่าที่จะจบ แน่นอนว่านี่เป็นเพียงก้าวแรกเท่านั้น แต่ตอนนี้คุณสามารถก้าวไปข้างหน้าได้ด้วยตัวเอง

เริ่มแรกฉันวางแผนที่จะแสดงในรอบนี้ถึงวิธีการใช้ nmap, sqlmap แต่ถ้าไม่มีฉันก็มีบทความมากมายในหัวข้อนี้แล้ว หากคุณต้องการให้ฉันดำเนินการต่อ "Termux ทีละขั้นตอน" มีแบบสำรวจด้านล่างและในความคิดเห็นคุณสามารถแนะนำสิ่งอื่นที่จะเขียนเกี่ยวกับ

เฉพาะผู้ใช้ที่ลงทะเบียนเท่านั้นที่สามารถเข้าร่วมในการสำรวจได้ เข้าสู่ระบบ, โปรด.

ดำเนินการต่อ "Termux ทีละขั้นตอน" หรือไม่

  • มี

  • ไม่

ผู้ใช้ 2 คนโหวต ไม่มีการงดออกเสียง

ที่มา: will.com

เพิ่มความคิดเห็น