저는 Centos 6을 사용하고 있으며 Debian, Ubuntu 및 Fedora에서 sh 대체품으로 다양한 쉘 및 대시 구현에 대해 읽은 후 Centos의 스크립트 쉘로 sh를 대시로 교체하기로 결정했습니다.
내 시스템에 sh와 dash가 모두 있으므로 이 작업이 수행되었는지 확인하는 방법을 모르겠습니다. 그러면 어느 것이 기본 스크립트 셸인지 어떻게 알 수 있습니까?
답변1
다음 명령을 사용하여 기본 셸을 확인할 수 있습니다.
grep -- "$LOGNAME" /etc/passwd | awk -F":" '{print $7}'
내 컴퓨터에 sh
링크가 있습니다 dash
. 다음을 시도해 보세요.
ls -l "$(which sh)"
답변2
"스크립트 쉘"은아니요로그인 쉘. 그것은 무엇이든 실행됩니다 /bin/sh
. 많은 Bourne 쉘 파생물(예: sh
Korn 쉘과 유사할 수 있는 bash 및 dash 등)은 호출 시 다르게 동작합니다.sh
답변3
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)가 설치되어 있는 경우 다른 그래픽 도구를 사용하여 이 설정을 변경할 수 있습니다.
답변4
이를 변경하는 가장 좋은 방법은 Centos에서 usermod를 사용하는 것입니다.
usermod -s /bin/bash username