パイプ「|」を使って 複数のコマンドを組み合わせる

当ページのリンクには広告が含まれています。

スポンサーリンク

パイプ「|」を使って 複数のコマンドを組み合わせる方法を紹介します。

パイプとは

パイプとは、コマンドの標準出力を次のコマンドに渡す処理のことをいいます。

パイプ(pipe)を和訳すると「配管」という意味があるので、コマンドとコマンドを接続する配管のような機能をもっている!?ということでしょう。たぶん。処理と処理の間には縦線の記号「|」を使います。

ちなみにパイプを使った処理のことを「パイプライン処理」といいます。

※ 「|」記号は、 「Shift」キーを押しながら「¥」キーを押すと入力できます。

複数のコマンドを組み合わせる

Linuxにはさまざまな機能のコマンドが用意されていますが、パイプ「|」を使って複数のコマンドを組み合わせるとより快適にCUI(Command-line User Interface)環境を操作することができます。

それでは実際にコマンドを組み合わせてみましょう。

ファイルとディレクトリのリストを表示する「lsコマンド」の実行結果を 標準入力の内容を標準出力とファイルに出力する「teeコマンド」と組み合わせます。

$ ls | tee ls.txt
file1
file2
ls.txt
sys.log

lsコマンドの実行結果が標準出力に表示されるとともにファイル「ls.txt」に出力結果が保存されます。

$ cat ls.txt 
file1
file2
ls.txt
sys.log

次は、現在実行されているプロセスを表示する「psコマンド」とパターンにマッチする行を表示する「grepコマンド」を組み合わせてみましょう。この組み合わせは大変便利で、よく使います。

$ ps aux | grep apache
root     14398  0.0  0.3  71792  3132 ?        Ss   16:02   0:00 /usr/sbin/apache2 -k start
www-data 14401  0.0  0.2  71524  2200 ?        S    16:02   0:00 /usr/sbin/apache2 -k start
www-data 14403  0.0  0.2 295228  2628 ?        Sl   16:02   0:00 /usr/sbin/apache2 -k start
www-data 14404  0.0  0.2 295220  2624 ?        Sl   16:02   0:00 /usr/sbin/apache2 -k start
karuma   14642  0.0  0.0   7404   872 pts/0    S+   16:04   0:00 grep apache

psコマンドをgrepコマンドを使わずに実行するとだらだらと現在実行中のプロセス一覧が表示され、目的のプロセスを探すのが大変です……。しかし!パイプ「|」とgrepコマンドを組み合わせると!このようにWebサーバー「apache」が適切に動いていることを確認することができます。

「パイプを制する者はコマンドラインを制する」

というような格言はありませんが、パイプは大変便利なので、いろいろ使い倒してみましょう。

基本操作 の人気記事

  1. コマンドの実行結果・標準出力をファイルに保存
  2. パイプ「|」を使って 複数のコマンドを組み合わせる
  3. ワイルドカードの使い方
  4. コマンドラインの操作(カーソル移動・文字削除・補完)

関連記事(一部広告含む)