xclip和xsel命令行工具详解
xclip
和 xsel
是 Linux 环境下常用的命令行工具,用于与系统剪贴板交互。它们可以从剪贴板读取数据,也可以向剪贴板写入数据,适用于文本或文件的剪贴板操作。以下是详细说明:
1. xclip
安装
在 Ubuntu 或其他基于 Debian 的系统中安装:
sudo apt install xclip
常用命令
-
复制文本到剪贴板 将文件内容复制到系统剪贴板:
xclip -sel clip < 文件名
或直接输入文本:
echo "Hello, Clipboard!" | xclip -sel clip
-
从剪贴板读取内容 将剪贴板内容打印到终端:
xclip -sel clip -o
-
复制文件内容到 X 选择缓冲区
xclip < 文件名
-
从 X 选择缓冲区读取内容
xclip -o
参数详解
-sel clip
:指定操作系统的剪贴板(“clip” 指 Clipboard)。-o
:读取剪贴板内容并输出到标准输出。-f
:输出数据时保持标准输入打开。-i
:从标准输入写入到剪贴板(默认)。-t
:指定数据类型(MIME 类型,如text/plain
或image/png
)。
2. xsel
安装
在 Ubuntu 中安装:
sudo apt install xsel
常用命令
-
复制文本到剪贴板
echo "Hello, Clipboard!" | xsel --clipboard --input
或从文件复制:
xsel --clipboard --input < 文件名
-
从剪贴板读取内容
xsel --clipboard --output
-
清空剪贴板
xsel --clipboard --clear
-
与 X 选择缓冲区交互
- 写入到选择缓冲区:
echo "Text" | xsel --primary --input
- 从选择缓冲区读取:
xsel --primary --output
- 写入到选择缓冲区:
参数详解
--clipboard
:操作系统剪贴板(类似于xclip -sel clip
)。--primary
:操作 X 选择缓冲区(选择内容即可复制的缓冲区)。--secondary
:操作辅助缓冲区(很少用)。--input
:从标准输入写入剪贴板。--output
:从剪贴板读取并输出到终端。--clear
:清空指定缓冲区。
对比 xclip
和 xsel
功能 | xclip | xsel |
---|---|---|
剪贴板操作 | 支持多种缓冲区(剪贴板、选择缓冲区) | 同样支持多种缓冲区 |
参数简洁性 | 参数略复杂,但更灵活 | 参数相对简单直观 |
输出模式 | 需要使用 -o 参数输出 | 默认支持 --output 输出 |
依赖性 | 依赖 X 环境 | 同样依赖 X 环境 |
使用场景
- 如果你需要脚本化与剪贴板交互,
xclip
和xsel
都是不错的选择。 - 推荐:根据个人习惯选择工具;
xclip
通常稍微功能更强大,而xsel
使用更直观。
例如,在虚拟机与主机间传递文本时:
- 在主机中生成文本并保存到文件。
- 在虚拟机中使用
xclip -sel clip
或xsel --clipboard --input
复制文本到剪贴板。