adım adım Termux (Bölüm 2)

В son bölüm Termux'un temel komutlarıyla tanıştık, bir PC'ye SSH bağlantısı kurduk, takma ad oluşturmayı öğrendik ve birkaç yararlı yardımcı program yükledik. Bu sefer daha da ileri gitmemiz gerekiyor, yanınızdayız:

  • Termux:API hakkında bilgi edinin
  • Python ve nano'yu kurun ve "Merhaba dünya!" yazın. Python'da
  • bash betikleri hakkında bilgi edinin ve Termux:API kullanarak bir betik yazın
  • bir bash betiği, Termux:API ve Python kullanarak basit bir program yazacağız

Giriş komutlarının ne işe yaradığını artık anladığımız için, bir sonraki adımdan itibaren her eylemi bu kadar ayrıntılı olarak açıklamayacağım, ancak nerede zorluklar olabileceğini kesinlikle açıklayacağım.

Takma adları çok kullanıyorum, bu yüzden bu bölümde kullanılan kısaltmalar burada gösteriliyor:

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

Plan hazır, başlayabilirsiniz! Ve tabii ki "sihirli Sekmeyi" de unutmayın (Bölüm 1'e bakın).

4 Adım

Termux'e Dalmak: API Tavşan Deliği

API, kodlayıcının kalbi için bu kelimede ne kadar birleşti

Termux: API konusuna değinmezsek, tüm adımlarımız, ilk bölümdeki yorumlarda haklı olarak belirtildiği gibi, "Aptallar için Linux" gibi bazı broşürlerin basit bir şekilde yeniden anlatılmasına indirgenebilir.

Öncelikle, Google Play Market'ten Termux:API'yi yükleyin (daha sonra Termux'u yeniden başlatmak zarar vermez):

adım adım Termux (Bölüm 2)

Ardından, API paketini Termux konsoluna yüklememiz gerekiyor:

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

Deneme için Android 5.1.1 kullanıyorum, Android 7 için sahipleri 'Ayarlar' > 'Korumalı Uygulamalar'a giderek Termux: API'yi "korumalıdır", aksi takdirde API çağrıları şöyle olur termux-battery-status, asılacak. (Santimetre. proje wikisi)

Şimdi elde edilen fırsatlara daha yakından bakmaya değer. Termux:API'nin en son ve en ayrıntılı açıklaması şu adreste bulunabilir: proje wikisi. Gelecekte bağımsız çalışma için elimi doldurmamı sağlayacak en görsel ve ilginç olanı seçmeye çalışacağım.

Bazı Termux:API örnekleri

  • termux-pil-durumu
    Pilin durumunu döndürür
    adım adım Termux (Bölüm 2)
  • termux-parlaklık
    Ekranın parlaklığını 0 ila 255 arasında ayarlar
    adım adım Termux (Bölüm 2)
  • termux-tost
    Geçici bir tost bildirimi gösterir
    adım adım Termux (Bölüm 2)
  • termux-meşale
    El feneri içerir
    adım adım Termux (Bölüm 2)
  • termux-wifi-tarama bilgisi
    Wi-Fi ağlarının son taraması hakkında bilgi verir
    adım adım Termux (Bölüm 2)

Dönen değerlerin dizeler, sözlükler, sözlük listeleri, genel olarak Python'un harika çalıştığı veri türleri olduğunu görmek kolaydır, bu nedenle bir sonraki adım onu ​​kurmaktır.

5 Adım

Python ve nano'yu kurun

Python'u kurmak için terminale şunu yazın:

updg
apt install python
apt install python2

Artık 2 ve 3 Python kurulu.

Makale üzerinde çalışırken vim'den daha çok sevdiğim başka bir nano metin editörü keşfettim, onu yükleyelim:

apt install nano

Kullanımı vim'den daha kolaydır ve nano daha kullanıcı dostu bir arayüze sahiptir. Bir Android cihazda vim hala daha uygundur.

Termux'ta Python'da HelloWorld

Genel olarak, bu öğe olmadan yapmak mümkündü, ancak Python'u Termux'a koymak ve HelloWorld yazmamak bence kötü bir davranış.

Kendime Python'u kimseye öğretme hedefi koymuyorum, bu yüzden bilmeyenler kodu kopyalayabilir (veya yeterli literatür olduğu için kendi başlarına öğrenmeye başlayabilir) ve bilenler kendileri bir şeyler yapabilirler. Ve "kısve altında" yine de terminale editör olmadan metin girmenin bir yolunu göstereceğim.

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)

adım adım Termux (Bölüm 2)

Giriş işlemi sırasında bir hata fark etmediyseniz ve zaten Enter tuşuna bastıysanız, yukarıdaki satıra gidemezsiniz, bunu yapmak için Ctrl + D tuşlarına basarak girişi sonlandırın (genellikle Ctrl + Z) ve her şeyi baştan tekrarlayın. '>' kullandığımız için dosyanın tamamen üzerine yazılacaktır. Bu nedenle kodu hemen hatasız yazacağınızdan emin olmadığınız sürece bu giriş yöntemini kullanmanızı önermem.

6 Adım

Bash betikleri

Bash betikleri, terminal çalışmanızı otomatikleştirmenin harika bir yoludur. Komut dosyası, bazılarını daha önce incelemiş olduğumuz bir dizi uçbirim komutu içeren .sh uzantılı (uzantı isteğe bağlıdır) bir dosyadır. Burada çoğu komutun listesi, her şey çalışmalıdır, ancak bunun Termux değil, yalnızca "yetişkin" Linux için bir liste olduğunu unutmayın. bash betiklerinde harika malzeme.

Komut dosyalarının yardımıyla neredeyse tüm monoton eylemleri otomatikleştirebilirsiniz. Oluşturduğu değişkenden değeri gösteren en basit bash betiğini yazalım, ben yine cat kullanacağım, siz normal bir text editör kullanabilirsiniz, özellikle kendini eğitmek isteyenler echo kullanabilir.

cat >test.sh

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

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

# Ctrl + D

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

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

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

adım adım Termux (Bölüm 2)

Termux:API ile Bash betiği

Kötü şöhretli HelloWorlds'ten farklı ama bir o kadar da işe yaramaz bir şeyler yazalım. Senaryomuz şöyle olacak:

  1. termux-battery-status API isteğini yürütün
  2. alınan verileri test.txt dosyasına kaydedin
  3. bir dosyadan ekrana veri yazdırma
  4. önceden yazılmış hello-world.py programını yürütün
  5. programdan alınan verileri test.txt dosyasına yazın
  6. bir dosyadan ekrana veri yazdırma
  7. verileri dosyadan panoya taşıma
  8. pano içeriğini göster
  9. panodan veri içeren bir açılır mesaj görüntüle

İlk olarak, çalışmak için bir klasör oluşturun ve hello-world.py'yi buraya test.py olarak kopyalayın, bu klasörde test.sh ve test.txt dosyaları oluşturun:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Şimdi, herhangi bir uygun şekilde, betiği test.sh dosyasına yazın:

#!/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

Şimdi, bashscript klasöründe olarak yazıyoruz ./test.sh Android cihazındaki terminalde şunu gözlemliyoruz:

adım adım Termux (Bölüm 2)

Böylece planlanan bash betiğini yazdık. Her eylemin yürütülmesine ilişkin bilgi konsoluna çıktı ile seyreltebilirsiniz (yankı kullanarak), bunu okuyucular için bırakacağım.

7 Adım

faydalı bir şeyler yapalım

Nispeten yararlı

Referans şartlarını formüle edelim
Başlattıktan sonra, uygulama panodaki dosyadan rastgele bir satır yerleştirmeli ve bunu bir açılır mesajla bildirmelidir.

Temel olarak bir bash betiği alacağız, bir Python alt yordamını kullanarak bir dosyadan rastgele bir satır çıkaracağız. Bir senaryo çalışma planı yapalım:

  1. Alt programı çalıştır
  2. Alt programın sonucunu panoya aktar
  3. Açılır mesajı göster

Dizin ve uygulama dosyalarının isimlerini tanımlayalım:

  • ana dizindeki rndstr klasörü
    • kaynak - satırları alacağımız dosya
    • rndstr.py - kaynak dosyadan konsola rastgele bir satır görüntüleyen bir alt program
    • rndstr.sh - betik dosyası

Bir uygulama dizini oluşturun ve ona taşıyın ve orada dosyalar oluşturun.

Komut dosyası planının ilk iki noktası, sonuç olarak Termux: API kullanılarak bir ardışık düzen ile birleştirilebilir:

#!/bin/bash

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

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

Kaynak dosyaya mantıksal olarak satırlara bölünmüş herhangi bir metni koyabilirsiniz, ben aforizmalar koymaya karar verdim:

Kaynak dosya listesi

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

Sadece kaynak dosyadan rastgele bir dizi çıkaran bir alt program oluşturmamız gerekiyor.
Alt programın algoritmasını yazalım:

  1. Açık kaynak dosyası
  2. Açık bir dosyadaki satır sayısını sayma
  3. Dosyayı kapatın (fazladan süre için açık tutacak hiçbir şey yoktur)
  4. Kaynak dosyanın satır sayısı içinde rastgele bir tamsayı üretiyoruz.
  5. Açık kaynak dosyası
  6. Üretilen sayının altında bir satır çıktı alıyoruz.
  7. dosyayı kapatma

Algoritmayı Python'da uyguluyoruz (Python 3.7 altında yazıyorum):

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

Dosyalar oluşturulduktan ve yazıldıktan sonra, dosya yürütme izinlerini vermeniz gerekir. rndstr.shve hızlı başlatma için bir takma ad oluşturun.

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

Şimdi terminalde yazarak rnst panoda, örneğin yazışmalarda kullanılabilecek rastgele bir aforizma alacağız.

Burada en azından faydalı bir şeyler yazdık. Nispeten kullanışlı.

Ps

Son adımda, kasıtlı olarak ekran görüntüleri sağlamadım ve bazı eylemleri ayrıntılı olarak analiz etmedim, yalnızca dosyaların içeriğini yazdım, böylece okuyucular kendi başlarına çalışma fırsatı bulsunlar.

Bu "Termux adım adım" üzerine bitirmeye değer olduğunu düşünüyorum. Tabii ki, bunlar sadece ilk adımlar, ancak artık kendiniz ilerleyebilirsiniz.

Başlangıçta, bu döngüde nmap, sqlmap'in nasıl kullanılacağını göstermeyi planladım, ancak bensiz bu konuda zaten birçok makale var. “Termux adım adım” döngüsüne devam etmemi istiyorsanız, aşağıda bir anket var ve yorumlarda başka ne yazacağımı önerebilirsiniz.

Ankete sadece kayıtlı kullanıcılar katılabilir. Giriş yapLütfen.

"Adım adım Termux"a devam edilsin mi?

  • Evet

  • Hayır

2 kullanıcı oy kullandı. Çekimserlik yok.

Kaynak: habr.com

Yorum ekle