cygwin에서 기본 쉘을 bash에서 zsh로 변경하려고합니다.
chsh
cygwin에서는 일반적인 유닉스 명령어 를 사용할 수 없습니다- cygwin의 기존 버전에서 더 이상 사용되지 않는 것 같은 etc / passwd 파일.
그렇다면 어떻게 기본 쉘을 변경할 수 있습니까?
cygwin에서 기본 쉘을 bash에서 zsh로 변경하려고합니다.
chsh
cygwin에서는 일반적인 유닉스 명령어 를 사용할 수 없습니다그렇다면 어떻게 기본 쉘을 변경할 수 있습니까?
답변:
대답은 Cygwin을 시작하는 방법에 따라 다릅니다.
Cygwin.bat로 Cygwin을 시작하는 경우 마지막 줄 /Cygwin.bat
(보통 C:\cygwin\
또는 C:\cygwin64\
)을 수정하십시오 .
mintty로 Cygwin을 시작하는 경우 쉘을 매개 변수로 추가하십시오. mintty /usr/bin/zsh -
CygWin\bin\zsh.exe
있습니다. sh.exe --login
Bash를 시작하면 어떻게 변경합니까? 아니면 어쨌든 중요하지 않습니까? 나는 상상 sh.exe --login
불필요하게 실행 sh
하기 전에 zsh
...
set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -i
HTH
sh.exe
. 지금은 그냥 :-) 올바르게 메시지를 읽을하지 않았다 실현
-l
. mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
mintty.exe
시작 메뉴 또는 바탕 화면 (mintty.exe의 바로 가기)에서 직접 실행 하거나 Cygwin Terminal을 실행 하는 경우 Windows에서 SHELL 환경 변수를로 설정할 수 있습니다 /usr/bin/zsh
.
Windows 7 :
나머지는 설명이 필요합니다.
스택 오버플로에 대한 답변에서 복사했습니다 .
Cygwin이 1 에 대해 권장 하는 passwd 파일을 작성하는 대신 /etc/nsswitch.conf를 편집 할 수 있습니다. 다음 줄을 추가하거나 편집하십시오.
db_shell : / usr / bin / fish
이 방법의 단점은 여러 사용자가있는 경우이 변경 사항이 모든 사용자에게 영향을 미친다는 것입니다. 위쪽 / 위쪽은 간단합니다. 유일한 발견은 Cygwin을 다시 시작해야한다는 것입니다.
당신이 경우에 할 이 변경 후 사용하는 경우 mkpasswd를, 그것은 로그온 할 수있는 모든 사용자에 대한 새 기본 쉘을 사용합니다.
1 mkpasswd 문서는 다음과 같이 말합니다.
실제로 필요한 경우가 아니면이 명령을 사용하여 로컬 / etc / passwd 파일을 생성하지 마십시오. 자세한 내용은 Cygwin 사용자 안내서를 참조하십시오.
사용자 안내서 에서 확실한 추론을 찾을 수는 없지만 사용자와 그룹이 변경되면 / etc / passwd 및 / etc / group 파일을 재생성해야한다는 언급 외에는 충분하지 않습니다. 이유. 초보자에게는 프로세스가 다소 오류가 발생한다고 말할 수 있습니다.
sh.exe
에zsh.exe
Conemu 설정> 시작> 작업> bash는 Cygwin에서 배쉬>에서set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i