Cygwin でデフォルトのシェルを変更するにはどうすればいいですか?

Cygwin でデフォルトのシェルを変更するにはどうすればいいですか?

Cygwin でデフォルトのシェルを bash から zsh に変更しようとしています。

  1. 通常のUNIXコマンドはchshcygwinでは利用できません
  2. etc/passwd ファイルは、cygwin の既存のバージョンではもう使用されていないようです。

では、デフォルトのシェルを変更するには他にどのような方法がありますか?

答え1

答えは、Cygwin をどのように起動するかによって異なります。

CygwinをCygwin.bat、 の最後の行/Cygwin.bat(通常C:\cygwin\は またはC:\cygwin64\) を変更します。

Cygwinをミント次に、シェルをパラメータとして追加します。 mintty /usr/bin/zsh -

答え2

直接実行するかmintty.exe、スタート メニューまたはデスクトップ (mintty.exe へのショートカット) から Cygwin Terminal を実行する場合は、Windows の SHELL 環境変数を に設定できます/usr/bin/zsh

Windows 7の場合:

  1. Windowsキーを押します。
  2. 「環境」と入力し始めます。
  3. 表示されたら、「アカウントの環境変数を編集する」を選択します。

残りは説明不要でしょう。

答え3

コピー元Stack Overflowでの私の回答:


Cygwinがpasswdファイルを作成する代わりに推奨しない1、あなたは/etc/nsswitch.confを編集する次の行を追加または編集します。

db_shell: /usr/bin/fish

この方法の長所/短所は、複数のユーザーがいる場合、この変更が全員に影響することです。長所/短所は、非常に簡単であることです。唯一の難点は、Cygwin を再起動する必要があることです。

もし、あんたがするこの変更後に mkpasswd を使用すると、ログオンが許可されているすべてのユーザーに対して新しいデフォルトのシェルが使用されるようになります。


1 mkpasswd のドキュメントには次のように書かれています:

本当に必要な場合を除き、このコマンドを使用してローカルの /etc/passwd ファイルを生成しないでください。詳細については、Cygwin ユーザーズ ガイドを参照してください。

そこには確固たる根拠が見当たらないユーザーガイドただし、ユーザーとグループが変更された場合は /etc/passwd ファイルと /etc/group ファイルを再生成する必要があるという言及以外は、十分な理由だと思います。このプロセスは初心者にとって多少エラーが発生しやすいと言えます。

答え4

私のホスティングサービスであるdreamhost.comのユーザー編集画面にはオプションボックスがあります。4つの異なるシェルから選択でき、次のような感じです。

User Type: (Click one of these three buttons) 
  * FTP user - allows login via FTP only.   
  * SFTP user - allows login via SFTP only.
  * Shell user - allows login via both SSH and FTP. 
        Shell Type: ____/usr/bin/tcsh_____  
Disallow FTP?:  ___

関連情報