MacOSX에서 ZSH 기본 셸 만들기 [닫기]


99

Mac에 zsh를 설치했습니다. 이제 Bash 대신 기본 셸로 만들고 싶습니다. 그러나 다음 오류가 발생하는 것 같습니다.

$ echo $SHELL
/bin/bash
$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell

1
무엇을 chsh -l출력합니까? (그것이 작동하지 않으면 내용은 /etc/shells무엇입니까?) 이것이 실패하고 경고가 아닌 것이 확실합니까? /usr/bin/zsh거기에 추가 하면 작동합니까?
— Etan Reisner 2015-06-24

1
chsh : 옵션에는 인수가 필요합니다.-l 사용법 : chpass [-l 위치] [-u authname] [-s shell] [user]
— Harsha MV

/ bin / bash / bin / csh / bin / ksh / bin / sh / bin / tcsh / bin / zsh
— Harsha MV

뭐가 잘못 /bin/zsh됐나요?
— jxh

1
이제 기본 셸을 zsh로 변경하는 공식적인 방법이 있습니다. Apple 문서 "Zsh를 Mac의 기본 셸로 사용" support.apple.com/en-ca/HT208050
— Anthonyeef

답변:


86

간단한 3 단계 :

  1. which zsh이것은 당신에게 zsh에 대한 경로를 제공합니다.
  2. 그런 다음 chsh -s /bin/zsh다른 경우 zsh의 경로를 바꿉니다.
  3. 컴퓨터를 다시 시작하십시오.

예이. 요세미티 특정입니까?
— Harsha MV

2
아니, 난 그냥 :) 귀하의 정보를했다, 생각하지 않는다
— 쿠엔틴 페레즈

8
문제 를 해결 하기 위해 추가 하라는 동일한 이전 질문에 대한 또 다른 관련 의견 . /usr/bin/zsh/etc/shells
— Brice 2016

그것은 완벽하게 작동합니다
— Olkunmustafa

1
/ etc / shells에 따라 설정하십시오! '$ nano / etc / shells'로 zsh 경로를 찾으십시오. 내 것은 10.12.2에 / usr / bin / zsh 대신 / bin / zsh에있었습니다
— oikonomopo

188

정답으로 문제가 해결되었을 것입니다.

chsh : / usr / bin / zsh : 비표준 쉘

그 이유 chsh는 다음에 대한 매뉴얼을 읽어 보면 알 수 있듯이 / etc / shells 파일에 정의 된 쉘만 허용 하기 때문 입니다 chsh.

chsh는 시스템에있는 모든 실행 파일의 전체 경로 이름을 허용합니다. 그러나 쉘이 / etc / shells 파일에 나열되지 않으면 경고를 발행합니다.

이 문제를 해결하고 zsh를 기본 셸로 만들려면 다음을 수행해야합니다.

$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)

분명히 그것이 zsh당신의 길에 있다고 가정합니다 . 당신은, 예를 들어, 최신 설치하도록 선택하는 경우이 솔루션은 작동 zsh과를 brew install zsh.

편집 (댓글에 대한 ThisIsFlorianK에 감사드립니다) :

셸 설정에 따라 다음과 같은 메시지가 표시 될 수 있습니다 /etc/shells: Permission denied. 여기 에서이 문제에 대한 정보를 찾을 수 있습니다 . 이 문제를 해결하려면 대신 다음을 사용하십시오.

$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)

4
이것은 제 생각에 받아 들여진 대답보다 더 정확합니다. zsh가 / usr / bin / zsh에 설치되어 있다고 가정하면 다른 답변은 작동하지 않습니다. 기본적으로 Apple은 / bin / zsh에 zsh를 설치하기 때문에 OP를 위해 일했습니다. 그러나 homebrew의 zsh (/ usr / local / bin / zsh 아래에 설치됨)를 사용하려면 이것이 적절한 방법이 될 것입니다.
— 2017-07-11

"bash : / etc / shells : Permission denied"가 있습니다. 시스템 환경 설정을 통한 대답이 저에게 효과적이었습니다.
— Ricardo Stuven

44
당신은 얻을 경우 /etc/shells: Permission denied==>를 않는 대신 : sudo sh -c "echo $(which zsh) >> /etc/shells"
— ThisIsFlorianK

1
stackoverflow.com/a/44547726/99834- 시스템 파일을 엉망으로 만들지 않고 작동했습니다. 누락 된 것은 동일한 작업을 수행하는 CLI 버전입니다.
— sorin

@sorin이 무의미한 기물 파손 또는 실제로 답변에 문제가 있습니까? 시스템 파일은 어떤 이유로 편집 가능한 텍스트 파일입니다. chsh이유 때문에 기본적으로 사용할 수 있습니다. 동일한 작업을 수행하기 위해 많은 메뉴를 클릭하는 것이 본질적으로 잘못된 것은 아니지만, 이동이 불가능하고 오류가 발생하기 쉬울뿐만 아니라 변경이 발생한 사용자에게 숨겨져 있다는 점에서 오해의 소지가 있습니다.
— dangom

52

다음을 수행하여이 작업을 수행 할 수있었습니다.

  1. 시스템 환경 설정으로 이동
  2. "사용자 및 그룹"을 클릭하십시오.
  3. 잠금을 클릭하여 변경하십시오.
  4. 현재 사용자를 마우스 오른쪽 버튼으로 클릭-> 고급 옵션
  5. 드롭 다운에서 로그인 셸을 / bin / zsh로 변경합니다.
  6. 새 터미널을 열고 다음으로 확인하십시오. echo $SHELL

4
homebrew를 통해 zsh를 설치하면 zsh가 /usr/local/bin/zsh. 따라서 hombrew가 설치 한 zsh 실행 파일을 선택하기 전에 /etc/shellssudo 에서 편집 하고 항목을 추가 /usr/local/bin/zsh해야합니다
— Baldy

7

내 작업 MacBook에서 다음을 수행해야했습니다.

sudo chsh -s /usr/local/bin/zsh my_user_name

그런 다음 .bash_profile터미널을 열 때마다 터미널을 z-shell로 전환 하는 파일을 만들어야했습니다.

touch ~/.bash_profile
echo 'export SHELL=$(which zsh)' >> ~/.bash_profile
echo 'exec $(which zsh) -l' >> ~/.bash_profile

마지막 아이디어는 여기 에서 빌려온 것 입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.