Linuxでは、 pipe
commandを使用すると、あるコマンドの出力を別のコマンドに送信できます。配管は、その用語が示すように、あるプロセスの標準の出力、入力、またはエラーを別のプロセスにリダイレクトして、さらに処理することができます。
pipe
の構文 または無名パイプcode> コマンドは
|
です 任意の2つのコマンド間の文字:
コマンド-1|コマンド-2| …|コマンド-N
ここでは、別のセッションを介してパイプにアクセスすることはできません。 Command-1
の実行に対応するために一時的に作成されます 標準出力をリダイレクトします。正常に実行されると削除されます。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
上記の例では、 contents.txt
特定のディレクトリ内のすべてのファイルのリストが含まれています。具体的には、 ls -al
の出力です。 指図。最初にgrep
contents.txt
の「file」キーワードを含むファイル名 (図のように)配管によって、 cat
の出力 grep
の入力としてコマンドが提供されます 指図。次に、配管を追加して awk
を実行します コマンド。grep
からのフィルター処理された出力から9列を表示します。 指図。 contents.txt
の行数をカウントすることもできます wc -l
を使用する コマンド。
名前付きパイプは、システムが稼働している限り、またはシステムが削除されるまで存続できます。これは、FIFO(先入れ先出し)メカニズムに従う特殊なファイルです。通常のファイルと同じように使用できます。つまり、書き込み、読み取り、および開閉を行うことができます。名前付きパイプを作成するためのコマンドは次のとおりです。
mkfifo <pipe-name>
これにより、複数のシェルセッションでも使用できる名前付きパイプファイルが作成されます。
パイプという名前のFIFOを作成する別の方法は、次のコマンドを使用することです。
mknod p <pipe-name>
コマンドの標準出力を別のプロセスにリダイレクトするには、>
を使用します シンボル。コマンドの標準入力をリダイレクトするには、<
を使用します シンボル。
上に示したように、 ls -al
の出力 コマンドはcontents.txt
にリダイレクトされます そしてファイルに挿入されます。同様に、 tail
の入力 コマンドはcontents.txt
として提供されます <
経由 シンボル。
ここでは、名前付きパイプ my-named-pipe
を作成しました。 、および ls -al
の出力をリダイレクトしました 名前付きパイプへのコマンド。新しいシェルセッションとcat
を開くことができます ls -al
の出力を示す名前付きパイプの内容 以前に提供されたコマンド。名前付きパイプのサイズがゼロで、「p」と指定されていることに注意してください。
したがって、次にLinuxターミナルでコマンドを操作していて、コマンド間でデータを移動していることに気付いたときは、パイプによってプロセスが迅速かつ簡単になることを願っています。