Termux

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备份以获取备份和恢复信息。
  • 不要执行您不了解的东西!审查从互联网下载的脚本。始终考虑您在终端中输入的内容。
  • 仔细阅读终端中打印的所有内容!理解信息消息有助于解决可能出现的问题。