仅 205KB 的 Linux 模拟神器——Termux
本文最近更新于 2019 年 10 月 15 日「 星期二 」
Termux 是一个基于 Android 平台的 Linux 模拟器。是一个安装包仅 205KB [V0.75]的普通的手机 App,可以直接从应用商店下载安装,支持免 root 运行,安装好后无需特别设置,打开即用。
下载地址
- F-Droid: f-droid.org/en/packages/com.termux/
- Google Play: play.google.com/store/apps/details?id=com.termux
应用截图
(以下截图来自官网)
相关网站
- 官网:termux.com
- GitHub: github.com/termux/termux-app
基本操作
打开 Termux 是一个命令行界面:
- 长按屏幕将显示菜单项(包括复制、粘贴、更多),此时屏幕也会出现可选择的复制光标
- 从左向右滑动将显示隐藏式导航栏,可以新建、切换、重命名会话 session 和调用弹出输入法
另外,常用的手机输入法并没有功能键——无法输入 esc、ctrl、alt、tab…
Termux 提供的解决方案是:
- 音量 - 键模拟 ctrl,所以按下音量 - 键 + c 即等效于 ctrl+c
- 音量 + 键 + q 显示扩展键(也可以从左向右滑动,显示隐藏式导航栏,然后长按左下角的 KEYBOARD):esc、ctrl、alt、tab、-、/、|
有多种方式提高输入效率:
快速上手
其文件系统相对于安卓根目录的路径如下:
- 根目录为
/data/data/com.termux/files/
- 其用户 HOME 目录在
/data/data/com.termux/files/home/
- Linux 的
/bin
,/etc
等目录在/data/data/com.termux/files/usr/
熟悉 Linux 的朋友可能会发现,这个 HOME 路径看上去不太一样。另外为了方便,Termux 提供了特殊的环境变量 PREFIX
和 TMPPREFIX
。
和 Linux 类似,Termux 有自己的软件源,可通过 cat $PREFIX/etc/apt/sources.list
查看。
「可选操作」使用如下命令自动替换官方源为清华大学 TUNA 镜像源3:
这样就将 Termux 的软件源切换到了清华大学镜像。
之后可以继续安装软件,例如:
需要说明的是 Termux 除了支持 apt 命令外,还在此基础上封装了 pkg 命令,例如:
提升效率
SSH 接入 Termux
由于 sshd 是包含在 openssh 包中的,因此我们首先需要在 Termux 中安装 openssh:
安装好之后,我们需要通过 sshd
命令手工启动 sshd。
可以使用下面命令来验证 SSH 服务是否开启(需要指出的是,sshd 监听的是 8022 端口而不是 22 号端口):
如果 SSH 服务有问题,可以检查 sshd 日志,在 Termux 上执行:
确保 SSH 服务正常后,接下来就可以准备在 PC 等其他终端上面登陆 Termux 了:
- 首先,通过
whoami
命令取得用户名4 - 输入
passwd
修改密码(passwd
命令可以通过pkg install termux-auth
安装) - 保持 Termux 和其他终端在同一网络
- 通过
ifconfig
查看手机的 IP(ifconfig
命令可以通过安装 net-tools 包取得:apt install net-tools
)
在其他终端输入如下命令:
出现如下显示即登陆成功。
当然也可以通过密钥的方式接入 Termux,具体方法可以搜索“SSH 密钥认证”。
Jupyter Notebook 接入 Termux
通过 ifconfig
查看手机的 IP 地址备用。
安装 Jupyter Notebook:
根据上面命令的输出,在 PC 等终端浏览器中输入 <手机 IP>:<port>
,接下来会要求输入 token,token 在 Jupyter Notebook 运行起来后的输出中可以得到。
输入 token 后,即可使用浏览器来访问 Termux,选择 Terminal
进入 Termux 的 terminal 界面,和通过 SSH 进入几乎一样。
扩展阅读:
管理员身份
Termux 支持 root 和未 root 设备使用。
手机无 root 权限
利用 proot 工具来模拟某些需要 root 权限的环境,通过以下命令安装 proot:
然后终端下面输入:
即可模拟 root 环境。在该环境下,相当于进入了 home 目录,可以很方便地进行一些配置。输入 exit
可退回到普通用户身份。
手机已取得 root 权限
安装 tsu(一个 su 的 Termux 版本),用于在 Termux 上代替 su:
然后终端下面输入 tsu
即可切换 root 用户,这时会弹出 root 授权提示,正常授予即可。同样,在管理员身份下,输入 exit
可退回到普通用户身份。
应用实例
分享一些 Termux 的使用案例,供参考。
创建软链接
通过“软链接”提升操作和使用效率。例如:
Termux:API
Termux:API 用于访问手机硬件,实现更多的可玩性,例如可以实现如下功能:
- 访问电池信息
- 获取相机设备信息
- 获取本机设备信息
- 获取设置剪贴板信息
- 获取通讯录信息
- 获取设置手机短信
- 拨打号码
- 振动设备
- 等等
需要安装 Termux:API,下载地址:Google Play
安装 Termux:API 应用后,Termux 里面必须安装对应的包才可以调用手机 API。
例如:
想要获取更多关于 Termux:API 介绍,可参考 Termux:API。
内网穿透
借助 ngrok 或者 frp 可以将通过 Termux 搭建的网站映射到外网。
环境搭建
在 Termux 中可以很方便地安装 Ruby、Python、Go、Node.js 等,也可以根据实际需求配置和运行相应的程序。
扩展阅读
-
一个输入法应用。提供一切需要的按键,帮助我们在 Android 上输入快捷键组合、特殊符号,提高 coding 和 cli 效率。下载地址 GitHub。 ↩
-
在电脑中使用浏览器连接 Termux,以支持在网页中使用 terminal。Jupyter Notebook 是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。附给初学者的 Jupyter Notebook 教程 ↩
-
参考 Termux 镜像使用帮助 ↩
-
Android 系统对每个应用都创建了一个用户便于控制权限,这些用户名大多是类似 u0_a123 的格式。 ↩
麦子(Jason),没做过英语老师的印象大使不是合格的通信工程师。
戳「这里」约。
最近更新
留言互动