Linuxのパイプとリダイレクト
目次:
Linuxではターミナルが私たちが求める結果を洗練し最適化するための貴重なツールを提供することを多くの人はすでに知っています。 この投稿では、リダイレクトとパイプの使用方法を紹介します。 そしてそれはターミナルが信じられないほどのユーティリティを備えたボックスとして判明するということです。 それは私たちの日常のタスクを日常的に実行するのに役立つ数え切れないほどのコマンドとツールを私たちの処分に置きます。
コンテンツインデックス
Linuxでのリダイレクトとパイプ
基本的な概念
パイプとは何かとその重要性(楽しい部分)を説明する前に、Linuxの3つの基本概念である標準入力、標準出力、標準エラーについて明確にする必要があります。
標準入力:アプリケーションの正しい操作に必要なデータを表します。 それらの例は、端末から入力された構造化データまたは情報を含むファイルです。 端末では、タイプ0として表されます。
標準出力:アプリケーションがそのプロセスや結果に関する情報を表示するために使用する手段です。これらは、単純なメッセージ、進行状況に関する通知、またはプロセス解決(レポートなど)などの構造化データを含むファイルの場合があります。 端末では、タイプ1として表されます。
標準エラー:アプリケーションが実行時に発生する可能性のある問題についてアプリケーションに通知する方法です。 端末ではタイプ2として表されます。
以前の投稿で読んだように、Linuxではすべてがファイルであるため、すべてのタイプはシステムで物理ファイルとして表されます。
リダイレクト
リダイレクトとは何ですか?
リダイレクトは、情報をあるタイプから別のタイプ(上記のタイプ)に移動することで構成されます。たとえば、標準エラーから標準出力へ、または標準出力から標準入力へと移動します。 ターミナルでは、>記号を使用してそれを実現します。
リダイレクト出力と標準エラー
たとえば、コマンドの出力をリダイレクトしてファイルに送信するには、 実行するだけです:
ls -la〜>(ファイル名)
ただし、この方法で実行すると、ファイルの内容はコマンド出力によって毎回置き換えられます。 この出力をファイルに追加する必要がある場合、実行は次のようになります。
ls -la〜>>(ファイル名)
興味深いのは、標準の出力、エラー、入力をリダイレクトできることです。 最初に述べた数字が意味をなすのはここです。 たとえば、実行中に生成されたエラーをプログラムに強制的に表示するには、実行中に標準エラーを標準出力にリダイレクトします。
アプリケーション2 >>および1
ここで、2は標準エラーを表し、&1は標準出力を表します。
また、システム管理で一般的な、特定のプロセスの標準エラーを破棄することもできます。 このために実行します:
アプリケーション2> / dev / null
標準出力も破棄します:
アプリケーション> / dev / null
Linuxでは、/ dev / nullファイルは、情報が破棄されるように送信される特別なファイルです 。
入力をリダイレクト
標準出力とエラーをリダイレクトするのと同じ方法で、ファイルからの標準入力を使用してそれを行うことができます。 これには、演算子<を使用します。
あまり知られていないLinuxブラウザーこれは、引数をキーボードで入力するコマンドやプログラムで便利です。たとえば、次のように引数をファイルに置き換えることができます。
echo "Hello world">挨拶猫<挨拶Hello world
Linuxコマンド:システムを理解して操作する
パイプライン
リダイレクトの操作を理解すると、パイプの概念は非常に簡単になります。 Unixの哲学の原則の中には、非常に特定のタスクを実行し、一緒に複雑なタスクを実行する小さなアプリケーションがあるという事実があります。 この原則に従って、一連のアプリケーションが相互に対話する方法が必要です。 これは、いわゆるパイプが発生する場所です。
パイプラインは、あるコマンドの標準出力を別のコマンドの標準入力として送信できるようにする特殊なタイプのリダイレクトです 。 それを表現する方法はシンボルである| (パイプ) 。 その主な有用性は、コマンドを連結してプログラミングを充実させる可能性を提供することです。
シンプルで非常に便利な例は、 psを使用してシステムで実行されているプロセスを確認し、出力をリダイレクトしてPIDでソートすることです。
ps -a | 並べ替える
ご覧のとおり、リダイレクトとパイプはLinuxの基本的な概念であり、確実に処理する必要があります。 このようにして、ターミナルでますます快適に感じるでしょう。
コメントで教えてください、ターミナルで何を使用するか、リダイレクトとパイプを使用しますか?