在 macos 终端中,command+c 仅在无命令运行时可复制选中文本;常用复制方式是用 pbcopy 命令管道输出,如 pwd | pbcopy;远程复制推荐服务端支持 osc52 协议。
在 macos 终端里,直接用 command+c 无法复制文本——它默认会中断正在运行的命令。真正把终端输出内容复制到系统剪贴板,得靠系统内置工具 pbcopy。
用 pbcopy 把命令输出复制到剪贴板
这是最常用、最可靠的方式:把任意命令的输出结果“管道”给 pbcopy,它就会自动写入系统剪贴板。
-
复制当前目录路径:
pwd | pbcopy -
复制文件内容(比如 SSH 公钥):
cat ~/.ssh/id_rsa.pub | pbcopy -
复制上一条命令的输出(含错误):
history 1 | tail -n1 | pbcopy
手动选中文本后复制(适合少量内容)
如果只是想复制几行已显示在终端里的文字,可以:
- 用鼠标拖选目标文本(不需按住任何键)
- 松开鼠标后,直接按 Command+C ——此时会生效,因为没在执行命令
- 注意:不能在命令运行中(比如
ping持续输出时)用这个方式,否则会触发中断
从远程服务器复制内容回本地 Mac
通过 SSH 连到 Linux 或其他 macOS 服务器时,普通复制无效。解决方案有两个:
-
服务端支持 OSC52 协议(推荐):使用
printf "\e]52;c;$(base64 -w0 ,现代终端(如 iTerm2、macOS Terminal 2.1+)可自动同步到本地剪贴板 -
本地转发(简单粗暴):在本地终端运行
ssh user@host "cat /path/to/file" | pbcopy,内容经本地 shell 处理后再进剪贴板
验证是否成功复制
执行完 pbcopy 后,可以马上测试:
- 打开 TextEdit 或 Notes,按 Command+V 粘贴
- 或在终端输入
pbpaste,它会把剪贴板内容原样打印出来











