Mac OS X에서 쉘을 어떻게 설정합니까?


21

터미널 환경 설정에서 "Shells open with"를 설정할 수 있다는 것을 알고 있지만 시스템 전체에서 이것을 설정하는 방법이 있는지 궁금합니다 (일부 유닉스에서 / etc / passwd를 업데이트하는 것과 유사 함).

답변:


24

다음 chsh과 같이 유틸리티를 사용하십시오 :

chsh -s bash

애플은 예를 들어 리눅스에서 볼 수있는 chsh것과 비교하여 Mac OS X에서 약간 변경되었습니다 chsh. chsh Mac OS X Man Page 에서 그것들을 읽을 수 있습니다 .


그리고 여기에 OSX 전용 유틸리티가 복잡하다고 생각했습니다. 감사.
nall

@john-nicely learn :)
akira

응, 저도 지난번에 답을 알고 있었어요. :(
John T

19

에 나열된 쉘로만 변경할 수 있습니다 /etc/shells. 일반적으로 문제는 없지만 Bash 4 (Homebrew, MacPorts 또는 자체 컴파일)를 설치하려면에 줄을 추가해야합니다 /etc/shells. (몇 주 전에이 문제가 발생하여 다른 사람들이 알도록 도울 수 있다고 생각했습니다 ...)

편집 : 팀 스미스 는 루트를 통해 루트로 /etc/shells실행 하면 한계를 극복 할 수 있다고 지적합니다 . 에 나열되어 있지 않더라도 예 를 들어 작동 합니다. 나는 편집하는 것을 선호 하지만 결국 에는 일반 사용자로 편집 할 수 없으므로 어느 쪽이든 사용합니다. 아마 하나는 6 개, 다른 하나는 6 개입니다.chshsudosudo chsh -s /usr/local/bin/my_shell $USERmy_shell/etc/shells/etc/shellssudo/etc/shells


/etc/shells필요하지 않은 이유는 무엇 입니까? 건강을 위해 시스템 파일을 동일하게 유지하는 것을 선호합니다.
ma11hew28

@MattDiPasquale "신성"의 의미가 무엇인지 잘 모르겠습니다. /etc/shells인식 된 쉘을 정의하는 시스템의 파일입니다. 인식 된 쉘 목록에 쉘을 추가하려고하므로 해당 파일을 변경합니다. 나에게 꽤 합리적인 것 같습니다.
Telemachus

좋은 대안. 어떤 식 으로든 chsh가 작동하지 않습니다. 알 겠어 ; chsh: bash: non-standard shell
RyBolt

@ RyBolt 맞아 : 이유는 아마도 대답에서 언급 한 것일 것입니다. 에 chsh나열되지 않은 쉘을 사용하려는 경우 단독으로 사용할 수 없습니다 /etc/shells.
Telemachus

@ Telemachus, 나는 기본 Mac OSX 빌드와 함께 제공된 원래 bash 쉘로 변경하려고했습니다. 어쩌면 그것은 /etc/shells나에게 이상한 것 같지 않습니다 .
RyBolt

10

Mac OS X GUI를 사용하여이 작업을 수행하려면

  1. “시스템 환경 설정”을여십시오.
  2. "계정"/ "사용자 및 그룹"기본 설정 창을 열고 해당되는 경우 기본 설정 창을 잠금 해제하십시오.
  3. 쉘을 변경하려는 사용자에서 사용자를 control+ 클릭하거나 마우스 오른쪽 버튼으로 클릭하고 "고급 옵션…"을 선택하십시오.
  4. “로그인 쉘 :”이라고 표시된 곳에서 사용하려는 쉘로 변경하십시오.

이 위치는 터미널에 불편한 경우 홈 디렉토리, UUID, 사용자 ID, 그룹 ID 및 짧은 이름을 변경할 수있는 위치입니다. 여기에도 비슷한 질문이 있습니다 .


5

위의 답변을 사용하여 오류 메시지가 나타납니다.

$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell

이 문제를 해결하려면

sudo chsh -s zsh $(whoami)

whoami 서브 쉘은 루트가 아닌 사용자의 쉘을 변경하는 것입니다.

homebrew를 사용하는 경우 한 가지 더. 명령을 루트로 실행하면 (을 사용하여 sudo) zsh는 / bin / zsh를 가리키며, 이는 OSX와 함께 제공되며 오래 될 수 있습니다. homebrew를 통해 설치된 최신 버전을 사용하려면 다음을 사용하십시오.

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