据称更改 Cygwin 中默认 shell 的好方法对我来说不起作用。为什么?

据称更改 Cygwin 中默认 shell 的好方法对我来说不起作用。为什么?

tcsh我正在尝试让 Cygwin (CYGWIN_NT-6.1 / 2.11.1(0.329/5/3))作为 Windows 7 上的默认 shell启动。我读到这个问题并在那里找到答案,但对薄荷方法有一些问题这个特别的答案

如果你使用以下命令启动 Cygwin薄荷味,然后将 shell 作为参数添加。 mintty /usr/bin/zsh -

事情是这样的:

  • 使用尾随破折号来调用交互式 shell(?),使窗口闪烁并再次消失(无论我是否使用-l
  • mintty /bin/tcsh如果没有尾随破折号或-l,则会打开 Cygwin shell 窗口,但许多内置命令会导致“致命错误 - 检测到 cygwin 基础不匹配...”。我cygwin1.dll按照错误消息的指示搜索并找到了旧版本(在 ConEmu/wsl 中),重命名了它,但无济于事 - 我一直收到相同的错误
  • mintty /bin/tcsh -l给出了最佳结果,但以 Windows %USERPROFILE% 的主目录开始。这意味着它还会绕过我的.tcshrccygwin 主目录 ( <CygwinDir>/home/<account>),但奇怪的是,它会从那里进行处理.aliases。同样奇怪的是,上面的点 (mintty没有尾随破折号或-l) 从正确的 cygwin 主目录中开始。
  • 我也尝试/etc/nsswitch.conf按照不同答案的建议进行编辑,但这并没有什么区别。
  • 按照引用问题的另一个答案的建议,将 Windows SHELL 环境变量设置为/usr/bin/tcsh,在从桌面快捷方式启动时确实有效,但我不认为这是“正确”的做法。当我从 Windows 命令行运行 mintty 时,我收到一条失败消息"Failed to run '/usr/bin/tcsh': No such file or directory"

为什么这个所谓的好答案对我不起作用?有人能告诉我如何正确地做到这一点吗?此外,有人能解释尾随破折号、致命错误、nsswitch 或 SHELL var 的奥秘吗?

答案1

要从 mintty 启动 tc shell,命令是:

mintty /bin/tcsh -l

启动默认登录 shell,通常是 bash

mintty -

格式mintty /usr/bin/zsh -错误

相关内容