我正在使用 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 衍生产品(即sh
bash 和 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