Termux快速起步¶
Termux是一个移植到Android系统的终端模拟程序,集成了大量的命令行工具。Termux目标是为移动设备提供Linux命令行使用体验而无需root设备或特殊设置。
工作原理¶
终端模拟器(terminal emulator)是通过使用系统调用 execve
来加载命令行程序的应用,并且重定向标准输入,输出以及错误的数据流到显示屏幕。大多数在Android上提供的终端应用都是功能有限,通常由操作系统提供,或者由root工具如Magisk提供。Termux则是进一步提供了大量的GNU/Linux软件给Android。
Termux不是虚拟机,也不是模拟环境。所有提供的软件包都是使用 Android NDK 进行交叉编译,并且采用了兼容补丁以便能够在Android上工作。由于Android操作系统不提供完全访问文件系统的权限,所以Termux不能在标准目录下安装,例如 /bin
, /etc
, /usr
或者 /var
,所有文件都是位于私有应用目录,位于: /data/data/com.termux/files/usr
Termux使用了 $PREFIX
环境变量来引用上述目录,需要注意这个目录不能修改或者迁移到SD卡:
文件系统必须支持unix权限,以及特定的软连接或sockets
prefix目录已经被硬编码到所有执行程序中
用户文件存储在 $HOME
环境变量设置的目录 /data/data/com.termux/files/home
Termux提供的功能¶
使用Termux可以实现很多用户侧功能:
使用Python处理数据
在开发环境进行编程 - clang, python, vim
下载和管理文件
学习Linux命令行
运行SSH客户端
同步和备份文件 - yncthing, rsync, rclone
在Termux的仓库中提供了超过1000个软件包,并且如果没有找到需要的二进制执行程序,你甚至可以自己编译 - 因为Termux提供了各种开发软件的编译器,例如C, C++, Go, Rust等,也包含了常见的解释器语言,如 NodeJS, Python, Ruby。
需要注意,Termux不是一个root工具,也不提供root权限。
root¶
通常情况下Termux不需要Android设备root,也就是说它面向的是非root用户。
不过,也可以在root过的设备上使用,提供了更多hack功能:
修改设备firmware
维护操作系统或内核的参数
无需交互就可以安装和卸载APKs
具备访问整个系统的读写权限
能够直接访问硬件设备
在Android上通过
chroot
或容器化来安装一个Linux发行版完全控制Android设备
一些Tips¶
通过
pkg upgrade
可以更新系统建议经常备份数据
在执行下载的脚本之前,务必检查: 不要运行不了解的任何程序,否则可能破坏系统
仔细关注屏幕输出,脚本执行的提示会帮助解决很多问题