Cygwin /etc/passwd 不遵守 /bin/bash

Cygwin /etc/passwd 不遵守 /bin/bash

我怎样才能让 Cygwin 遵守 /etc/passwd 文件并使我的默认 shell 成为 bash 而不是 sh?

我推测它以某种方式由 Windows XP 控制,因为我之前遇到过权限问题,并且在更新 Win XP 上我的用户 ID 的权限后必须重新生成 /etc/passwd 文件。

答案1

尝试将此代码放入您的~/.emacs启动文件中(并重新启动 Emacs):

(setq shell-file-name "bash"
      explicit-shell-file-name "bash")

您还可以暂时重命名/bin/sh为,/bin/sh.hold以绝对确定 Emacs 是否正在调用/bin/sh/bin/bash。请记住,在某些情况下(请参阅 Bash 手册页),Bash 将根据其调用方式(例如,如果argv[0]是“sh”)表现为 sh。

相关内容