Mac OS X의 로그인 셸을 bash에서 zsh로 변경하는 방법은 무엇입니까?


90

Mac OS X의 로그인 셸을에서 (으)로 변경하려고 bash합니다 zsh. 나는 볼 이 맥 OS X 레오파드에서 가능 하지만, OS X 라이온을 위해 나는 방법을 찾을 수 없습니다. Login shell을 bash에서 다른 것으로 바꿀 수 있기를 정말로 바랍니다. 어디를 찾아야할지 정확히 모르겠습니다.


쉘을 zsh로 변경 한 후에도 여전히 zsh를 수동으로 시작해야했습니다. 로그 아웃해도 도움이되지 않았습니다. 그런 다음 zsh를 최상위 로그인 쉘로 변경했습니다. 로그 아웃했습니다.

1
다른 것이 없으면 항상 .bashrc를 수정하여 zsh를 찾아서 실행할 수 있습니다. if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi. 힌트 : 셸 시작 스크립트를 수정할 때 셸을 계속 실행하고 다른 창에서 새 셸을 시작해야합니다. 끊어도 여전히 쉽게 고칠 수 있습니다.
Dan Pritts

답변:


101

다음 명령으로 사용자 셸을 변경할 수 있습니다.

chsh -s /bin/zsh

참고 : 비표준 쉘에 대해 변경하려면 경로가 /etc/shells파일 에 추가되었는지 확인하십시오 .


4
Homebrew와 함께 zsh의 최신 버전을 설치하여 zsh를에 배치했습니다 /usr/local/bin/zsh. 불행히도 chsh는 이것을 허용하지 않습니다 chsh: /usr/local/bin/zsh: non-standard shell. 이 경우 Daniel Beck의 답변이 적합한 솔루션입니다.
adam_0

43
비표준 쉘에 문제가 발생하면 추가 /usr/local/bin/zsh/etc/shells수 있어야하고 그 문제를 해결 해야한다고 생각합니다 .
Mike Meyers

13
homebrew zsh 설치 정보는 실제로 / etc / shells에 추가 할 것을 권장합니다. ==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells.
George

때때로 작동하지 않습니다.
@frank

1
@Awesome_girl 기본적으로 /etc/shells루트 (수퍼 유저)는 소유하고 쓰기 만 가능합니다. 당신은, 예를 들어, 사용할 수있는 sudo vi /etc/shells사용 sudo( S uper의 U의 산이 않는 실행하는) vi편집 할 수있는 편집기를 /etc/shells. 방금 시스템을 테스트 한 결과 시스템 무결성 보호에 의해 보호되지 않는 것으로 확인되었으므로 후프를 뛰어 넘지 않고 루트로 편집하여 SIP를 비활성화 할 수 있어야합니다.
Spiff

54

재미있게도, 귀하의 질문에 연결하는 것과 동일한 방법이 여전히 Sierra (10.12)를 통해 OS X Lion에서 작동합니다. 유일한 차이점은 다음과 같습니다. 기본 설정 분할 창의 이름 은 계정 대신 사용자 및 그룹 입니다 .

  1. "시스템 환경 설정"→ "사용자 및 그룹"을여십시오.
  2. 잠금 아이콘이 이미 잠금 해제되어 있지 않으면 잠금 아이콘을 클릭하고 자신을 인증하십시오.
  3. 사용자 이름 목록에서 사용자를 컨텍스트 클릭하십시오 (클릭하는 Control동안 키를 누르거나 오른 손잡이 두 버튼 마우스를 마우스 오른쪽 버튼으로 클릭하십시오).
  4. 상황에 맞는 메뉴에서 "고급 옵션…"을 선택하십시오.
  5. 표시되는 시트에서 "로그인 쉘"을 선택하십시오.

"고급 옵션"화면 상단에있는 메모는 변경 사항을 적용하기 위해 다시 시작해야한다고 주장하지만 실제로 로그 아웃했다가 다시 로그인하면됩니다.

여기에 이미지 설명을 입력하십시오


1
이것이 Mountain Lion에서 작동하고 사용자가 직접 설치하거나 Homebrew를 설치했을 수있는 "비표준 쉘"작업을 확인했습니다.
adam_0 2014

2
10.10 요세미티에서 계속 작동 함을 확인했습니다.
ecnepsnai

4
사용자 이름을 마우스 오른쪽 버튼으로 클릭하면 "고급 옵션"이 포함 된 메뉴가 나타납니다. 찾는 데 몇 분이 걸렸습니다.
pdwalker

1
왜 누군가가 외부로 나가 대답을하기 전에 모든 정보를 수집하도록 강요합니까? 따라서 다른 사람이 대답이 여기 저기보다는 여기에 있다고 가정하는 경우의 의견입니다.
pdwalker

1
@jvriesem 실제로는 그렇습니다. 내 생각 엔 당신은 2 단계를 건너 뛰었을 것입니다.
Daniel Beck

11

또는:

sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)

3
이것이 왜 질문에 대답하는지 설명 할 수 있습니까?
ChrisF

후에 반드시 실행하십시오 brew install zsh.
mmell

3
또한 homebrew를 통해 설치된 zsh의 경로가 다르므로주의하십시오. 나는 다음과 같이한다 :sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
metakermit

1
경고 : zsh 경로를 먼저 확인하지 않고 복사 / 붙여 넣기하면 쉘이 손상됩니다. 대신 metakermit이 말한 것을 수행하십시오.
radixhound

1

macOS Sierra에서 동일한 문제가 궁금해하는 사람이 있고 다음 명령을 사용하면 문제없이 쉘을 변경할 수 있습니다.

chpass -s /usr/local/bin/zsh

1
이것은 다른 답변을 복제하고 새로운 내용을 추가하지 않습니다. 실제로 새로운 내용이 없다면 답변을 올리지 마십시오. "chfn 및 chsh는 chpass의 동의어입니다."
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.