📚 Termux 无 Root 学习开发系列
当前进度:阶段一 · 1/28
阶段一:环境搭建与终端基础
01 Termux 简介与安装(当前篇)
02 包管理与终端基础
03 共享存储与文件管理
04 Vim/Neovim 与 tmux 终端工作流(上):Neovim 编辑器基础
05 Vim/Neovim 与 tmux 终端工作流(下):tmux 多窗口工作流
阶段二至九共 24 篇,后续持续更新
01 Termux 简介与安装:从安装到配置优化
无需 root、无需刷机,从安装到配置优化,把手机变成 Linux 开发环境
读完本篇你将能:理解 Termux 的定位与核心能力,从 F-Droid 正确安装 Termux 及全套配套 App,完成首次启动初始化、配置优化,并了解 Android 系统对 Termux 的限制与应对方案。
📑 本文目录
01什么是 Termux:手机里的 Linux 平行宇宙
02从哪里下载:F-Droid vs Play Store
03Termux 全家桶:6 个配套 App
04首次启动与初始化:从零到就绪
05换源加速:告别龟速下载
06界面定制:软键盘快捷键与配色
07Android 无 Root 六大限制详解
08后台保活三件套:让 Termux 长期运行
01 什么是 Termux:手机里的 Linux 平行宇宙
Termux 是一个 Android 终端模拟器,自带完整的 APT 包管理器。它不需要 root 权限,不需要刷机,不需要解锁 Bootloader——安装一个 App 的功夫,你的手机就多了一台 Linux 计算机。
如果把 Android 系统比作一栋精装修的房子,日常用的 App 是客厅里的家具和电器,那 Termux 就是给你一把通往地下室的钥匙——那里有一整间工具房,从螺丝刀到 CNC 机床应有尽有,随你折腾,而且绝不会弄乱楼上的装修。
它的底层原理并不复杂:Termux 运行在 Android 的应用沙箱中,利用 proot 技术模拟出一套完整的 Linux 文件系统目录树。你安装的所有软件包都存放在 /data/data/com.termux/files/usr 目录下,与 Android 系统完全隔离。这意味着你在 Termux 里做的任何操作,都不会影响手机的正常运行。
在这个"地下室"里,你能做到的事情远超想象:
•安装 Python、C/C++、Node.js、Go、Rust 等编程语言环境
•用 SSH 远程管理服务器,或者把手机本身变成 SSH 服务器
•通过 proot-distro 安装完整的 Ubuntu/Debian/Arch 发行版
•调用手机摄像头、GPS、传感器等硬件
•运行本地 AI 模型推理(llama.cpp)和 RAG 系统
•搭建 Gitea 代码托管、Telegram Bot、Web 爬虫等服务
💡 小贴士
Termux 与那些"Linux 模拟器"App 的本质区别在于:它不是在模拟器里跑一个精简版 Linux,而是直接在 Android 的 Linux 内核上运行真实的 Linux 程序。你的手机 CPU 架构是 arm64,Termux 里的所有软件包也是 arm64 原生编译的,性能几乎无损耗。
02 从哪里下载:F-Droid vs Play Store
这是新手最容易踩的第一个坑。Termux 曾经在 Google Play Store 上架,但早在 2020 年就已停止更新维护。Play Store 上的版本停留在极旧的 0.101,缺少大量功能更新和安全补丁,很多软件包根本无法安装。
官方推荐的下载渠道是 F-Droid——一个专注于自由开源软件的 Android 应用商店。F-Droid 上的 Termux 始终保持最新版本,而且配套的 Termux:API、Termux:Widget 等插件也一应俱全。
| 对比项 |
F-Droid |
Play Store |
| 版本 |
最新版(持续更新) |
0.101(2020年停更) |
| 配套插件 |
全部可用(6个) |
部分缺失 |
| 软件源 |
官方源,包最新 |
源已废弃,大量包安装失败 |
| 推荐度 |
★★★★★ |
★☆☆☆☆ |
如果你无法访问 F-Droid,也可以在 GitHub 搜索 "termux/termux-app" 的 Releases 页面直接下载 APK 安装包,效果相同。
⚠️ 常见错误
从 Play Store 安装 Termux — 版本过旧,pkg install 会报错 "Unable to locate package"
✓ 正确:先卸载 Play Store 版本,再从 F-Droid 重新安装。注意:卸载会清除所有数据,请先备份。
03 Termux 全家桶:6 个配套 App
Termux 不是一个人在战斗——它有 6 个配套 App,各自承担不同职责。全部从 F-Droid 安装,建议在安装主 App 后一并装好,避免后续来回切换。
必须
Termux
主终端 App,一切的基础。提供终端界面、APT 包管理器、Linux 文件系统。
必须
Termux:API
让 Termux 调用手机硬件:拍照、GPS 定位、发送短信、读取传感器、TTS 语音、手电筒等 40+ 命令。需要配合 pkg install termux-api 使用。
推荐
Termux:Widget
在手机桌面添加快捷方式,一键执行 Termux 脚本。放个"一键备份"按钮在桌面上很实用。
推荐
Termux:Boot
手机重启后自动执行脚本。配合 SSH 服务实现开机自启,手机就是一台 7×24 在线的微型服务器。
可选
Termux:Styling
终端字体和配色方案管理。长按屏幕 → More → Select color scheme 即可切换主题。
可选
Termux:Float
浮动窗口终端,可以覆盖在其他 App 上方使用。边看教程边敲命令很方便。
可选
Termux:Tasker
与 Tasker 自动化 App 联动。到达指定位置自动执行脚本、收到特定短信触发操作等。需额外购买 Tasker App。
💡 小贴士
安装顺序建议:先装 Termux 主 App,再装 Termux:API 和 Termux:Widget,最后按需装 Boot/Styling/Float/Tasker。所有 App 都必须从同一渠道(F-Droid)安装,混装会导致签名不匹配无法联动。
04 首次启动与初始化:从零到就绪
安装完成后,打开 Termux。你会看到一个简洁的终端界面,光标闪烁等待输入。此时需要执行几个初始化步骤,让环境进入可用状态。
第一步:更新软件包列表
首次启动必须更新软件源索引并升级所有已安装包,确保后续安装的软件是最新版本:
Bash
pkg update && pkg upgrade
执行后你会看到类似输出:Reading package lists... Done → Building dependency tree... Done → 一系列包被升级。首次更新可能需要 1-2 分钟,取决于网络速度。如果提示 FAILED,说明默认软件源连接受限,后面会讲如何换国内镜像。
第二步:验证环境——打印 Hello
用最简单的命令确认终端工作正常:
预期输出:Hello Termux
第三步:安装第一个软件包
试试安装 Python,验证包管理器是否正常工作:
Bash
pkg install python
python --version
预期输出:Python 3.14.x(具体版本取决于当前 Termux 源的最新包)。看到版本号就说明 Python 环境已经就绪。
第四步:获取存储访问权限
Termux 默认只能访问自己的沙箱目录。要读写手机的 Downloads、相册等共享存储,需要授权:
执行后系统会弹出权限请求对话框,点击"允许"。授权成功后,家目录下会出现 ~/storage/ 目录,验证一下:
预期输出:shared downloads dcim pictures music movies ——这些是指向手机各存储目录的软链接。其中 downloads 对应手机的下载目录,dcim 对应相册。
第五步:查看你的用户名
Termux 的用户名不是你设置的,而是 Android 自动分配的。记住它,后续 SSH 连接时会用到:
预期输出类似:u0_a456 ——每台设备的用户名不同,格式是 u0_a 加一串数字。这个用户名后面配置 SSH 服务时会用到。
💡 小贴士
在 Termux 中输入命令时,如果需要 Ctrl、Alt、Tab 等修饰键,可以使用屏幕键盘上方的快捷键栏。VolDown + 字母键可以模拟 Ctrl+字母。例如 VolDown+C 等于 Ctrl+C 中断当前命令,VolDown+D 等于 Ctrl+D 发送 EOF。
05 换源加速:告别龟速下载
前面 pkg update 可能速度很慢甚至超时——因为默认软件源在国外。国内用户强烈建议换为清华或中科大镜像,下载速度可从几十 KB/s 提升到几 MB/s。
Termux 提供了交互式换源命令,推荐新手使用:
执行后会弹出蓝色交互界面,用方向键选择镜像源。推荐选择 "Mirrors by Tsinghua University"(清华源)或 "Mirrors by BFSU"(北京外国语大学源),回车确认即可。
如果交互界面不好操作(手机屏幕小),也可以手动编辑源文件:
Bash
# 查看当前源
cat $PREFIX/etc/apt/sources.list
# 换为清华源
sed -i 's@https://packages.termux.org@https://mirrors.tuna.tsinghua.edu.cn/termux@g' $PREFIX/etc/apt/sources.list
# 更新索引验证
pkg update
如果 pkg update 速度明显提升(几百 KB/s 以上),说明换源成功。
⚠️ 常见错误
手动用 vim 编辑 sources.list 时改错路径 — 路径变量 $PREFIX 展开为 /data/data/com.termux/files/usr,如果写错会导致源丢失
✓ 正确:始终使用 $PREFIX 变量而非硬编码路径,或直接用 termux-change-repo 交互式换源。
06 界面定制:软键盘快捷键与配色
在手机上用终端,最大的挑战是没有物理键盘。Termux 的解决方案是音量键 + 字母键组合,模拟 Ctrl 和 Alt 修饰键。掌握这些组合,操作效率不输桌面端。
音量下键 = Ctrl
•VolDown + C = Ctrl+C(中断当前命令)
•VolDown + D = Ctrl+D(发送 EOF / 退出 shell)
•VolDown + L = Ctrl+L(清屏,等同 clear)
•VolDown + Z = Ctrl+Z(挂起当前进程到后台)
•VolDown + W = Ctrl+W(删除光标前一个单词)
•VolDown + U = Ctrl+U(删除整行)
音量上键 = 特殊功能
•VolUp + Q = 切换到数字/符号键盘
•VolUp + E = Esc 键(Vim 中返回普通模式)
•VolUp + T = Tab 键(自动补全)
💡 小贴士
屏幕键盘上方有一排快捷键按钮(ESC、CTRL、ALT、TAB、-、/、|、→),可以直接点击使用。如果觉得碍眼,可以在 Termux 设置中调整 EXTRA_KEYS 布局。长按屏幕 → Preferences → Keyboard → Extra keys 可以自定义按键布局。
配色方案
如果安装了 Termux:Styling,长按屏幕 → More → Select color scheme 可以切换终端配色。推荐 "Solarized Dark" 或 "Dracula",长时间使用眼睛更舒适。同样路径下 Select font 可以切换字体。
07 Android 无 Root 六大限制详解
Android 系统对 Termux 的限制,就像一个严格的小区物业——你不能改承重墙(内核),不能占用公共通道(低端口),不能在半夜开派对(后台限制)。但只要了解规则并配合使用,依然能把这间"地下室"用得风生水起。
限制一:端口绑定(< 1024 不可用)
Android 不允许非 root 进程绑定 1024 以下的特权端口。这意味着 Termux 中启动的 SSH 服务用 8022 端口而不是 22,Web 服务用 3000/8000/8080 而不是 80。这是最基础的限制,所有后续服务配置都需要注意端口号。
限制二:幻影进程杀手(Android 12+,最严重)
这是无 root 用户遇到的头号问题。Android 12 引入了"幻影进程杀手"(Phantom Process Killer)机制,当后台进程的 CPU 使用量超过一定阈值时,系统会直接 kill 掉它们。典型症状是终端突然显示:
Error
[Process completed (signal 9) - press Enter]
编译大型项目(如 llama.cpp)、运行 Python 长任务时特别容易触发。好消息是,这个问题可以解决:
1Android 14+ 设备:设置 → 开发者选项 → 找到"限制子进程"或"Child process restrictions"→ 关闭
2Android 12-13 设备:连接电脑,通过 ADB 执行:
ADB Shell
adb shell settings put global settings_enable_monitor_phantom_procs false
3无电脑用户:安装 Shizuku App,通过无线调试在手机端直接执行上述 ADB 命令。搜索引擎搜索 "Shizuku 使用教程" 获取详细步骤。
💡 小贴士
小米 17 Pro 运行 Android 15,支持开发者选项直接关闭子进程限制。路径:设置 → 更多设置 → 开发者选项 → 搜索"进程"相关选项。关闭后重启 Termux 即可生效,编译和长任务不再被杀。
限制三:电池优化(后台被杀)
Android 的电池优化策略会自动杀掉"耗电"的后台 App。如果 Termux 切到后台一段时间后消失,就是这个原因。解决方法:
•设置 → 应用 → Termux → 电池 → 选择"不受限制"或"无限制"
•MIUI 额外设置:设置 → 应用 → Termux → 省电策略 → 无限制
•锁定后台:最近任务列表中下拉锁定 Termux,防止被一键清理
限制四:SELinux 文件隔离
Termux 运行在 Android 的 SELinux 强制访问控制沙箱中。你无法访问 /system、/data/data/com.other.app 等系统和其他 App 的目录。你能读写的范围仅限于 Termux 自己的数据目录和已授权的共享存储。
限制五:TUN/TAP 设备(VPN 不可用)
无 root 无法创建虚拟网络接口(TUN/TAP),因此 WireGuard、OpenVPN 等需要内核接口的 VPN 协议无法在 Termux 中直接使用。替代方案:在手机上安装 WireGuard App 或 OpenVPN Connect App,通过 Android 系统的 VpnService API 建立 VPN,Termux 的流量会自动走 VPN 隧道。
限制六:DNS 53 端口(加密 DNS 受限)
无 root 无法绑定 53 端口(DNS 标准端口)。dnscrypt-proxy 等工具只能用高端口(如 5300),无法替代系统 DNS。仅在 Termux 内部生效。
08 后台保活三件套:让 Termux 长期运行
解决了上述限制后,还需要一套"保活"方案,让 Termux 在后台长时间稳定运行——无论是跑 Web 服务、定时任务还是 AI 推理,都需要这三个工具配合。
工具一:termux-wake-lock(防 CPU 休眠)
屏幕关闭后,Android 会让 CPU 进入低功耗状态,Termux 中的长任务(编译、下载、推理)会暂停。执行 wakelock 可以保持 CPU 活跃:
Bash
# 获取唤醒锁(保持 CPU 活跃)
termux-wake-lock
# 释放唤醒锁(任务完成后执行)
termux-wake-unlock
执行后通知栏会出现 Termux 的常驻通知,表示 wakelock 已激活。也可以通过点击 Termux 通知 → "Acquire wakelock" 来手动开启。
工具二:Termux:Boot(开机自启)
安装 Termux:Boot App 后(需从 F-Droid 下载),在 ~/.termux/boot/ 目录放置脚本,手机重启后会自动执行:
Bash
# 创建开机启动脚本
mkdir -p ~/.termux/boot
cat > ~/.termux/boot/01-startup.sh << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
termux-wake-lock
sshd
EOF
chmod +x ~/.termux/boot/01-startup.sh
⚠️ 注意:安装 Termux:Boot 后必须手动打开一次该 App,让它注册开机广播接收器。脚本按文件名排序依次执行,shebang 必须使用 Termux 完整路径。
工具三:前台通知(防系统清理)
Android 对有前台通知的 App 更宽容。在长时间运行的服务脚本中加入通知,可以显著降低被杀概率:
Bash
termux-notification --title "Termux 运行中" --content "服务已启动"
💡 小贴士
保活三件套的组合策略:Termux:Boot 开机自动执行 → 脚本中先 termux-wake-lock 保持 CPU → 再 termux-notification 显示前台通知 → 最后启动你的服务(sshd/Python/Node)。这套组合拳可以让手机变成一台 7x24 小时在线的微型服务器。
✏️ 动手练习
🟢 基础验证
1. 在 Termux 中执行 pkg install sl,然后运行 sl 命令。你应该看到一个 ASCII 蒸汽小火车驶过终端——这是 Linux 世界的传统欢迎仪式。如果成功了,说明你的包管理器已完全就绪。
2. 执行 termux-change-repo 切换到清华源,然后运行 pkg install htop 并启动 htop 查看系统资源。对比换源前后的下载速度差异。
🟡 组合应用
1. 使用 pkg search 搜索 "python" 相关的包,列出所有结果。然后安装 python,运行 python -c "import this" 查看 Python 之禅。思考:搜索结果中哪些包你觉得最有用?
2. 创建一个 Termux:Boot 开机自启脚本,要求:① 自动获取 wakelock ② 发送一条"Termux 已启动"的通知 ③ 启动 SSH 服务(sshd)。完成后重启手机验证脚本是否自动执行。提示:记得先 passwd 设置密码,否则 SSH 无法登录。
🔴 开放挑战
尝试在 Termux 中执行一个长时间运行的任务(如 pkg install gcc 编译安装或 pip install numpy),期间关闭屏幕等待 5 分钟。检查任务是否被中断。如果被中断,逐项排查:幻影进程杀手是否已关闭?电池优化是否设为无限制?wakelock 是否激活?记录你的排查过程和最终解决方案。
📖 知识回顾
F-Droid 下载
6 个配套 App
pkg update / upgrade
termux-setup-storage
whoami 查看用户名
Play Store 版已废弃
termux-change-repo
VolDown = Ctrl
幻影进程杀手
端口 < 1024 不可用
termux-wake-lock
Termux:Boot 开机自启
SELinux 文件隔离
电池优化白名单
下篇预告
02 包管理与终端基础
将学习 Termux 的 APT 包管理命令、Linux 文件系统结构、Shell 基础操作(文件/管道/重定向/环境变量),以及文本搜索工具的使用。这是所有后续开发的基础,相当于拿到"地下室"的工具箱说明书。