勉強前イメージ
コマンドの集まり的な?
bashとshを調べるに当たってまずシェルのを調べないと
調査
シェル とは
OSをこうするソフトウェアの一つで、ユーザからの操作を受け付ける窓口になります。
ユーザからのコマンド入力で、シェルはカーネルとやり取りをしてプログラムを呼び出し立ち上げます。
シェルはユーザとカーネルの間に入ってコマンドを解釈してカーネルに伝えたり、プログラムの結果をシャルが解釈してユーザに表示させます。
シェルの種類
大きく以下の5つがあります。
- sh
古くからあるシェルで、Steven Bourne氏によって開発されたのでその名ちなんで Bシェル
と呼ばれています。
古くから今でも標準シェルとして使用されています。
- bash
Bシェルを拡張して作られたのがbashです。
Bourne Again Shellが正式名称です。
Bシェルと互換性を持つため、書き換えることが可能です。
- csh
C言語に似た構文から Cシェル
と呼ばれています。
Bシェルに比べて対話をする場面では便利な機能があリますが、文法がBシェルとは違います。
Cシェルの後続としてTCシェルが存在します。
- tcsh
CシェルにTenexの機能(ファイル名などの補完機能があるシステム)を組み込んだのが TCシェル
です。
Cシェルとは違い、対話をする場面で便利な機能があります。
- zsh
bashやTCシェルのいいとこ取り+拡張をしたのが Zシェル
になります。
多機能な故使いこなすには時間がかかりますが、効率よく作業を行うことができます。
今使える(使ってる)シェルの確認方法
- 現在使用しているシェルの確認方法
echo $SHELL
のコマンドで確認できます。
実行結果は以下になります。
[root@localhost ~]# echo $SHELL
/bin/bash
ユーザのデフォルトシェルは /etc/passwd
に記載されているので、こちらを変更するとシェルの変更ができます。
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
- 使用できるシェルの確認方法
今使用できるのは、 cat /etc/shells
で確認できます。
[root@localhost ~]# chsh --list-shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
- シェルの変更
chsh -s [シェル] [ユーザ名]
で変更ができます。
勉強後イメージ
カーネルとのやり取りをする間に立ってくれてるのがシェルなのか。。。
んで、シェルスクリプトはシェルの処理をまとめて実行するやつって感じかな?
そのシェルの種類としてbashとかshがあるのね。
ちょっと気になったのは、↑の /bin/sh
と /usr/bin/sh
ってどっちもBシェルでは?って思ったけど何が違うんやろ。。。
そもそもshとbashの違いを知りたかったので、それは次書く!