##まず
第1回です。
私自身も勉強中なので、突っ込み歓迎です。
##シェルとカーネル
カーネルとはOSの中核になる部分、ハードウェア資産を管理している。
シェルはカーネルとアプリケーションの仲介役で、ユーザがカーネルの機能を使うのに必須。
つまりシェルはとても大事な役割をになっている。
##シェルの種類
シェルにも種類がある。
・sh
Bシェル。デファクトスタンダード。シェルスクリプトはBシェルの文法が使われることがほとんど。
・csh
Cシェル。C言語をモデルとして設計されている。対話機能はshと違って強い。
・ksh
Bシェルの上位互換。shの貧弱な対話機能をCシェルの対話機能を参考にBシェルを拡張したもの。
・tcsh
Cシェルの拡張版。コマンドラインでの編集機能、補完が凄い。
・bash
Bシェルの上位互換。Linuxでは標準シェル。Linuxでは/bin/shは/bin/bashへのシンボリックリンクになっている。
・zsh
kshを元にCシェルやbashの機能も含んだシェル。最強だとかなんとか。
echo $SHELL
とやってみるとどのシェルが現在仲介役なっているかわかる。
私はzshを使っています。いいですよzsh。
##シェルの機能
上記で紹介したBシェルやCシェルなどすべてが持っているシェルの基本機能は
- 標準入出力先の切り替え(リダイレクション)
- ある出力結果を別の入力として使う(パイプ)
- ファイルにコマンドを書き、ファイル名を指定することでコマンドとして使う(シェルスクリプト)
Bシェルの上位互換であるbashにはほかにも便利な機能がある。
- 過去に入力したコマンドを表示(ヒストリ機能)
- 既にあるファイルやディレクトリの名前補完(補完機能)
- ワイルドカード
- コマンドの名前を変える(エイリアス)
これらはタイプ量を少なくしたり、コマンドを覚えやすくしたりととても便利な機能。
##次回は
シェルスクリプトの初めの部分、シバンの説明などをする予定