Termux langkah demi langkah (Bagian 2)

В bagian terakhir Kami mengenal perintah dasar Termux, mengatur koneksi SSH dengan PC, mempelajari cara membuat alias, dan menginstal beberapa utilitas yang berguna. Kali ini kami harus melangkah lebih jauh, kami bersama Anda:

  • pelajari tentang Termux:API
  • Mari instal Python dan nano, dan tulis juga “Halo, dunia!” dengan Python
  • pelajari tentang skrip bash dan tulis skrip menggunakan Termux:API
  • Mari kita menulis program sederhana menggunakan skrip bash, Termux:API dan Python

Karena sekarang kita memahami apa yang dilakukan perintah yang dimasukkan, dari langkah berikutnya saya tidak akan menjelaskan setiap tindakan secara mendetail, tetapi jika ada kesulitan, saya akan menjelaskannya dengan pasti.

Saya sering menggunakan alias, jadi singkatan yang digunakan pada bagian ini ditampilkan di sini:

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

Rencananya sudah siap, kita bisa mulai! Dan tentu saja, jangan lupa tentang “Tab ajaib” (Lihat Bagian 1).

Langkah 4

Menyelami Termux: Lubang Kelinci API

API, seberapa banyak kata ini untuk hati pembuat kode telah digabungkan

Jika kami tidak menyentuh topik Termux:API, maka semua langkah kami dapat direduksi menjadi menceritakan kembali beberapa brosur seperti “Linux for Dummies,” seperti yang telah dicatat dengan tepat di komentar di bagian pertama.

Pertama kita install Termux:API dari Google Play Market (setelahnya tidak ada salahnya kita restart Termux):

Termux langkah demi langkah (Bagian 2)

Selanjutnya kita perlu menginstal paket API di konsol Termux:

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

Untuk percobaan saya menggunakan Android 5.1.1, untuk pemilik Android 7 Anda perlu 'melindungi' Termux:API dengan membuka Pengaturan> Aplikasi yang Dilindungi, jika tidak, panggilan API seperti termux-battery-status, akan membeku. (cm. wiki proyek)

Sekarang saatnya untuk melihat lebih dekat kemampuan yang diperoleh. Deskripsi Termux:API terbaru dan terinci dapat ditemukan di wiki proyek. Saya akan mencoba memilih yang paling visual dan menarik, yang memungkinkan saya menjadi lebih baik dalam bekerja mandiri di masa depan.

Beberapa contoh Termux:API

  • termux-baterai-status
    Mengembalikan status baterai
    Termux langkah demi langkah (Bagian 2)
  • kecerahan termux
    Mengatur kecerahan layar dari 0 hingga 255
    Termux langkah demi langkah (Bagian 2)
  • termux-roti panggang
    Menampilkan pemberitahuan pop-up sementara
    Termux langkah demi langkah (Bagian 2)
  • termux-obor
    Termasuk senter
    Termux langkah demi langkah (Bagian 2)
  • termux-wifi-scaninfo
    Mengembalikan informasi tentang pemindaian terakhir jaringan Wi-Fi
    Termux langkah demi langkah (Bagian 2)

Sangat mudah untuk melihat bahwa nilai yang dikembalikan adalah string, kamus, daftar kamus, pada dasarnya tipe data yang dapat digunakan dengan baik oleh Python, jadi langkah selanjutnya adalah menyiapkannya.

Langkah 5

Instal Python dan nano

Untuk menginstal Python, tulis di terminal:

updg
apt install python
apt install python2

Sekarang kita telah menginstal Python 2 dan 3.

Saat mengerjakan artikel ini, saya menemukan editor teks lain, nano, yang lebih saya sukai daripada vim, mari kita instal:

apt install nano

Lebih mudah digunakan daripada vim, dan nano memiliki antarmuka yang lebih ramah pengguna. Di perangkat Android, vim masih lebih nyaman.

HelloWorld dengan Python di Termux

Pada umumnya, hal ini dapat dilakukan tanpa hal ini, tetapi menginstal Python di Termux dan tidak menulis HelloWorld, menurut saya, adalah perilaku yang buruk.

Tujuan saya bukan untuk mengajari siapa pun Python, jadi mereka yang tidak tahu cukup menyalin kodenya (atau mulai belajar sendiri, untungnya ada cukup literatur), dan mereka yang tahu bisa membuat sesuatu sendiri. Dan secara diam-diam, saya juga akan menunjukkan cara memasukkan teks di 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 (Bagian 2)

Jika selama proses input Anda tidak melihat kesalahan dan sudah menekan Enter, maka Anda tidak akan dapat melanjutkan ke baris di atas; untuk melakukan ini, selesaikan input dengan menekan Ctrl + D (Anda bahkan dapat menyela Ctrl + Z) dan ulangi semuanya dari awal. Karena kami menggunakan '>', file akan ditulis ulang sepenuhnya. Oleh karena itu, saya tidak menyarankan penggunaan metode masukan ini kecuali Anda yakin akan langsung menulis kodenya tanpa kesalahan.

Langkah 6

Skrip pesta

Skrip Bash adalah cara terbaik untuk mengotomatiskan pekerjaan terminal Anda. Skrip adalah file dengan ekstensi .sh (ekstensi opsional) berisi sekumpulan perintah terminal, beberapa di antaranya telah kita pelajari. Di Sini daftar sebagian besar perintah, semuanya akan berfungsi, tetapi harap dicatat bahwa ini adalah daftar untuk Linux "dewasa", dan bukan untuk Termux, tetapi hanya Hal-hal hebat pada skrip bash.

