기본 쉘을 변경하기 위해 이 답변을 참조했습니다.기본 쉘을 ZSH로 변경하는 방법 - chsh에 "잘못된 쉘"이 표시됩니다.
zsh를 추가 /etc/shells
하고 실행한 후 sudo chsh -s "$(command -v zsh)" "${USER}"
실행했습니다 echo $SHELL
(그런데 출력이 없으므로 성공적으로 실행되었을 것이라고 생각했습니다)./bin/bash
쉘을 닫고 새 쉘 세션을 열었고 zsh가 나타났기 때문에 다시 시작하면 문제가 해결되었을 것이라고 생각했습니다. 그런 다음 echo $SHELL
zsh 세션에서 실행해도 여전히 동일한 출력이 표시되고 /bin/bash``$SHELL --version
대신 bash 버전도 제공되었습니다. zsh 하나
ctrl+alt+t를 할 때마다 zsh 세션이 발생하지만 이 echo $SHELL
출력은 의심스럽습니다.
업데이트: 저는 Ubuntu Budgie 18.04.3을 실행 중이고 다음 /bin/zsh
으로 시작했습니다.echo $0
답변1
SHELL
환경 변수는 로그아웃했다가 다시 로그인하거나 전체 로그인을 수행하는 su - "$USER"
또는 ssh "$USER@localhost"
기타 명령을 사용하는 등 전체 로그인을 수행하는 경우에만 설정됩니다 .
일반적으로 login
프로그램은 데이터베이스에 있는 사용자 로그인 셸의 내용을 기반으로 이 변수를 설정합니다 passwd
. 프로세스가 사용자의 로그인 요청을 수락할 때마다(예: 등을 통해 sshd
) gdm
이는 로그인 프로세스의 일부라고 합니다.
login(1)
우분투 매뉴얼 에서 :
사용자 및 그룹 ID는
/etc/passwd
파일의 값에 따라 설정됩니다.$HOME
,$SHELL
,$PATH
및 값$LOGNAME
은
단순히 새 셸 세션을 시작하면 셸이 "로그인 셸"로 시작되더라도 이 변수의 값이 설정되지 않습니다.
답변2
Kusalananda의 우수하고 수용 가능한 답변에 추가하고 싶습니다.
macOS에서 GUI를 종료하지 않고 변경 사항을 보려면 터미널에 다음을 입력하면 됩니다.
$ logout [your username]
그런 다음 새 터미널 세션을 열고 다음을 입력하십시오.
echo $SHELL
새로운 환경 설정이 표시됩니다.