Im Wir haben uns mit den grundlegenden Befehlen von Termux vertraut gemacht, eine SSH-Verbindung zu einem PC eingerichtet, gelernt, Aliase zu erstellen und einige nützliche Tools installiert. Diesmal werden wir noch einen Schritt weiter gehen, und zwar werden wir:
- über Termux:API lernen
- Python und nano installieren und unser erstes Programm "Hello, World!" in Python schreiben
- über Bash-Skripte lernen und ein Skript mit Termux:API erstellen
- ein einfaches Programm schreiben, indem wir ein Bash-Skript, Termux:API und Python verwenden
Da wir jetzt verstehen, was die eingegebenen Befehle bewirken, werde ich ab dem nächsten Schritt nicht mehr so detailliert auf jede Aktion eingehen, aber wo es Schwierigkeiten geben könnte, werde ich unbedingt Erklärungen liefern.
Ich benutze häufig Aliase, deshalb sind die in diesem Abschnitt verwendeten Abkürzungen hier aufgeführt:
alias updg='apt update && apt upgrade'
alias py='python'Der Plan steht, wir können anfangen! Und vergiss nicht den "magischen Tab" ().
Schritt 4
Tauchen wir in den Kaninchenbau von Termux:API ein
API, was für ein Wort für das Herz eines Entwicklers
Wenn wir das Thema Termux:API nicht ansprechen, könnten wir all unsere Schritte auf eine einfache Zusammenfassung einer Broschüre wie "Linux für Dummies" reduzieren, wie es in den Kommentaren zum ersten Teil treffend angemerkt wurde.
Zunächst installieren wir Termux:API aus dem Google Play Store (nach der Installation empfiehlt es sich, Termux neu zu starten):

Dann müssen wir das API-Paket in der Termux-Konsole installieren:
updg # Vergiss die Aliase nicht
apt install termux-apiFür Experimente benutze ich Android 5.1.1. Für Besitzer von Android 7 muss Termux:API "geschützt" werden, indem man zu 'Einstellungen' > 'Geschützte Apps' geht, andernfalls könnten API-Aufrufe wie termux-battery-status, hängen bleiben. (Siehe )
Jetzt sollten wir uns näher mit den neu erworbenen Möglichkeiten beschäftigen. Die aktuellste und detaillierteste Beschreibung von Termux:API findest du auf . Ich werde versuchen, die anschaulichsten und interessantesten Aspekte auszuwählen, um dir die Selbstständigkeit in der weiteren Arbeit zu erleichtern.
Einige Beispiele für Termux:API
- termux-battery-status
Gibt den Status des Akkus zurück

- termux-brightness
Stellt die Bildschirmhelligkeit von 0 bis 255 ein

- termux-toast
Zeigt eine temporäre Popup-Benachrichtigung an

- termux-torch
Schaltet die Taschenlampe ein

- termux-wifi-scaninfo
Gibt Informationen über den letzten WLAN-Scan zurück

