Termux应用详解

起因

几个月前学了python,写了几个练手的爬虫,要运行很久才能下载到足够的数据,挂机一夜似乎有点费电,我还心疼我的电脑呢。就一直想拿一个安卓手机来跑,当时只当个想法,并没有动手实施。结果最近恰逢老爸换手机,于是旧手机,一个红米note2被我拿来了,于是开始了我的折腾之旅。我从未接触过linux,但幸好这方面的教程已经很多,通过大量搜索和实践,走了很多弯路,总算能完成预期目标了。

开始前

最好把手机root,虽然Termux不需要root权限也可以运行,但root后可以用管理员权限,cd 进入手机存储目录,后面可以干的事更多。
我把手机刷了miui7的开发版,反正也不会拿来用,随便刷。
root后,推荐装一个re explorer,用来和电脑传文件。因为电脑没法直接访问手机内置空间。

为什么是Termux

Termux是我们的主角,相当于安卓上的linux虚拟机(这样说肯定不对,但权且这么理解吧),下载地址Google Play-Termux
一开始我听说GNU Root Debian功能更加强大,尝试安装这个花了很长时间。在google play上下载apk安装后,每次打开都闪退,底下提醒GNU Root not yet installed...我按照提示,以为还要安装GNU Root,正好google play上也有一个这名字的app,但安装上后仍无法运行。后来搜索发现,有人称此app无法在联发科CPU的手机上运行(贴吧-实战红米手机安装Debian系统),不巧红米note2就是联发科的,倒霉...
所以我就选择了Termux,可以说是因为没办法,但事实证明,Termux很强大,绝对够用。

Termux的安装

我是按照知乎-如何让自己在电脑上写的python脚本在手机或安卓系统上运行呢?上的回答来安装并配置Termux和python环境的。基本就是:

1. 更新包

apt update
apt upgrade

2. 修改源

export EDITOR=vi
apt edit-sources

在vi编辑器里把第二行替换成以下内容(清华镜像源)

deb [arch=all,arm] http://mirrors.tuna.tsinghua.edu.cn/termux stable main

在vi编辑器里,输入第一个i进入编辑模式(插入),下面会给出提示“INSERT”,此时再打字就是在光标左边插入字符。等修改完毕后,按住音量,同时输入e,即可退出编辑模式。再输入:wq保存并退出vi。

3. 安装python3与相关模块

# 安装python3.6
apt install python python-dev

我目前仅会爬虫,因此暂时只安装了几个用得到的模块。

# 安装爬虫相关模块

# beautifulsoup, requests
pip install BeautifulSoup4 requests

# lxml
apt-get install clang
apt-get install libxml2 libxml2-dev libxslt libxslt-dev
pip install lxml

使用Termux

安装成功后就可以正常使用python了,有几点技巧记下来。


运行python

1. 管理员身份

默认是没有管理员权限的,在执行一些敏感操作时会提示Permission denied,或者在cd到一些目录时会提示无此文件夹。
输入su进入管理员身份,第一次进入时仍会提示Permission denied,但此时Termux已经申请了获取手机的root权限,进入安全中心的root权限管理,给Termux通过即可。此时再次su就可以成功了。

su进管理员身份

在管理员身份下,输入exit可回到普通用户身份。
但Termux环境的根目录是/data/data/com.termux/files,而在su后的PATH环境变量是/sbin/su:/system/bin,很多命令就用不了(贴吧-Termux下root权限问题的解决办法),比如此时就无法进入python。
此时无法打开python

但按照上个网页的说法,tsu命令修复了PATH变量,但需要先安装。

# 安装tsu
pkg install tsu

但我尝试了一下,tsu后执行python仍提示未安装,我没有继续往下试,也许能行?

tsu提示没有安装python

2. 终止程序运行

我们都知道用Ctrl+C终止程序,在Termux中,需要使用音量+c

3. 输入法

