새 Mac에서는 bash로 전환해 보세요.
alex.mills@alex uta-phd %
alex.mills@alex uta-phd % echo $SHELL
/bin/zsh
alex.mills@alex uta-phd %
alex.mills@alex uta-phd % exec bash
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
%na%m %1~ %#
%na%m %1~ %# echo $SHELL
/bin/zsh
%n@%m %1~ %#
echo "$SHELL"
계속 사용중이라고 뜹니다/bin/zsh
무엇을 해야 할까요?
답변1
너예배쉬를 실행하세요. 그래서 프롬프트가 이상하게 보이는 것입니다. Bash와 zsh는 모두 PS1
변수를 프롬프트의 기본 설정으로 사용하지만 이스케이프 시퀀스가 다릅니다(bash의 백슬래시 문자, zsh의 퍼센트 기호 문자, 두 번째 문자는 다른 의미를 가짐).
PS1
일반적으로 이 변수는 환경으로 내보내는 대신 (또는) 쉘의 초기화 파일에 의해 설정되어야 하지만(주요 Linux 배포판을 포함한) 많은 시스템에서는 매우 쉽게 구성하고 내보낼 수 있습니다. 내가 아는 한, MacOS는 기본적으로 올바르게 내보내지 않지만 사용자의 파일은 내보낼 수 있는 것처럼 보이며(또는 내가 확인한 것과 다른 버전의 macOS일 수도 있음) 어떤 이유에서는 그렇지 않습니다. 특히 macOS에서는 이미 설정되어 있으면 변경하십시오..bashrc
.zshrc
PS1
PS1
bashrc
PS1
환경 SHELL
변수는 실행 중인 쉘을 나타내지 않습니다. 당신이 어떤 껍질인지 보여줍니다생각하다달리기. 이는 실행할 쉘을 시작하려는 프로그램에 알려줍니다. 다른 쉘을 수동으로 실행해도 아무 것도 바뀌지 않습니다 $SHELL
.
쉘 프롬프트가 표시되고 어떤 쉘이 실행 중인지 확실하지 않은 경우 를 사용하여 확인할 수 있습니다 ps
. 모든 Bourne 스타일 셸(sh, ash, bash, ksh, zsh 등)에서 $$
셸의 프로세스 ID를 나타내므로 ps $$
현재 셸이 어떤 프로그램인지 알려줍니다. Fish에서는 Fish가 $$
유효하지 않기 때문에 Fish를 실행하고 있음을 나타내는 오류가 발생합니다 .
답변2
왜 그렇게 열심히 노력하는 걸까요 exec bash
? bash
쉘을 시작하려면 간단히 를 실행하십시오 bash
. 로그인 쉘 역할을 하는 쉘의 경우 를 사용하십시오 bash -l
. 쉘을 영구적 bash
으로 chsh
.
답변3
나중에 케이스를 바꾸셨나요? 그렇지 않은 경우 chsh -s $(which bash)
sum 을 호출하세요 echo $SHELL
.