シェルワンライナー #2-1a (標準入出力について解説)
はじめに
- ここから2章スタート
- bashについて細かく説明してくれるらしい。
- 2-1では、標準入出力とシェルの文法の基礎を説明してくれるらしい。
理解したことをメモ
- コマンド結果をファイルに出力するリダイレクトは
ls > a
と書けるし、ls 1> a
とも書ける。 - ファイルの中身をコマンドとして入力するリダイレクトは
cat | ...
の他に<
or0<
とも書ける。 sed
を実行したときの説明文をa
というファイルに保存したいときは?- 単純に
$ sed < a
だとできない。 - なぜなら
sed
を実行したときに出てくる説明文は標準エラー出力だから。 $ sed 2< a
とするとできる。
- 単純に
- 基本コマンドは渡すべきデータを 標準出力 、そうでないデータを 標準エラー 出力で区別している。
- リダイレクトとかパイプで渡されるのは 標準出力 。だから
$sed < a
じゃあかん。
- リダイレクトとかパイプで渡されるのは 標準出力 。だから
- コマンドがデータを読むのは 標準入力
- 標準入力はキーボードにつながっている。
0<
,1>
,2>
は ファイル記述子(ファイルディスクリプタ) という- 0: 標準入力 ,1: 標準出力, 2: 標準エラー出力, を表す。
- コマンドが独自にファイルを開いてデータを読み書きするときは3以上の番号にファイルへの接続に割り当てられる。
- ちな、sedの説明文をコマンドに渡したいときは...
- lessコマンドはパイプで受けたデータを上下して読める。(manコマンド読むときみたいな。)
- こういうコマンド(溜まった出力をユーザがゆっくり読める系)を ページャ という。