我用的谷歌输入法,一些常用的特殊符号可以在qwerty键盘上长按得到,比较方便。也有人推荐黑客键盘,试了下,不能输入中文,在别的地方还得切换,麻烦。
但不管用什么输入法,手机上敲代码都太反人类了,下面介绍一下通过笔记本键盘连接Termux的方法。

远程键盘

我个人试验成功了两种方法,都无需在电脑上安装软件,可以在命令行中运行。但为了简便起见,推荐安装XShell5。

1. Remote Keyboard

通过Telnet方式与电脑通讯,下载地址Google Play-Remote Keyboard几乎无需配置,极为简便
软件安装后打开,即显示以下界面

Remote Keyboard界面

此时点击上方Select Keyboard,将默认输入法选为Remote Keyboard。
然后在电脑上进入命令行,输入telnet [host] [port]。比如按照上图,在命令行输入:

telnet 192.168.1.103 2323

即可进入telnet界面,此时在该窗口按下的任何字符都可以在手机的输入界面上显示。
如果上句报错telnet不是有效命令,按照百度经验-Win7如何开启Telnet服务所说开启服务。
但此方法有几个严重缺点:

  1. 最重要的,会掉线,而且有时掉线后无论如何都无法重新连接上。
  2. 有延迟,偶尔掉包。
  3. 不支持组合键。

2. SSH

这个方法比较高级,但配置很麻烦,我弄了一天。当然有linux基础的人能很快上手,不懂的按照我的步骤,也能很快配置完成。
手机上操作:

# 安装openssh
apt install openssh

安装完成后会在手机的data\data\com.termux\files\home下创建.ssh文件夹,里面有文件authorized_keys,用于储存可以通过验证的机器公钥。
电脑上操作:
在电脑命令行输入ssh,看是否报错。如果报错,下载并安装OpenSSH,配置环境变量。确保命令行输入ssh后正常运行。
命令行输入

ssh-keygen -t rsa

执行完成后,会在C:\Users\username\.ssh文件夹下创建三个文件id_rsa, id_rsa.pub, known_hosts。分别是私钥、公钥和连接记录,第一个文件不要泄露。
然后通过各种方式将id_rsa.pub文件复制到手机的data\data\com.termux\files\home\.ssh文件夹内。有人用adb push,我不会,用的复制粘贴大法...复制到电脑能访问到的sd卡中,再在手机上用re explorer移动到目标文件夹(手机必须root才可以做到)。
手机上操作:
首先cd到.ssh文件夹,然后将公钥内容复制到验证文件中

# 复制公钥内容到验证文件
cat ./id_rsa.pub >> authorized_keys

再获取用户名,比如说u0_a118

whoami

还需要保证.ssh文件夹的权限为700(即rwx------),而且用户为u0_a118。
通过执行ll -a命令可以查看当前路径下的所有文件和文件夹权限,但不能在普通用户权限下执行该命令。

# 获取管理员权限
su
# 进入home目录
cd data\data\com.termux\files\home
# 查看当前路径文件和文件夹权限
ll -a
执行后如图,红框内为.ssh文件夹权限和用户

若结果不对,则需要修改

# 修改权限
chmod 700 .ssh
# 修改用户和组
chown u0_a118:u0_a118 .ssh

同样查看authorized_keys文件权限是否是600(rw-------),用户是否正确。不是的话按上述方法修改。
此时已经设置完成,通过sshd命令即可开启ssh服务器。

# 指定端口9000
sshd -p 9000

电脑上操作:
命令行输入ssh [username]@[host] -p [port]即可连接,比如

ssh u0_a118@172.16.2.11 -p 9000
成功连接到Termux!

此后,在电脑命令行输入指令,手机即可执行(但无任何显示),甚至手机可以熄屏。完美!
最后,以成功运行以前写的爬虫程序图结尾。


电脑通过SSH远程手机执行爬虫
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352