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の切り替えを知ってスッキリしました。
誰かの役に立てば幸いです。
[関連記事]
参考
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