Skip to content

Linux 剪貼簿工具(xclip / xsel / wl-copy)

在 Linux 終端機(含 WSL)將長字串或檔案內容複製到系統剪貼簿的方法,以及 X11 / Wayland / macOS 各環境的對應工具。

概述

在 Linux 終端機中,cat 印出長字串後手動框選複製容易出錯(尤其是 Base64 kubeconfig 之類的長字串)。透過 xclip 或 xsel 可直接將檔案內容或命令輸出寫入系統剪貼簿,再到目標應用程式 Ctrl+V 貼上。

WSL2 若正確設定 X Server(或使用 Windows 11 內建的 WSLg),xclip 也能與 Windows 剪貼簿互通。純 SSH 無桌面環境時,剪貼簿工具無效,只能 cat 印出後手動選取。

核心內容

工具選擇

環境工具安裝
X11(多數 Ubuntu Desktop / WSL2)xclip 或 xselsudo apt install xclip
Waylandwl-clipboardsudo apt install wl-clipboard
macOSpbcopy(內建)無需安裝

判斷目前環境:

bash
echo $XDG_SESSION_TYPE
# x11     → 用 xclip / xsel
# wayland → 用 wl-copy

xclip 基本操作

bash
# 安裝
sudo apt install xclip        # Ubuntu / Debian
sudo dnf install xclip        # Fedora / RHEL

# 從檔案複製
xclip -selection clipboard < /path/to/file.txt

# 從命令輸出複製(pipe)
cat /tmp/kubeconfig.yaml | xclip -selection clipboard

# 確認剪貼簿內容
xclip -selection clipboard -o

常用情境

bash
# 1. 複製 Base64 kubeconfig(避免換行截斷)
cat master1-config | base64 -w0 | xclip -selection clipboard

# 2. 先寫檔再複製(適合多行字串)
cat > /tmp/mystring.txt << 'EOF'
你的超長字串...
EOF
xclip -selection clipboard < /tmp/mystring.txt

# 3. 直接 pipe
echo "your string here" | xclip -selection clipboard

關鍵要點

  • -selection clipboard 是 xclip 的必要參數,否則寫入的是 X11 PRIMARY selection(中鍵貼上),而非 Ctrl+V 的 CLIPBOARD
  • WSL2 + WSLg 的 xclip 可與 Windows 剪貼簿互通;舊版 WSL2 需額外設定 X Server(如 VcXsrv)
  • 純 SSH 環境(無桌面顯示器):DISPLAY 未設定,xclip 會報錯,只能用 cat 印出手動選取

實際應用

  • 複製長 Base64 字串(kubeconfig、憑證、Token)到 Azure Key Vault 或其他 UI
  • kubectl config view --flatten | base64 -w0 的輸出貼進 CI/CD 環境變數設定欄位
  • 在腳本最後加一行 xclip -selection clipboard < output.txt,讓執行完成後直接可貼上結果

相關概念

來源