ジャンナのテーマ ライセンスが検証されていません. テーマ オプション ページに移動してライセンスを検証します. ドメイン名ごとに XNUMX つのライセンスが必要です.

Linux コマンドでパイプとリダイレクトを使用して生産性を向上させる方法を専門的に説明します。

Linux コマンドラインでパイプとリダイレクトを専門的に使用する方法

Linuxコマンドラインは、ユーザーにシステムを完全に制御する強力なツールですが、その真のメリットは、パイプとリダイレクトを正しく使用する方法を理解することから生まれます。これらの2つの機能により、コマンドを連結し、出力を非常に柔軟に渡すことができます。

52972123178_c7bc15383d_o-1 Linuxコマンドでパイプとリダイレクトを専門的に使用して生産性を向上させる方法の説明

パイプ関数を使用すると、あるコマンドの出力を別のコマンドにルーティングして直接処理できます。また、リダイレクトコマンドを使用すると、結果をファイルに保存したり、エラーや出力の表示方法を変更したりできます。これらのテクニックは、システム管理、ソフトウェア開発、さらには高度な日常的な使用に携わる人にとって不可欠です。

このガイドでは、Linux のパイプとリダイレクトの概念について、わかりやすい実用的な例を挙げて説明します。これにより、より効率的なコマンドを記述し、複雑なタスクを 1 行で実行できるようになります。

まとめ

  • Linux コマンドは、入力、出力、およびエラー メッセージに標準のパイプを利用します。
  • ディレクティブは、出力ストリームをターミナル ウィンドウではなくファイルに送信します。
  • フローを使用すると、コマンドをリンクして、1 つのコマンドの出力を別のコマンドの入力にすることができます。
  • Linuxでは、フローとルーティングによってコマンド出力を効率的に利用できます。出力はファイルに保存したり、他のコマンドの入力として使用したりできます。必要な情報を以下に示します。

パイプとは何ですか?

Linuxは、他のUnix系オペレーティングシステムと同様に、フローの概念を取り入れています。各プロセスには、stdinと呼ばれる入力フロー、stdoutと呼ばれる出力フロー、そしてstderrと呼ばれるエラーフローがあります。Linuxでは、現実世界と同様に、フローにはソース(入力)とデスティネーション(出力)という2つのエンドポイントがあります。

入力ストリームはキーボードからコマンドに送られ、情報やコマンドなどのテキストをプロセスに送信できます。出力ストリームはコマンドから送られ、通常はターミナルウィンドウに表示されます。標準エラーストリーム(stderr)もターミナルウィンドウに出力されます。

フローをリダイレクトしたり、フローを介してルーティングしたりできます。リダイレクトとは、出力をターミナルウィンドウ以外の場所に送信することを意味します。フローを介してルーティングとは、あるコマンドの出力を別のコマンドの入力として使用することを意味します。

これにより、コマンドをリンクして、調和して動作する単純なコマンド シーケンスから洗練されたソリューションを作成できます。

フローのリダイレクト

最も単純なリダイレクトは、コマンドの出力をファイルに送信することです。この単純なケースでも、便利な場合があります。コマンド出力のログが必要な場合や、読み取れないほど大量の出力が送信されている場合などです。

このテストコンピュータでは、`du` コマンドは 1380 行のテキストを出力します。このデータをファイルに送信します。

du > disk-usage.txt
1-6 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

中括弧は、duコマンドの出力がdisk-usage.txtというファイルに書き込まれることを示しています。ターミナルウィンドウには出力されません。

`ls` コマンドを使ってファイルが作成されたことを確認し、`wc` コマンドを使ってファイル内の行数、単語数、文字数を数えることができます。予想通り、`wc` コマンドはファイルに1380行が含まれていることを示しています。

ls 
wc disk-usage.txt
2-7 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します
このタイプのリダイレクトでは、ファイルを使用するたびにファイルを作成または置き換えます。リダイレクトされたテキストを既存のファイルの末尾に追加する場合は、次のように二重中括弧「>>」を使用します。
ls /home/dave-mckay/ -R >> disk-usage.txt 
wc disk-usage.txt 
3-5 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します
less コマンドで -N (行番号) オプションを使用すると、1380 行目以降に新しい情報が追加されたことが確認できます。
4-4 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します
エラーを生成するコマンドを記述すると、stdout のみをリダイレクトしているため、stderr エラー メッセージはターミナル ウィンドウに送信されることがわかります。
wc disk-usage.txt missing-file.txt > results.txt 
wc: missing-file.txt: No such file or directory
cat results.txt

5-3 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

disk-usage.txt ファイルの結果は results.txt ファイルに送信され、missing-file.txt ファイルのエラー メッセージはターミナル ウィンドウに送信されます。

右山括弧に数値インジケータを追加することで、リダイレクト先のパスを指定できます。パス1はstdout、パス2はstderrです。stdoutをあるファイルにリダイレクトし、stderrを別のファイルにリダイレクトすることも簡単です。

