Termux
开始
Termux是一个终端模拟器应用程序,增强了大量移植到Android操作系统的命令行实用工具。其主要目标是将Linux命令行体验带给移动设备用户,无需Root或其他特殊设置。
它是如何工作的
终端模拟器基本上是一个应用程序,通过使用系统调用execve(2)启动命令行程序,并将标准输入、输出和错误流重定向到显示器上。
大多数可用于Android操作系统的终端应用程序只能使用一组非常有限的实用工具,这些工具通常是由操作系统或其他Root工具(如Magisk)提供的。我们决定走得更远,将通常在GNU/Linux系统上可用的常见软件移植到Android操作系统上。
Termux既不是虚拟机,也不是任何其他类型的模拟或仿真环境。所有提供的软件包都是使用Android NDK进行交叉编译的,并且只有兼容性补丁,以使它们在Android上运行。操作系统不提供对其文件系统的完全访问权限,因此Termux无法将软件包文件安装到标准目录(如/bin
、/etc
、/usr
或/var
)。相反,所有文件都安装在位于以下位置的私有应用程序目录中:
/data/data/com.termux/files/usr
我们称该目录为“前缀”,通常将其称为“$PREFIX”,这也是Termux shell中导出的环境变量。请注意,该目录无法更改或移动到SD卡上,原因是:
- 文件系统必须支持Unix权限和特殊文件,如符号链接或套接字。
- 前缀路径已硬编码到所有二进制文件中。
除了前缀,用户还可以将文件存储在位于以下位置的主目录(或$HOME
)中:
/data/data/com.termux/files/home
但文件系统不是与传统Linux发行版的唯一区别。有关更多信息,请阅读与Linux的差异。
我可以用Termux做什么?
Termux应用程序有许多常见用例:
- 使用Python进行数据处理。
- 在开发环境中进行编程。
- 使用时间经过验证的工具下载和管理文件和页面。
- 学习Linux命令行环境的基础知识。
- 运行SSH客户端。
- 同步和备份文件。
当然,使用并不局限于上面列出的主题。我们的存储库中有1000多个软件包。如果这些软件包没有您想要的内容,您可以编译自己的软件 - 我们有各种构建工具,包括用于C、C++、Go、Rust等语言的编译器。常见语言的解释器,如NodeJS、Python、Ruby也是可用的。
请注意,Termux不是Root工具,除非您足够熟练地突破Android操作系统的安全性,否则不会给您Root权限。
是否需要Root权限
通常情况下,Termux不需要设备Root。事实上,它主要面向非Root用户。
您可能想要Root您的设备以便于:
- 修改设备的固件。
- 操纵操作系统或内核的参数。
- 非交互地安装/卸载APK。
- 对设备上所有文件系统进行完全读/写访问。
- 直接访问硬件设备,如蓝牙/Wi-Fi模块或串行线(例如,访问调制解调器)。
- 在Android上安装Linux发行版,通过
chroot
(不是proot
!)或容器化。 - 通常完全控制您的设备。
否则,Root权限并不是必要的,而且它可能带来更多坏处而不是好处。
提示
以下是如何使用Termux并生存的基本提示:
- 学习shell脚本编写!
- 始终保持软件包更新!定期运行命令
pkg upgrade
,或者至少在安装新软件包之前运行该命令。不更新软件包或将其降级会取消您的保修。 - 始终备份!没有备份,如果出现问题,您可能无法回滚。请注意,软件开发人员应该注意备份使用的编译器、解释器或依赖项的deb文件,因为Termux不提供旧的软件包版本,它是一个滚动发布。查看Termux备份以获取备份和恢复信息。
- 不要执行您不了解的东西!审查从互联网下载的脚本。始终考虑您在终端中输入的内容。
- 仔细阅读终端中打印的所有内容!理解信息消息有助于解决可能出现的问题。