Docker勉強してるからあえてのshを使ってみる
ちと勉強する範囲を手広く広げすぎて時間足りてないぞ?と思い始めた寺です。 早いところターミナルカスタマイズコースを終えて集中と選択を行いたいと思っています。
シェルですが主にbashかzshを使っています。 最近Docker使えるようになりたいなーと勉強している最中なのですが、Envaderで「Dockerでsh使うかもしれない」と書いてあったので学んでみたいと思います。
これまでシェル関係で学んだこと
なんか順番間違ってる気もしますが、shの前にzshやfishのインストール方法や使い方が何となく分かるレベルになりました。
https://terralien.hatenablog.com/entry/2022/03/09/012357
https://terralien.hatenablog.com/entry/2022/03/25/015720
shを使ってみよう
shってのはシェルの一種です。最も基本的なシェルとも言われています。 なんとなく使ってる画面がshなのかな?と思っていましたが、実はbashを使っていたということを最近知りました。
echo $SHELL
で現在使用しているシェルを見ることができます。
だいたいみなさんもbashやzshを使っているのではないでしょうか?
$ echo $SHELL /bin/bash
ちなみにshの正式名称は「bourne shell」というそうですが多分明日には忘れていると思います。 bashは「Bourne Again SHell」なのでbashだそうです。 ソースはEnvader。
shへの切り替え
sh
コマンドを打つだけでshに切り替わります。
echo $0
と打つことで現在使用しているシェル名がわかります。
$ sh $ echo $0 sh
やっぱshつかいづれーわって時はexit
もしくはbash
等でbashに戻ることができます。
$ bash $ echo $0 bash
なぜわざわざshを?
shのメリットとしてファイルサイズが小さく軽量なのでコンテナサイズを小さくできるDocker環境などで利用することがあります。 あえてbashなどを入れないという場面があるようです。 コンテナバリバリ使ってる人が言ってたので多分間違いないと思います。
shではタブ補完などはありません。bashのほうが使いやすいです。 操作方法自体は他のシェルと変わらないので切り替え方さえわかってればそれでいいのかなと思います。
学んだこと
- shとは基本的なシェルであること。
- Docker環境であえてbashなどを入れない場合に使用します。
- 現在のシェルを知る
echo $SHELL
, shに切り替えるsh
, デフォルトシェルに戻るexit
, シェルを切り替えるbash
(zsh
など)だけ覚えてればいいのかな?
あとはtab補完が使えなくなるだけでも操作がめちゃくちゃ面倒になるということを実感しました。bash、zshばんざい!(fishはまだカスタマイズできてない)