入門者のLinux 6章 まとめ

奈佐原顕郎さん「入門者のLinux」より

 

出力・アウトプット

・「ls」や「cat」などのコマンドが、処理の結果をなんらかの形で外に向かって出すこと
・画面表示だけでなくプリンタに印刷したりハードディスクやUSBメモリに書き出したりする

入力・インプット

・コンピュータやソフトに情報を受け渡すこと
・マウスやキーボード、音声入力などでする

標準入出力

Unixで使われる入出力の仕組み
・入出力をキーボードや画面に限定せずより象徴的に扱う
・情報の受け渡しがユーザーとコンピュータ間だけでなく、コンピュータの中のソフトウェア同士の間でも容易になる
・小さなソフトウェア(コマンド)を組み合わせ、複雑で大きな処理を柔軟にかつ分散して行うことができる

出力

echo

・後に続く文章をオウム返しのようにそのまま表示する
・ファイルを作るときや、シェル変数、シェルスクリプトを学ぶ際に役立つらしきコマンド
・「>」という記号はコマンドからファイルへと情報が流れる様子を表す。たとえば

echo Hello! > output

ならば、カレントディレクトリに新たにoutputというファイルが作られ、その中にHello!という文が書かれている

・この機能はUnixではとても大切な基本的機能であり、「出力リダイレクト」と呼ばれる(方向付けしなおすという意味がある)

出力リダイレクトで上書き・追記

・「>」を使うとファイルを上書きする
「>」を「>>」にすると前の内容を消さずにファイルの末尾に新しい結果を追記していく(新規ファイルの場合どちらも同じ結果になる)

入力リダイレクト

・ファイルから入力する機能

bc

・かんたんな四則演算ができるコマンド
・計算式を入力として与えられるとそれらの式をもとに計算して結果の値を出力する
・使い終わったらquitでbcを終了しシェルのプロンプトに戻ってくること
入力リダイレクトではbcコマンドに計算式を入力することをファイルから行う
たとえば

echo 2+3 > input

・2+3という計算式の入ったテキストファイルをつくる。これをbcコマンドに渡し実行させる

bc < input

・シェルでは最初にコマンド名を打たなければならない

リダイレクト

・出力リダイレクトと入力リダイレクトをあわせてこう呼ぶ

コマンド(ソフトウェア)を相手にした入出力

コマンドの出力を画面やファイルを経由せずに、直接的に他のコマンドの入力にしてしまう

|

・パイプ
・直前のコマンドが出す出力を、直後のコマンドの入力にする
・3つ以上のコマンドをつなぐとき「パイプライン」と呼ぶ

less

・入力されたテキストデータを画面の縦の長さに応じて1ページずつ表示し、適宜、行き来できるようにするコマンド

wc

・word countの略。テキストデータの行数・語数・文字数を数える

余談

パイプの必要性

・1つのコマンドの結果を出力リダイレクトでファイルに書き出し、そのファイルを入力リダイレクトで次のコマンドに渡すのとパイプを使うのでは同じ結果になり、このような用途で作られるファイルを中間ファイルという。

中間ファイルとの比較

中間ファイル

・処理が正しく行われているかチェックしたり記録するのに有用だが、ハードディスクなどにアクセスするので時間を食ったり空容量が必要になる。
・前のコマンドが完了して中間ファイルが完成しなければ次のコマンドを動かすことができない

パイプ

・ハードディスクへのアクセスを省略するので高速化でき、空容量も必要ない
・前のコマンドの出力を後ろのコマンドの入力が待ち構えており、少しでもデータが流れてきたら後ろのコマンドは動き始める(Unixマルチタスクという複数の仕事を同時並行で行う機能を活用している)。

パイプを使うと全体の処理を高速化できる