{"id":30531,"date":"2019-10-31T21:36:03","date_gmt":"2019-10-31T18:36:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/termux-shag-za-shagom-chast-2\/"},"modified":"2019-10-31T21:36:03","modified_gmt":"2019-10-31T18:36:03","slug":"termux-shag-za-shagom-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2","title":{"rendered":"Termux Schritt f\u00fcr Schritt (Teil 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444950\/\">dem vorherigen Teil<\/a><\/noindex> Wir haben die grundlegenden Befehle von Termux kennengelernt, eine SSH-Verbindung zum PC eingerichtet, Aliasnamen erstellt und einige n\u00fctzliche Tools installiert. Jetzt werden wir noch einen Schritt weitergehen, wir werden:<\/p>\n<p><\/p>\n<ul>\n<li>erfahren wir mehr \u00fcber Termux:API<\/li>\n<li>Python und nano installieren und au\u00dferdem \u201eHello, world!\u201c in Python schreiben.<\/li>\n<li>erfahren wir etwas \u00fcber Bash-Skripte und schreiben ein Skript unter Verwendung von Termux:API<\/li>\n<li>schreiben wir mit Bash-Skript, Termux:API und Python ein einfaches Programm <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Da wir nun verstehen, was die eingegebenen Befehle tun, werde ich in den n\u00e4chsten Schritten nicht mehr jede Handlung so detailliert erl\u00e4utern, aber wo es Schwierigkeiten geben k\u00f6nnte, werde ich auf jeden Fall Erl\u00e4uterungen geben.<\/p>\n<p><\/p>\n<p>Ich verwende oft Aliasnamen, daher sind die in diesem Abschnitt verwendeten Abk\u00fcrzungen hier aufgef\u00fchrt:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">alias updg='apt update &amp;&amp; apt upgrade'\nalias py='python'<\/code><\/pre>\n<p><\/p>\n<p>Der Plan steht, wir k\u00f6nnen loslegen! Und nat\u00fcrlich, vergesst nicht den \u201emagischen Tab\u201c (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444950\/\">Siehe Teil 1<\/a><\/noindex>).<\/p>\n<p><\/p>\n<h2>Schritt 4<\/h2>\n<p><\/p>\n<h3>Tauchen wir ein in das Kaninchenloch von Termux:API<\/h3>\n<p><\/p>\n<p><i>API, wie viel steckt in diesem Wort f\u00fcr das Herz eines Programmierers.<\/i><\/p>\n<p><\/p>\n<p>Wenn wir das Thema Termux:API nicht ber\u00fchren, k\u00f6nnte man all unsere Schritte als einfache Zusammenfassung einer Brosch\u00fcre wie \u201eLinux f\u00fcr Einsteiger\u201c darstellen, wie in den Kommentaren zur ersten Folge treffend angemerkt wurde.<\/p>\n<p><\/p>\n<p>Zuerst installieren wir Termux:API aus dem Google Play Market (nachher ist es ratsam, Termux neu zu starten):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/415e25a8ddefc5d4f1741c97d742eeb1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dann m\u00fcssen wir das API-Paket in der Termux-Konsole installieren:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">updg # Vergessen Sie nicht die Aliase\napt install termux-api<\/code><\/pre>\n<p><\/p>\n<p>F\u00fcr Experimente benutze ich Android 5.1.1. Besitzer von Android 7 m\u00fcssen Termux: API 'sch\u00fctzen', indem sie zu 'Einstellungen' &gt; 'Sichere Apps' gehen. Andernfalls h\u00e4ngen API-Aufrufe wie <code>termux-battery-status<\/code>, m\u00f6glicherweise. (Siehe <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.termux.com\/wiki\/Termux:API\">Projektwiki<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p>Jetzt sollten wir uns n\u00e4her mit den neu erlangten M\u00f6glichkeiten vertrautmachen. Die aktuellste und detaillierteste Beschreibung von Termux:API finden Sie auf <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.termux.com\/wiki\/Termux:API\">Projektwiki<\/a><\/noindex>. Ich werde versuchen, die anschaulichsten und interessantesten Beispiele auszuw\u00e4hlen, damit Sie sich auf eigene Faust weiterentwickeln k\u00f6nnen.<\/p>\n<p><\/p>\n<h3>Einige Beispiele f\u00fcr Termux:API <\/h3>\n<p><\/p>\n<ul>\n<li>termux-battery-status<br \/>\nGibt den Batteriestatus zur\u00fcck<br \/>\n<img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/9a5f793d1b028905b3ee9ceab0fbcdec.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-brightness<br \/>\nStellt die Bildschirmhelligkeit von 0 bis 255 ein<br \/>\n<img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/23e5f3726607921d7f52d5d0de543968.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-toast<br \/>\nZeigt eine tempor\u00e4re Popup-Benachrichtigung an<br \/>\n<img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/5c75ad9b678773801ea9975b23422384.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-torch<br \/>\nAktiviert die Taschenlampe<br \/>\n<img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/7695202f5972e93e5b7a8f4bd952882c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-wifi-scaninfo<br \/>\nGibt Informationen zum letzten WLAN-Scan zur\u00fcck<br \/>\n<img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/f10669f8e7dff1046ab4f9b7d68228e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ul>\n<p><\/p>\n<p>Es ist leicht zu erkennen, dass die zur\u00fcckgegebenen Werte Strings, Dictionaries und Listen von Dictionaries sind, also Datentypen, mit denen Python hervorragend arbeitet, weshalb wir als N\u00e4chstes Python installieren werden.<\/p>\n<p><\/p>\n<h2>Schritt 5<\/h2>\n<p><\/p>\n<h3>Wir installieren Python und nano<\/h3>\n<p><\/p>\n<p>Um Python zu installieren, geben wir im Terminal ein:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">updg\napt install python\napt install python2<\/code><\/pre>\n<p><\/p>\n<p>Jetzt haben wir Python 2 und 3 installiert.<\/p>\n<p><\/p>\n<p>W\u00e4hrend meiner Arbeit an diesem Artikel habe ich einen weiteren Texteditor namens nano entdeckt, der mir besser gef\u00e4llt als vim; lassen Sie uns ihn installieren:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">apt install nano<\/code><\/pre>\n<p><\/p>\n<p>Es ist einfacher zu bedienen als vim und nano hat eine benutzerfreundlichere Oberfl\u00e4che. <i>Auf Android-Ger\u00e4ten ist vim jedoch bequemer.<\/i><\/p>\n<p><\/p>\n<h3>HelloWorld in Python auf Termux<\/h3>\n<p><\/p>\n<p>Im Grunde genommen k\u00f6nnte man diesen Punkt auslassen, aber Python in Termux zu installieren und kein HelloWorld-Skript zu schreiben, w\u00e4re in meinen Augen unangebracht.<\/p>\n<p><\/p>\n<p>Es ist nicht mein Ziel, jemandem Python beizubringen, daher k\u00f6nnen diejenigen, die es nicht wissen, einfach den Code kopieren (oder selbstst\u00e4ndig lernen, es gibt genug Literatur dazu), und diejenigen, die es wissen, k\u00f6nnen etwas eigenes erstellen. Und w\u00e4hrenddessen zeige ich euch noch, wie man Text im Terminal ohne Editor eingibt.<\/p>\n<p><\/p>\n<pre><code class=\"bash\">cat &gt;hello-world.py     \n# Wenn keine Quelle angegeben wird (denk daran, cat 1.txt &gt; 2.txt)\n# wird cat Daten aus dem Standard-Eingabestrom nehmen,\n# einfacher gesagt, von der Tastatur eingegeben.\n\nstr = 'Hallo, Welt!' # Wir weisen der Variablen str den Wert \"Hallo, Welt!\" zu\nprint (str) # Wir geben den Wert aus der Variablen str auf dem Bildschirm aus\n\n# Ctrl + D beendet die Eingabe und speichert die Datei (hello-world.py)\n\npy hello-world.py # Wir f\u00fchren die Datei aus (py ist ein Alias f\u00fcr python)<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/e9086da1ce27f723681f142dad11d878.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wenn Sie w\u00e4hrend der Eingabe einen Fehler nicht bemerkt haben und bereits die Eingabetaste gedr\u00fcckt haben, k\u00f6nnen Sie nicht zur vorherigen Zeile zur\u00fcckkehren. Beenden Sie die Eingabe mit Ctrl + D (Sie k\u00f6nnen auch einfach abbrechen mit Ctrl + Z) und wiederholen Sie alles von Anfang an. Da wir '&gt;' verwendet haben, wird die Datei vollst\u00e4ndig \u00fcberschrieben. Aus diesem Grund empfehle ich nicht, diese Eingabemethode zu verwenden, wenn Sie sich nicht sicher sind, dass Sie den Code sofort ohne Fehler schreiben.<\/p>\n<p><\/p>\n<h2>Schritt 6<\/h2>\n<p><\/p>\n<h3>Bash-Skripte<\/h3>\n<p><\/p>\n<p>Bash-Skripte sind eine hervorragende M\u00f6glichkeit, die Arbeit im Terminal zu automatisieren. Ein Skript ist eine Datei mit der Endung .sh (die Endung ist nicht unbedingt erforderlich), die eine Reihe von Terminalbefehlen enth\u00e4lt, von denen einige bereits erlernt wurden. Hier ist <noindex><a rel=\"nofollow\" href=\"https:\/\/tproger.ru\/translations\/bash-cheatsheet\/\">eine Liste der meisten Befehle<\/a><\/noindex>, alles sollte funktionieren, aber beachten Sie, dass dies eine Liste f\u00fcr \u201eerwachsenen\u201c Linux ist, und nicht f\u00fcr Termux, sondern einfach <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/325522\/\">erstklassiges Material zu Bash-Skripten<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Mit Skripten kann man nahezu alle monotonen Aufgaben automatisieren. Lassen Sie uns ein einfaches Bash-Skript schreiben, das einen Wert aus einer von ihm selbst erstellten Variablen ausgibt. Ich werde wieder cat verwenden, Sie k\u00f6nnen jedoch einen normalen Texteditor nutzen, und wer sich besonders herausfordern m\u00f6chte, kann echo verwenden.<\/p>\n<p><\/p>\n<pre><code class=\"bash\">cat &gt;test.sh\n\nexport str=\"Hallo, Habr!\"\n# export erstellt die Variable str\n# und weist ihr den Wert \"Hallo, Habr!\" zu\n# Setzen Sie keine Leerzeichen vor und nach dem \u201a=\u2018\n\necho $str # Um auf Variablen zuzugreifen, setzen Sie \u201a$\u2018 davor\n\n# Ctrl + D\n\n# .\/test.sh zur Ausf\u00fchrung des Skripts, aber wenn Sie dies jetzt tun, wird ein Fehler angezeigt\n# Um den Fehler zu beheben, muss die Datei test.sh ausf\u00fchrbar gemacht werden\n\nchmod +x test.sh\n# chmod \u00e4ndert die Zugriffsrechte (+ hinzuf\u00fcgen \/ - entfernen)\n# \u201a+x\u2018 bedeutet, dass wir die Datei ausf\u00fchrbar machen\n\n.\/test.sh # Starten Sie die Ausf\u00fchrung unseres Skripts<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/7c56f1aaf938a711f3a30dd3eed3eec7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3>Bash-Skript mit Termux:API<\/h3>\n<p><\/p>\n<p>Lassen Sie uns schon etwas schreiben, das sich von den ber\u00fcchtigten HelloWorlds unterscheidet, aber ebenso nutzlos ist. Unser Skript wird sein:<\/p>\n<p><\/p>\n<ol>\n<li>F\u00fchren Sie die API-Anfrage termux-battery-status aus<\/li>\n<li>Speichern Sie die erhaltenen Daten in der Datei test.txt<\/li>\n<li>Geben Sie die Daten aus der Datei auf dem Bildschirm aus<\/li>\n<li>F\u00fchren Sie das zuvor geschriebene Programm hello-world.py aus<\/li>\n<li>Schreiben Sie die von dem Programm erhaltenen Daten in die Datei test.txt<\/li>\n<li>Geben Sie die Daten aus der Datei auf dem Bildschirm aus<\/li>\n<li>Kopieren Sie die Daten aus der Datei in die Zwischenablage<\/li>\n<li>Geben Sie den Inhalt der Zwischenablage auf dem Bildschirm aus<\/li>\n<li>Zeigen Sie eine Popup-Nachricht mit den Daten aus der Zwischenablage an<\/li>\n<\/ol>\n<p><\/p>\n<p>Zuerst erstellen wir einen Arbeitsordner und kopieren hello-world.py als test.py dorthin, wir erstellen in diesem Ordner die Dateien test.sh und test.txt:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">mkdir bashscript\n\ncat hello-world.py &gt;&gt; bashscript\/test.py\n\ncd bashscript\/\n\ntouch test.sh test.txt # touch erstellt Dateien\n\nchmod +x test.sh<\/code><\/pre>\n<p><\/p>\n<p>Jetzt schreiben wir das Skript in die Datei test.sh auf beliebige Weise:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\n\n# \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c #! (\u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0448\u0435\u0431\u0430\u043d\u0433)\n# \u043f\u043e\u0441\u043b\u0435 \u0438\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043d\u0430 \u0448\u0435\u043b\u043b \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441\u043a\u0440\u0438\u043f\u0442\n\nclear # \u043e\u0447\u0438\u0441\u0442\u0438\u043c \u043e\u043a\u043d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\n\ntermux-battery-status &gt; test.txt # \u043f\u0443\u043d\u043a\u0442\u044b 1 \u0438 2 \u0438\u0437 \u043d\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430\n\ncat test.txt # \u043f\u0443\u043d\u043a\u0442 3\n\npython test.py &gt; test.txt # \u043f\u0443\u043d\u043a\u0442 4 \u0438 5\n\ncat test.txt # \u043f\u0443\u043d\u043a\u0442 6\n\ncat test.txt | termux-clipboard-set # \u043f\u0443\u043d\u043a\u0442 7\n# | \u044d\u0442\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440. \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0432\u044b\u0445\u043e\u0434\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0440\u0443\u0433\u043e\u0433\u043e\n\ntermux-clipboard-get # \u043f\u0443\u043d\u043a\u0442 8\n\ntermux-clipboard-get | termux-toast # \u043f\u0443\u043d\u043a\u0442 9<\/code><\/pre>\n<p><\/p>\n<p>Jetzt befinden wir uns im Ordner bashscript, wir schreiben <code>.\/test.sh<\/code> beobachten Sie das Terminal auf dem Android-Ger\u00e4t:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux Schritt f\u00fcr Schritt (Teil 2)\" src=\"\/wp-content\/uploads\/2019\/03\/44c6632c7a3903dad1113017dc81ee61.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>So, wir haben das geplante bash-Skript geschrieben. Man kann dessen Ausgabe mit Informationen zum Fortschritt jeder Aktion in der Konsole (mithilfe von echo) erg\u00e4nzen; das \u00fcberlasse ich den Lesern.<\/p>\n<p><\/p>\n<h2>Schritt 7<\/h2>\n<p><\/p>\n<h3>Lass uns etwas N\u00fctzliches tun<\/h3>\n<p><\/p>\n<p><i>Relativ n\u00fctzlich<\/i><\/p>\n<p><\/p>\n<p>Formulieren wir das technische Briefing<br \/>\nDie Anwendung soll nach dem Start eine zuf\u00e4llige Zeile aus der Datei in die Zwischenablage kopieren und dar\u00fcber mit einer Popup-Nachricht informieren.<\/p>\n<p><\/p>\n<p>Wir verwenden ein Bash-Skript, um eine zuf\u00e4llige Zeile aus einer Datei mithilfe eines Python-Programms abzurufen. Lassen Sie uns den Arbeitsplan des Skripts aufstellen:<\/p>\n<p><\/p>\n<ol>\n<li>Unterprogramm starten<\/li>\n<li>Ergebnis des Unterprogramms in die Zwischenablage \u00fcbertragen<\/li>\n<li>Eine Benachrichtigung anzeigen<\/li>\n<\/ol>\n<p><\/p>\n<p>Lassen Sie uns \u00fcber die Namen des Verzeichnisses und der Anwendungsdateien entscheiden:<\/p>\n<p><\/p>\n<ul>\n<li>Ordner rndstr im Home-Verzeichnis\n<ul>\n<li>source \u2013 Datei, aus der wir Zeilen abrufen werden<\/li>\n<li>rndstr.py \u2013 Unterprogramm, das eine zuf\u00e4llige Zeile aus der Datei source in der Konsole ausgibt<\/li>\n<li>rndstr.sh \u2013 Skriptdatei<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Wir erstellen das Verzeichnis der Anwendung und erstellen dort die Dateien.<\/p>\n<p><\/p>\n<p>Die ersten beiden Punkte des Skriptplans k\u00f6nnen in einer Pipeline zusammengef\u00fchrt werden. Schlie\u00dflich erhalten wir unter Verwendung von Termux:API:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\n\npython ~\/rndstr\/rndstr.py | termux-clipboard-set # 1 \u0438 2 \u043f\u0443\u043d\u043a\u0442\u044b \u043f\u043b\u0430\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u044b\n\ntermux-toast \"OK\" # 3 \u043f\u0443\u043d\u043a\u0442. \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \"\u041e\u041a\"<\/code><\/pre>\n<p><\/p>\n<p>In die Datei source k\u00f6nnen Sie jeden Text einf\u00fcgen, der logisch in Zeilen unterteilt ist. Ich habe mich entschieden, Aphorismen einzuf\u00fcgen:<\/p>\n<p>\n<b class=\"spoiler_title\">Listing der Datei source<\/b><\/p>\n<pre><code class=\"plaintext\">Ehrlichkeit ist nicht das gleiche wie Wahrheit. L. Lavelle\nHab Geduld und beherrsche dich. Epiktet\nEhrenswert ist nur das, was selbstlos getan wird. J. Labruy\u00e8re\nSei mutig, aber vern\u00fcnftig. B. Graci\u00e1n\nG\u00fcte ist mehr wert als Sch\u00f6nheit. G. Heine\nF\u00fcr gro\u00dfe Taten ist unerm\u00fcdliche Hartn\u00e4ckigkeit n\u00f6tig. F. Voltaire\nWenn du willst, dass dir alle gehorchen, dienst du dir selbst. B. Franklin\n\u00dcberm\u00e4\u00dfige Bescheidenheit ist nichts anderes als versteckter Stolz. A. Chenier\nSehr kluge Menschen beginnen misstrauisch zu werden, wenn man ihr Unbehagen sieht. F. Nietzsche\nArmut ist ein Zeichen von fehlenden Mitteln, nicht von fehlendem Adel. D. Boccaccio\nMan muss darauf achten, Bescheidenheit nicht bis zur Erniedrigung zu treiben. A. Bakihanov\nWer auf vieles verzichtet, kann sich vieles erlauben. J. Chardon\nWenn man f\u00fcr eine edle Tat bezahlt wird, wird sie einem genommen. N. Chamfort\nNichts zu bekommen ist nicht schlimm, aber das Verlorene zu verlieren, ist \u00e4rgerlich. Claudius Aelianus\nEs ist leichter, geduldig das zu ertragen, was man nicht \u00e4ndern kann. Horaz\nMan wird m\u00fcde zu warten, aber wie viel schlimmer w\u00e4re es, wenn es nichts mehr zu erwarten g\u00e4be. B. Shaw\nAlles kommt rechtzeitig, wenn die Menschen warten k\u00f6nnen. F. Rabelais\nMit Geduld k\u00f6nnen wir mehr erreichen als mit Kraft. E. Burke\nMan muss in der Lage sein, das zu ertragen, was man nicht vermeiden kann. M. Montaigne\nWer im Gesch\u00e4ft mutig ist, f\u00fcrchtet sich nicht vor Worten. Sophokles\nIch liebe es nicht zu k\u00e4mpfen, ich liebe es zu gewinnen. B. Shaw\nEin gehetzter und an die Wand gedr\u00e4ngter Kater wird zum Tiger. M. Cervantes\nEin w\u00fcrdiger Mensch folgt nicht den Spuren anderer. Konfuzius\nEin gro\u00dfer Geist zeigt seine Kraft nicht nur durch das Denken, sondern auch durch das Leben. R. Emerson\nRuhm ist eine unvorteilhafte Ware. Teuer im Preis, schwer zu erhalten. O. Balzac\nMa\u00dfvoll und passend in Gespr\u00e4chen ist mehr wert als Beredsamkeit. F. Bacon\nWer nicht schweigen kann, der kann auch nicht sprechen. Seneca der J\u00fcngere\nGute Manieren bestehen aus kleinen Opfern. F. Chesterfield\nEin guter Mensch ist nicht der, der Gutes tun kann, sondern der, der kein \u00dcbel tun kann. V. Kluchevsky\nF\u00e4llt keine endg\u00fcltigen Urteile! Augustinus\nNichts \u00fcbertrieben! Solon<\/code><\/pre>\n<p><\/p>\n<p>Wir m\u00fcssen ein Unterprogramm erstellen, das eine zuf\u00e4llige Zeile aus der Datei source extrahiert.<br \/>\nLassen Sie uns den Algorithmus des Unterprogramms beschreiben:<\/p>\n<p><\/p>\n<ol>\n<li>\u00d6ffnen Sie die Datei source<\/li>\n<li>Z\u00e4hlen Sie die Anzahl der Zeilen in der ge\u00f6ffneten Datei<\/li>\n<li>Schlie\u00dfen Sie die Datei (es gibt keinen Grund, sie unn\u00f6tig offen zu halten)<\/li>\n<li>Generieren Sie eine zuf\u00e4llige Ganzzahl im Bereich der Anzahl der Zeilen in der Datei source<\/li>\n<li>\u00d6ffnen Sie die Datei source<\/li>\n<li>Geben Sie die Zeile mit der generierten Nummer aus<\/li>\n<li>Schlie\u00dfen Sie die Datei<\/li>\n<\/ol>\n<p><\/p>\n<p>Implementieren Sie den Algorithmus in Python (ich schreibe f\u00fcr Python 3.7):<\/p>\n<p><\/p>\n<pre><code class=\"python\">import random \u00a0#  zur Generierung von Zufallszahlen importieren\nimport os \u00a0#  f\u00fcr den Pfad\n\npath = os.path.abspath(__file__)  # \u00a0erhalten den absoluten Pfad zur Datei rndstr.py\npath = os.path.dirname(path) \u00a0#  machen den Pfad zum Verzeichnis\npath = path \u00a0+ '\/source'  # \u00a0machen den Pfad zur Datei source\n\nf = open(path) \u00a0#  Datei \u00f6ffnen\ni = 0 \u00a0#  Z\u00e4hler zur\u00fccksetzen\nfor str in f: i+=1 \u00a0#  z\u00e4hlen die Zeilen der Datei\nf.close \u00a0#  Datei schlie\u00dfen\n\nj = int(round(i * random.random())) \u00a0#  generieren eine ganze Zufallszahl von 0 bis i\n\nf = open(path) \u00a0#  Datei \u00f6ffnen\ni = 0 \u00a0#  Z\u00e4hler zur\u00fccksetzen\nfor str in f: \u00a0#  durch die Zeilen der Datei iterieren\n \u00a0\u00a0\u00a0if i == j: \u00a0#  wenn der Zeilenz\u00e4hler der generierten Zahl entspricht\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print (str, end='') \u00a0#  die Zeile ohne Zeilenumbruch ausgeben\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break  # \u00a0Schleife verlassen\n \u00a0\u00a0\u00a0i+=1 \u00a0#  Z\u00e4hler um 1 erh\u00f6hen\nf.close \u00a0#  Datei schlie\u00dfen<\/code><\/pre>\n<p><\/p>\n<p>Nachdem die Dateien erstellt und gespeichert wurden, m\u00fcssen die Ausf\u00fchrungsrechte f\u00fcr die Datei festgelegt werden. <code>rndstr.sh<\/code>, und ein Alias f\u00fcr einen schnellen Zugriff erstellt werden.<\/p>\n<p><\/p>\n<pre><code class=\"bash\">alias rnst=\"~\/rndstr\/rndstr.sh\"<\/code><\/pre>\n<p><\/p>\n<p>Jetzt, wenn wir im Terminal <code>rnst<\/code> eingeben, erhalten wir ein zuf\u00e4lliges Aphorismus in die Zwischenablage, das wir zum Beispiel in der Korrespondenz verwenden k\u00f6nnen.<\/p>\n<p><\/p>\n<p>So haben wir wenigstens etwas N\u00fctzliches geschrieben. Relativ n\u00fctzlich.<\/p>\n<p><\/p>\n<h3>P.s.<\/h3>\n<p><\/p>\n<p>Ich habe absichtlich im letzten Schritt auf Screenshots verzichtet und einige Aktionen nur in den Dateien skizziert, damit die Leser die M\u00f6glichkeit haben, selbst zu arbeiten.<\/p>\n<p><\/p>\n<p>Damit schlie\u00dfen wir \u201eTermux Schritt f\u00fcr Schritt\u201c. Nat\u00fcrlich sind das erst die ersten Schritte, aber jetzt k\u00f6nnt ihr selbst weiterarbeiten.<\/p>\n<p><\/p>\n<p>Urspr\u00fcnglich hatte ich geplant, in diesem Zyklus zu zeigen, wie man nmap und sqlmap verwendet, aber es gibt schon viele Artikel zu diesem Thema. Wenn ihr Interesse habt, dass ich mit dem Zyklus \u201eTermux Schritt f\u00fcr Schritt\u201c fortfahre, gibt es unten eine Umfrage und in den Kommentaren k\u00f6nnt ihr vorschlagen, wor\u00fcber ich noch schreiben soll.<\/p>\n<p class=\"for_users_only_msg\">Nur registrierte Benutzer k\u00f6nnen an der Umfrage teilnehmen. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Bitte melden Sie sich an.<\/a><\/noindex>Sind Sie an Contour interessiert?<\/p>\n<h2 class=\"default-block__polling-title\">Soll ich \u201aTermux Schritt f\u00fcr Schritt\u2018 fortsetzen?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Ja<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Nein<\/p>\n<\/li>\n<\/ul>\n<p>    2 Benutzer haben abgestimmt. Enthaltungen gab es keine.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/445868\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux&#8217;\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias&#8217;\u044b \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0448\u0430\u0433\u043d\u0443\u0442\u044c \u0435\u0449\u0435 \u0434\u0430\u043b\u044c\u0448\u0435, \u043c\u044b \u0441 \u0432\u0430\u043c\u0438: \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e Termux:API \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Python \u0438 nano, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c &#171;Hello, world!&#187; \u043d\u0430 Python \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22529,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30531","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux&#039;\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias&#039;\u044b \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0448\u0430\u0433\u043d\u0443\u0442\u044c \u0435\u0449\u0435 \u0434\u0430\u043b\u044c\u0448\u0435, \u043c\u044b \u0441 \u0432\u0430\u043c\u0438: \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e Termux:API \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Python \u0438 nano, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c &quot;Hello, world!&quot; \u043d\u0430 Python \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Termux \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c (\u0427\u0430\u0441\u0442\u044c 2) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux&#039;\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias&#039;\u044b \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0448\u0430\u0433\u043d\u0443\u0442\u044c \u0435\u0449\u0435 \u0434\u0430\u043b\u044c\u0448\u0435, \u043c\u044b \u0441 \u0432\u0430\u043c\u0438: \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e Termux:API \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Python \u0438 nano, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c &quot;Hello, world!&quot; \u043d\u0430 Python \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:36:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:36:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Termux Schritt f\u00fcr Schritt (Teil 2) | ProHoster","description":"In der letzten Folge haben wir die grundlegenden Befehle von Termux kennengelernt, eine SSH-Verbindung mit dem PC eingerichtet, Aliase erstellt und einige n\u00fctzliche Tools installiert. Diesmal gehen wir noch einen Schritt weiter: Wir werden mehr \u00fcber Termux:API erfahren, Python und nano installieren und ein \u201aHello, world!\u2018 in Python schreiben, au\u00dferdem werden wir uns mit Bash-Skripten befassen und ein Skript schreiben.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Termux \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c (\u0427\u0430\u0441\u0442\u044c 2) | ProHoster","og:description":"\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux'\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias'\u044b \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0448\u0430\u0433\u043d\u0443\u0442\u044c \u0435\u0449\u0435 \u0434\u0430\u043b\u044c\u0448\u0435, \u043c\u044b \u0441 \u0432\u0430\u043c\u0438: \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e Termux:API \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Python \u0438 nano, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c &quot;Hello, world!&quot; \u043d\u0430 Python \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:36:03+00:00","article:modified_time":"2019-10-31T18:36:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30531","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 01:39:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:16:48","updated":"2026-01-21 01:39:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=30531"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30531\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/22529"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=30531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=30531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=30531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}