BioErrorLog Tech Blog

試行錯誤の記録

Session Managerの"sh-4.2$"をbashに切り替える | AWS Systems Manager

Session Managerで表示される sh-4.2$の正体と、それをbashに切り替える方法の備忘録です。

はじめに

こんにちは、@bioerrorlogです。

AWS Systems Manager(SSM)のSession ManagerでEC2インスタンスに接続すると、最初に以下のような画面が表示されます。

sh-4.2$

何か、見慣れたLinuxターミナル画面とは違うなとずっと思っていました。

Linux EC2インスタンスで見慣れたshell画面は、例えば次のようなものです。

[ec2-user@ip-172-31-14-102 ~]$

今回は、このsh-4.2$の正体と、それを見慣れたbashに切り替える方法を整理します。

環境

EC2インスタンス: Amazon Linux 2
SSM agent version: 3.0.161.0

Session Managerの"sh-4.2$"をbashに切り替える

sh-4.2$の正体は何か

まずsh-4.2$の正体ですが、これはBourne shell (sh)と呼ばれるもので、普段使われるbashとは異なるものです。

Session ManagerでLinux EC2インスタンスに接続した際には、デフォルトでこのBourne shellが設定されています。

SSMドキュメントにも、以下のように記載があります。

By default, sessions on EC2 instances for Linux start using the Bourne shell (sh).

このBourne shellをbashに切り替えてあげれば、見慣れた形で作業が出来そうです。

bashに切り替える方法

ではどうやってbashに切り替えるのか?

やり方は簡単で、bashとコマンドに打てばbashに切り替わります。

sh-4.2$ bash
[ssm-user@ip-172-31-14-102 bin]$

これで、bashで実行できるようになりました。


逆にBourne shellに戻すには、shと打ちます。

[ssm-user@ip-172-31-14-102 bin]$ sh
sh-4.2$

おわりに

以上、Session Managerで表示される sh-4.2$の正体と、それをbashに切り替える方法をメモしました。

これまではBourne shellの存在を知らないままモヤモヤしていましたが、Bourne shellとbash shellの切り替えを知ってスッキリしました。

誰かの役に立てば幸いです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

参考

Allow configurable shell profiles - AWS Systems Manager

bash - Linux difference between root shell "#" and "sh-4.2 #" - Stack Overflow

How to use common workflows on Amazon SageMaker notebook instances | AWS Machine Learning Blog

Bourne shell - Wikipedia

bash(1) - Linux manual page