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并没有问题):



接下来,我们需要在T​​ermux控制台中安装API包:


 updg #    alias' apt install termux-api 

对于实验,我使用Android 5.1.1,对于Android 7所有者,我需要通过转到“设置”>“受保护的应用程序”来“保护” Termux:API,否则诸如termux-battery-status类的API调用将挂起。 (请参阅项目Wiki


现在,将仔细研究获得的功能。 Termux:API的最新和详细描述可以在项目wiki上找到。 我将尝试选择最直观,最有趣的方式,以便将来获得独立工作的机会。


Termux的一些示例:API


  • 端子电池状态
    返回电池状态

  • 白蚁亮度
    将屏幕亮度设置为0至255

  • 白蚁吐司
    显示临时弹出通知

  • 泰勒克斯火炬
    打开手电筒

  • termux-wifi-scaninfo
    返回有关Wi-Fi网络上次扫描的信息


很容易看到返回的值是字符串,字典,字典,通常,Python可以很好地使用这些数据类型,因此下一步就是安装它。


第5步


安装Python和Nano


要安装Python,我们在终端中编写:


 updg apt install python apt install python2 

现在我们已经安装了2和3个Python。


在撰写本文的过程中,我发现了另一个比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) 


如果在输入过程中没有发现错误,并且已经按Enter键,那么您将无法转到上一行。为此,请按Ctrl + D结束输入(您可以完全中断Ctrl + Z)并从头开始重复所有操作。 由于我们使用了“>”,因此文件将被完全重写。 因此,如果不确定不能立即编写代码而没有错误,建议不要使用此输入法。


第6步


Bash脚本


Bash脚本是自动化终端工作的好方法。 该脚本是扩展名为.sh(扩展名是可选的)的文件,其中包含一组终端命令,我们已经研究了其中一些命令。 这是大多数命令列表 ,所有命令都可以正常工作,但是请注意,这是“成人” Linux列表,而不是Termux,但这对于bash脚本来说是个好东西


使用脚本,您可以自动化几乎所有单调的动作。 我们将编写最简单的bash脚本,以显示他创建的变量的值,我将再次使用cat,可以使用普通的文本编辑器,而想要进行自我训练的人可以使用echo。


 cat >test.sh export str=", !" #   str #     ", !" #       '=' # export      (..   ) echo $str #        '$' # Ctrl + D # ./test.sh   ,         #        test.sh  chmod +x test.sh # chmod    (+  / - ) # '+x'       ./test.sh #     


一种友善的人正确地指出,如果在同一脚本中使用变量,则export命令是多余的,因为它将变量带到环境中,也就是说,使其在脚本外部可以访问,从而占用了额外的内存。 因此,在运行test.sh我们可以从命令行访问$str变量。

带有Termux的Bash脚本:API


让我们写一些与臭名昭著的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设备的终端中观察到了:



因此,我们编写了计划的bash脚本。 您可以将其与输出到控制台的信息(关于每个动作的执行情况)(使用echo)进行稀释,我将其留给读者。


步骤7


让我们做些有用的事


比较有用


我们制定职权范围
启动后,应用程序应将文件中的随机行放在剪贴板上,并通过弹出消息对此进行通知。


我们将以bash脚本为基础,使用Python例程从文件中提取随机行。 让我们制定一个脚本工作计划:


  1. 运行子程序
  2. 将例程的结果传输到剪贴板
  3. 显示弹出消息

我们将决定目录和应用程序文件的名称:


  • 主目录中的rndstr文件夹
    • 源-我们将从中提取行的文件
    • rndstr.py-从源文件向控制台输出随机行的例程
    • rndstr.sh-脚本文件

我们创建应用程序目录,并移入其中,然后在其中创建文件。


可以使用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我们在剪贴板上得到了一个随机格言,例如可以用于对应。


所以我们至少写了一些有用的东西。 比较有用。


聚苯乙烯


在最后一步中,我故意不提供屏幕截图,也没有详细分析某些操作,只写文件的内容,以便读者有机会自己工作。


最初,我计划在本系列中展示如何使用nmap,sqlmap,但没有我,已经有很多关于此主题的文章。 如果您希望我继续“逐步完成Termux”,则下面有一项调查,您可以在评论中提出其他建议。

Source: https://habr.com/ru/post/zh-CN445868/


All Articles