Es ist nicht schwer zu erkennen, dass die zurückgegebenen Werte Strings, Dictionaries, Listen von Dictionaries und allgemein Datentypen sind, mit denen Python hervorragend arbeiten kann, weshalb wir ihn nun installieren werden.
Schritt 5
Wir installieren Python und nano
Um Python zu installieren, geben Sie im Terminal ein:
updg
apt install python
apt install python2Jetzt haben wir Python 2 und 3 installiert.
Während meiner Arbeit an diesem Artikel habe ich einen anderen Texteditor namens nano entdeckt, der mir besser gefällt als vim. Lassen Sie uns ihn installieren:
apt install nanoEs ist einfacher zu bedienen als vim und nano hat eine benutzerfreundlichere Oberfläche. Auf Android-Geräten ist vim jedoch bequemer.
HelloWorld in Python unter Termux
Im Grunde genommen hätte man diesen Punkt auch weglassen können, aber es ist meiner Meinung nach unhöflich, Python in Termux zu installieren und kein HelloWorld zu schreiben.
Ich habe nicht vor, jemanden in Python zu unterrichten, sodass Unwissende einfach den Code kopieren können (oder selbst zu lernen, da es genügend Literatur gibt), während Wissende selbst etwas erstellen können. Und ich werde "nebenbei" auch zeigen, wie man Text im Terminal ohne Editor eingibt.
cat >hello-world.py
# Wenn Sie die Quelle nicht angeben (ich erinnere daran, dass cat 1.txt > 2.txt)
# übernimmt cat die Daten aus dem Standard-Eingabestrom,
# einfacher gesagt, das, was von der Tastatur eingegeben wird.
str = 'Hello, world!' # weise der Variable str den Wert "Hello, world!" zu
print (str) # gebe den Wert der Variablen str auf dem Bildschirm aus
# Ctrl + D zum Beenden der Eingabe und zum Speichern der Datei (hello-world.py)
py hello-world.py # führe die Datei aus (py ist ein Alias für python)
Wenn Sie während der Eingabe einen Fehler nicht bemerkt haben und bereits Enter gedrückt haben, können Sie nicht zur vorherigen Zeile zurückkehren. Beenden Sie die Eingabe, indem Sie Ctrl + D drücken (Sie können auch einfach Ctrl + Z drücken) und wiederholen Sie alles von Anfang an. Da wir '>' verwendet haben, wird die Datei vollständig überschrieben. Aus diesem Grund empfehle ich, diese Eingabemethode nicht zu verwenden, wenn Sie sich nicht sicher sind, dass Sie den Code sofort ohne Fehler schreiben können.
Schritt 6
Bash-Skripte
Bash-Skripte sind eine hervorragende Möglichkeit, die Arbeit im Terminal zu automatisieren. Ein Skript ist eine Datei mit der Endung .sh (die Endung ist nicht zwingend erforderlich), die eine Reihe von Terminalbefehlen enthält, von denen wir einige bereits gelernt haben. Hier ist , es sollte alles funktionieren, aber beachten Sie, dass dies eine Liste für „erwachsene“ Linux-Systeme ist, nicht für Termux, und hier ist einfach .
Mit Skripten können praktisch alle monotone Aufgaben automatisiert werden. Lassen Sie uns ein einfaches Bash-Skript schreiben, das den Wert einer von ihm erstellten Variablen ausgibt. Ich werde erneut cat verwenden; Sie können jedoch einen normalen Texteditor nutzen, und besonders Motivierte können echo verwenden.
cat >test.sh
export str="Hallo, Habr!"
# export erstellt die Variable str
# und weist ihr den Wert "Hallo, Habr!" zu
# Setzen Sie keine Leerzeichen vor und nach dem '='
echo $str # Um auf Variablen zuzugreifen, setzen Sie '$' davor
# Ctrl + D
# ./test.sh zum Ausführen des Skripts, aber wenn Sie dies jetzt tun, wird ein Fehler auftreten
# Um den Fehler zu beheben, muss die Datei test.sh ausführbar gemacht werden
chmod +x test.sh
# chmod ändert die Zugriffsrechte (+ hinzufügen / - entfernen)
# '+x' bedeutet, dass wir die Datei ausführbar machen
./test.sh # Jetzt führen wir unser Skript aus
Bash-Skript mit Termux:API
Lassen Sie uns etwas schreiben, das sich von den berühmten HelloWorlds unterscheidet, aber ebenso nutzlos ist. Unser Skript wird:
- eine API-Anfrage für termux-battery-status ausführen
- die erhaltenen Daten in die Datei test.txt speichern
- die Daten aus der Datei auf dem Bildschirm ausgeben
- das zuvor geschriebene Programm hello-world.py ausführen
- die von dem Programm erhaltenen Daten in die Datei test.txt schreiben
- die Daten aus der Datei auf dem Bildschirm ausgeben
- die Daten aus der Datei in die Zwischenablage kopieren
- den Inhalt der Zwischenablage auf dem Bildschirm ausgeben
- eine Popup-Nachricht mit den Daten aus der Zwischenablage ausgeben
Zuerst erstellen wir einen Arbeitsordner und kopieren hello-world.py als test.py hinein, wir erstellen in diesem Ordner die Dateien test.sh und test.txt:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch erstellt Dateien
chmod +x test.shJetzt schreiben wir das Skript auf jede beliebige Weise 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 # пункт 9Jetzt, während wir im Ordner bashscript sind, schreiben wir ./test.sh beobachten wir das im Terminal auf dem Android-Gerät:

