chsh -s / usr / bin / zsh가 작동하지 않습니다


24

chsh명령을 사용하여 쉘을 zsh로 영구적으로 변경하려고하는데 작동하지 않습니다.

zsh는 apt를 통해 설치되며 bash 프롬프트 터미널에서 직접 호출하면 정상적으로 작동합니다. 그러나 기본적으로 터미널에 zsh를로드 할 수 없으며 chsh가 이상한 일을하고 있습니다.

$ echo $SHELL
/bin/bash
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Password: 
$ echo $SHELL
/bin/bash
$ grep kurtosis /etc/passwd
kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh

chsh가 / etc / passwd를 올바르게 변경했지만 $ SHELL env 변수는 변경하지 않은 것으로 보입니다. 따라서 새 터미널은 항상 zsh가 아닌 bash에서 시작합니다.

이 문제를 해결할 위치를 잘 모르겠습니다. .bashrc쉘이 지정 될 때까지 호출되지 않더라도? 도움을 주셔서 감사합니다.


1
시스템에 다시 로그인 한 후에 쉘을 변경할 수 없습니까?
vine_user

이 답변을 확인하십시오 .
Pablo A

답변:


34

이러한 변경 사항을 적용하려면 다시 로그 아웃해야합니다. / etc / passwd 파일에 정의 된 쉘은 로그인 쉘입니다 :-) 따라서 실제로 로그인해야합니다.


2
감사. 나는 재부팅하지 않고 리눅스를 변경할 수 있었기 때문에 익숙하지 않았다.
Kurtosis

실제로 다시 부팅해야 효과가있었습니다. 기존 쉘 세션에 다시 연결 한 것 같습니다.
Chris Kimpton

ssh 연결을 사용하는 동안 종료하더라도 서버가 연결과 쉘을 완전히 닫지 못할 수 있습니다. 따라서 사용자에게 속한 프로세스 (ssh 및 sh)를 종료해야 할 수도 있습니다. (나는이 문제가 있었고 해결책을 찾기가 쉽지만 여전히 로그 아웃해야한다는 것을 알기 위해이 게시물을 방문해야했습니다.)
John Hamilton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.