Mac에서 기본 셸을 설정하는 방법


190

터미널을 시작할 때마다 물고기를 다시 입력하는 것을 좋아하지 않습니다. fish기본적으로 사용 하고 싶습니다 . Mac에서 피쉬 쉘을 기본 쉘로 설정하려면 어떻게해야합니까?

답변:


31

이는 MacOS Sierra 10.12.5 (16F73) 및 기타 최신 및 향후 버전의 MacOS에 적용됩니다.

  1. chsh기본 쉘을 변경하기에 충분하지 않습니다. 터미널이 열려있는 동안 Command+ 를 누르고 ,'다음으로 쉘 열기'옵션을 '기본 로그인 쉘'로 변경하십시오.

  2. bash의 경우 echo $BASH_VERSION원하는 버전의 bash 를 실행 하고 있는지 확인 하기 위해 실행해야합니다 . bash --version정확한 정보를 제공하지 않습니다.


3
이 답변이 허용되는 답변 이므로 아마도 다른 답변 에 대한 부록이 아닌 부록 을 포함하는 완전한 답변을 만들 수 있습니다.
Jason R. Coombs

이것은 지금 문서 에서 답변되었습니다 .
reergymerej

@ JasonR.Coombs 완료.
Tushar Vazirani

1
업데이트 : 우리는 지금에 기본 쉘을 설정할 수 PreferencesTerminal.app . 이 답변 보기 Pankaj.
바질 부르 케

환경 설정에 대한 키보드 단축키를 언급했습니다.
Tushar Vazirani

242

1. sudo nano / etc / shells 여기에 이미지 설명을 입력하십시오

2. 쉘 목록에 / usr / local / bin / fish를 추가하십시오. 여기에 이미지 설명을 입력하십시오

3. chsh -s / usr / local / bin / fish


2
그리고 당신은 Shell open with: Default login shellTerminal.app의 설정 을 변경해야합니다
Tikhonov Alexander

77

chsh 를 사용하여 사용자의 쉘을 변경할 수 있습니다 .

예를 들어 다음 코드를 실행하여 쉘을 Zsh로 변경하십시오.

chsh -s /bin/zsh

맨 페이지와 Lorin에서 설명한 것처럼 OS에서 쉘을 알 수없는 경우 알려진 목록에 쉘을 추가해야합니다 /etc/shells.


13
시도하고 chsh: /usr/local/bin/fish: non-standard shell 해결책은 아래 @ lorin-hochstein의 답변에 의해 설명 된 것처럼 / etc / shells에 추가하는 것이 었습니다
lmsurprenant

dbright @ PowerMac : ~ $ chsh -s / Users / dbright / sys / bin / bash dbright에 대한 쉘 변경. dbright의 비밀번호 : chsh : / Users / dbright / sys / bin / bash : 비표준 쉘 dbright @ PowerMac : ~ $ ls -l / etc / shells -rw-r--r-- 1 루트 휠 2007 년 9 월 23 일 / etc / shells
돈을 밝게

흠, 나는 최근에 간단한 사용자로 작동하는 chsh를 시도했다 -s. 곧 다시 시도하겠습니다.
Aif

73

터미널에서 :

  1. /etc/shells비밀번호 를 추가 하려면 관리자 비밀번호가 필요합니다.

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. 다음을 사용하여 Fish를 기본 쉘로 만드십시오 chsh.

    chsh -s /usr/local/bin/fish
    

시스템 환경 설정에서 :

  1. 사용자 및 그룹 → 현재 사용자 → 고급 옵션 ...을 Ctrl- 클릭

  2. 로그인 쉘을 다음으로 변경하십시오. /usr/local/bin/fish

    로그인 쉘

  3. 확인을 누르고 로그 아웃 한 후 다시 로그인하십시오.


8
- 1 단계에 약간의 비틀기했습니다sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
purpletonic

@purpletonic에서 언급 한 것과 같은 일을하는 또 다른 방법echo /usr/local/bin/fish | sudo tee -a /etc/shells
mroach

20

다른 방법은 다음과 같습니다.

MacPorts와 함께 설치했다고 가정하면 다음을 수행하여 수행 할 수 있습니다.

sudo port install fish

쉘은에 위치 /opt/local/bin/fish합니다.

OSX에 이것이 유효한 쉘임을 알려야합니다. 그렇게하려면 /etc/shells파일 끝에이 경로를 추가 하십시오.

이 작업을 완료하면 시스템 환경 설정-> 계정으로 이동하여 셸을 변경할 수 있습니다. 변경을 허용하려면 잠금을 클릭하십시오. 계정을 마우스 오른쪽 버튼으로 클릭하고 "고급 옵션 ..."을 선택하십시오. "로그인 쉘"필드에서 물고기의 경로를 추가하십시오.


감사! 이것은 훌륭하게 작동했으며 물고기를 모든 곳의 기본 터미널로 만들었습니다. 다른 답변 중 하나처럼 터미널에서 변경하면 터미널을 닫을 때마다 터미널 프롬프트가 표시되고 chsh가 작동하지 않았습니다.
jasongregori

