明日こそ早起きする

興味あるものはなんでも

シェルについて

シェルとカーネル

カーネルとは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にはほかにも便利な機能がある。

・過去に入力したコマンドを表示(ヒストリ機能)
・既にあるファイルやディレクトリの名前補完(補完機能)
ワイルドカード
・コマンドの名前を変える(エイリアス)

これらはタイプ量を少なくしたり、コマンドを覚えやすくしたりととても便利な機能。