如何配置 ConEmu 以运行 Cygwin Bash?

TMB*_*TMB 43 windows-7 cygwin bash conemu

我创建了一个新任务

{重击}

通过我的主目录

/dir "C:\Users\TMB\"

并添加 bash 作为应用程序

C:\cygwin\bin\bash.exe

当我打开 Bash 时,它无法使用基本的 UNIX/Cygwin 实用程序。如何配置 ConEmu 以运行 Cygwin Bash?

小智 50

这可能会帮助其他人。

看起来 ConEmu 的 140310 版本会自动检测 CygWin Bash。

如果您在安装 ConEmu 之后安装了 Cygwin,则需要重新加载...您的任务列表。

  1. 转到设置...(Win + Alt + P)
  2. 导航到您的任务列表(启动 > 任务)
  3. 单击重新加载...按钮。

您现在应该在预定义任务列表中看到{CygWin bash}作为您的选项之一:

ConEmu 中 CygWin bash 的屏幕截图

PS -- 如果此方法不起作用,请尝试重置您的 ConEmu 设置(单击“设置”窗口底部的重置...”按钮)。

  • 请注意,sh.exe 不会获取您的 .bashrc;只有 bash.exe 会这样做。所以我使用命令 `%SystemDrive%\cygwin64\bin\bash.exe --login -i` (9认同)
  • 对我来说,单击“添加默认任务...”按钮(在“重新加载”按钮的正上方)可以解决问题... (3认同)
  • 如果 **Reloading** 和 **Resetting** 不起作用,我想我们可以输入屏幕截图中显示的路径、命令和选项。 (2认同)

小智 7

或代替

C:\cygwin\bin\bash.exe
Run Code Online (Sandbox Code Playgroud)

C:\cygwin\Cygwin.bat
Run Code Online (Sandbox Code Playgroud)


Aar*_*ler 6

确保 Bash 收到一个合理的值$PATH;通常它从任何调用它的人那里继承它,但 ConEmu 是一个 Windows 应用程序,所以它提供的只是你为%Path%. 通常这不包括 Cygwin 路径目录,所以 Bash 不知道在哪里寻找ls, &c。

我解决这个问题的方法是,通过 ConEmu 提供的任何方式,将--login -i命令行参数作为命令行参数传递给 Bash;这将告诉它你运行它作为一个交互式登录shell,所以它会读/etc/profile~/.profile~/.bashrc上启动。根据我的经验,这足以让它变得明智$PATH;如果不适合你,你可以用一条线,如明确指定它PATH=/bin:/usr/bin:/usr/local/bin:[...]:$PATH在你的~/.bashrc

  • 很高兴它为你完成了这项工作。我从未想过使用连接点将 ~ 指向 c:\users\me,但我曾经使用符号链接完成此操作,并且根据该经验,我向您发出以下警告:如果您需要运行 ComboFix 来清理恶意软件感染您的机器,**它会吹走 c:\users\you** 中的所有文件。我曾经以这种方式丢失了主目录中的所有内容,而我的最新备份是一周前的。不要犯和我一样的错误! (3认同)