Cygwin에서 기본 쉘을 변경하는 방법은 무엇입니까?


29

cygwin에서 기본 쉘을 bash에서 zsh로 변경하려고합니다.

  1. chshcygwin에서는 일반적인 유닉스 명령어 를 사용할 수 없습니다
  2. cygwin의 기존 버전에서 더 이상 사용되지 않는 것 같은 etc / passwd 파일.

그렇다면 어떻게 기본 쉘을 변경할 수 있습니까?

답변:


22

대답은 Cygwin을 시작하는 방법에 따라 다릅니다.

Cygwin.bat로 Cygwin을 시작하는 경우 마지막 줄 /Cygwin.bat(보통 C:\cygwin\또는 C:\cygwin64\)을 수정하십시오 .

mintty로 Cygwin을 시작하는 경우 쉘을 매개 변수로 추가하십시오. mintty /usr/bin/zsh -


2
감사합니다. Conemu를 사용하고 있습니다. 을 변경했다 sh.exezsh.exeConemu 설정> 시작> 작업> bash는 Cygwin에서 배쉬>에서set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i
gyaani_guy

@gyaani_guy ConEmu를 사용하여 실행하고 CygWin\bin\zsh.exe있습니다. sh.exe --loginBash를 시작하면 어떻게 변경합니까? 아니면 어쨌든 중요하지 않습니까? 나는 상상 sh.exe --login불필요하게 실행 sh하기 전에 zsh...
deed02392

@ deed02392 나는 확실히 이해하고 있지 않다 ..하지만 내가 사용하고있는 정확한 명령은 set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -iHTH
gyaani_guy

@gyaani_guy 덕분에 첫 번째 의견에서 zsh을 (를) 시작한다는 것을 암시하는 것처럼 보였기 때문에 혼란 스러웠습니다 sh.exe. 지금은 그냥 :-) 올바르게 메시지를 읽을하지 않았다 실현
deed02392

3
민트 예제는 나에게 효과적이지 않았다. 다음을 추가하여 로그인 쉘로 만들 때까지 문제가있었습니다 -l. mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
Morgan May

18

mintty.exe시작 메뉴 또는 바탕 화면 (mintty.exe의 바로 가기)에서 직접 실행 하거나 Cygwin Terminal을 실행 하는 경우 Windows에서 SHELL 환경 변수를로 설정할 수 있습니다 /usr/bin/zsh.

Windows 7 :

  1. Windows 키를 누릅니다.
  2. "환경"을 입력하십시오.
  3. 표시되면 "계정의 환경 변수 편집"을 선택하십시오.

나머지는 설명이 필요합니다.


5
더 많은 투표가 필요합니다. 나는 이것을 어디에도 문서화 한 적이 없으며 분명히 의도 된 방법입니다.
Kevin Mills

1
적절한 패널을 찾기 위해 검색에 의존하지 않으려면 시작 메뉴를 마우스 오른쪽 버튼으로 클릭하고 "시스템"을 선택하여 시스템 제어판을 시작하십시오. 그런 다음 왼쪽 열에서 "고급 시스템 설정"을 클릭하십시오. "시스템 속성"창이 나타나면 "환경 변수 ..."를 클릭하여 환경 변수 편집기를 시작하십시오.
David C.

완벽하게 일했습니다!
bkunzi01

16

스택 오버플로에 대한 답변에서 복사했습니다 .


Cygwin이 1대해 권장 하는 passwd 파일을 작성하는 대신 /etc/nsswitch.conf를 편집 할 수 있습니다. 다음 줄을 추가하거나 편집하십시오.

db_shell : / usr / bin / fish

이 방법의 단점은 여러 사용자가있는 경우이 변경 사항이 모든 사용자에게 영향을 미친다는 것입니다. 위쪽 / 위쪽은 간단합니다. 유일한 발견은 Cygwin을 다시 시작해야한다는 것입니다.

당신이 경우에 이 변경 후 사용하는 경우 mkpasswd를, 그것은 로그온 할 수있는 모든 사용자에 대한 새 기본 쉘을 사용합니다.


1 mkpasswd 문서는 다음과 같이 말합니다.

실제로 필요한 경우가 아니면이 명령을 사용하여 로컬 / etc / passwd 파일을 생성하지 마십시오. 자세한 내용은 Cygwin 사용자 안내서를 참조하십시오.

사용자 안내서 에서 확실한 추론을 찾을 수는 없지만 사용자와 그룹이 변경되면 / etc / passwd 및 / etc / group 파일을 재생성해야한다는 언급 외에는 충분하지 않습니다. 이유. 초보자에게는 프로세스가 다소 오류가 발생한다고 말할 수 있습니다.


7

이것은 해킹입니다 : 이것을 당신의 첫 번째 줄로 넣으십시오 ~/.bash_profile:

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