xclip 是一个在类 Unix 系统(如 Linux)上非常实用的命令行工具,它的核心功能就是将命令行的标准输入 或文件内容,复制到 X Window 系统的剪贴板 中,反之亦然,它就是命令行与图形界面剪贴板之间的桥梁。

安装
在使用之前,你需要确保系统上已经安装了 xclip,你可以使用以下命令进行安装:
-
在基于 Debian/Ubuntu 的系统上:
sudo apt-get update sudo apt-get install xclip
-
在基于 Red Hat/CentOS/Fedora 的系统上:
sudo yum install xclip # 或者对于较新的系统 (使用 dnf) sudo dnf install xclip
-
在基于 Arch Linux 的系统上:
(图片来源网络,侵删)sudo pacman -S xclip
核心功能与常用选项
xclip 的主要用法分为两大类:复制到剪贴板 和 从剪贴板粘贴。
A. 复制到剪贴板
这是 xclip 最常用的功能,将命令的输出或文件内容存入剪贴板。
基本语法
# 将命令的输出复制到剪贴板 command | xclip 复制到剪贴板 xclip filename
常用选项
-
-selection: 指定要操作的剪贴板区域,这是最重要的选项之一。primary: 主选择区,这是通过鼠标中键点击来粘贴的区域,当你用鼠标选中一段文本时,这段文本就已经被“复制”到了primary选择区,这是默认选项。clipboard: 剪贴板区,这是我们通常所说的“复制”(Ctrl+C)和“粘贴”(Ctrl+V)操作的区域,如果你想通过 Ctrl+V 来粘贴,就必须使用这个选项。secondary: 次要选择区,较少使用。
-
-i或--in: 从标准输入读取数据,这是默认行为,echo "hello" | xclip和echo "hello" | xclip -i效果一样,但使用-i可以让意图更清晰。 -
-o或--out: 从剪贴板输出数据(用于粘贴,见下一节)。 -
-r或--cut: 执行“剪切”操作,而不是“复制”,这会清空剪贴板原有内容。 -
-selection clipboard -r: 剪切内容到系统剪贴板。
实用示例
-
复制命令输出到系统剪贴板(用于 Ctrl+V 粘贴)
# 复制当前工作目录的完整路径 pwd | xclip -selection clipboard # 复制系统的 IP 地址 hostname -I | xclip -selection clipboard # 复制一个文件的内容 xclip -selection clipboard my_document.txt
-
复制命令到系统剪贴板(方便直接粘贴到终端执行) 这是一个非常酷的技巧!你想把一个复杂的命令复制下来,以便之后粘贴执行。
# 将一个 docker 命令复制到剪贴板 echo "docker run -it --rm ubuntu /bin/bash" | xclip -selection clipboard
你就可以在任何地方按
Ctrl+V粘贴这个完整的命令了。 -
复制文件内容到主选择区(用于鼠标中键粘贴)
# 复制一个文件的内容,之后在文本编辑器中用鼠标中键点击即可粘贴 xclip -i my_log.log
B. 从剪贴板粘贴
xclip 也可以作为粘贴命令,将剪贴板中的内容输出到标准输出,然后你可以用重定向符 > 保存到文件,或者用管道 交给其他命令处理。
基本语法
# 从剪贴板粘贴内容到终端 xclip -o -selection clipboard # 从剪贴板粘贴内容并保存到文件 xclip -o -selection clipboard > my_pasted_content.txt # 从剪贴板粘贴内容并通过管道传递给其他命令 xclip -o -selection clipboard | grep "error"
实用示例
-
将剪贴板中的内容保存为文件
# 假设你之前用 Ctrl+C 复制了一段文本 xclip -o -selection clipboard > new_file.txt
-
在终端中查看剪贴板内容
# 查看 primary 选择区的内容(通常是鼠标选中的文本) xclip -o # 查看 clipboard 选择区的内容(通常是 Ctrl+C 复制的文本) xclip -o -selection clipboard
高级用法与别名
xclip 与 xsel
xclip 有一个功能非常相似的工具叫做 xsel,两者用法大同小异,很多用户会选择其中一个或两个都安装。xsel 的语法有时被认为更简洁一些。
xclip -selection clipboard≈xsel -bxclip -selection primary≈xsel -p
创建有用的别名
为了方便使用,你可以在 ~/.bashrc 或 ~/.zshrc 文件中创建一些别名。
# 打开配置文件 nano ~/.bashrc # 在文件末尾添加以下别名 # 复制到剪贴板 (用于 Ctrl+V) alias cb='xclip -selection clipboard' # 从剪贴板粘贴 alias pb='xclip -selection clipboard -o' # 复制文件到剪贴板 alias cfb='xclip -selection clipboard -i' # 从剪贴板粘贴并保存到文件 alias pbf='xclip -selection clipboard -o >'
添加后,执行 source ~/.bashrc 使其生效,然后你就可以使用这些简短的别名了:
# 复制当前目录 pwd | cb # 粘贴剪贴板内容到文件 pb > pasted.txt
| 功能 | 命令 | 说明 |
|---|---|---|
| 复制命令输出到系统剪贴板 | command \| xclip -selection clipboard |
用于之后在图形界面中用 Ctrl+V 粘贴 |
| 复制文件到系统剪贴板 | xclip -selection clipboard filename |
|
| 复制到主选择区 | command \| xclip |
用于之后用鼠标中键粘贴 |
| 从系统剪贴板粘贴到终端 | xclip -o -selection clipboard |
查看或处理剪贴板内容 |
| 从剪贴板保存到文件 | xclip -o -selection clipboard > file.txt |
|
| 复制命令本身 | echo "command" \| xclip -selection clipboard |
非常实用,方便粘贴执行复杂命令 |
xclip 虽然小,但功能强大,是 Linux 终端用户提升效率的必备神器之一,熟练掌握它,能让你的命令行操作更加流畅和高效。
