fjordbootcampのプラクティスを進め、UNIX/Linuxにおける標準出力・リダイレクション・パイプという単語にぶち当たりました。 自分の理解を整理するために、自分なりの単語の説明を記述してみます😆
標準入力、標準出力とは?
いわゆる、デフォルトで設定されている入力と出力のこと。 つまり、私がキーボードで何かを入力するのが標準入力、それからキーボードを打ったことにより、ディスプレイで何らかの反応が返ってくるのが標準出力です。
これをDebainに合わせて考えてみると、、、
$ pwd
/home
標準入力:pwd
標準出力:/home
となります。
ここで、
$ echo "hello world"
hello world
では、標準入力:$ echo "hello world" 標準出力:hello world
となるわけです。
ここで頭に入れておくことは、echo
は入力をそのまま出力するだけの役割しか持たないと覚えておいてください。
リダイレクションとは?
私のイメージでは、標準出力と標準入力(標準エラー出力)をユーザーの任意で変えることができるというイメージです。
さっきの
$ echo "hello world"
hello world
を使って説明します。
まず、リダイレクションには
<〇〇
:標準入力を〇〇に切り替える
>〇〇
:標準出力を〇〇に切り替える
などのメタキャラクタ(記号)があります。
ここで、「hello worldの出力先を変えたいなー」という場合は、
$ echo hello world > test
とします。
そうすると、リダイレクションを行なっていなかった時とは違って、ディスプレイ上には hello worldの文字はありません。echo
は、入力をそのまま出力するだけの役割しか持ちませんが、リダイレクションしたことで、testというファイル にhello worldが出力されたことになります。
↓こんな感じですね‼️
パイプとは
いくつかのコマンドを連結して実行させることです。|
を使います。
具体的には、容量を表示するdu
と、並び替えを行うsort
をパイプすることで、以下のように容量の小さいファイルから順に並べることが可能です。
du -a | sort -n
複数のコマンドを繋げて実行させることが色々な処理ができるようになるのでしょう(自分はまだそこまでの領域ではないので他人事感があります、、、)。
という感じで、標準入出力・リダイレクション・パイプを自分なりにまとめてみました。もし、理解が違っている場合にはぜひ教えてください🙇♂️