ターミナルカスタマイズコース6/8
shを使いこなそう
こちらではshについて解説します。
shはbashやzsh,ksh,tcshなどと同じようにシェルの一種です。
shとは何かを知り、使いこなしていきましょう。
shとは?
shは正式名称をBourne Shell(ボーンシェル) といいます。
現在多くのLinuxのデフォルトシェルとして搭載されてるbashの正式名称はBourne again shell(ボーンアゲインシェル = shellの生まれ変わり) と言われており、bashはこのshの機能を拡張したものです。
つまり、shの強化版がbashとなるため、bashを使うことが一般的です。
しかし、shのような技術は今後、Dockerなどのコンテナ技術を利用する際に必要なので今のうちから学習しておきましょう。
ちなみに、shell(シェル) とは、OS(オペレーティングシステム)の中にあるカーネルというソフトウェアとユーザとの間に立って、両者のやりとりを仲介してくれるソフトウェアのことです。
詳細はかなり難しいので、概念だけでも抑えておくといいかと思います。
shの使い方について
shはbashなどと扱い方は大きくは変わりません。
何はともあれ、ひとまずshを実際に使ってみましょう。
デフォルトシェルを確認
echo $SHELL
コマンドを使用すると、現在のデフォルトシェルの状態を確認できます。
デフォルトシェルというのは、ログイン時に起動するシェルのことを言います。
echo $SHELL
/bin/bash
ここでは、bash を使用しています。
シェルの一覧を表示
cat /etc/shells
と叩くと、現在のマシンにインストールされているシェルの一覧を確認することできます。
cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
ここではsh,dash,bash,rbashの4つがインストールされていることがわかります。
shに切り替えてみよう!
sh
と叩きます。
入力後 echo $0
で使用中のシェル名を確認することができます。
sh
echo $0
sh
これでshに切り替えることができました。(実際に、叩いてみると全体的なデザインが少し変わることが多いです)
ちなみに、他にもインストールしてあるシェルがあれば、その名称をそのままコマンド名にして叩くと以下のように簡単に切り替えることができます。
dash
と叩くと…
dash
echo $0
dash
rbash
と叩くと…
rbash
echo $0
rbash
とても簡単ですね。
元のシェルに戻したいときは?
exit
と叩くだけで元のシェルに戻ることができます。
exit
echo $0
bash
これで元のシェル(ここでは bash)に戻ることができました。
注意点
shでは、タブ補完などの一部機能が制限されています。
基本的な機能は同じですので、微妙な違いは触っていくといずれ覚えていくと思います。
shを好んで利用するときはいつ?(上級者向け)
通常、shを好んで利用することは多くはありません。
shよりもbashの方が使いやすいからです。
では、shのメリットは何かというと、ファイルサイズが小さい(軽量)という点です。
Dockerなどのコンテナ技術を利用する時、コンテナサイズをできるだけ小さくすることが求められます。
このような場合に、bashをインストールしない場合がよくあるのです。
まとめ
解説は以上になります。shは古くから存在しており、現代のように様々なシェルが発展している中でわざわざ利用する機会は少ないかと思います。
しかし、Dockerなどを触る際、bashやzshなどもインストールされていないということがよくあります。
従って、shの存在を知っておく価値は大いにあります。
他にも様々なシェルが存在しますので、これを機会に是非試してみてください。
問題を解くためには、十分な画面サイズのPC環境をご利用下さい。