LinuxのX Window System(X11)上でクリップボードを操作できるコマンドラインツール
- xclip -
Linuxでクリップボードをコマンドラインから操作したいときに便利なのが、xclipです。xclipを使えば、文字列やファイルの内容、コマンドの実行結果などをクリップボードへ簡単にコピーできます。また、クリップボードの内容を標準出力に取り出し、ファイルへ保存したり、別のコマンドへ渡したりすることも可能です。
本記事では、xclipのインストール方法と基本的な使い方に加え、パイプやリダイレクトを組み合わせた実践的な使用例を紹介します。よく使う操作をエイリアスに登録する方法や、「xclip: Error: Can't open display: (null)」と表示される原因ついても解説しているので、最後までご覧ください。
xclipとは
xclipは、LinuxのコマンドラインからX Window System(X11)のクリップボードを操作するためのツールです。テキストをクリップボードへコピーしたり、クリップボードの内容を標準出力へ取り出したりできます。
- X Window System(X11)向けのクリップボード操作ツール
- 標準入力の内容をクリップボードへコピーできる
- クリップボードの内容を標準出力へ取り出せる
- X11の複数のセレクションを扱える(PRIMARY、SECONDARY、CLIPBOARD)
- コマンドの実行結果やファイル内容をクリップボードへ送れるため、自動化に向いている
- GUIアプリを開かず、ターミナルだけでクリップボードを操作できる
- 多くのLinuxディストリビューションでパッケージとして提供されている
通常、クリップボード操作はGUIアプリケーション上でマウスを使って行います。しかし、xclipを利用すれば、ターミナルやシェルスクリプトからクリップボードを扱えます。
例えば、コマンドの実行結果をそのままクリップボードにコピーしたい場合に便利です。
$ echo "Hello Linux" | xclip -selection clipboardこのコマンドを実行すると、Hello Linuxという文字列がクリップボードへ保存されます。ターミナル上に表示された文字列をマウスで選択して、コピーする必要がありません。もちろんクリップボードに保存した文字列は、テキストエディタやブラウザなどに貼り付け可能です。
xclipでは、X Window System(X11)が持つ3つのセレクションを操作できます。
| セレクション | 対応する操作 |
|---|---|
| PRIMARY(既定値) | ・マウスで選択した内容が自動的にコピー(選択しただけでコピー) ・マウス中ボタンをクリックするとペースト |
| SECONDARY | 一部アプリケーションのみが使用(通常はほとんど使用しない) |
| CLIPBOARD | Ctrl+CとCtrl+Vによる一般的なコピー&ペースト |
既定値はPRIMARYであるため、GUIアプリケーションへCtrl+Vで貼り付けたい場合は、CLIPBOARDをオプション指定します。
公式GitHub:https://github.com/astrand/xclip
xclipのインストール
xclipを利用するには、使用しているLinuxディストリビューションに応じて、パッケージマネージャを使ってインストールします。ディストリビューションやインストール時のパッケージ構成によっては、既にインストールされている場合があります。
xclipがインストール済みか確認する
$ xclip -version
xclip version 0.13
Copyright (C) 2001-2008 Kim Saunders et al.
Distributed under the terms of the GNU GPLターミナルで上記コマンドを実行してバージョン情報が表示されれば、インストール済みです。
- Debian系ディストリビューション
- Kali Linux 2026.2:インストール済み
- Ubuntu Desktop 26.04:未インストール
- Ubuntu Server 26.04:未インストール
- Debian 13.5:未インストール
- RHEL系ディストリビューション
- AlmaLinux 10.2:未インストール
本記事の検証環境の場合、Kali Linuxのみインストール済みでした。
Debian系
UbuntuやDebianなどのDebian系ディストリビューションでは、aptを使用してxclipをインストールできます。
パッケージ情報の更新
$ sudo apt updateパッケージがインストールされていないことを確認
$ apt list xclip
xclip/resolute 0.13-4build1 amd64インストール済みの場合、出力結果の末尾に[installed]と表示されます。
パッケージ情報の確認
$ apt show xclip
Package: xclip
Version: 0.13-4build1
Priority: optional
Section: x11
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.co>
Original-Maintainer: Alessandro Ghedini <ghedo@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 54.3 kB
Depends: libc6 (>= 2.38), libx11-6, libxmu6 (>= 2:1.1.3)
Recommends: xauth
Homepage: https://github.com/astrand/xclip
Task: lubuntu-desktop
Download-Size: 17.2 kB
APT-Sources: http://jp.archive.ubuntu.com/ubuntu resolute/main amd6>
Description: command line interface to X selections
xclip is a command line utility that is designed to run on any sys>
X11 implementation. It provides an interface to X selections ("the>
from the command line. It can read data from standard in or a file>
it in an X selection for pasting into other X applications. xclip >
print an X selection to standard out, which can then be redirected>
or another program.xclipのインストール
$ sudo apt install xclip動作確認
インストール後は、次のコマンドでxclipが実行できることを確認します。
$ command -v xclip
/usr/bin/xclip
$ xclip -version
xclip version 0.13
Copyright (C) 2001-2008 Kim Saunders et al.
Distributed under the terms of the GNU GPLバージョン情報が表示されれば、インストールは完了です。
RHEL系
AlmaLinuxなどのRHEL系ディストリビューションでは、dnfを使用してxclipをインストールします。
パッケージ情報の確認
$ dnf info xclip
利用可能なパッケージ
名前 : xclip
バージョン : 0.13
リリース : 24.git11cba61.el10_1
Arch : x86_64
サイズ : 37 k
ソース : xclip-0.13-24.git11cba61.el10_1.src.rpm
リポジトリー : epel
概要 : Command line clipboard grabber
URL : http://sourceforge.net/projects/xclip
ライセンス : GPL-2.0-or-later
説明 : xclip is a command line utility that is designed to run on any system with an
: X11 implementation. It provides an interface to X selections ("the clipboard")
: from the command line. It can read data from standard in or a file and place it
: in an X selection for pasting into other X applications. xclip can also print
: an X selection to standard out, which can then be redirected to a file or
: another program.RHEL系ディストリビューションでは、xclipが標準リポジトリに含まれていない場合があります。例えば、AlmaLinuxの場合、xclipは標準リポジトリではなくEPELリポジトリから提供されています。そのため、EPELリポジトリを追加していない環境では、xclipのパッケージ情報を取得できません。EPELリポジトリの追加方法は、本記事後半の「EPELリポジトリを追加する」をご覧ください。
xclipのインストール
$ sudo dnf install xclip動作確認
インストール後は、以下のコマンドで動作を確認します。
$ command -v xclip
/usr/bin/xclip
$ xclip -version
xclip version 0.13
Copyright (C) 2001-2008 Kim Saunders et al.
Distributed under the terms of the GNU GPLxclipの使い方
$ xclip [オプション] [ファイル名]X Window System(X11)には、用途の異なる複数のセレクション(クリップボード領域)があります。
| セレクション | オプション指定方法 | 貼り付け操作 |
|---|---|---|
| PRIMARY(既定値) | -selection primary | マウス中ボタンをクリック |
| SECONDARY | -selection secondary | ほとんど使われない(補助的なセレクション) |
| CLIPBOARD | -selection clipboard | Ctrl+V |
xclipの既定はPRIMARYです。一般的なGUIアプリケーションと同じ感覚で扱う場合、-selection clipboardをオプション指定します。オプション名や値を一意に特定できる場合、表記を省略できます。例えば、-selection clipboardは-sel clipや-sel cに省略可能です。
基本的な使い方
文字列をクリップボードにコピーする
文字列をクリップボードへコピーするには、-i(または-in)オプションを指定します。(これはデフォルト動作のため、オプションは省略できます。)
例)echoの出力をクリップボードにコピーする
$ echo "Hello Linux" | xclip -selection clipboard -i
$ echo "Hello Linux" | xclip -selection clipboard # -iは省略可能これでHello Linuxがクリップボードへ保存されます。GUIアプリケーションなどでCtrl+Vを押せば貼り付け可能です。
クリップボードの内容を標準出力に出力する
クリップボードの内容を取り出すには、-o(または-out)オプションを指定します。
例)クリップボードの内容を出力する
$ xclip -selection clipboard -o
Hello Linux前段でコピーした文字列が出力されます。
主要オプション
| オプション | 概要 |
|---|---|
| -i,-in | 標準入力またはファイルから読み込み、Xセレクションに格納する(デフォルト操作) |
| -o,-out | Xセレクションの内容を標準出力に書き出す ※ファイルやプログラムへのパイプ処理が可能 |
| -selection | コピー先のXセレクションを指定する ※primary、secondary、clipboardのいずれか(デフォルト:primary) ※primary、secondary、clipboardは、それぞれ「p」「sec」「clip」など省略可能。 |
| -r, -rmlastnl | 末尾の改行を削除する |
| -version | バージョン情報 |
| -h,-help | ヘルプ情報 |
末尾の改行削除(-r, -rmlastnl)は、Xセレクションへのコピー、およびXセレクションからの取り出しの両方に対応しています。
# クリップボードにコピーする際に改行を除去
$ pwd | xclip -selection clipboard -r
# クリップボードから取り出す際に改行を除去
$ xclip -selection clipboard -o -r実践的な使用例
xclipは、単に文字列をクリップボードへコピーするだけでなく、コマンドの実行結果やファイルの内容をほかのアプリケーションへ受け渡す用途にも利用できます。シェルスクリプトや日常的なLinux操作と組み合わせることで、コピー&ペースト作業を効率化できます。
クリップボードにコピーする
ファイルの内容をクリップボードにコピーする
ファイルの内容をそのままコピーすることもできます。引数指定だけでなく、リダイレクトやパイプも使用可能です。
$ xclip -selection clipboard sample.txt # 引数
$ xclip -selection clipboard < sample.txt # リダイレクト
$ cat sample.txt | xclip -selection clipboard # パイプ短い設定ファイルやコマンド例をチャットツール、チケット管理システム、ドキュメントなどへ貼り付ける際に役立ちます。
コマンドの実行結果をクリップボードにコピーする
コマンドの実行結果をそのままコピーしたい場合は、パイプでxclipへ渡します。
# 例)現在のディレクトリをクリップボードにコピーする
$ pwd | xclip -selection clipboard
# 例)エラーログの末尾100行をクリップボードにコピーする
$ tail -n 100 /var/log/syslog | xclip -selection clipboard
# 例)システム情報をクリップボードにコピーする
$ uname -a | xclip -selection clipboardターミナル上に表示された実行結果をマウスで選択する必要がありません。調査結果や設定値を別のアプリケーションへ転記する際に有用です。
クリップボードの内容を出力する
クリップボードの内容をファイルに保存する
$ xclip -selection clipboard -o > output.txtクリップボードの内容を他コマンドへ渡す
クリップボードをコマンドライン上のデータソースとして扱えるため、他のLinuxコマンドと柔軟に連携できます。
$ xclip -selection clipboard -o | grep 'error'上記の例では、クリップボード内の文字列からerrorを含む行だけを抽出します。クリップボードを一時的な入力データとして扱えるため、テキスト処理をターミナル内で完結させたい場合に便利です。
備忘録
EPELリポジトリを追加する
EPEL(Extra Packages for Enterprise Linux)は、RHEL系ディストリビューション向けに追加パッケージを提供するリポジトリです。Fedoraプロジェクトが運営しています。RHEL、AlmaLinux、Rocky Linuxなどの標準リポジトリには含まれないツールやライブラリをdnfから簡単にインストールできるようになります。
EPELリポジトリが追加済みでないことを確認する
$ dnf repolist | grep epelまだ追加していない場合、上記コマンドを実行しても何も出力されません。
EPELリポジトリを追加する
$ sudo dnf install epel-releaseEPELリポジトリが追加されたことを確認する
$ dnf repolist enabled | grep epel
epel Extra Packages for Enterprise Linux 10 - x86_64CRBリポジトリを有効にする
一部のEPELパッケージはCRB(CodeReady Builder)リポジトリのパッケージに依存するため、CRBリポジトリが有効になっていることを確認します。
$ dnf repolist enabled | grep -i crb
crb AlmaLinux 10 - CRBAlmaLinux10系の場合、デフォルトで有効になっているので、追加設定は不要です。
エイリアス(alias)を設定する
-selection clipboardを毎回入力するのは面倒なので、シェルの設定ファイルにエイリアス(別名)を記述します。
- Bashの場合、
~/.bashrc - Zshの場合、
~/.zshrc
エイリアスの記述例
$ alias myclip='xclip -selection clipboard'シェルの設定ファイルに記述したエイリアスを反映するには、sourceコマンドで設定ファイルを再読み込みします。
$ source ~/.bashrc
or
$ source ~/.zshrcエイリアスを設定後は、次のように短いコマンドで利用できます。
# クリップボードにコピー
$ echo "Hello Linux" | myclip
# クリップボードの内容を出力
$ myclip -o「xclip: Error: Can't open display: (null)」と表示される場合
Windowsなどのクライアント端末からサーバーにSSH接続してxclipを実行すると、以下のエラーが発生します。
$ echo "Hello" | xclip -selection clipboard
xclip: Error: Can't open display: (null)xclipはX Window System(X11)のクリップボードを操作するコマンドであるため、通常のSSH接続では利用できません。SSH経由でxclipを使用するには、クライアント端末でXサーバーを起動し、X11転送を有効にするなどの対応が必要です。

