답변:
에 나열된 쉘로만 변경할 수 있습니다 /etc/shells
. 일반적으로 문제는 없지만 Bash 4 (Homebrew, MacPorts 또는 자체 컴파일)를 설치하려면에 줄을 추가해야합니다 /etc/shells
. (몇 주 전에이 문제가 발생하여 다른 사람들이 알도록 도울 수 있다고 생각했습니다 ...)
편집 : 팀 스미스 는 루트를 통해 루트로 /etc/shells
실행 하면 한계를 극복 할 수 있다고 지적합니다 . 에 나열되어 있지 않더라도 예 를 들어 작동 합니다. 나는 편집하는 것을 선호 하지만 결국 에는 일반 사용자로 편집 할 수 없으므로 어느 쪽이든 사용합니다. 아마 하나는 6 개, 다른 하나는 6 개입니다.chsh
sudo
sudo chsh -s /usr/local/bin/my_shell $USER
my_shell
/etc/shells
/etc/shells
sudo
/etc/shells
/etc/shells
필요하지 않은 이유는 무엇 입니까? 건강을 위해 시스템 파일을 동일하게 유지하는 것을 선호합니다.
/etc/shells
인식 된 쉘을 정의하는 시스템의 파일입니다. 인식 된 쉘 목록에 쉘을 추가하려고하므로 해당 파일을 변경합니다. 나에게 꽤 합리적인 것 같습니다.
chsh: bash: non-standard shell
chsh
나열되지 않은 쉘을 사용하려는 경우 단독으로 사용할 수 없습니다 /etc/shells
.
/etc/shells
나에게 이상한 것 같지 않습니다 .
Mac OS X GUI를 사용하여이 작업을 수행하려면
이 위치는 터미널에 불편한 경우 홈 디렉토리, UUID, 사용자 ID, 그룹 ID 및 짧은 이름을 변경할 수있는 위치입니다. 여기에도 비슷한 질문이 있습니다 .
위의 답변을 사용하여 오류 메시지가 나타납니다.
$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell
이 문제를 해결하려면
sudo chsh -s zsh $(whoami)
whoami
서브 쉘은 루트가 아닌 사용자의 쉘을 변경하는 것입니다.
homebrew를 사용하는 경우 한 가지 더. 명령을 루트로 실행하면 (을 사용하여 sudo
) zsh는 / bin / zsh를 가리키며, 이는 OSX와 함께 제공되며 오래 될 수 있습니다. homebrew를 통해 설치된 최신 버전을 사용하려면 다음을 사용하십시오.
sudo chsh -s $(which zsh) $(whoami)