在 Linux 终端中,复制整行(即复制当前光标所在的整行命令)的操作取决于你使用的 Shell 类型(通常是 Bash 或 Zsh)以及你使用的 编辑器模式(默认是 Emacs 模式,也可以切换为 Vi 模式)。
以下是常见情况下的操作方法:
默认模式(Emacs 模式)
这是大多数 Linux 发行版(如 Ubuntu、CentOS)的默认设置。
- 复制整行:
- 将光标移动到行首:按
Ctrl + A - 复制到行尾:按
Ctrl + K(这会删除到剪贴板) - 粘贴:按
Ctrl + Y
- 将光标移动到行首:按
⚠️ 注意:
Ctrl + K是“杀死”(kill)命令,它会将文本放入剪贴板缓冲区,而不是系统剪贴板,你只能在当前终端会话中用Ctrl + Y粘贴,不能粘贴到其他图形界面应用中。
- 更安全的“仅复制”方式(不删除原行)
:
- 将光标移到行首:
Ctrl + A - 标记从行首到行尾:
Ctrl + Shift + K(在某些终端模拟器中支持)或手动用鼠标选中复制。 - 或者使用
fc命令获取上一条命令并复制(见下文高级技巧)。
- 将光标移到行首:
使用 Vi/Vim 编辑模式(推荐用于熟悉 Vim 的用户)
如果你习惯使用 Vim,可以将 Shell 切换到 Vi 模式:
set -o vi
之后:
- 进入命令模式:按
Esc - 复制整行:按
yy - 粘贴:按
p
高级技巧:复制上一条命令
如果你想复制上一条执行过的命令,可以使用以下方法:
使用 fc 命令(最常用)
fc -ln -1
-l:列出命令
-n:不显示行号-1:只取最后一条命令
然后你可以用鼠标选中输出内容,或将其重定向到文件:
fc -ln -1 > /tmp/last_command.sh
使用 history 命令
history | tail -n 1 | awk '{for(i=2;i<=NF;i++) printf "%s ", $i; print ""}'
这会提取上一条命令的完整内容(不包括时间戳和行号)。
在 Bash 中使用 扩展
虽然不能直接“复制”,但你可以直接重用:
- 执行上一条命令:
- 用 sudo 执行上一条命令:
sudo !! - 用 vim 编辑上一条命令:
vim !
图形界面终端(如 GNOME Terminal、Konsole、iTerm2)
如果你使用的是带有图形界面的终端模拟器:
- 复制:选中整行后按
Ctrl + Shift + C - 粘贴:按
Ctrl + Shift + V
✅ 推荐:在图形终端中,直接用鼠标拖选整行内容,
Ctrl + Shift + C复制,是最简单、最通用的方式,且能复制到系统剪贴板,方便粘贴到其他应用。
总结建议
| 场景 | 推荐操作 |
|---|---|
| 图形终端(如 Ubuntu 桌面) | 鼠标选中整行 → Ctrl + Shift + C 复制 |
| 纯文本终端(SSH 连接) | Ctrl + A → Ctrl + K → Ctrl + Y(注意会删除原行) |
| 想复用上一条命令 | 使用 fc -ln -1 或 |
| 习惯 Vim 操作 | 切换到 Vi 模式:set -o vi,yy 复制,p 粘贴 |
根据你的使用环境选择最合适的方法即可。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/486144.html



