터미널을 시작할 때마다 물고기를 다시 입력하는 것을 좋아하지 않습니다. fish
기본적으로 사용 하고 싶습니다 . Mac에서 피쉬 쉘을 기본 쉘로 설정하려면 어떻게해야합니까?
터미널을 시작할 때마다 물고기를 다시 입력하는 것을 좋아하지 않습니다. fish
기본적으로 사용 하고 싶습니다 . Mac에서 피쉬 쉘을 기본 쉘로 설정하려면 어떻게해야합니까?
답변:
이는 MacOS Sierra 10.12.5 (16F73) 및 기타 최신 및 향후 버전의 MacOS에 적용됩니다.
chsh
기본 쉘을 변경하기에 충분하지 않습니다. 터미널이 열려있는 동안 Command+ 를 누르고 ,'다음으로 쉘 열기'옵션을 '기본 로그인 쉘'로 변경하십시오.
bash의 경우 echo $BASH_VERSION
원하는 버전의 bash 를 실행 하고 있는지 확인 하기 위해 실행해야합니다 . bash --version
정확한 정보를 제공하지 않습니다.
1. sudo nano / etc / shells
2. 쉘 목록에 / usr / local / bin / fish를 추가하십시오.
3. chsh -s / usr / local / bin / fish
Shell open with: Default login shell
Terminal.app의 설정 을 변경해야합니다
chsh 를 사용하여 사용자의 쉘을 변경할 수 있습니다 .
예를 들어 다음 코드를 실행하여 쉘을 Zsh로 변경하십시오.
chsh -s /bin/zsh
맨 페이지와 Lorin에서 설명한 것처럼 OS에서 쉘을 알 수없는 경우 알려진 목록에 쉘을 추가해야합니다 /etc/shells
.
chsh: /usr/local/bin/fish: non-standard shell
해결책은 아래 @ lorin-hochstein의 답변에 의해 설명 된 것처럼 / etc / shells에 추가하는 것이 었습니다
-s
. 곧 다시 시도하겠습니다.
터미널에서 :
에 /etc/shells
비밀번호 를 추가 하려면 관리자 비밀번호가 필요합니다.
sudo echo /usr/local/bin/fish >> /etc/shells
다음을 사용하여 Fish를 기본 쉘로 만드십시오 chsh
.
chsh -s /usr/local/bin/fish
시스템 환경 설정에서 :
사용자 및 그룹 → 현재 사용자 → 고급 옵션 ...을 Ctrl- 클릭
로그인 쉘을 다음으로 변경하십시오. /usr/local/bin/fish
확인을 누르고 로그 아웃 한 후 다시 로그인하십시오.
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
다른 방법은 다음과 같습니다.
MacPorts와 함께 설치했다고 가정하면 다음을 수행하여 수행 할 수 있습니다.
sudo port install fish
쉘은에 위치 /opt/local/bin/fish
합니다.
OSX에 이것이 유효한 쉘임을 알려야합니다. 그렇게하려면 /etc/shells
파일 끝에이 경로를 추가 하십시오.
이 작업을 완료하면 시스템 환경 설정-> 계정으로 이동하여 셸을 변경할 수 있습니다. 변경을 허용하려면 잠금을 클릭하십시오. 계정을 마우스 오른쪽 버튼으로 클릭하고 "고급 옵션 ..."을 선택하십시오. "로그인 쉘"필드에서 물고기의 경로를 추가하십시오.
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
.zsh
기본값으로 설정되어 있는이 스크린 샷을 참조하십시오 .
내가 사용하고 맥 OS 시에라을 . macOS Mojave 에서도 작동합니다 .
macOS Mojave에서 다음을 수행해야했습니다 (zsh를 예로 사용).
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh
. macOS Mojave에 이미 존재합니다. 모하비에 번들로 제공되며 카탈리나에서 기본 제공됩니다.
최신 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"
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
).