iSH 终端快捷键完整指南:20 个组合键让 iPhone 上的 Linux 操作更快
【免费下载链接】ishLinux shell for iOS项目地址: https://gitcode.com/GitHub_Trending/is/ish
iSH 是运行在 iOS 上的 Linux Shell,让你直接在手机上敲命令、装软件。本文整理了 20 个最常用的 iSH 终端快捷键,覆盖屏上按键、命令编辑、历史搜索与进程控制,适合使用 iOS 自带键盘或外接蓝牙键盘的 iSH 用户。
不接键盘也能用:先认识屏上四组按键
iSH 会在系统键盘上方挂一条辅助键栏,包含 Tab、Ctrl、Esc 和方向键四个部分,对应 app/TerminalViewController.m 中定义的按键按钮。其中 Ctrl 键是"开关式"的:点一下让它进入点亮状态,再按键盘上的字母,就会发出对应的 Ctrl+字母组合;再点一下 Ctrl 键取消。
| 按键 | 作用 | 什么时候用 |
|---|---|---|
| Tab | 补全命令、参数、路径 | 只输入命令前几个字母 |
| Ctrl | 与字母组合出控制键 | 需要 Ctrl+C、Ctrl+A 等快捷键时 |
| Esc | 取消当前输入或操作 | 在交互式程序中想放弃输入 |
| 方向键 ↑↓←→ | 翻历史命令、移动光标 | 复用刚执行过的命令 |
方向键发出的与普通键盘方向键相同的 ANSI 转义序列(如上箭头为\x1b[A),所以所有能识别方向键的程序都能正常工作。
编辑长命令而不必反复删重输
这些是 shell 行编辑(readline)的标准约定,iSH 只负责把按键原样转发给 Linux Shell,行为和你熟悉的终端一致。最常用的几组如下:
| 组合 | 作用 | 什么时候用 |
|---|---|---|
| Ctrl+A / Ctrl+E | 跳到行首 / 行尾 | 在命令末尾补参数 |
| Ctrl+B / Ctrl+F | 光标左移 / 右移一格 | 逐字修正拼写 |
| Alt+B / Alt+F | 光标按单词左移 / 右移 | 跳过一整个参数 |
| Ctrl+U | 删除从光标到行首 | 整条命令打错重来 |
| Ctrl+K | 删除从光标到行尾 | 只去掉命令后面的部分 |
| Ctrl+W | 删除光标前的一个单词 | 删掉刚打错的参数 |
| Ctrl+XX | 在行首与上次光标位置间切换 | 在行首行尾之间反复修改 |
| Alt+D | 删除从光标到词尾 | 删掉单词剩余部分继续输入 |
其中 Alt 开头的组合需要外接键盘并开启 Option → Meta 映射(下文设置小节会讲)。屏上键盘的按键最终都经过 app/TerminalView.m 中的insertText方法进入终端输入流,控制字符由insertControlChar拼装。
如何快速找回刚执行过的命令
- Ctrl+R:反向搜索历史。按下后屏幕出现
(reverse-i-search)提示,逐字输入关键词即可匹配到旧命令,再按一次 Ctrl+R 跳到更早的匹配项。 - 方向键 ↑ / ↓:按执行顺序逐条翻看历史,不用输入任何关键词。
- Ctrl+L:重绘并清空当前屏幕,输出一大段内容后按它能看到干净的当前行。
- Cmd+Shift+K:外接键盘用户专用,一键清空整个回滚缓冲区(滚动历史),在 app/TerminalView.m 的
keyCommands中注册,系统菜单里也会显示 "Clear Scrollback" 提示。
命令卡住时按什么键
执行tail -f、网络下载之类的命令时,终端可能长时间没有响应。这时候:
| 组合 | 效果 | 后续操作 |
|---|---|---|
| Ctrl+C | 中断当前进程,回到提示符 | 直接输入下一条命令 |
| Ctrl+Z | 挂起进程,回到提示符 | 输入fg恢复它 |
| Ctrl+D(空行上) | 发送 EOF,退出当前 shell | iSH 会自动开一个新会话 |
| Esc | 取消当前输入 | 放弃正在编辑的内容 |
值得注意的是,shell 退出后 iSH 会立刻自动启动一个全新的 shell 会话,而不是停在黑屏上——这个逻辑在 app/TerminalViewController.m 的processExited里,所以放心用 Ctrl+D 结束会话即可。
外接键盘用户:按键映射一次配好
点屏幕底部的 ⚙️ 图标进入设置,在 External Keyboard 页面可以打开几个开关,对应 app/UserPreferences.h 中的配置项:
| 设置项 | 效果 | 建议 |
|---|---|---|
| Caps Lock → Ctrl | 把大写锁定键当 Ctrl 用 | 没有 Ctrl 习惯的用户很实用 |
| Caps Lock → Esc | 把大写锁定键当 Esc 用 | 需要频繁 Esc 的场景 |
| Option → Meta | Option+字母 = Alt+字母 | 想解锁上文 Alt+B、Alt+D 等组合就开它 |
| Backtick → Esc | 把 ` 键当 Esc 用 | 习惯 macOS 终端的用户 |
| 隐藏屏上辅助键栏 | 检测到外接键盘时不再显示 Tab/Ctrl 等按钮 | 外接键盘用户更清爽 |
这些开关的界面在 app/AboutExternalKeyboardViewController.m,改完立即生效,无需重启。
只有外接键盘才有的应用级快捷键 ⌨️
除了转发给 shell 的组合键,iSH 自身还注册了一批应用级快捷键(定义在 app/TerminalViewController.m 的keyCommands中),只在接键盘时可用:
| 组合 | 作用 | 什么时候用 |
|---|---|---|
| Cmd+Shift+1~7 | 切换虚拟终端窗口(7 为当前主会话) | 开了多个终端会话时 |
| Cmd+Shift+K | 清空回滚缓冲区 | 历史输出太多时 |
| Cmd+ 或 Cmd+= | 放大终端字体 | 长时间阅读输出 |
| Cmd+- | 缩小终端字体 | 一行想塞更多内容 |
| Cmd+0 | 恢复默认字号 | 调乱了时 |
| Cmd+, | 直接打开设置 | 不想起手找齿轮图标 |
一页速记
屏上键: Ctrl 开关 + 字母 = Ctrl 组合|Esc 取消|Tab 补全|方向键翻历史 编辑: Ctrl+A 行首 Ctrl+E 行尾 Ctrl+U 删到行首 Ctrl+K 删到行尾 Ctrl+W 删词 Ctrl+XX 行首/原位切换 Alt+B / Alt+F 跳词 Alt+D 删到词尾 (需 Option→Meta) 历史: Ctrl+R 反向搜索 ↑↓ 翻历史 Ctrl+L 清屏 控制: Ctrl+C 中断 Ctrl+Z 挂起(fg 恢复) Ctrl+D 退出 shell 外接键盘: Cmd+Shift+K 清回滚 Cmd+1~7 切终端 Cmd+/-/0 调字号 Cmd+, 设置下一步建议
- 先把 Option → Meta 和 Caps Lock → Ctrl 两个映射打开,Alt 系列组合键就全部可用了,设置入口在屏幕底部 ⚙️ 图标。
- 想理解快捷键是怎么变成字符流发进 shell 的,顺着 app/TerminalView.m 的按键入口看起,终端渲染逻辑在 app/terminal/。
- 完整项目文档见 README.md;需要浏览全部源码可以执行
git clone https://gitcode.com/GitHub_Trending/is/ish后对照本文提到的文件路径查看。
【免费下载链接】ishLinux shell for iOS项目地址: https://gitcode.com/GitHub_Trending/is/ish
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考