web-dev-qa-db-ja.com

ターミナルの標準出力(stdout)をクリップボードにパイプするにはどうすればよいですか?

例えば、

友人に見せるためにフォルダの内容をリストし、チャットウィンドウに直接貼り付けますにしたいとします。

ls > filename.txtを実行して、これらのコンテンツを含むファイル(filename.txt)を作成できることに気付きました。次に、ファイルを開いて印刷する必要がありますテキストブロックを手動で選択してコピーしますこれは迷惑/退屈になる可能性があります)また、ターミナルウィンドウ内から直接lsの出力を選択してコピーします。

単に標準出力をクリップボードにパイプする方がはるかに高速/簡単です

どの端末コマンドでこれを行うことができますか?

96
Insperatus

これは xsel または xclip コマンドラインユーティリティで実行できます。どちらのプログラムもデフォルトではUbuntuに付属していないため、最初にUbuntuソフトウェアまたはターミナルを介してインストールする必要があります。ターミナルでの方法は次のとおりです(ただし、必要なのはこれら2つのうちの1つだけです)。

Sudo apt install xsel
Sudo apt install xclip

次にいくつかの例を示します。 lsの出力をクリップボードにコピーする場合は、次のようにします。

Xselの場合:

ls | xsel -ib

Xclipの場合:

ls | xclip -sel clip

これはもちろん他の端末コマンドにも利用できます。ネットワーク情報をヘルプフォーラムに貼り付けたいとします。

Xselの場合:

Sudo lshw -C network | xsel -ib

Xclipの場合:

Sudo lshw -C network | xclip -sel clip

新しいbashエイリアスでこれをさらに簡単にします!

~/.bash_aliasesファイルを編集します(まだ存在していない場合は、touch ~/.bash_aliasesで最初に作成します)

次に、one(どちらのプログラムを使用するかによって異なります)を追加します。

alias copy='xclip -sel clip'

または

alias copy='xsel -ib'

次に保存して閉じます。

ターミナルを再起動した後、「コピー」にパイプするだけで標準出力をクリップボードに送信できます(または、新しいエイリアスに名前を付けることを決定します)。

例えば:

ls | copy
112
Insperatus