So, wir haben das geplante Bash-Skript geschrieben. Wir könnten die Ausgabe mit Informationen über die Ausführung jeder Aktion (mithilfe von echo) auflockern, das überlasse ich den Lesern.
Schritt 7
Lassen Sie uns etwas Nützliches tun
Relativ nützlich
Lassen Sie uns die technische Aufgabe formulieren
Die Anwendung soll nach dem Start eine zufällige Zeichenfolge aus der Datei in die Zwischenablage kopieren und mit einer Popup-Nachricht darüber informieren.
Wir werden ein Bash-Skript als Grundlage nehmen, die zufällige Zeichenfolge aus der Datei werden wir mit einer Python-Unterprogramm abrufen. Lassen Sie uns einen Arbeitsplan für das Skript erstellen:
- Das Unterprogramm starten
- Das Ergebnis der Unterroutine in die Zwischenablage übertragen
- Eine Meldung anzeigen
Lass uns auf die Namen des Verzeichnisses und der Anwendungsdateien festlegen:
- Ordner rndstr im Home-Verzeichnis
- source – die Datei, aus der wir die Zeilen entnehmen werden
- rndstr.py – Unterprogramm, das eine zufällige Zeile aus der Datei source in die Konsole ausgibt
- rndstr.sh – Skriptdatei
Erstelle das Anwendungsverzeichnis und wechsle hinein, um dort die Dateien zu erstellen.
Die ersten zwei Punkte des Skriptplans können mit einer Pipeline kombiniert werden; letztendlich erhalten wir unter Verwendung von Termux:API:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"In die Datei source kannst du beliebigen text einfügen, der logisch in Zeilen unterteilt ist; ich habe mich entschieden, Zitate aufzunehmen:
Listing der Datei source
Ehrlichkeit ist nicht Wahrheit. L. Lavelle
Ertrage und halte dich zurück. Epiktet
Edel ist nur das, was selbstlos ist. J. La Bruyère
Sei weise mutig. B. Gracián
Güte ist mehr wert als Schönheit. G. Heine
Für große Taten ist unermüdliche Beständigkeit erforderlich. F. Voltaire
Wenn du möchtest, dass man dir immer gefallen kann, diene dir selbst. B. Franklin
Übermäßige Bescheidenheit ist nichts anderes als versteckte Arroganz. A. Chenier
Sehr klugen Menschen wird nicht vertraut, wenn man ihr Zögern sieht. F. Nietzsche
Armut zeigt einen Mangel an Mitteln, nicht an Adel. D. Boccaccio
Man muss sich davor hüten, Bescheidenheit bis zur Erniedrigung zu treiben. A. Bakihanov
Wer auf viel verzichtet, kann sich viel erlauben. J. Chardon
Wenn man für eine edle Tat bezahlt wird, wird sie uns genommen. N. Chamfort
Es ist nicht schlimm, nichts zu erhalten, aber es ist ärgerlich, das Erhaltene zu verlieren. Claudius Aelianus
Es ist leichter, geduldig das zu ertragen, was wir nicht ändern können. Horaz
Man wird müde vom Warten, aber wie viel schlimmer wäre es, wenn es nichts mehr zu warten gäbe. B. Shaw
Alles kommt pünktlich, wenn die Menschen warten können. F. Rabelais
Mit unserer Geduld können wir mehr erreichen als mit Stärke. E. Burke
Man muss in der Lage sein, das zu tragen, was man nicht vermeiden kann. M. Montaigne
Wer im Geschäft mutig ist, fürchtet sich nicht vor Worten. Sophokles
Ich kämpfe nicht gerne, ich liebe es zu siegen. B. Shaw
Ein bedrängter und an die Wand gedrängter Kater wird zum Tiger. M. Cervantes
Ein würdiger Mensch geht nicht in den Fußstapfen anderer. Konfuzius
Ein großer Geist wird seine Kraft nicht nur im Denken, sondern auch im Leben zeigen. R. Emerson
Ruhm ist eine unvorteilhafte Ware. Er kostet viel und bleibt schlecht erhalten. O. Balzac
Zügelung und Angemessenheit in Gesprächen sind mehr wert als Redefertigkeit. F. Bacon
Wer nicht schweigen kann, kann auch nicht sprechen. Seneca der Jüngere
Gute Manieren bestehen aus kleinen Opfern. F. Chesterfield
Ein guter Mensch ist nicht der, der Gutes tun kann, sondern der, der Böses tun kann und es nicht tut. W. Kluchevsky
Fällen Sie keine unumstößlichen Urteile! Augustinus
Nichts im Übermaß! SolonWir müssen ein Unterprogramm erstellen, das eine zufällige Zeile aus der Datei source extrahiert.
Lassen Sie uns den Algorithmus des Unterprogramms aufschreiben:
- Wir öffnen die Datei source
- Wir zählen die Anzahl der Zeilen in der geöffneten Datei
- Wir schließen die Datei (es gibt keinen Grund, sie unnötig offen zu halten)
- Wir generieren eine zufällige ganze Zahl im Bereich der Zeilenanzahl der Quelldatei
- Wir öffnen die Datei source
- Wir geben die Zeile mit der Nummer der generierten Zahl aus
- Wir schließen die Datei
Wir implementieren den Algorithmus in Python (ich schreibe für Python 3.7):
import random # importieren zur Erzeugung zufälliger Zahlen
import os # zum Abrufen des Pfades
path = os.path.abspath(__file__) # direkten Pfad zur Datei rndstr.py erhalten
path = os.path.dirname(path) # in den Verzeichnispfad umwandeln
path = path + '\/source' # in den Pfad zur Datei source umwandeln
f = open(path) # Datei öffnen
i = 0 # Zähler zurücksetzen
for str in f: i+=1 # Zeilen der Datei zählen
f.close # Datei schließen
j = int(round(i * random.random())) # eine ganze Zufallszahl von 0 bis i generieren
f = open(path) # Datei öffnen
i = 0 # Zähler zurücksetzen
for str in f: # Zeilen aus der Datei durchlaufen
if i == j: # wenn Zähler der Zeilen der generierten Zahl entspricht
print (str, end='') # Zeile ohne Zeilenumbruch ausgeben
break # Schleife verlassen
i+=1 # Zähler um 1 erhöhen
f.close # Datei schließenNachdem die Dateien erstellt und gespeichert wurden, müssen Sie die Ausführungsrechte für die Datei festlegen rndstr.sh, und einen Alias für einen schnellen Start erstellen.
alias rnst="~\/rndstr\/rndstr.sh"Jetzt, indem wir im Terminal eingeben rnst , erhalten wir einen zufälligen Aphorismus in die Zwischenablage, den wir zum Beispiel in der Korrespondenz verwenden können.
So haben wir wenigstens etwas Nützliches geschrieben. Relativ nützlich.
P.s.
Ich habe absichtlich in dem letzten Schritt keine Screenshots mitgebracht und einige Aktionen nicht detailliert erklärt, sondern nur den Inhalt der Dateien beschrieben, damit die Leser selbst arbeiten können.
Damit denke ich, dass wir "Termux Schritt für Schritt" beenden sollten. Natürlich sind das nur die ersten Schritte, aber jetzt können Sie selbstständig weitermachen.
Ursprünglich hatte ich geplant, in diesem Zyklus zu zeigen, wie man nmap und sqlmap benutzt, aber auch ohne mich gibt es schon viele Artikel zu diesem Thema. Wenn Sie möchten, dass ich den Zyklus "Termux Schritt für Schritt" fortsetze, gibt es eine Umfrage unten, und in den Kommentaren können Sie Vorschläge machen, worüber ich noch schreiben soll.
Nur registrierte Benutzer können an der Umfrage teilnehmen. .
Möchten Sie "Termux Schritt für Schritt" fortsetzen?
Ja
Nein
2 Benutzer haben abgestimmt. Es gibt keine Enthaltungen.
Quelle: habr.com





