我已經使用Cygwin很長一段時間了。我現在想從bash切換到魚。大家都在說你應該使用chsh -s /usr/bin/fish
,但由於某種原因,chsh
不適用於我。試圖修改我的Cygwin.bat
文件也不起作用,並且也不會更改我的/etc/passwd
文件。在Cygwin中設置默認外殼
我真的不明白髮生了什麼事情。有人可以幫我嗎?
我已經使用Cygwin很長一段時間了。我現在想從bash切換到魚。大家都在說你應該使用chsh -s /usr/bin/fish
,但由於某種原因,chsh
不適用於我。試圖修改我的Cygwin.bat
文件也不起作用,並且也不會更改我的/etc/passwd
文件。在Cygwin中設置默認外殼
我真的不明白髮生了什麼事情。有人可以幫我嗎?
我隨機遇到同樣的問題,現在我爲您提供我的解決方案。
0-打開cygwin
通過passwd文件mintty.exe
1-生成passwd文件手動(mkpasswd
)
$mkpasswd > /etc/passwd
2-更改默認殼
$vim /etc/passwd
user:*:1976XX:1971XX:U-user\user,S-1-5-21-XXXX:/home/user:/bin/fish
3-重啓mintty.exe
非常有幫助!謝謝 –
我不是確定這是一個合適的解決方案,但我只是將/usr/bin/zsh; exit
添加到我的.bashrc
文件的底部。您可以用/usr/bin/zsh
代替您選擇的外殼的路徑。它似乎迄今爲止工作得很好。
而不是創建一個passwd文件,其中的Cygwin recommends against ,你可以edit /etc/nsswitch.conf。添加或編輯下面一行:
db_shell: /usr/bin/fish
這種方法的下/上側是,如果你有多個用戶,這個變化會影響所有的人。 up/up方面就是它很簡單。唯一的問題是你必須重新啓動Cygwin。
如果你做在此更改後使用mkpasswd
,它將爲允許登錄的所有用戶使用新的默認shell。
的mkpasswd
文檔這樣說:
不要使用此命令生成本地/ etc/passwd文件,除非你真的需要一個。有關更多信息,請參閱Cygwin用戶指南。
我真的不能找到在user's guide任何固體推理,比一提的是,你必須重新生成/etc/passwd
和/etc/group
文件,如果你的用戶和組的改變,我想對方是一個足夠體面的理由。我可以說這個過程對於新手來說有點容易出錯。
SuperUser有一個更簡單的答案。在Windows中設置SHELL環境變量。將它設置爲您喜歡的外殼(例如/bin/tcsh
)和新發布的shell應該使用它。
要設置環境變量:
如果通過運行Cygwin的ConEmu我發現最簡單的方法是替換命令行運行的魚,而不是默認的shell(設置 - > Startup->任務): ""c:\cygwin64\bin\fish.exe" --login -i"
(請改相應的路徑到您的cygwin文件夾)
您是否將/ usr/bin/fish添加到/ etc/shells? –
我做了,它沒有工作。 – Alex