> Unix / Linux – シェル入力/出力リダイレクト – ネットワークエンジニアチュートリアル

Unix / Linux – シェル入力/出力リダイレクト

スポンサーリンク

無料でプログラマへ!30歳までなら無料でプログラミング学校に通うことが出来ます。下の画像をクリックして無料相談会でGO!

この章では、シェルの入出力リダイレクションについて詳しく説明します。

出力リダイレクション


標準出力を目的としたコマンドの出力は、ファイルに簡単に転送することができます。この機能は出力リダイレクションと呼ばれます。

通常、出力を標準出力に書き込むコマンドに表記>ファイルが追加されている場合、そのコマンドの出力は端末の代わりにファイルに書き込まれます。

コマンドの完全な出力をユーザーファイルにリダイレクトする次のwhoコマンドを確認します。

$ who > users

ターミナルに出力が表示されないことに注意してください。これは、出力がデフォルトの標準出力デバイス(端末)から指定されたファイルにリダイレクトされたためです。

$ cat users
oko         tty01   Sep 12 07:30
ai          tty15   Sep 12 13:32
ruth        tty21   Sep 12 10:10
pat         tty24   Sep 12 13:07
steve       tty25   Sep 12 13:03
$

コマンドの出力がファイルにリダイレクトされ、そのファイルにすでにデータが含まれている場合、そのデータは失われます。次の例を考えてみましょう。

$ echo line 1 > users
$ cat users
line 1
$

>>演算子を使用すると、次のように既存のファイルに出力を追加できます。

$ echo line 2 >> users
$ cat users
line 1
line 2
$

入力リダイレクション


コマンドの出力をファイルにリダイレクトできるように、コマンドの入力をファイルからリダイレクトすることもできます。大なり文字>出力のリダイレクトに使用される、より少なくより文字は、<コマンドの入力をリダイレクトするために使用されます。

通常、標準入力からの入力を受け取るコマンドは、この方法でファイルからの入力をリダイレクトすることができます。たとえば、上記で生成されたファイルユーザの行数をカウントするには、次のようにコマンドを実行します。

$ wc -l users
2 users
$

実行すると、次の出力が表示されます。あなたは、標準入力リダイレクトすることによって、ファイルの行数を数えることができるトイレのファイルからコマンドをユーザーが –

$ wc -l < users
2
$

wcコマンドの2つの形式によって生成される出力には違いがあることに注意してください。最初のケースでは、ファイル・ユーザーの名前が行数とともにリストされます。2番目のケースでは、そうではありません。

最初のケースでは、wcはファイル・ユーザーから入力を読み取っていることを認識しています。2番目のケースでは、ファイル名が表示されないように標準入力から入力を読み取っていることがわかります。

出力の破棄


出力を画面に表示したくない場合もあります。このような場合、ファイルにリダイレクトすることで出力を破棄することができます

$ command > /dev/null

ここでcommandは実行したいコマンドの名前です。ファイル/ dev / nullは、すべての入力を自動的に破棄する特別なファイルです。

コマンドの出力とそのエラー出力の両方を破棄するには標準的なリダイレクトを使用 STDERRとSTDOUT です-

$%MCEPASTEBIN%

ここで2STDERRを表し、1STDOUTを表す。STDERRにメッセージを表示するには、次のようにSTDOUTをSTDERRにリダイレクトします。

$ echo message 1>&2

リダイレクションコマンド


次に、リダイレクトに使用できるコマンドの完全なリストを示します。

S.No. コマンドと説明
1 pgm>file

pgmの出力はファイルにリダイレクトされます

2 pgm <file

プログラムpgmはその入力をファイルから読み込みます

3 pgm >>file

pgmの出力はファイルに付加されます

4 n>file

ファイルにリダイレクトされた記述子nを持つストリームからの出力

5 n >>file

ファイルに記述子nを付加したストリームからの出力

6 n>&m

ストリームnからの出力をストリームmとマージします。

7 n <&m

ストリームnからの入力をストリームmとマージします。

8 <<tag

標準入力は、行の先頭にある次のタグまでここから来ます

9 |

1つのプログラムまたはプロセスから出力を取り出し、別のプログラムに送信します。

ファイル記述子0は通常標準入力(STDIN)、1は標準出力(STDOUT)、2は標準エラー出力(STDERR)であることに注意してください。

次のページ

前のページ

スポンサーリンク

ネットワークエンジニアになりたければ下記から無料相談会に参加!
なんと無料で授業を受けれてエンジニアになれます

投稿日:

執筆者: