如何知道 Centos 中默认的脚本 shell 是哪个?

如何知道 Centos 中默认的脚本 shell 是哪个?

我正在使用 Centos 6,在阅读了 Debian、Ubuntu 和 Fedora 中不同的 shell 和 dash 实现作为 sh 替代品后,我决定用 dash 替换 sh 作为 Centos 中的脚本 shell。

我不知道如何查看这是否已经完成,因为我的系统中同时有 sh 和 dash,那么我如何知道哪个是我的默认脚本 shell?

答案1

您可以使用以下命令确定默认 shell:

grep -- "$LOGNAME" /etc/passwd | awk -F":" '{print $7}'

在我的机器上,sh有一个链接dash,请尝试:

ls -l "$(which sh)"

答案2

“脚本外壳”是不是登录外壳。它是作为 运行的任何东西/bin/sh。请注意,许多 Bourne shell 衍生产品(即shbash 和 dash 等,也可能与 Korn shell 类似)在调用时表现不同sh

答案3

在 Centos(以及其他 linux 和 unices)上,您可以知道执行以下命令时使用的 shell 是什么:

$ id
uid=501(john1) gid=1000(groupname1) ....

告诉您您正在使用 userjohn1然后:

$ grep john1 /etc/passwd
john1:x:501:1000:john1,,,:/home/john1:/bin/bash

最后一个字符串/告诉你你的登录 shell 是什么(在本例中是“/bin/bash”)

要更改您的登录 shell,您可以(作为 user root)编辑此字符串,passwd但请注意不要更改其他任何内容。

如果您安装了图形界面(如 GNOME 或 KDE),则可以使用其他图形工具来更改此设置。

答案4

更改它的最佳方法是在 Centos 中使用 usermod

usermod -s /bin/bash username

相关内容