Termux Schritt für Schritt (Teil 2)

В letzter Teil Wir haben uns mit den grundlegenden Befehlen von Termux vertraut gemacht, eine SSH-Verbindung zu einem PC eingerichtet, gelernt, wie man Alias ​​erstellt, und mehrere nützliche Dienstprogramme installiert. Dieses Mal müssen wir noch einen Schritt weiter gehen, wir sind an Ihrer Seite:

  • Erfahren Sie mehr über Termux:API
  • Installieren Sie Python und Nano und schreiben Sie „Hallo Welt!“ in Python
  • Erfahren Sie mehr über Bash-Skripte und schreiben Sie ein Skript mit Termux:API
  • Mit einem Bash-Skript, Termux:API und Python werden wir ein einfaches Programm schreiben

Da wir jetzt verstehen, was die Eingabebefehle bewirken, werde ich ab dem nächsten Schritt nicht jede Aktion so detailliert beschreiben, aber wo es Schwierigkeiten geben kann, werde ich auf jeden Fall erklären.

Ich verwende häufig Aliase, daher werden die in diesem Teil verwendeten Abkürzungen hier angezeigt:

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

Der Plan ist fertig, es kann losgehen! Und vergessen Sie natürlich nicht den „magischen Tab“ (Siehe Teil 1).

Schritt 4

Abtauchen im Termux:API Rabbit Hole

API, wie viel ist in diesem Wort für das Herz des Programmierers verschmolzen

Wenn wir das Thema Termux: API nicht ansprechen, könnten alle unsere Schritte auf eine einfache Nacherzählung einer Broschüre wie „Linux für Dummies“ reduziert werden, wie in den Kommentaren zum ersten Teil zu Recht erwähnt wurde.

Installieren Sie zunächst Termux:API aus dem Google Play Market (ein anschließender Neustart von Termux kann nicht schaden):

Termux Schritt für Schritt (Teil 2)

Als nächstes müssen wir das API-Paket in der Termux-Konsole installieren:

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

Zum Experimentieren verwende ich Android 5.1.1, für Android 7-Besitzer müssen die Termux: API „geschützt“ werden, indem sie zu „Einstellungen“ > „Geschützte Apps“ gehen, andernfalls werden API-Aufrufe wie folgt ausgeführt termux-battery-status, wird hängen. (Cm. Projekt-Wiki)

Nun lohnt es sich, einen genaueren Blick auf die erworbenen Chancen zu werfen. Die aktuellste und ausführlichste Beschreibung von Termux:API finden Sie unter Projekt-Wiki. Ich werde versuchen, das Anschaulichste und Interessanteste auszuwählen, das es mir ermöglicht, in Zukunft meine Hand für unabhängige Arbeit zu füllen.

Einige Termux:API-Beispiele

  • Termux-Batteriestatus
    Gibt den Zustand der Batterie zurück
    Termux Schritt für Schritt (Teil 2)
  • Termux-Helligkeit
    Stellt die Helligkeit des Bildschirms von 0 bis 255 ein
    Termux Schritt für Schritt (Teil 2)
  • Termux-Toast
    Zeigt eine temporäre Toastbenachrichtigung an
    Termux Schritt für Schritt (Teil 2)
  • Termux-Taschenlampe
    Inklusive Taschenlampe
    Termux Schritt für Schritt (Teil 2)
  • termux-wifi-scaninfo
    Gibt Informationen über den letzten Scan von Wi-Fi-Netzwerken zurück
    Termux Schritt für Schritt (Teil 2)

Es ist leicht zu erkennen, dass es sich bei den Rückgabewerten um Zeichenfolgen, Wörterbücher, Wörterbuchlisten und im Allgemeinen um Datentypen handelt, mit denen Python hervorragend funktioniert. Der nächste Schritt besteht also darin, es einzurichten.

Schritt 5

Installieren Sie Python und Nano

Um Python zu installieren, schreiben Sie in das Terminal:

updg
apt install python
apt install python2

Wir haben jetzt 2 und 3 Python installiert.

Während ich an dem Artikel arbeitete, entdeckte ich einen anderen Nano-Texteditor, der mir besser gefiel als vim. Installieren wir ihn:

