寺裏庵

こたつ(そろそろアウト)と自作スタンディングデスクもしくは普通のデスクと腰が痛くならない椅子で仕事する在宅Terralienです

Docker勉強してるからあえてのshを使ってみる

f:id:terralien:20220331235903j:plain
https://pixabay.com/images/id-601276/

ちと勉強する範囲を手広く広げすぎて時間足りてないぞ?と思い始めた寺です。 早いところターミナルカスタマイズコースを終えて集中と選択を行いたいと思っています。

シェルですが主にbashzshを使っています。 最近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で現在使用しているシェルを見ることができます。 だいたいみなさんもbashzshを使っているのではないでしょうか?

$ 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補完が使えなくなるだけでも操作がめちゃくちゃ面倒になるということを実感しました。bashzshばんざい!(fishはまだカスタマイズできてない)

参考資料

https://wa3.i-3-i.info/word11785.html

https://envader.plus/course/7/scenario/1041