В
- léiert iwwer Termux: API
- Loosst eis Python an Nano installéieren, a schreiwen och "Hallo, Welt!" am Python
- léiert iwwer Bash Scripten a schreift e Skript mat Termux: API
- Loosst eis en einfache Programm schreiwen mat engem Bash Skript, Termux: API a Python
Well mir elo verstinn wat déi aginn Kommandoen maachen, wäert ech aus dem nächste Schrëtt net all Handlung esou detailléiert beschreiwen, awer wou et Schwieregkeete kënne sinn, wäert ech definitiv erklären.
Ech benotzen dacks Aliasen, sou datt d'Ofkierzungen, déi an dësem Deel benotzt ginn, hei gewisen ginn:
alias updg='apt update && apt upgrade'
alias py='python'
De Plang ass prett, mir kënnen ufänken! An natierlech vergiesst net iwwer de "Magie Tab" (
Schrëtt 4
Diving Down the Termux: API Rabbit Hole
API, wéi vill an dësem Wuert fir d'Häerz vum Coder fusionéiert huet
Wa mir d'Thema vun Termux:API net beréieren, da kéinten all eis Schrëtt reduzéiert ginn op eng einfach Retelling vun enger Broschür wéi "Linux fir Dummies", wéi et richteg an de Kommentaren zum éischten Deel bemierkt gouf.
Als éischt, loosst eis Termux: API vum Google Play Market installéieren (duerno wäert et net schueden Termux nei ze starten):
Als nächst musse mir den API Package an der Termux Konsol installéieren:
updg # Не забываем про alias’ы
apt install termux-api
Fir Experimenter benotzen ech Android 5.1.1, fir Android 7 Besëtzer musst Dir den Termux:API 'schützen' andeems Dir op Settings> Protected Apps gitt, soss API rifft wéi termux-battery-status
, wäert afréieren. (Cm.
Elo ass et Zäit fir déi erfuerene Fäegkeeten méi no ze kucken. Déi lescht an detailléiert Beschreiwung vun Termux:API fannt Dir op
E puer Beispiller vun Termux: API
- termux-Batterie-Status
Gitt de Batteriestatus zréck
- termux-Hellegkeet
Setzt Écran Hellegkeet vun 0 bis 255
- termux-Toast
Weist eng temporär Pop-up Notifikatioun
- termux-fackel
Enthält Täscheluucht
- termux-wifi-scaninfo
Gitt Informatioun iwwer de leschte Scan vu Wi-Fi Netzwierker zréck
Et ass einfach ze gesinn datt d'Retourwäerter Strings, Dictionnairen, Lëschte vun Dictionnairen sinn, am Fong Datentypen mat deenen de Python gutt funktionnéiert, also de nächste Schrëtt ass et opzestellen.
Schrëtt 5
Installéiert Python an Nano
Fir Python z'installéieren, schreift am Terminal:
updg
apt install python
apt install python2
Elo hu mir Python 2 an 3 installéiert.
Wärend un dësem Artikel geschafft hunn, hunn ech en aneren Texteditor entdeckt, Nano, deen ech méi gär hunn wéi vim, loosst eis et installéieren:
apt install nano
Et ass méi einfach ze benotzen wéi vim, an Nano huet e méi userfrëndlechen Interface. Op engem Android Apparat ass vim nach ëmmer méi praktesch.
HelloWorld am Python an Termux
Am grousse Ganzen war et méiglech ouni dëse Punkt ze maachen, awer Python an Termux z'installéieren an HelloWorld net ze schreiwen, menger Meenung no, ass schlecht Manéieren.
Mäin Zil ass et kee Python ze léieren, sou datt déi, déi et net kennen, einfach de Code kopéieren (oder eleng ufänken ze léieren, glécklecherweis gëtt et genuch Literatur), an déi, déi et kennen, kënnen eppes selwer sculptéieren. An op der Rou weisen ech Iech och e Wee fir Text am Terminal ouni Redakter anzeginn.
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)
Wann Dir während dem Inputprozess net e Feeler gemierkt hutt a schonn Enter gedréckt hutt, da kënnt Dir net op d'Linn hei uewen goen; fir dëst ze maachen, fäerdeg d'Entrée andeems Dir Ctrl + D dréckt (Dir kënnt souguer Ctrl + Z ënnerbriechen) an widderhuelen alles vun Ufank un. Well mir '>' benotzt hunn, gëtt de Fichier komplett nei geschriwwe ginn. Aus dësem Grond recommandéieren ech net dës Inputmethod ze benotzen, ausser Dir sidd sécher datt Dir de Code direkt ouni Feeler schreift.
Schrëtt 6
Bash Scripten
Bash Scripte sinn e super Wee fir Är Terminalaarbecht ze automatiséieren. De Skript ass e Fichier mat der Extensioun .sh (d'Extensioun ass fakultativ) mat enger Rei vun Terminalbefehle, e puer vun deenen mir scho studéiert hunn. Hei
Mat Skripte kënnt Dir bal all monoton Aktiounen automatiséieren. Loosst eis en einfachen Bash-Skript schreiwen, deen de Wäert aus der Variabel erausginn, déi se erstallt huet, ech wäert erëm Kaz benotzen, Dir kënnt en normalen Texteditor benotzen, an déi, déi besonnesch sech selwer trainéiere wëllen, kënnen Echo benotzen.
cat >test.sh
export str="Привет, Хабр!"
# export создает переменную str
# и присваивает ей значение "Привет, Хабр!"
# Не ставьте пробелы до и после ‘=’
echo $str # Для обращения к переменным перед ними ставится ‘$’
# Ctrl + D
# ./test.sh для запуска скрипта, но если это сделать сейчас то будет ошибка
# для избавления от ошибки нужно сделать файл test.sh исполняемым
chmod +x test.sh
# chmod изменяет права доступа (+ добавить / - убрать)
# ‘+x’ означает что мы делаем файл исполняемым
./test.sh # Запускаем выполнение нашего скрипта
Bash Skript mat Termux:API
Loosst eis eppes anescht schreiwen wéi déi notoresch HelloWorlds, awer grad sou nëtzlos. Eis Skript wäert sinn:
- Leeschtung termux-Batterie-Status API Ufro
- späichert déi kritt Donnéeën an de Fichier test.txt
- weisen Daten aus enger Datei um Bildschierm
- de virdru geschriwwene Hello-world.py Programm ausféieren
- Schreift d'Daten, déi aus dem Programm kritt goufen, an d'Datei test.txt
- weisen Daten aus enger Datei um Bildschierm
- Daten vun enger Datei op de Clipboard transferéieren
- weist den Inhalt vum Clipboard
- weist e Pop-up Message mat Daten aus dem Clipboard
Als éischt, loosst eis en Dossier fir Aarbecht erstellen a kopéieren hello-world.py do als test.py, erstellt d'Dateien test.sh an test.txt an dësem Dossier:
mkdir bashscript
cat hello-world.py >> bashscript/test.py
cd bashscript/
touch test.sh test.txt # touch создает файлы
chmod +x test.sh
Elo, op all praktesch Manéier, schreift de Skript an d'test.sh Datei:
#!/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
Elo sinn am Bashscript Dossier mir schreiwen ./test.sh
Mir gesinn am Terminal op engem Android Apparat:
Also hu mir de geplangte Bash Skript geschriwwen. Dir kënnt et verdënnen andeems Dir Informatioun iwwer d'Ausféierung vun all Aktioun op d'Konsole ausgitt (mat Echo), ech loossen dat fir d'Lieser.
Schrëtt 7
Loosst eis eppes nëtzlech maachen
Relativ nëtzlech
Loosst eis d'Konditioune formuléieren
Nom Start soll d'Applikatioun eng zoufälleg Zeil vun enger Datei op der Clipboard setzen an iwwer dëst mat engem Pop-up Message informéieren.
Loosst eis e Bash-Skript als Basis huelen an eng zoufälleg Linn aus enger Datei extrahéieren mat enger Python-Subroutine. Loosst eis e Plang fir de Skript maachen:
- Subroutine lafen
- Transfert d'Resultat vun der Subroutine op de Clipboard
- Weist e Pop-up Message
Loosst eis iwwer d'Nimm vum Verzeechnes an Applikatiounsdateien entscheeden:
- rndstr Dossier am Heemverzeichnis
- Quell - de Fichier aus deem mir Linnen huelen
- rndstr.py - eng Subroutine déi eng zoufälleg Linn vun der Quelldatei op d'Konsole dréckt
- rndstr.sh - Skriptdatei
Mir erstellen den Applikatiounsverzeichnis a plënneren an et an erstellen Dateien do.
Déi éischt zwee Punkte vum Skriptplang kënnen duerch eng Pipeline kombinéiert ginn, als Resultat, mat Termux: API kréien mir:
#!/bin/bash
python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы
termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
An der Quelldatei kënnt Dir all Text logesch opgedeelt a Linnen setzen, ech hunn decidéiert Aphorismen ze setzen:
Quell Datei Oplëschtung
Искренность не есть истина. Л. Лавель
Терпи и воздерживайся. Эпиктет
Благородно только то, что бескорыстно. Ж. Лабрюйер
Будь благоразумно отважным. Б. Грасиан
Доброта лучше красоты. Г. Гейне
Для великих дел необходимо неутомимое постоянство. Ф.Вольтер
Если ты хочешь, чтобы тебе всегда угождали, прислуживай себе сам. Б. Франклин
Чрезмерная скромность есть не что иное, как скрытая гордость. А. Шенье
Очень умным людям начинают не доверять, если видят их смущение. Ф. Ницше
Бедность указывает на отсутствие средств, а не на отсутствие благородства. Д. Боккаччо
Нужно остерегаться доведения скромности до степени унижения. А. Бакиханов
Кто отказывается от многого, может многое себе позволить. Ж. Шардон
Когда нам платят за благородный поступок, его у нас отнимают. Н. Шамфор
Не получить вовсе - не страшно, но лишиться полученного обидно. Клавдий Элиан
Легче переносить терпеливо то, что нам не дано исправить. Гораций
Устаешь ждать, но насколько хуже было бы, если бы ждать стало нечего. Б. Шоу
Все приходит вовремя, если люди умеют ждать. Ф. Рабле
Своим терпением мы можем достичь большего, чем силой. Э. Берк
Надо уметь переносить то, чего нельзя избежать. М. Монтень
Кто в деле смел, тот слов не устрашится. Софокл
Я не люблю сражаться, я люблю побеждать. Б. Шоу
Затравленный и прижатый к стене кот превращается в тигра. М. Сервантес
Достойный человек не идет по следам других людей. Конфуций
Великий ум проявит свою силу не только в умении мыслить, но и в умении жить. Р. Эмерсон
Слава - товар невыгодный. Стоит дорого, сохраняется плохо. О. Бальзак
Сдержанность и уместность в разговорах стоят больше красноречия. Ф. Бэкон
Кто молчать не умеет, тот и говорить, не способен. Сенека Младший
Хорошие манеры состоят из маленьких жертв. Ф. Честерфилд
Добрый человек не тот, кто умеет делать добро, а тот, кто не умеет делать зла. В. Ключевский
Не произносите бесповоротных суждений! Августин
Ничего слишком! Солон
Alles wat mir maache mussen ass eng Subroutine erstellen déi eng zoufälleg String aus der Quelldatei extrahéiert.
Loosst eis den Algorithmus vun der Subroutine beschreiwen:
- Öffnen d'Quelldatei
- D'Zuel vun den Zeilen an enger oppener Datei zielen
- D'Datei zoumaachen (kee Sënn et ze laang op ze halen)
- Generéiere vun engem zoufälleg Ganzt bannent der Zuel vun Linnen an der Quell Fichier
- Öffnen d'Quelldatei
- Mir weisen eng Zeil ënnert der Zuel vun der generéierter Zuel
- De Fichier zoumaachen
Loosst eis den Algorithmus am Python implementéieren (ech schreiwen ënner 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 # закрываем файл
Nodeems d'Dateien erstallt a geschriwwe sinn, musst Dir d'Ausféierungsrechter op d'Datei ginn rndstr.sh
, a erstellt en Alias fir séier ze starten.
alias rnst="~/rndstr/rndstr.sh"
Elo andeems Dir am Terminal erakënnt rnst
mir kréien e zoufälleg Aphorismus um Clipboard, deen zum Beispill an der Korrespondenz benotzt ka ginn.
Also hu mir op d'mannst eppes nëtzlech geschriwwen. Relativ nëtzlech.
Ps
Am leschte Schrëtt hunn ech bewosst keng Screenshots zur Verfügung gestallt an hunn e puer vun den Aktiounen net am Detail analyséiert, nëmmen d'Inhalter vun den Dateien beschriwwen, sou datt d'Lieser d'Méiglechkeet hunn eleng ze schaffen.
Ech mengen et ass derwäert dësen "Termux Schrëtt fir Schrëtt" ofzeschléissen. Natierlech sinn dëst just déi éischt Schrëtt, awer elo kënnt Dir eleng viru goen.
Am Ufank hunn ech geplangt an dëser Serie ze weisen wéi nmap, sqlmap benotzt gëtt, awer och ouni mech sinn et scho vill Artikelen iwwer dëst Thema. Wann Dir wëllt datt ech d'Serie "Termux Schrëtt fir Schrëtt" weiderfuere loossen, da gëtt et eng Ëmfro hei drënner an an de Kommentarer kënnt Dir virschloen, iwwer wat soss ze schreiwen.
Nëmme registréiert Benotzer kënnen un der Ëmfro deelhuelen.
Weiderliesen "Termux Schrëtt fir Schrëtt"?
-
datt
-
Nee
2 Benotzer hunn gestëmmt. Et gi keng Enthalungen.
Source: will.com