私はCentos 6を使用しています。Debian、Ubuntu、Fedoraでshの置き換えとしてさまざまなシェルとダッシュの実装について読んだ後、centosのスクリプトシェルとしてshをダッシュに置き換えることにしました。
システムにshとdashの両方が含まれているので、これが既に行われているかどうかを確認する方法がわかりません。
次のコマンドを使用して、デフォルトのシェルを決定できます。
grep -- "$LOGNAME" /etc/passwd | awk -F":" '{print $7}'
私のマシンでは、sh
はdash
へのリンクです。
ls -l "$(which sh)"
「スクリプトシェル」はnotログインシェルです。それは/bin/sh
として実行されているものです。多くのBourne Shell派生物(つまり、bashやdashのようなsh
s、およびおそらくKorn Shellのそっくりのもの)は、sh
として呼び出されたときの動作が異なることに注意してください。
Centos(および他のlinuxとunices)では、このコマンドを実行して使用しているシェルが何であるかを知ることができます。
$ id
uid=501(john1) gid=1000(groupname1) ....
これは、ユーザーjohn1
を使用していることを示し、次に:
$ grep john1 /etc/passwd
john1:x:501:1000:john1,,,:/home/john1:/bin/bash
最後の文字列/
は、ログインシェルが何であるかを示します(この例では「/ bin/bash」です)。
ログインシェルを変更するには、この文字列を(ユーザーroot
として)passwd
に編集できますが、他の文字列を変更しないように注意してください。
グラフィカルインターフェイス(GNOMEやKDEなど)がインストールされている場合は、この設定を変更する他のグラフィカルツールがあります。