Android 上的终端与 SSH:完整指南
了解如何使用 PocketCode 的内置终端——本地 BusyBox shell 加上带 SFTP 和 端口转发的 SSH 客户端——用于编写脚本和连接远程服务器。
Android 上的终端与 SSH
PocketCode 最强大的工具之一就是它的集成终端:一个用于本地脚本的
shell(BusyBox ash),外加一个带 SFTP、用于远程服务器的 SSH 客户端。连接界面里还有串口和 VNC/RDP 面板,
但在此版本中无法使用(VNC/RDP 能连接,却不会绘制桌面),也没有 Telnet 界面。
SSH:把服务器装进口袋
快速设置
SSH 连接是在 PocketCode 的连接界面中管理的,而不是作为 shell 命令输入。你添加一个主机, 选择密码或密钥认证,其余的都由应用处理:
- 在应用内的密钥管理器中生成 Ed25519、RSA 或 ECDSA 密钥(或保存在 Android Keystore 中、绑定设备的密钥),或导入已有的密钥。
- 像往常一样,把它的公钥添加到服务器的
~/.ssh/authorized_keys中。 - 将连接保存为收藏,只需轻点一下即可连接。
无需记忆 ssh/ssh-keygen 命令行——密钥生成、主机和端口转发规则全都在 SSH 界面中。
SSH 功能
- 认证:密码、密钥对(Ed25519、RSA、ECDSA)或键盘交互式
- 端口转发:用本地和远程规则访问远程服务(动态 SOCKS 选项并不是真正的 SOCKS 代理)
- 内置 SFTP:无需离开应用即可浏览、新建文件夹、重命名和删除
- 多会话:多个同时连接(Pro;免费版一次运行一个)
- 保活:每 30 秒发送一次数据包,让空闲会话保持打开
示例:从手机部署
当你从连接界面连上服务器后,你会得到一个真正的远程 shell——那台服务器上安装的任何工具 都触手可及:
# 你现在通过 SSH 连接在远程服务器上
cd /var/www/myapp
git pull origin main
npm install --production
pm2 restart all
# 验证一切正常
pm2 status
curl -s localhost:3000/health | jq .
这些命令运行在远程机器上,而不是你的手机上——部署工具链位于你所连接的那台服务器上。
本地 shell
本地终端是一个真正的 POSIX shell——BusyBox 1.34.1 ash(在必要时回退到 Android 的 sh)——
其范围限定于你的项目工作区(它以应用自身的权限运行:并不是沙箱)。它自带标准的 Unix 工具箱(373 个 BusyBox applet),无需额外安装:
# 内置 coreutils 和文本工具
ls -la
grep -rn "TODO" .
cat data.json | sed 's/old/new/g' > out.json
find . -name "*.log" | xargs tar czf logs.tgz
它非常适合文件处理、shell 脚本、用管道串联工具,以及在提交前准备项目——全部在设备上完成。
运行代码:使用编辑器的运行按钮
node 在 shell 的 PATH 中(node 文件.js,不带原生插件),但 npm 和 npx 并未内置,也没有 python 或 go 命令。相反,PocketCode 通过编辑器的
运行按钮来运行代码,背后由设备端运行时支持:JavaScript 和 TypeScript 运行在内置的 Node.js 上,C 使用 TCC,
Python、Ruby 和 PHP 是 WebAssembly 运行时,另有功能有限的 Java 解释器和 Kotlin,Lua、Go 和 Rhai 则通过可选包提供。打开一个文件,点击运行,输出便会流式显示到控制台。
完整介绍请参见运行 16 种语言的代码。
效率提示
1. 实用别名
用终端的别名管理器为你常用的 shell 命令设置简短别名:
alias ll="ls -la"
alias gl="grep -rn"
alias h="cat *.log | tail -n 50"
(Git 操作通过 PocketCode 内置的 Git 界面进行,部署则通过到你服务器的 SSH 连接完成——
而不是本地的 git/ssh 二进制程序。)
2. 端口转发以访问远程服务
需要访问一个只在远程主机上监听的数据库或服务?在连接界面中为 SSH 连接添加一条
端口转发规则(免费版包含一条)——例如把服务器的 5432 转发到本地端口。隧道建立后,
把 PocketCode 的数据库模块指向该本地端口,即可浏览和查询远程的
PostgreSQL,全程都在加密的 SSH 会话中进行。
3. 使用 SFTP 传输文件
内置的 SFTP 浏览器让你可以:
- 浏览服务器文件系统、新建文件夹,以及重命名或删除项目(也可批量)
- 在双窗格视图中并排查看手机和服务器(在窗格之间拖动复制目前还不能用)
- 用附加文件把手机上的文件发送到远程会话,它会上传到
/tmp
下载以及在编辑器中编辑远程文件,在此版本的 SFTP 视图中都不可用。
终端主题
内置 12 个终端主题:5 个免费(PocketCode、PocketCode Dark、PocketCode Light、Dark 和 Light),7 个为 Pro。终端分屏和广播输入同样是 Pro。
免费版 vs Pro
| 功能 | 免费 | Pro |
|---|---|---|
| SSH 主机 | 1 | 无套餐上限 |
| 同时会话 | 1 | 无套餐上限 |
| SFTP | ✅ | ✅ |
| 端口转发 | 1 | 无套餐上限 |
| 本地 shell(BusyBox) | ✅ | ✅ |
| 终端主题 | 5 | 12 |
PocketCode 的终端让你可以管理服务器、通过 SSH 部署应用并进行本地脚本编写—— 这一切都在你的 Android 设备上完成。要运行代码,请把它与编辑器的设备端运行时 搭配使用。免费开始,随时随地工作。
常见问题
可以在 Android 上使用 Linux 终端吗?
可以。PocketCode 内置了一个终端——一个本地 shell(BusyBox 1.34.1 ash,373 个 applet),带标准 Unix 工具——外加带 SFTP 和端口转发的 SSH 客户端,用于远程机器,全部在手机上完成。
它是一个完整的 Linux 发行版吗?
不是。本地 shell 是 BusyBox ash(ls、grep、sed、awk、find 和 tar 等 coreutils 和工具),其范围限定于你的项目工作区。它非常适合编写脚本和操作远程服务器,但它不是一个完整发行版:没有包管理器,也没有 git、python 和 ssh 客户端。
它有 SSH 和 SFTP 吗?
有——一个 SSH 客户端,支持密码、密钥(RSA、Ed25519、ECDSA,或保存在 Android Keystore 中的密钥)和键盘交互式认证,另有 SFTP 浏览器和端口转发。要从手机上传文件,请使用「附加文件」,它会发送到 /tmp;在 SFTP 双窗格之间拖动目前还不会复制任何内容。连接界面里有串口和 VNC/RDP 面板,但在此版本中无法使用,也没有 Telnet 界面。
可以在终端里运行 Python 或 Node 吗?
node 在 shell 的 PATH 中,所以你可以在终端里运行它;npm 和 npx 并未内置。Python 和其他语言是从编辑器的运行按钮执行的,背后由设备端运行时支持。终端用于 shell 脚本编写和连接远程机器。
终端能离线工作吗?
本地 shell 在设备上运行。应用登录时需要联网;已有登录会话时打开应用可离线使用,之后本地 shell 在本地工作,而 SSH 需要网络只是因为它要访问远程服务器。
终端与 SSH