- Linux
-
2025-04-02
Linuxでコマンドによるオペレーションを行う中で便利な機能をご紹介します。
パイプライン
パイプラインは略してパイプとも呼ばれていて「|」のことです。
日本語キーボードでShiftキーを押しながら¥マークのキーを押すと入力される記号です。
パイプラインを使うと最初のコマンドの結果(標準出力)を次のコマンドの入力(標準入力)として渡すことができます。
例えば、CRONデーモンが現在動作しているかどうかを確認する
$ ps aux | grep cron
出力結果
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2389 0.0 0.1 224384 2144 ? Ss Feb21 0:04 /usr/sbin/crond -n user 3212367 0.0 0.1 222316 2072 pts/0 S+ 06:19 0:00 grep --color=auto cron
以上のようにps
コマンドの出力結果をgrep
コマンドに渡し、「cron」という文字列を検索した結果が表示されています。
先頭行は本来表示されませんが、分かりやすくするため表示しています。
先頭行も表示したい場合は次のように入力すると先頭行も表示してくれます。
$ ps aux | grep -E "^USER|cron"
同じようにcat
コマンドの出力結果などを検索して表示するのにも役立ちます。
xargs
次にxargs
コマンドについてです。
先ほどのパイプラインだけだと最初のコマンドの結果(標準出力)を次のコマンドの入力(標準入力)としてしか渡すことができません。
最初のコマンドの結果(標準出力)を次のコマンドの引数として渡すためにはxargs
コマンドを使います。
よく使われるのはfind
コマンドとの組み合わせではないでしょうか。
例えば、find
コマンドで検索したログファイルを全て削除する
find ./ -name "*.log" | xargs rm -f
find
コマンドで検索された結果のファイルリストがrm
コマンドに引数として渡されて、該当ファイルが全て削除されるという結果になります。
他に、find
で検索したファイルのパーミッションを一括で変更するなど
find ./ -name "*.sh" | xargs chmod 777
以上のようにパイプラインとxargs
コマンドをうまく使えば、コマンド操作がはかどるのではないかと思います。