12

나를 위해 일한 유일한 것은이 모든 방법의 조합이었습니다.

  1. 먼저 /etc/shells파일 에 물고기를 추가해야했습니다

  2. 그런 다음 나는 달렸다 chsh -s /usr/local/bin/fish

  3. 마지막으로 Command+를 입력 하고 기본 경로에 ,추가 /usr/local/bin/fish했습니다.

세 가지 작업을 모두 마친 후에야 새로운 터미널 창의 기본값으로 물고기가 나타나기 시작했습니다.



8

Terminal.app > Preferences> General> Shells open with:>/bin/fish

  1. 터미널을 열고 command+ ,(쉼표)를 누르십시오 . 환경 설정 창이 열립니다.
  2. 첫 번째 탭은 '일반'입니다.
  3. 'Shells open with'설정을 찾아서 쉘에 대한 완전한 경로가 필요한 두 번째 옵션을 선택하십시오.
  4. 물고기 명령에 대한 링크를 붙여 넣습니다 (일반적으로) /usr/local/bin/fish.

zsh기본값으로 설정되어 있는이 스크린 샷을 참조하십시오 .

Terminal.app 환경 설정에서 <code> / bin / zsh </ code> 입력 스크린 샷

내가 사용하고 맥 OS 시에라을 . macOS Mojave 에서도 작동합니다 .


2
마침내! sudo가 아닌 사용자에게 적합한 솔루션!
Ébe Isaac

7

macOS Mojave에서 다음을 수행해야했습니다 (zsh를 예로 사용).

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

참고 :이 정확한 방법을 사용하여 최신 버전의 bash도 얻을 수 있습니다. stackoverflow.com/a/55011144/117471 나는 거의 똑같은 코드를 내 스스로 만들었습니다.
Bruno Bronosky

1
설치할 필요가 없습니다 zsh. macOS Mojave에 이미 존재합니다. 모하비에 번들로 제공되며 카탈리나에서 기본 제공됩니다.
Basil Bourque

5

최신 macOS에서 최신 버전의 bash를 얻는 방법 (Mojave에서 테스트).

brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)

그런 다음 bash> = 4에서만 사용할 수있는 vim 스타일 탭 완성얻을 준비가되었습니다 (현재 버전 brew은 5.0.2입니다)

# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete

# Display a list of the matching files
bind "set show-all-if-ambiguous on"

# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"

4

chsh프로그램은 기본 쉘을 변경할 수 있습니다. 실행 파일의 전체 경로를 원할 것이므로 쉘이 fish있으면 입력 할 때 주어진 출력을 제공하기를 원할 것 which fish입니다.

" Shell:"로 시작하는 줄이 나타납니다 . 편집하지 않은 경우 " Shell: /bin/bash" 라고 표시 될 가능성이 높습니다 . 해당 /bin/bash경로를 원하는 쉘의 경로로 바꾸십시오.


4

터미널에있을 때 Command+를 사용하여 터미널 기본 설정을 엽니 다 ,.

설정 탭에서 테마 중 하나를 선택하고 오른쪽에서 쉘 탭을 선택하십시오.

자동 시작 명령을 설정할 수 있습니다 fish.


4

이것은 mac osx (sierra)를 새로 설치하는 데 도움이됩니다.

  1. 현재 사용자를 쉘 소유자로 정의
sudo chown $(whoami) /etc/shells
  1. / etc / shells에 물고기 추가
sudo echo /usr/local/bin/fish >> /etc/shells
  1. chsh를 사용하여 Fish를 기본 쉘로 설정
chsh -s /usr/local/bin/fish
  1. 껍질의 소유자로 루트를 재정의
sudo chown root /etc/shells

2
heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
 > cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >

그 값을 변경하십시오 (의 write 명령으로 dscl).


읽기 leeg를 실행할 때이 오류가 발생합니다. <dscl_cmd> DS 오류 : -14136 (eDSRecordNotFound)
Léo Léopold Hertz 준영

1
예. 그것은

0

다른 방법으로 문제가있는 경우 mac Mojave에서 작업했지만 일반적으로 작동합니다.

which fish

"시스템 환경 설정> 사용자 및 그룹> 마우스 오른쪽 단추로 사용자, 고급 옵션"에 출력 경로를 추가하십시오. 결과를 "로그인 쉘"에 붙여 넣으십시오.


0

Mac에서 기본 셸을 변경하려면 다음을 실행하십시오.

chsh -s <name-of-shell>

선택할 수있는 쉘 목록은 다음과 같습니다.

  1. / bin / bash
  2. / bin / csh
  3. / bin / dash
  4. / bin / ksh
  5. / bin / sh
  6. / bin / tcsh
  7. / bin / zsh

따라서 / bin / zsh 셸로 변경하려는 경우 명령은 다음과 같습니다.

chsh -s /bin/zsh

다음을 실행하여 시스템에서 사용 가능한 모든 쉘을 볼 수 있습니다.

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