Termux krok po kroku (część 2)

В Ostatnia część zapoznaliśmy się z podstawowymi poleceniami Termuxa, skonfigurowaliśmy połączenie SSH z komputerem PC, nauczyliśmy się tworzyć aliasy i zainstalowaliśmy kilka przydatnych narzędzi. Tym razem musimy pójść jeszcze dalej, jesteśmy z Tobą:

  • dowiedz się o Termux:API
  • zainstaluj Pythona i nano i napisz „Witaj, świecie!” w Pythonie
  • poznaj skrypty basha i napisz skrypt używając Termux:API
  • używając skryptu bash, Termux:API i Pythona napiszemy prosty program

Ponieważ teraz rozumiemy, co robią polecenia wejściowe, od następnego kroku nie będę opisywał każdej akcji tak szczegółowo, ale tam, gdzie mogą wystąpić trudności, na pewno wyjaśnię.

Często używam aliasów, więc skróty użyte w tej części są pokazane tutaj:

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

Plan jest gotowy, możesz zaczynać! I oczywiście nie zapomnij o „magicznej karcie” (Zobacz część 1).

Krok 4

Nurkowanie w Termux: API Króliczej Nory

API jak bardzo połączyło się w tym słowie z sercem programisty

Jeśli nie poruszymy tematu Termux: API, wówczas wszystkie nasze kroki można by sprowadzić do prostego powtórzenia jakiejś broszury typu „Linux for Dummies”, jak słusznie zauważono w komentarzach do pierwszej części.

Najpierw zainstaluj Termux:API z Google Play Market (później nie zaszkodzi zrestartować Termux):

Termux krok po kroku (część 2)

Następnie musimy zainstalować pakiet API w konsoli Termux:

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

Do eksperymentów używam Androida 5.1.1, właściciele Androida 7 muszą „chronić” Termux: API, przechodząc do „Ustawienia”> „Chronione aplikacje”, w przeciwnym razie wywołania API, takie jak termux-battery-status, zawiśnie. (Cm. wiki projektu)

Teraz warto przyjrzeć się bliżej zdobytym możliwościom. Najnowszy i najbardziej szczegółowy opis Termux:API można znaleźć pod adresem wiki projektu. Postaram się wybrać najbardziej wizualne i najciekawsze, co pozwoli mi w przyszłości zapełnić rękę do samodzielnej pracy.

Niektóre przykłady Termux:API

  • stan baterii termux
    Zwraca stan baterii
    Termux krok po kroku (część 2)
  • jasność termux
    Ustawia jasność ekranu od 0 do 255
    Termux krok po kroku (część 2)
  • tosty termux
    Pokazuje tymczasowe wyskakujące powiadomienie
    Termux krok po kroku (część 2)
  • latarka termux
    Zawiera latarkę
    Termux krok po kroku (część 2)
  • informacje o skanowaniu termux-wi-fi
    Zwraca informacje o ostatnim skanowaniu sieci Wi-Fi
    Termux krok po kroku (część 2)

Łatwo zauważyć, że wartościami zwracanymi są łańcuchy znaków, słowniki, listy słowników, ogólnie typy danych, z którymi Python świetnie współpracuje, więc następnym krokiem jest skonfigurowanie tego.

Krok 5

Zainstaluj Pythona i nano

Aby zainstalować Pythona, napisz w terminalu:

updg
apt install python
apt install python2

Mamy teraz zainstalowane 2 i 3 Pythona.

Podczas pracy nad artykułem odkryłem inny edytor tekstu nano, który spodobał mi się bardziej niż vim, zainstalujmy go:

apt install nano

Jest łatwiejszy w użyciu niż vim, a nano ma bardziej przyjazny dla użytkownika interfejs. Na urządzeniu z Androidem vim jest jeszcze wygodniejszy.

HelloWorld w Pythonie w Termux

Ogólnie rzecz biorąc, można było obejść się bez tego elementu, ale moim zdaniem umieszczenie Pythona w Termux i niepisanie HelloWorld to złe maniery.

Nie stawiam sobie za cel uczenia kogokolwiek Pythona, więc ci, którzy nie znają, mogą po prostu skopiować kod (lub rozpocząć naukę na własną rękę, ponieważ literatury jest wystarczająco dużo), a ci, którzy znają, mogą zrobić coś sami. I jeszcze „pod przykrywką” pokażę sposób wprowadzania tekstu w terminalu bez edytora.

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 krok po kroku (część 2)

Jeśli nie zauważyłeś błędu podczas procesu wprowadzania i już nacisnąłeś Enter, nie będziesz mógł przejść do powyższej linii, aby to zrobić, zakończ wprowadzanie, naciskając Ctrl + D (ogólnie możesz przerwać Ctrl + Z) i powtórz wszystko od początku. Ponieważ użyliśmy „>”, plik zostanie całkowicie nadpisany. Z tego powodu nie polecam korzystania z tej metody wprowadzania, chyba że masz pewność, że napiszesz kod od razu bez błędów.

Krok 6

skrypty basha

Skrypty Bash to świetny sposób na automatyzację pracy terminala. Skrypt to plik z rozszerzeniem .sh (rozszerzenie jest opcjonalne) zawierający zestaw poleceń terminala, z których część już przestudiowaliśmy. Tutaj lista większości poleceń, wszystko powinno działać, ale zauważ, że jest to lista dla „dorosłego” Linuksa, a nie Termux, ale po prostu świetny materiał o skryptach bash.