wc disk-usage.txt missing-file.txt 1> results.txt 2> error.txt 
cat results.txt
cat error.txt
6-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します
両方のストリームを 1 つのファイルにリダイレクトする場合は、stdout をファイルにリダイレクトし、stderr を stdout と同じ宛先にリダイレクトするようにシェルに指示します。
wc disk-usage.txt missing-file.txt 1> results.txt 2>&1
cat results.txt

7-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

すべてのエラー メッセージはログに記録され、標準システム出力 (stdout) が送信されるのと同じファイルに送信されます。

出力を一切保存したくない、つまりターミナルウィンドウに何も書き込まないようにしたいだけかもしれません。空のデバイスファイルは、警告なしに送られてきたすべてのデータを消費するため、不要な画面出力を送信するのに便利な保存先となります。

rm disk-usage.txt missing-file.txt 1> /dev/null 2>&1

8-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

削除するファイルの 1 つが存在しないにもかかわらず、標準出力 (stdout) メッセージも標準エラー (stderr) メッセージもターミナル ウィンドウに書き込まれません。

リダイレクトで使用できるもう 1 つのトリックは、ファイルをコマンドの標準入力ストリーム (stdin) に読み込むことです。

wc < /etc/passwd
14-2 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します
これを出力リダイレクトと組み合わせることができます。
wc < /etc/passwd > results.txt
cat results.txt

15-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

出力を経由させる Pipe

戻る Pipe あるコマンドの出力を別のコマンドの入力にルーティングします。ストリームルーティングはコマンドラインの最も強力な機能の1つであり、Linuxのコアコ​​マンドやツールの使い方を変えることができます。

あるコマンドの出力を別のコマンドに渡すには、パイプ記号「|」を使用します。例えば、ホームディレクトリ内のすべてのファイルとサブフォルダを繰り返し表示したい場合、ターミナルウィンドウでlsコマンドの出力のプレビューを簡単に確認できます。

ls コマンドの出力を less コマンドに送ることで、使いやすいファイル ビューアーに結果が表示されます。

ls -R ~ | less

9-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

この方法は、出力をファイルに送信してからそれを開くという 2 段階の手動プロセスよりも効率的で、時間もかかりません。

別のコマンドで出力を指示する
ルーティングの利点は、2 番目のコマンドが最初のコマンドの出力を処理するときに明らかになります。

マシン上の実際のユーザーアカウントと偽のユーザーアカウントの数を数えてみましょう。`cat`コマンドを使って`/etc/passwd`ファイルの内容を表示し、`wc`コマンドでそのファイルを調べます。`-l(行数)`オプションは、このファイルの行数をカウントします。アカウントごとに1行なので、自動的にアカウントがカウントされます。

cat /etc/passwd | wc -l
10-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します
かなり多そうですね。では、アカウント名を見てみましょう。今回は`cat`コマンドと`awk`コマンドを組み合わせて使います。`awk`コマンドは、フィールド間の区切りとしてコロン`:`を使用し、最初のフィールドを出力するように指示されています。
cat /etc/passwd | awk -F: '{print $1}'
11-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します
コマンドを追加し続けることができます。リストをソートするには、awkの出力がsortコマンドに渡されるようにsortコマンドを追加します。
cat /etc/passwd | awk -F: '{print $1}' | sort

12-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

一連のコマンドを通じて出力を指示する

これは3つのコマンドに接続された4つのコマンドのセットです Pipepsコマンドは実行中のプロセスのリストを表示します。-e(all)オプションはすべてのプロセスを表示し、-o(output)オプションは表示する情報を指定します。commシンボルは、プロセス名のみを表示することを示します。

プロセス名のリストはgrepコマンドに渡され、名前に「chrome」という単語を含むプロセスが除外されます。このフィルタリングされたリストはsortコマンドに渡され、ソートされます。ソートされたリストはuniqコマンドに渡されます。-c(count)オプションは、一意のプロセス名の数をカウントします。デモのために、Firefoxブラウザでも同じ処理を繰り返します。

ps -e -o comm | grep chrome | sort | uniq -c
ps -e -o comm | grep firefox | sort | uniq -c
13-1 Linuxコマンドのパイプとリダイレクトを専門的に使用して生産性を向上させる方法を説明します

無数の組み合わせ

組み合わせられるコマンドの数に制限はありませんが、各コマンドは別々のサブウィンドウで開くことに注意してください。これは、それほどスペックが高くない最近のコンピューターでも問題にならないはずですが、速度低下に気付いた場合は、コマンドを簡素化することを検討してください。あるいは、しばらくお待ちください。

Linuxのパイプとリダイレクトをマスターすることで、システム管理における制御性と効率性が新たなレベルに到達します。一見シンプルなこれらのツールは、多くの時間と労力を節約できます。

これらの例を実際にデバイスに適用してみると、簡潔でプロフェッショナルなコマンドを使用して複雑なタスクを実行できることがわかります。

トップボタンに移動