Termux のステップバイステップ (パート 2)

В 最後の部分 基本的な Termux コマンドに慣れ、PC との SSH 接続を設定し、エイリアスの作成方法を学び、いくつかの便利なユーティリティをインストールしました。 今回はさらに前進する必要があります。私たちは皆さんと一緒です:

  • Termux:API について学ぶ
  • Pythonとnanoをインストールして、「Hello, world!」も書いてみましょう。 Pythonで
  • bash スクリプトについて学び、Termux:API を使用してスクリプトを作成します。
  • bash スクリプト、Termux:API、Python を使って簡単なプログラムを書いてみましょう

入力したコマンドの動作が理解できたので、次のステップからは、各動作についてはあまり詳しく説明しませんが、難しいと思われる箇所については、必ず説明します。

私はエイリアスをよく使用するため、この部分で使用される略語を以下に示します。

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

計画は準備ができたので、始めましょう! そしてもちろん、「マジック タブ」も忘れないでください (パート 1 を参照).

ステップ4

Termux:API のウサギの穴に飛び込む

API、この言葉にどれだけコーダーの心が溶け込んでいるのか

Termux:API のトピックに触れなければ、最初の部分のコメントで正しく指摘されているように、すべての手順は「Linux for Dummies」のようなパンフレットを単純に繰り返すだけになってしまいます。

まず、Google Play マーケットから Termux:API をインストールしましょう (その後、Termux を再起動しても問題ありません)。

Termux のステップバイステップ (パート 2)

次に、Termux コンソールに API パッケージをインストールする必要があります。

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

実験のために私は Android 5.1.1 を使用しています。Android 7 所有者の場合は、[設定] > [保護されたアプリ] に移動して Termux:API を「保護」する必要があります。それ以外の場合は、次のような API 呼び出しが行われます。 termux-battery-status、フリーズします。 (Cm。 プロジェクトウィキ)

ここで、獲得した能力を詳しく見てみましょう。 Termux:API の最新かつ詳細な説明は、次の場所にあります。 プロジェクトウィキ。 最も視覚的で興味深いものを選択するように努めます。そうすることで、将来的には独立した仕事がより上手になることができます。

Termux:API の例

  • termux-バッテリーの状態
    バッテリーの状態を返します
    Termux のステップバイステップ (パート 2)
  • termux-明るさ
    画面の明るさを0から255まで設定します
    Termux のステップバイステップ (パート 2)
  • termux-トースト
    一時的なポップアップ通知を表示します
    Termux のステップバイステップ (パート 2)
  • termux-トーチ
    懐中電灯が付属
    Termux のステップバイステップ (パート 2)
  • termux-wifi-scaninfo
    Wi-Fi ネットワークの最後のスキャンに関する情報を返します。
    Termux のステップバイステップ (パート 2)

戻り値が文字列、辞書、辞書のリストであり、基本的に Python が適切に動作するデータ型であることが簡単にわかります。そのため、次のステップはそれを設定することです。

ステップ5

Pythonとnanoをインストールする

Python をインストールするには、ターミナルに次のように記述します。

updg
apt install python
apt install python2

これで、Python 2 と 3 がインストールされました。

この記事を書いているときに、vim よりも気に入った別のテキスト エディター nano を発見しました。インストールしてみましょう。

apt install nano

vim よりも使いやすく、nano はよりユーザーフレンドリーなインターフェイスを備えています。 Android デバイスでは、vim の方がさらに便利です。

Termux の Python で HelloWorld

概して、この点を気にしなくても問題はありませんが、Python を Termux にインストールし、HelloWorld を書かないのはマナー違反だと思います。

私の目標は誰かに Python を教えることではありません。そのため、知らない人はコードをコピーするだけでよく (または、幸いなことに十分な文献があるため、自分で学習を始めることもできます)、知っている人は自分で何かを作成できます。 ついでに、エディタを使わずにターミナルにテキストを入力する方法も紹介します。

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 のステップバイステップ (パート 2)

入力プロセス中にエラーに気付かずにすでに Enter キーを押した場合は、上の行に移動することはできません。これを行うには、Ctrl + D キーを押して入力を終了し (Ctrl + Z を中断することもできます)、すべてを最初から繰り返します。 「>」を使用したため、ファイルは完全に書き換えられます。 このため、エラーなくすぐにコードを作成できるという確信がない限り、この入力方法を使用することはお勧めしません。

ステップ6

Bash スクリプト

Bash スクリプトは、ターミナル作業を自動化する優れた方法です。 スクリプトは、拡張子 .sh (拡張子はオプション) を持つファイルで、端末コマンドのセットが含まれており、その一部はすでに学習済みです。 ここ ほとんどのコマンドのリストすべてが機能するはずですが、これは「成人用」Linux のリストであり、Termux のリストではないことに注意してください。 bash スクリプトに関する優れた機能.