Dengan menggunakan skrip, Anda dapat mengotomatiskan hampir semua tindakan monoton. Mari kita tulis skrip bash sederhana yang menampilkan nilai dari variabel yang dibuatnya, saya akan menggunakan cat lagi, Anda dapat menggunakan editor teks biasa, dan mereka yang terutama ingin melatih diri dapat 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 (Bagian 2)

Skrip Bash dengan Termux:API

Mari kita menulis sesuatu yang berbeda dari HelloWorlds yang terkenal kejam, tetapi sama tidak bergunanya. Skrip kami akan menjadi:

  1. melakukan permintaan API status baterai termux
  2. simpan data yang diterima ke file test.txt
  3. menampilkan data dari file di layar
  4. jalankan program hello-world.py yang ditulis sebelumnya
  5. Tulis data yang diterima dari program ke file test.txt
  6. menampilkan data dari file di layar
  7. mentransfer data dari file ke clipboard
  8. menampilkan isi clipboard
  9. menampilkan pesan pop-up dengan data dari clipboard

Pertama, mari buat folder untuk bekerja dan salin hello-world.py di sana sebagai test.py, buat file test.sh dan test.txt di 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 apa pun yang nyaman, tulis skrip ke file 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 di folder bashscript yang kita tulis ./test.sh Kami melihat di terminal pada perangkat Android:

Termux langkah demi langkah (Bagian 2)

Jadi kami menulis skrip bash yang direncanakan. Anda dapat mencairkannya dengan mengeluarkan informasi tentang pelaksanaan setiap tindakan ke konsol (menggunakan echo), saya serahkan ini untuk pembaca.

Langkah 7

Ayo lakukan sesuatu yang bermanfaat

Relatif berguna

Mari kita rumuskan kerangka acuannya
Setelah peluncuran, aplikasi harus menempatkan baris acak dari file di clipboard dan memberitahukannya melalui pesan pop-up.

Mari kita ambil skrip bash sebagai dasar dan ekstrak baris acak dari file menggunakan subrutin Python. Mari kita buat rencana untuk naskahnya:

  1. Jalankan subrutin
  2. Pindahkan hasil subrutin ke clipboard
  3. Menampilkan pesan pop-up

Mari tentukan nama direktori dan file aplikasi:

  • folder rndstr di direktori home
    • source - file dari mana kita akan mengambil baris
    • rndstr.py - subrutin yang mencetak baris acak dari file sumber ke konsol
    • rndstr.sh - file skrip

Kami membuat direktori aplikasi dan pindah ke dalamnya dan membuat file di sana.

Dua poin pertama dari rencana skrip dapat digabungkan dengan pipeline, sebagai hasilnya, dengan menggunakan Termux:API kita mendapatkan:

#!/bin/bash

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

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

Di file sumber Anda dapat meletakkan teks apa pun yang secara logis dibagi menjadi beberapa baris, saya memutuskan untuk meletakkan kata-kata mutiara:

Daftar file sumber

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

Yang harus kita lakukan adalah membuat subrutin yang mengekstrak string acak dari file sumber.
Mari kita jelaskan algoritma subrutinnya:

  1. Buka file sumber
  2. Menghitung jumlah baris dalam file yang terbuka
  3. Tutup file (tidak ada gunanya membiarkannya terbuka terlalu lama)
  4. Hasilkan bilangan bulat acak dalam jumlah baris dalam file sumber
  5. Buka file sumber
  6. Kami menampilkan garis di bawah nomor nomor yang dihasilkan
  7. Menutup berkas

Mari kita terapkan algoritma dengan 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  #  закрываем файл

Setelah file dibuat dan ditulis, Anda perlu memberikan hak eksekusi pada file tersebut rndstr.sh, dan buat alias untuk peluncuran cepat.

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

Sekarang dengan masuk ke terminal rnst kita akan menerima kata-kata mutiara acak di clipboard, yang, misalnya, dapat digunakan dalam korespondensi.

Jadi kami menulis setidaknya sesuatu yang bermanfaat. Relatif berguna.

Ps

Pada langkah terakhir, saya sengaja tidak memberikan screenshot dan tidak menganalisa secara detail beberapa tindakan, hanya menjelaskan isi file saja agar pembaca mempunyai kesempatan untuk mengerjakannya sendiri.

Saya pikir ada baiknya menyelesaikan “Termux langkah demi langkah” ini. Tentu saja, ini hanyalah langkah pertama, tetapi sekarang Anda dapat melanjutkannya sendiri.

Awalnya saya berencana untuk menunjukkan di seri ini cara menggunakan nmap, sqlmap, tetapi tanpa saya sudah banyak artikel tentang topik ini. Jika Anda ingin saya melanjutkan seri “Termux langkah demi langkah”, maka ada survei di bawah dan di komentar Anda dapat menyarankan apa lagi yang ingin Anda tulis.

Hanya pengguna terdaftar yang dapat berpartisipasi dalam survei. Masuk, silakan.

Lanjutkan “Termux langkah demi langkah”?

  • Ya

  • Tidak

2 pengguna memilih. Tidak ada yang abstain.

Sumber: www.habr.com

Tambah komentar