Từng bước học Termux (Phần 2)

В phần cuối chúng tôi đã làm quen với các lệnh cơ bản của Termux, thiết lập kết nối SSH với PC, học cách tạo bí danh và cài đặt một số tiện ích hữu ích. Lần này chúng tôi phải tiến xa hơn nữa, chúng tôi ở bên bạn:

  • tìm hiểu về Termux:API
  • cài đặt Python và nano và viết "Xin chào, thế giới!" trong Python
  • tìm hiểu về tập lệnh bash và viết tập lệnh bằng Termux:API
  • sử dụng tập lệnh bash, Termux:API và Python, chúng tôi sẽ viết một chương trình đơn giản

Vì bây giờ chúng ta đã hiểu tác dụng của các lệnh đầu vào, nên từ bước tiếp theo, tôi sẽ không mô tả chi tiết từng hành động như vậy, nhưng nếu có khó khăn, tôi chắc chắn sẽ giải thích.

Tôi sử dụng bí danh rất nhiều, vì vậy các từ viết tắt được sử dụng trong phần này được hiển thị ở đây:

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

Kế hoạch đã sẵn sàng, bạn có thể bắt đầu! Và tất nhiên, đừng quên "Tab ma thuật" (Xem Phần 1).

Bước 4

Lặn xuống Termux: API Rabbit Hole

API bao nhiêu đã hợp nhất trong từ này cho trái tim của người viết mã

Nếu chúng tôi không đề cập đến chủ đề Termux: API, thì tất cả các bước của chúng tôi có thể được rút gọn thành việc kể lại đơn giản một số tài liệu quảng cáo như "Linux dành cho người mới bắt đầu", như đã được lưu ý chính xác trong các nhận xét ở phần đầu tiên.

Trước tiên, hãy cài đặt Termux:API từ Google Play Market (không hại gì khi khởi động lại Termux sau đó):

Từng bước học Termux (Phần 2)

Tiếp theo, chúng ta cần cài đặt gói API trong bảng điều khiển Termux:

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

Để thử nghiệm, tôi đang sử dụng Android 5.1.1, đối với chủ sở hữu Android 7 cần "bảo vệ" Termux: API bằng cách đi tới 'Cài đặt' > 'Ứng dụng được bảo vệ', nếu không, các cuộc gọi API như termux-battery-status, sẽ treo. (Cm. dự án wiki)

Bây giờ đáng để xem xét kỹ hơn các cơ hội có được. Bạn có thể tìm thấy mô tả mới nhất và chi tiết nhất về Termux:API tại dự án wiki. Tôi sẽ cố gắng chọn những thứ trực quan và thú vị nhất, điều này sẽ cho phép tôi rảnh tay cho công việc độc lập trong tương lai.

Một số ví dụ về Termux:API

  • termux-pin-trạng thái
    Trả về trạng thái của pin
    Từng bước học Termux (Phần 2)
  • độ sáng thuật ngữ
    Đặt độ sáng của màn hình từ 0 đến 255
    Từng bước học Termux (Phần 2)
  • bánh mì nướng
    Hiển thị thông báo bánh mì nướng tạm thời
    Từng bước học Termux (Phần 2)
  • thuật ngữ-ngọn đuốc
    Bao gồm đèn pin
    Từng bước học Termux (Phần 2)
  • termux-wifi-scaninfo
    Trả về thông tin về lần quét cuối cùng của mạng Wi-Fi
    Từng bước học Termux (Phần 2)

Dễ dàng thấy rằng các giá trị trả về là các chuỗi, từ điển, danh sách từ điển, nói chung là các kiểu dữ liệu mà Python hoạt động tốt, vì vậy bước tiếp theo là thiết lập nó.

Bước 5

Cài đặt Python và nano

Để cài đặt Python, hãy viết trong thiết bị đầu cuối:

updg
apt install python
apt install python2

Bây giờ chúng tôi đã cài đặt Python 2 và 3.

Trong khi thực hiện bài viết, tôi phát hiện ra một trình soạn thảo văn bản nano khác mà tôi thích hơn vim, hãy cài đặt nó:

apt install nano

