Termux langkah demi langkah (Bahagian 2)

В bahagian terakhir kami berkenalan dengan arahan asas Termux, menyediakan sambungan SSH ke PC, belajar cara mencipta alias dan memasang beberapa utiliti berguna. Kali ini kami perlu melangkah lebih jauh, kami bersama anda:

  • belajar tentang Termux:API
  • pasang Python dan nano, dan tulis "Hello, dunia!" dalam Python
  • belajar tentang skrip bash dan tulis skrip menggunakan Termux:API
  • menggunakan skrip bash, Termux:API dan Python kita akan menulis program mudah

Oleh kerana kita kini memahami apa yang dilakukan oleh arahan input, maka dari langkah seterusnya saya tidak akan menerangkan setiap tindakan secara terperinci, tetapi di mana mungkin terdapat kesulitan, saya pasti akan menerangkan.

Saya banyak menggunakan alias, jadi singkatan yang digunakan dalam bahagian ini ditunjukkan di sini:

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

Pelan sudah siap, anda boleh mula! Dan sudah tentu, jangan lupa tentang "Tab ajaib" (Lihat Bahagian 1).

Langkah 4

Menyelam ke Termux:API Arnab Lubang

API berapa banyak yang telah digabungkan dalam perkataan ini untuk hati pengkod

Jika kita tidak menyentuh topik Termux: API, maka semua langkah kita boleh dikurangkan kepada penceritaan semula ringkas beberapa risalah seperti "Linux for Dummies", seperti yang dinyatakan dengan betul dalam ulasan pada bahagian pertama.

Mula-mula, pasang Termux:API daripada Pasaran Google Play (tidak rugi untuk memulakan semula Termux selepas itu):

Termux langkah demi langkah (Bahagian 2)

Seterusnya, kita perlu memasang pakej API dalam konsol Termux:

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

Untuk percubaan, saya menggunakan Android 5.1.1, untuk pemilik Android 7 perlu "melindungi" Termux: API dengan pergi ke 'Tetapan' > 'Apl Terlindung' jika tidak, panggilan API seperti termux-battery-status, akan digantung. (Cm. wiki projek)

Kini ia patut melihat dengan lebih dekat peluang yang diperoleh. Penerangan terkini dan paling terperinci Termux:API boleh didapati di wiki projek. Saya akan cuba memilih yang paling visual dan menarik, yang akan membolehkan saya mengisi tangan saya untuk kerja bebas pada masa akan datang.

Beberapa contoh Termux:API

  • status-bateri termux
    Mengembalikan keadaan bateri
    Termux langkah demi langkah (Bahagian 2)
  • termux-kecerahan
    Menetapkan kecerahan skrin daripada 0 hingga 255
    Termux langkah demi langkah (Bahagian 2)
  • termux-toast
    Menunjukkan pemberitahuan roti bakar sementara
    Termux langkah demi langkah (Bahagian 2)
  • termux-torch
    Termasuk lampu suluh
    Termux langkah demi langkah (Bahagian 2)
  • termux-wifi-scaninfo
    Mengembalikan maklumat tentang imbasan terakhir rangkaian Wi-Fi
    Termux langkah demi langkah (Bahagian 2)

Sangat mudah untuk melihat bahawa nilai pulangan adalah rentetan, kamus, senarai kamus, secara amnya, jenis data yang berfungsi dengan baik dengan Python, jadi langkah seterusnya ialah menyediakannya.

Langkah 5

Pasang Python dan nano

Untuk memasang Python, tulis dalam terminal:

updg
apt install python
apt install python2

Kami kini telah memasang 2 dan 3 Python.

Semasa mengerjakan artikel itu, saya menemui editor teks nano lain yang lebih saya sukai daripada vim, mari pasangkannya:

apt install nano

Ia lebih mudah digunakan daripada vim, dan nano mempunyai antara muka yang lebih mesra pengguna. Pada peranti Android, vim masih lebih mudah.

HelloWorld dalam Python di Termux

Pada umumnya, ia boleh dilakukan tanpa item ini, tetapi meletakkan Python dalam Termux dan tidak menulis HelloWorld, pada pendapat saya, adalah tingkah laku yang tidak baik.

Saya tidak berhasrat untuk mengajar sesiapa Python, jadi mereka yang tidak tahu boleh menyalin kod (atau mula belajar sendiri, kerana terdapat bahan bacaan yang mencukupi), dan mereka yang tahu boleh membuat sesuatu sendiri. Dan saya akan "berselindung" masih menunjukkan cara untuk memasukkan teks dalam terminal tanpa editor.

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 langkah demi langkah (Bahagian 2)

Jika anda tidak melihat ralat semasa proses input dan sudah menekan Enter, maka anda tidak akan dapat pergi ke baris di atas, untuk melakukan ini, tamatkan input dengan menekan Ctrl + D (secara amnya anda boleh mengganggu Ctrl + Z) dan ulangi semuanya dari awal. Oleh kerana kami menggunakan '>' maka fail itu akan ditimpa sepenuhnya. Atas sebab ini, saya tidak mengesyorkan menggunakan kaedah input ini melainkan anda pasti bahawa anda akan menulis kod serta-merta tanpa ralat.

Langkah 6

Skrip Bash

Skrip Bash ialah cara terbaik untuk mengautomasikan kerja terminal anda. Skrip ialah fail dengan sambungan .sh (sambungan adalah pilihan) yang mengandungi set perintah terminal, beberapa daripadanya telah kami pelajari. Di sini senarai kebanyakan arahan, semuanya harus berfungsi, tetapi ambil perhatian bahawa ini adalah senarai untuk Linux "dewasa", bukan Termux, tetapi hanya bahan hebat pada skrip bash.

