コマンドの出力をマウスで選択してコピーし、テキストファイルやオフィス文書に貼り付けること、ありますよね。
しかしコマンドの出力が長いと、マウスで選択するのは大変です。
そんな時は「xclip」コマンドを使いましょう。コマンドの出力やファイルの内容を、簡単に「Xセレクション」や「クリップボード」に入れることができます。
また、逆にクリップボードの内容を出力することも可能です。
xclipのインストール
多くのディストリビューション「xclip」パッケージが利用可能です。
Ubuntuの場合、以下のボタンをクリックしてインストールできます。
次のコマンドでインストールすることもできます。
Ubuntu/Debian系の場合
sudo apt install -y xclip
Fedoraの場合
sudo dnf -y install xclip
RedHat/CentOSの場合
sudo yum -y install xclip
xclipの基本的な使い方
標準入力、もしくはファイルの内容を読み込んで「Xセレクション」に入れるには次のように実行します。
# 他のコマンドの出力をXセレクションに入れる
他のコマンド | xclip
# ファイルを読み込んでXセレクションに入れる
xclip ファイル
なお、このコマンドで文字列が「コピー」されるのは「Xセレクション」です。マウスの中ボタン(ホイール)をクリックして貼り付けることができます。
Ctrl+Vで貼り付けたい場合は、次のように実行して「クリップボード」に文字列を入れます。
# 他のコマンドの出力をクリップボードに入れる
他のコマンド | xclip -selection c
# ファイルを読み込んでクリップボードに入れる
xclip -selection c ファイル
なお、「-o」オプションを指定すると、Xセレクションやクリップボードの内容が出力されます。
# Xセレクションの内容を出力
xclip -o
# クリップボードの内容を出力
xclip -selection c -o
xclipの主なオプション
- -selection [p|s|c|primary|secondary|clipboard]
- 入出力する対象を「Xプライマリセレクション」「Xセカンダリセレクション」「クリップボード」から指定します。指定しなければ「Xプライマリセレクション」が使われます。「p」「s」「c」のように頭文字だけでも指定できます。
- -o
- Xセレクションやクリップボードの内容を出力します。
xclipの実行例
# 「cal」コマンドの出力をXセレクションに入れる
cal | xclip
# クリップボードの内容を「clip.txt」に書き込む
xclip -selection c -o > clip.txt
# forループで実行したコマンドの出力を全部クリップボードに入れる
for i in 203.0.113.{1..254}; do echo $i; done | xclip -selection c
macOSの「pbcopy」や「pbpaste」を「xclip」で実現する
macOSには、クリップボードにコピーする「pbcopy」、クリップボードからペーストする「pbpaste」というコマンドがあります。
これを「xclip」で実現するには、「~/.bash_aliases」に以下のコマンドを追記します。
alias pbcopy='xclip -selection c'
alias pbpaste='xclip -selection c -o'
そして、sourceコマンドで読み直します。
source ~/.bash_aliases
これで、例えば次のように実行できるようになります。
# 「systemctl list-dependencies」の出力をクリップボードにコピー
systemctl list-dependencies | pbcopy
# クリップボードの内容をファイル「clip.txt」に出力
pbpaste > clip.txt
xclipコマンドのヘルプ
Usage: xclip [OPTION] [FILE]... Access an X server selection for reading or writing. -i, -in read text into X selection from standard input or files (default) -o, -out prints the selection to standard out (generally for piping to a file or program) -l, -loops number of selection requests to wait for before exiting -d, -display X display to connect to (eg localhost:0") -h, -help usage information -selection selection to access ("primary", "secondary", "clipboard" or "buffer-cut") -noutf8 don't treat text as utf-8, use old unicode -target use the given target atom -version version information -silent errors only, run in background (default) -quiet run in foreground, show what's happening -verbose running commentary
xclipコマンドのマニュアル
XCLIP(1) General Commands Manual XCLIP(1) NAME xclip - command line interface to X selections (clipboard) SYNOPSIS xclip [OPTION] [FILE]... DESCRIPTION Reads from standard in, or from one or more files, and makes the data available as an X selection for pasting into X applications. Prints current X selection to standard out. -i, -in read text into X selection from standard input or files (default) -o, -out print the selection to standard out (generally for piping to a file or program) -f, -filter when xclip is invoked in the in mode with output level set to silent (the defaults), the filter option will cause xclip to print the text piped to standard in back to standard out unmodi‐ fied -l, -loops number of X selection requests (pastes into X applications) to wait for before exiting, with a value of 0 (default) causing xclip to wait for an unlimited number of requests until another application (possibly another invocation of xclip) takes owner‐ ship of the selection -t, -target specify a particular data format using the given target atom. With -o the special target atom name "TARGETS" can be used to get a list of valid target atoms for this selection. For more information about target atoms refer to ICCCM section 2.6.2 -d, -display X display to use (e.g. "localhost:0"), xclip defaults to the value in $DISPLAY if this option is omitted -h, -help show quick summary of options -selection specify which X selection to use, options are "primary" to use XA_PRIMARY (default), "secondary" for XA_SECONDARY or "clip‐ board" for XA_CLIPBOARD -version show version information -silent fork into the background to wait for requests, no informational output, errors only (default) -quiet show informational messages on the terminal and run in the fore‐ ground -verbose provide a running commentary of what xclip is doing -noutf8 operate in legacy (i.e. non UTF-8) mode for backwards compati‐ bility (Use this option only when really necessary, as the old behavior was broken) xclip reads text from standard in or files and makes it available to other X applications for pasting as an X selection (traditionally with the middle mouse button). It reads from all files specified, or from standard in if no files are specified. xclip can also print the con‐ tents of a selection to standard out with the -o option. xclip was designed to allow tighter integration of X applications and command line programs. The default action is to silently wait in the background for X selection requests (pastes) until another X applica‐ tion places data in the clipboard, at which point xclip exits silently. You can use the -verbose option to see if and when xclip actually receives selection requests from other X applications. Options can be abbreviated as long as they remain unambiguous. For example, it is possible to use -d or -disp instead of -display. How‐ ever, -v couldn't be used because it is ambiguous (it could be short for -verbose or -version), so it would be interpreted as a filename. Note that only the first character of the selection specified with the -selection option is important. This means that "p", "sec" and "clip" would have the same effect as using "primary", "secondary" or "clip‐ board" respectively. EXAMPLES I hate man pages without examples! uptime | xclip Put your uptime in the X selection. Then middle click in an X applica‐ tion to paste. xclip -loops 10 -verbose /etc/motd Exit after /etc/motd (message of the day) has been pasted 10 times. Show how many selection requests (pastes) have been processed. xclip -o > helloworld.c Put the contents of the selection into a file. xclip -t text/html index.html Middle click in an X application supporting HTML to paste the contents of the given file as HTML. ENVIRONMENT DISPLAY X display to use if none is specified with the -display option. REPORTING BUGS Please report any bugs, problems, queries, experiences, etc. directly to the author. AUTHORS Kim Saunders <[email protected]> Peter Åstrand <[email protected]> XCLIP(1)
コメント