Nó dễ sử dụng hơn vim và nano có giao diện thân thiện với người dùng hơn. Trên thiết bị Android, vim vẫn thuận tiện hơn.

HelloWorld bằng Python tại Termux

Nói chung, có thể làm mà không cần mục này, nhưng theo tôi, việc đưa Python vào Termux và không viết HelloWorld là một cách cư xử tồi.

Tôi không có ý định dạy Python cho bất kỳ ai, vì vậy những người không biết có thể chỉ cần sao chép mã (hoặc bắt đầu tự học, vì có đủ tài liệu) và những người biết có thể tự làm một cái gì đó. Và tôi sẽ "đội lốt" vẫn chỉ ra cách nhập văn bản trong thiết bị đầu cuối mà không cần trình chỉnh sửa.

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)

Từng bước học Termux (Phần 2)

Nếu bạn không nhận thấy lỗi trong quá trình nhập và đã nhấn Enter, thì bạn sẽ không thể đến dòng trên, để thực hiện việc này, hãy kết thúc quá trình nhập bằng cách nhấn Ctrl + D (bạn có thể ngắt thường Ctrl + Z) và lặp lại mọi thứ từ đầu. Vì chúng tôi đã sử dụng '>' nên tệp sẽ bị ghi đè hoàn toàn. Vì lý do này, tôi không khuyên bạn nên sử dụng phương thức nhập liệu này trừ khi bạn chắc chắn rằng mình sẽ viết mã ngay lập tức mà không có lỗi.

Bước 6

tập lệnh Bash

Tập lệnh Bash là một cách tuyệt vời để tự động hóa công việc đầu cuối của bạn. Tập lệnh là một tệp có phần mở rộng .sh (phần mở rộng là tùy chọn) chứa một tập hợp các lệnh đầu cuối, chúng tôi đã nghiên cứu một số trong số đó. Đây danh sách hầu hết các lệnh, mọi thứ sẽ hoạt động, nhưng lưu ý rằng đây là danh sách dành cho Linux "người lớn", không phải Termux, mà chỉ tài liệu tuyệt vời về tập lệnh bash.

Với sự trợ giúp của các tập lệnh, bạn có thể tự động hóa hầu hết các hành động đơn điệu. Hãy viết tập lệnh bash đơn giản nhất hiển thị giá trị từ biến anh ấy đã tạo, tôi sẽ sử dụng lại cat, bạn có thể sử dụng trình soạn thảo văn bản bình thường và những người đặc biệt muốn tự rèn luyện bản thân có thể sử dụng tiếng vang.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Từng bước học Termux (Phần 2)

Tập lệnh Bash với Termux:API

Hãy viết một cái gì đó khác với HelloWorlds khét tiếng, nhưng cũng vô dụng. Kịch bản của chúng tôi sẽ là:

  1. thực hiện yêu cầu API termux-pin-status
  2. lưu dữ liệu nhận được vào tệp test.txt
  3. in dữ liệu từ tệp ra màn hình
  4. thực thi chương trình hello-world.py đã viết trước đó
  5. ghi dữ liệu nhận được từ chương trình vào tệp test.txt
  6. in dữ liệu từ tệp ra màn hình
  7. di chuyển dữ liệu từ tập tin vào clipboard
  8. hiển thị nội dung của clipboard
  9. hiển thị thông báo bật lên với dữ liệu từ khay nhớ tạm

Đầu tiên, tạo một thư mục dành cho công việc và sao chép hello-world.py ở đó dưới dạng test.py, tạo các tệp test.sh và test.txt trong thư mục này:

mkdir bashscript

cat hello-world.py >> bashscript/test.py

cd bashscript/

touch test.sh test.txt # touch создает файлы

chmod +x test.sh

Bây giờ, bằng mọi cách thuận tiện, hãy viết tập lệnh vào tệp 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

Bây giờ, trong thư mục bashscript, chúng tôi viết ./test.sh chúng tôi quan sát trong thiết bị đầu cuối trên thiết bị Android:

Từng bước học Termux (Phần 2)

Vì vậy, chúng tôi đã viết kịch bản bash theo kế hoạch. Bạn có thể pha loãng nó với đầu ra cho bảng điều khiển thông tin về việc thực hiện từng hành động (sử dụng tiếng vang), tôi sẽ để lại điều này cho độc giả.