スクリプトを使用すると、ほぼすべての単調なアクションを自動化できます。 作成した変数から値を出力する単純な bash スクリプトを作成しましょう。ここでも cat を使用します。通常のテキスト エディターを使用できます。特に自分自身を訓練したい人は 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 のステップバイステップ (パート 2)

Termux:API を使用した Bash スクリプト

悪名高い HelloWorlds とは異なるものを書いてみましょう。ただし、同じように役に立ちません。 私たちのスクリプトは次のようになります。

  1. termux-battery-status API リクエストを実行する
  2. 受信したデータをファイルtest.txtに保存します
  3. ファイルからのデータを画面に表示する
  4. 以前に作成した hello-world.py プログラムを実行します。
  5. プログラムから受け取ったデータをファイルtest.txtに書き込みます
  6. ファイルからのデータを画面に表示する
  7. ファイルからクリップボードにデータを転送する
  8. クリップボードの内容を表示する
  9. クリップボードのデータを含むポップアップ メッセージを表示する

まず、作業用のフォルダーを作成し、hello-world.py を test.py としてコピーし、このフォルダー内にファイル test.sh と test.txt を作成します。

mkdir bashscript

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

cd bashscript/

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

chmod +x test.sh

ここで、任意の方法でスクリプトを 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

今、私たちはbashscriptフォルダーにいます ./test.sh Android デバイスのターミナルには次のように表示されます。

Termux のステップバイステップ (パート 2)

そこで、予定していた bash スクリプトを作成しました。 各アクションの実行に関する情報を (エコーを使用して) コンソールに出力することで、この問題を薄めることができます。これは読者のために残しておきます。

ステップ7

何か役立つことをしましょう

比較的便利

委託条件を策定しましょう
起動後、アプリケーションはファイルからランダムな行をクリップボードに配置し、ポップアップ メッセージでこれを通知する必要があります。

bash スクリプトをベースとして、Python サブルーチンを使用してファイルからランダムな行を抽出してみましょう。 スクリプトの計画を立てましょう。

  1. サブルーチンを実行する
  2. サブルーチンの結果をクリップボードに転送します
  3. ポップアップメッセージを表示する

ディレクトリとアプリケーション ファイルの名前を決めましょう。

  • ホームディレクトリのrndstrフォルダ
    • source - 行を取得するファイル
    • rndstr.py - ソースファイルからランダムな行をコンソールに出力するサブルーチン
    • rndstr.sh - スクリプト ファイル

アプリケーション ディレクトリを作成し、そこに移動して、そこにファイルを作成します。

スクリプト プランの最初の XNUMX つのポイントはパイプラインによって結合でき、その結果、Termux:API を使用して次のものが得られます。

#!/bin/bash

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

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

ソース ファイルには、論理的に行に分割された任意のテキストを含めることができます。私は格言を含めることにしました。

ソースファイルのリスト

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

ソース ファイルからランダムな文字列を抽出するサブルーチンを作成するだけです。
サブルーチンのアルゴリズムを説明しましょう。

  1. ソースファイルを開く
  2. 開いているファイルの行数を数える
  3. ファイルを閉じます(長時間開いたままにしても意味がありません)
  4. ソースファイルの行数内でランダムな整数を生成します。
  5. ソースファイルを開く
  6. 生成された番号の番号の下に行を表示します
  7. ファイルを閉じる

アルゴリズムを Python で実装しましょう (私は 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  #  закрываем файл

ファイルを作成して書き込んだ後、ファイルに実行権限を与える必要があります。 rndstr.shをクリックし、クイック起動用のエイリアスを作成します。

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

今すぐターミナルに入力してください rnst ランダムな格言がクリップボードに保存されます。これは、たとえば通信に使用できます。

そこで、少なくとも役に立つものを書きました。 比較的便利です。

PS

最後のステップでは、意図的にスクリーンショットを提供せず、一部のアクションを詳細に分析せず、読者が自分で作業できるようにファイルの内容のみを説明しました。

この「Termux のステップバイステップ」を完了する価値があると思います。 もちろん、これらは最初のステップにすぎませんが、これからは自分の力で前に進むことができます。

当初、私はこのシリーズで nmap と sqlmap の使用方法を紹介する予定でしたが、私がいなくても、このトピックに関する記事はすでにたくさんあります。 「Termux のステップバイステップ」シリーズを続けてほしい場合は、以下にアンケートがあり、コメント欄で他に何を書くべきかを提案してください。

登録ユーザーのみがアンケートに参加できます。 ログインお願いします。

「Termux のステップバイステップ」を続けますか?

  • はい

  • ノー

2人のユーザーが投票しました。 棄権者はいない。

出所: habr.com

コメントを追加します