Appearance
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 或 xsel | sudo apt install xclip |
| Wayland | wl-clipboard | sudo apt install wl-clipboard |
| macOS | pbcopy(內建) | 無需安裝 |
判斷目前環境:
bash
echo $XDG_SESSION_TYPE
# x11 → 用 xclip / xsel
# wayland → 用 wl-copyxclip 基本操作
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,讓執行完成後直接可貼上結果
相關概念
- 驗證 Base64 Kubeconfig 有效性 — 貼入工具前先驗證 kubeconfig 是否有效
- 維運 SOP:憑證與帳密更新 — 更新 Base64 kubeconfig 到 Azure Keyvault 的完整流程
- WSL 環境設定進階技巧 — WSL2 環境整合設定,含 X Server 相關配置