Dengan bantuan skrip, anda boleh mengautomasikan hampir semua tindakan membosankan. Mari kita tulis skrip bash paling mudah yang memaparkan nilai daripada pembolehubah yang dia cipta, saya akan menggunakan cat sekali lagi, anda boleh menggunakan editor teks biasa, dan mereka yang ingin melatih diri mereka sendiri boleh menggunakan gema.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux langkah demi langkah (Bahagian 2)

Skrip Bash dengan Termux:API

Mari kita tulis sesuatu yang berbeza daripada HelloWorlds yang terkenal, tetapi sama seperti tidak berguna. Skrip kami ialah:

  1. laksanakan permintaan API termux-bateri-status
  2. simpan data yang diterima ke fail test.txt
  3. mencetak data daripada fail ke skrin
  4. laksanakan program hello-world.py yang ditulis sebelum ini
  5. tulis data yang diterima daripada atur cara ke ujian fail.txt
  6. mencetak data daripada fail ke skrin
  7. memindahkan data dari fail ke papan keratan
  8. memaparkan kandungan papan keratan
  9. paparkan mesej pop timbul dengan data dari papan keratan

Mula-mula, buat folder untuk kerja dan salin hello-world.py di sana sebagai test.py, buat fail test.sh dan test.txt dalam folder ini:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Sekarang, dengan cara yang mudah, tulis skrip ke fail 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

Sekarang, berada dalam folder bashscript, kami menulis ./test.sh kami perhatikan di terminal pada peranti Android:

Termux langkah demi langkah (Bahagian 2)

Jadi kami menulis skrip bash yang dirancang. Anda boleh mencairkannya dengan output ke konsol maklumat mengenai pelaksanaan setiap tindakan (menggunakan gema), saya akan meninggalkan ini untuk pembaca.

Langkah 7

Jom buat sesuatu yang bermanfaat

Agak berguna

Mari kita rumuskan terma rujukan
Selepas pelancaran, aplikasi harus meletakkan baris rawak dari fail pada papan keratan dan memberitahu tentangnya dengan mesej pop timbul.

Kami akan mengambil skrip bash sebagai asas, kami akan mengekstrak baris rawak daripada fail menggunakan subrutin Python. Mari buat rancangan kerja skrip:

  1. Jalankan subrutin
  2. Pindahkan hasil subrutin ke papan keratan
  3. Paparkan mesej pop timbul

Mari kita tentukan nama direktori dan fail aplikasi:

  • folder rndstr dalam direktori rumah
    • sumber - fail dari mana kita akan mengambil baris
    • rndstr.py - subrutin yang memaparkan baris rawak dari fail sumber ke konsol
    • rndstr.sh - fail skrip

Cipta direktori aplikasi dan alihkannya dan buat fail di sana.

Dua mata pertama pelan skrip boleh digabungkan dengan saluran paip, sebagai hasilnya, menggunakan Termux: API yang kita dapat:

#!/bin/bash

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

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

Dalam fail sumber, anda boleh meletakkan sebarang teks secara logik dibahagikan kepada baris, saya memutuskan untuk meletakkan kata-kata mutiara:

Penyenaraian fail sumber

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

Kita hanya perlu mencipta subrutin yang mengekstrak rentetan rawak daripada fail sumber.
Mari kita tulis algoritma subrutin:

  1. Fail sumber terbuka
  2. Mengira bilangan baris dalam fail terbuka
  3. Tutup fail (tiada apa-apa untuk memastikan ia dibuka untuk masa tambahan)
  4. Kami menjana integer rawak dalam bilangan baris fail sumber
  5. Fail sumber terbuka
  6. Kami mengeluarkan baris di bawah nombor nombor yang dijana
  7. Menutup fail

Kami melaksanakan algoritma dalam Python (saya menulis di bawah 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  #  закрываем файл

Selepas fail dibuat dan ditulis, anda perlu memberikan kebenaran pelaksanaan fail rndstr.sh, dan buat alias untuk pelancaran pantas.

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

Sekarang menaip dalam terminal rnst kami akan mendapat kata mutiara rawak pada papan keratan, yang, sebagai contoh, boleh digunakan dalam surat-menyurat.

Di sini kami telah menulis sekurang-kurangnya sesuatu yang berguna. Agak berguna.

Ps

Pada langkah terakhir, saya sengaja tidak memberikan tangkapan skrin dan tidak menganalisis secara terperinci beberapa tindakan, hanya menulis kandungan fail supaya pembaca mempunyai peluang untuk bekerja sendiri.

Mengenai "Termux langkah demi langkah" ini, saya rasa ia berbaloi untuk diselesaikan. Sudah tentu, ini hanyalah langkah pertama, tetapi kini anda boleh bergerak ke hadapan sendiri.

Pada mulanya, saya merancang untuk menunjukkan dalam kitaran ini cara menggunakan nmap, sqlmap, tetapi tanpa saya sudah ada banyak artikel mengenai topik ini. Jika anda mahu saya meneruskan kitaran "Termux langkah demi langkah", maka terdapat tinjauan di bawah dan dalam ulasan anda boleh mencadangkan apa lagi untuk ditulis.

Hanya pengguna berdaftar boleh mengambil bahagian dalam tinjauan. Log masuk, Sama-sama.

Teruskan "Termux langkah demi langkah"?

  • Ya

  • Tiada

2 pengguna mengundi. Tidak ada pantang.

Sumber: www.habr.com

Tambah komen