Bước 7

Hãy làm điều gì đó hữu ích

tương đối hữu ích

Hãy xây dựng các điều khoản tham chiếu
Sau khi khởi chạy, ứng dụng sẽ đặt một dòng ngẫu nhiên từ tệp vào khay nhớ tạm và thông báo về nó bằng một thông báo bật lên.

Chúng tôi sẽ lấy một tập lệnh bash làm cơ sở, chúng tôi sẽ trích xuất một dòng ngẫu nhiên từ một tệp bằng chương trình con Python. Hãy lập một kế hoạch làm việc theo kịch bản:

  1. Chạy chương trình con
  2. Chuyển kết quả của chương trình con vào clipboard
  3. Hiển thị thông báo bật lên

Hãy xác định tên của thư mục và tệp ứng dụng:

  • thư mục rndstr trong thư mục chính
    • nguồn - tệp mà chúng tôi sẽ lấy dòng
    • rndstr.py - một chương trình con hiển thị một dòng ngẫu nhiên từ tệp nguồn tới bàn điều khiển
    • rndstr.sh - tập lệnh

Tạo một thư mục ứng dụng và di chuyển đến đó và tạo các tệp ở đó.

Do đó, hai điểm đầu tiên của kế hoạch tập lệnh có thể được kết hợp bằng một đường dẫn, bằng cách sử dụng Termux: API, chúng tôi nhận được:

#!/bin/bash

python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы

termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"

Trong tệp nguồn, bạn có thể đặt bất kỳ văn bản nào được chia thành các dòng một cách hợp lý, tôi quyết định đặt các câu cách ngôn:

Danh sách tập tin nguồn

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

Chúng ta chỉ cần tạo một chương trình con trích xuất một chuỗi ngẫu nhiên từ tệp nguồn.
Hãy viết thuật toán của chương trình con:

  1. tập tin mã nguồn mở
  2. Đếm số dòng trong một tệp đang mở
  3. Đóng tệp (không có gì để giữ cho tệp mở thêm thời gian)
  4. Chúng tôi tạo một số nguyên ngẫu nhiên trong số dòng của tệp nguồn
  5. tập tin mã nguồn mở
  6. Chúng tôi xuất một dòng dưới số của số được tạo
  7. đóng tập tin

Chúng tôi triển khai thuật toán bằng Python (tôi viết theo 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  #  закрываем файл

Sau khi tệp được tạo và ghi, bạn cần cấp quyền thực thi tệp rndstr.shvà tạo bí danh để khởi chạy nhanh.

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

Bây giờ gõ vào thiết bị đầu cuối rnst chúng ta sẽ nhận được một câu cách ngôn ngẫu nhiên trên khay nhớ tạm, chẳng hạn như câu cách ngôn này có thể được sử dụng trong thư từ.

Ở đây chúng tôi đã viết ít nhất một cái gì đó hữu ích. Tương đối hữu ích.

ps

Ở bước cuối cùng, tôi cố tình không cung cấp ảnh chụp màn hình và không phân tích chi tiết một số thao tác, chỉ viết nội dung của các tệp để bạn đọc có cơ hội tự làm việc.

Về "Termux từng bước" này, tôi nghĩ nó đáng để hoàn thành. Tất nhiên, đây chỉ là những bước đầu tiên, nhưng bây giờ bạn có thể tự mình tiến lên phía trước.

Ban đầu, tôi dự định trình bày trong chu trình này cách sử dụng nmap, sqlmap, nhưng không có tôi nên đã có rất nhiều bài viết về chủ đề này. Nếu bạn muốn tôi tiếp tục chu trình “Termux từng bước”, thì có một cuộc khảo sát bên dưới và trong các nhận xét, bạn có thể đề xuất những gì khác để viết.

Chỉ những người dùng đã đăng ký mới có thể tham gia khảo sát. Đăng nhập, xin vui lòng.

Tiếp tục "Termux từng bước"?

  • vâng

  • Không

2 người dùng bình chọn. Không có phiếu trắng.

Nguồn: www.habr.com

Thêm một lời nhận xét