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.