Za pomocą skryptów możesz zautomatyzować prawie wszystkie monotonne czynności. Napiszmy najprostszy skrypt basha, który wyświetli wartość ze zmiennej, którą stworzył, ja znowu użyję cat, możesz użyć zwykłego edytora tekstu, a ci, którzy szczególnie chcą się pouczyć, mogą użyć echo.

cat >test.sh

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

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

# Ctrl + D

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

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

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

Termux krok po kroku (część 2)

Skrypt Bash z Termux:API

Napiszmy coś innego niż osławione HelloWorlds, ale równie bezużyteczne. Nasz skrypt będzie:

  1. wykonaj żądanie API termux-battery-status
  2. zapisać odebrane dane do pliku test.txt
  3. wydrukować dane z pliku na ekran
  4. wykonaj wcześniej napisany program hello-world.py
  5. dane otrzymane z programu zapisz do pliku test.txt
  6. wydrukować dane z pliku na ekran
  7. przenieść dane z pliku do schowka
  8. wyświetlić zawartość schowka
  9. wyświetlić wyskakujący komunikat z danymi ze schowka

Najpierw utwórz folder do pracy i skopiuj tam hello-world.py jako test.py, utwórz pliki test.sh i test.txt w tym folderze:

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

Teraz w dowolny wygodny sposób napisz skrypt do pliku 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

Teraz, będąc w folderze bashscript, piszemy ./test.sh obserwujemy w terminalu na urządzeniu z Androidem:

Termux krok po kroku (część 2)

Napisaliśmy więc planowany skrypt basha. Można to rozcieńczyć wyjściem do konsoli informacji o wykonaniu każdej akcji (za pomocą echa), zostawiam to czytelnikom.

Krok 7

Zróbmy coś pożytecznego

Stosunkowo przydatne

Sformułujmy zakres zadań
Po uruchomieniu aplikacja powinna umieścić losową linię z pliku w schowku i powiadomić o tym wyskakującym komunikatem.

Za podstawę weźmiemy skrypt basha, wyciągniemy losową linię z pliku za pomocą podprogramu Pythona. Zróbmy plan pracy skryptu:

  1. Uruchom podprogram
  2. Przenieś wynik podprogramu do schowka
  3. Wyświetl komunikat wyskakujący

Zdefiniujmy nazwy katalogu i plików aplikacji:

  • rndstr w katalogu domowym
    • source - plik, z którego będziemy pobierać linie
    • rndstr.py - podprogram, który wyświetla losową linię z pliku źródłowego do konsoli
    • rndstr.sh - plik skryptu

Utwórz katalog aplikacji i przejdź do niego i utwórz tam pliki.

Pierwsze dwa punkty planu skryptu można połączyć potokiem, w efekcie korzystając z Termux: API otrzymujemy:

#!/bin/bash

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

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

W pliku źródłowym można umieścić dowolny tekst podzielony logicznie na wiersze, ja zdecydowałem się umieścić aforyzmy:

Lista plików źródłowych

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

Musimy tylko utworzyć podprogram, który wyodrębni losowy ciąg znaków z pliku źródłowego.
Napiszmy algorytm podprogramu:

  1. Plik open source
  2. Zliczanie linii w otwartym pliku
  3. Zamknij plik (nie ma nic, co mogłoby go otworzyć na dodatkowy czas)
  4. Generujemy losową liczbę całkowitą w liczbie wierszy pliku źródłowego
  5. Plik open source
  6. Wyprowadzamy wiersz pod numerem wygenerowanego numeru
  7. Zamykanie pliku

Implementujemy algorytm w Pythonie (piszę pod Pythonem 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  #  закрываем файл

Po utworzeniu i zapisaniu plików należy nadać uprawnienia do wykonywania plików rndstr.shi utwórz alias do szybkiego uruchamiania.

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

Teraz wpisz w terminalu rnst w schowku dostaniemy losowy aforyzm, który np. można wykorzystać w korespondencji.

Tutaj napisaliśmy przynajmniej coś przydatnego. Stosunkowo przydatne.

Ps

W ostatnim kroku celowo nie zamieściłem zrzutów ekranu i nie przeanalizowałem szczegółowo niektórych działań, zapisując jedynie zawartość plików, aby czytelnicy mieli możliwość samodzielnej pracy.

Na tym "Termux krok po kroku" myślę, że warto dokończyć. Oczywiście to tylko pierwsze kroki, ale teraz możesz sam iść do przodu.

Początkowo planowałem pokazać w tym cyklu jak używać nmap, sqlmap, ale beze mnie jest już sporo artykułów na ten temat. Jeśli chcecie, abym kontynuowała cykl „Termux krok po kroku”, to poniżej znajduje się ankieta, aw komentarzach możecie podpowiadać, o czym jeszcze pisać.

W ankiecie mogą brać udział tylko zarejestrowani użytkownicy. Zaloguj się, Proszę.

Kontynuuj "Termux krok po kroku"?

  • Tak

  • Nie

Głosowało 2 użytkowników. Nie ma głosów wstrzymujących się.

Źródło: www.habr.com

Dodaj komentarz