ctrl+a跳转到行首、ctrl+e跳转到行尾,是shell中稳定可靠的快捷键;home/end在tmux或ssh中常失效,而ctrl+a/e基于readline,兼容性更高。

Ctrl + A 和 Ctrl + E 是最直接、最可靠的方式:前者跳转到行首,后者跳转到行尾。几乎所有主流 shell(bash、zsh、fish)和终端模拟器(GNOME Terminal、Konsole、Alacritty、iTerm2)都原生支持,无需额外配置。
为什么不用 Home/End 键?
Home/End 在部分终端里行为不一致——比如在 tmux 或某些 SSH 会话中可能失效,或被映射成其他功能;而 Ctrl + A/Ctrl + E 是 readline 库的标准绑定,属于底层输入处理逻辑,稳定性高得多。
- 如果你在远程服务器上按 Home 没反应,大概率是终端未将该键正确传递给 shell,但
Ctrl + A几乎总能生效 - 某些键盘布局(如 macOS 的 iTerm2 默认)甚至禁用 Home/End,强制依赖
Ctrl + A/Ctrl + E
光标卡在中间却想删到行首?用 Ctrl + U 更高效
单独移动光标只是第一步;真正高频的场景是“改命令”。比如你刚输完 ls -la /var/log/nginx/,突然发现前面少了个 sudo ——此时不需要先按 Ctrl + A 再输入,直接 Ctrl + U 清空整行(从光标位置删到行首),然后输入 sudo 再粘贴原命令(Ctrl + Y)即可。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
Ctrl + U删除的是「光标到行首」,不是「整行」;所以光标位置很重要 - 如果光标在行尾,
Ctrl + U就等价于清空整行;如果光标在中间,它只删左边部分 - 误删了?立刻
Ctrl + Y粘贴回来,这个缓冲区是 per-line 的,不会被后续操作覆盖
Alt+B 和 Alt+F:按单词跳转,比方向键快一个数量级
当命令含长路径或嵌套参数(比如 curl -X POST -H "Content-Type: application/json" -d '{"id":123}' https://api.example.com/v1/users),逐字符移动效率极低。Alt + B(backward word)和 Alt + F(forward word)能精准落在每个单词边界上。
- 注意:这里的“单词”以空白符或常见符号(
/、.、-)为分隔,不是严格按字母定义 - 在 zsh 中,
Alt + B会停在https://的:前,而在 bash 中可能把整个 URL 当作一个单词——行为差异取决于 shell 的 word boundary 规则 - 想跳过整个 URL?试试
Esc + B(效果同Alt + B),或先Ctrl + A回行首再连按Alt + F
真正容易被忽略的是:这些快捷键依赖终端正确发送 escape 序列,而某些精简环境(如容器内 shell、minimal initramfs)可能没加载 readline;此时 Ctrl + A 会变成乱码或无响应——这不是快捷键错了,是 shell 根本没进编辑模式。遇到这种情况,先确认是否在 bash 或 zsh 下,且没被 set +o emacs 关闭掉。