apt install nano

Es ist einfacher zu verwenden als vim und Nano verfügt über eine benutzerfreundlichere Oberfläche. Auf einem Android-Gerät ist vim noch bequemer.

HelloWorld in Python bei Termux

Im Großen und Ganzen könnte man auf dieses Element verzichten, aber Python in Termux zu integrieren und HelloWorld nicht zu schreiben, ist meiner Meinung nach schlechtes Benehmen.

Ich habe mir nicht zum Ziel gesetzt, irgendjemandem Python beizubringen, also können diejenigen, die es nicht wissen, einfach den Code kopieren (oder selbst anfangen zu lernen, da es genügend Literatur gibt), und diejenigen, die es wissen, können selbst etwas machen. Und ich werde „unter dem Deckmantel“ noch eine Möglichkeit zeigen, Text im Terminal ohne Editor einzugeben.

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 Schritt für Schritt (Teil 2)

Wenn Sie während des Eingabevorgangs keinen Fehler bemerkt haben und bereits die Eingabetaste gedrückt haben, können Sie nicht in die darüber liegende Zeile gelangen. Beenden Sie dazu die Eingabe mit Strg + D (normalerweise können Sie die Eingabe mit Strg + D unterbrechen). Z) und wiederholen Sie alles von Anfang an. Da wir „>“ verwendet haben, wird die Datei vollständig überschrieben. Aus diesem Grund empfehle ich nicht, diese Eingabemethode zu verwenden, es sei denn, Sie sind sicher, dass Sie den Code sofort fehlerfrei schreiben werden.

Schritt 6

Bash-Skripte

Bash-Skripte sind eine großartige Möglichkeit, Ihre Terminalarbeit zu automatisieren. Das Skript ist eine Datei mit der Erweiterung .sh (die Erweiterung ist optional), die eine Reihe von Terminalbefehlen enthält, von denen wir einige bereits untersucht haben. Hier Liste der meisten Befehle, alles sollte funktionieren, aber beachten Sie, dass dies eine Liste für „erwachsenes“ Linux ist, nicht Termux, sondern nur Tolles Material zu Bash-Skripten.

Mit Hilfe von Skripten können Sie nahezu alle eintönigen Aktionen automatisieren. Schreiben wir das einfachste Bash-Skript, das den Wert der von ihm erstellten Variablen anzeigt. Ich verwende wieder cat, Sie können einen normalen Texteditor verwenden, und diejenigen, die sich besonders trainieren möchten, können Echo verwenden.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux Schritt für Schritt (Teil 2)

Bash-Skript mit Termux:API

Schreiben wir etwas anderes als die berüchtigten HelloWorlds, aber genauso nutzlos. Unser Skript wird sein:

  1. Führen Sie die API-Anfrage termux-battery-status aus
  2. Speichern Sie die empfangenen Daten in der Datei test.txt
  3. Daten aus einer Datei auf den Bildschirm drucken
  4. Führen Sie das zuvor geschriebene Programm hello-world.py aus
  5. Schreiben Sie die vom Programm empfangenen Daten in die Datei test.txt
  6. Daten aus einer Datei auf den Bildschirm drucken
  7. Daten aus der Datei in die Zwischenablage verschieben
  8. den Inhalt der Zwischenablage anzeigen
  9. Zeigt eine Popup-Meldung mit Daten aus der Zwischenablage an

Erstellen Sie zunächst einen Ordner für die Arbeit und kopieren Sie hello-world.py dort als test.py. Erstellen Sie die Dateien test.sh und test.txt in diesem Ordner:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Schreiben Sie nun auf bequeme Weise das Skript in die Datei 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

Jetzt, da wir uns im Bashscript-Ordner befinden, schreiben wir ./test.sh Wir beobachten im Terminal auf dem Android-Gerät:

Termux Schritt für Schritt (Teil 2)

Also haben wir das geplante Bash-Skript geschrieben. Sie können es mit der Ausgabe von Informationen über die Ausführung jeder Aktion an die Konsole verdünnen (mithilfe von Echo). Ich überlasse dies den Lesern.

