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ターミナルでコマンドを操作していて、コマンド間でデータを移動していることに気付いたときは、パイプによってプロセスが迅速かつ簡単になることを願っています。