Alpine Linuxのログインシェル ash

多くのLinuxディストリビューションはシェルにbashを採用していますが、Alpine Linuxは軽量化のためbusybox同梱のashになっています。

bashは機能拡張したshであり基本的な機能には互換性があります。コマンドのタブ補完も効くため、使い方はそれほど変わりません。

一方で名称は違うため、シェルスクリプトを記述する際の冒頭shebangは#!/bin/shにする必要があります。また、 docker execなどを実行する際にもbashではなくshを指定しないと動作しません。

環境変数PATHを設定したい場合のrcファイルは.bash_profileではなく~/.profileです(詳細は、 man ashのInvocation参照)。

なお、sshでAlpine Linux上のアカウントにログインした場合などインタラクティブシェル起動にならないモードもあり、ログイン時に~/.profileは読み込まれないケースもあります。この場合、ssh側の設定で環境変数設定することは可能です。

⁋ 2018/02/26↻ 2024/11/07
中馬崇尋
Chuma Takahiro