Schritt 7

Lasst uns etwas Nützliches tun

Relativ nützlich

Lassen Sie uns die Leistungsbeschreibung formulieren
Nach dem Start sollte die Anwendung eine zufällige Zeile aus der Datei in der Zwischenablage ablegen und mit einer Popup-Meldung darüber informieren.

Wir nehmen ein Bash-Skript als Grundlage und extrahieren mithilfe einer Python-Subroutine eine zufällige Zeile aus einer Datei. Lassen Sie uns einen Skript-Arbeitsplan erstellen:

  1. Unterprogramm ausführen
  2. Übertragen Sie das Ergebnis des Unterprogramms in die Zwischenablage
  3. Popup-Meldung anzeigen

Definieren wir die Namen des Verzeichnisses und der Anwendungsdateien:

  • rndstr-Ordner im Home-Verzeichnis
    • Quelle – die Datei, aus der wir Zeilen entnehmen
    • rndstr.py – eine Unterroutine, die eine zufällige Zeile aus der Quelldatei auf der Konsole anzeigt
    • rndstr.sh – Skriptdatei

Erstellen Sie ein Anwendungsverzeichnis, wechseln Sie dorthin und erstellen Sie dort Dateien.

Die ersten beiden Punkte des Skriptplans können durch eine Pipeline kombiniert werden. Als Ergebnis erhalten wir mit der Termux: API:

#!/bin/bash

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

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

In die Quelldatei können Sie jeden Text einfügen, der logisch in Zeilen unterteilt ist. Ich habe mich für Aphorismen entschieden:

Auflistung der Quelldateien

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

Wir müssen lediglich eine Unterroutine erstellen, die eine zufällige Zeichenfolge aus der Quelldatei extrahiert.
Schreiben wir den Algorithmus der Unterroutine:

  1. Open-Source-Datei
  2. Zählen der Anzahl der Zeilen in einer geöffneten Datei
  3. Schließen Sie die Datei (es gibt nichts, was sie länger geöffnet halten könnte)
  4. Wir generieren eine zufällige Ganzzahl innerhalb der Anzahl der Zeilen der Quelldatei
  5. Open-Source-Datei
  6. Wir geben eine Zeile unter der Nummer der generierten Nummer aus
  7. Schließen der Datei

Wir implementieren den Algorithmus in Python (ich schreibe unter 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  #  закрываем файл

Nachdem die Dateien erstellt und geschrieben wurden, müssen Sie der Datei Ausführungsberechtigungen erteilen rndstr.shund erstellen Sie einen Alias ​​für den Schnellstart.

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

Geben Sie jetzt Terminal ein rnst Wir erhalten einen zufälligen Aphorismus in der Zwischenablage, der beispielsweise in der Korrespondenz verwendet werden kann.

Hier haben wir zumindest etwas Nützliches geschrieben. Relativ nützlich.

Ps

Im letzten Schritt habe ich bewusst auf Screenshots verzichtet und einige Aktionen nicht im Detail analysiert, sondern nur den Inhalt der Dateien geschrieben, damit der Leser die Möglichkeit hat, selbstständig zu arbeiten.

Ich denke, dass es sich lohnt, dieses „Termux Schritt für Schritt“ abzuschließen. Natürlich sind dies nur die allerersten Schritte, aber jetzt können Sie selbst vorankommen.

Ursprünglich hatte ich vor, in diesem Zyklus zu zeigen, wie man nmap und sqlmap verwendet, aber ohne mich gibt es bereits viele Artikel zu diesem Thema. Wenn Sie möchten, dass ich den Zyklus „Termux Schritt für Schritt“ fortsetze, finden Sie unten eine Umfrage und in den Kommentaren können Sie vorschlagen, worüber Sie sonst noch schreiben sollten.

An der Umfrage können nur registrierte Benutzer teilnehmen. Einloggenbitte.

„Termux Schritt für Schritt“ fortsetzen?

  • Ja

  • Nein

2 Benutzer haben abgestimmt. Es gibt keine Enthaltungen.

Source: habr.com

Kommentar hinzufügen