有没有人找到适用于 Windows 的与 OS X 一样好的 shell 终端(例如 bash)?

有没有人找到适用于 Windows 的与 OS X 一样好的 shell 终端(例如 bash)?

我主要使用 Windows 安装 Git vcs 时附带的“git-bash”。我认为它与 Cygwin 附带的相同。它在技术上运行良好,但用户界面很糟糕:

  • 必须右键单击标题栏并转到属性来更改窗口宽度
  • 最烦人的是...复制粘贴和用鼠标突出显示同样麻烦

相比之下,OS X 自带的 Terminal 应用可以妥善管理这些,让工作更加轻松。你甚至可以将文件拖放到上面,它会将文件路径粘贴到你的光标处!

我也尝试过:

  • http://sourceforge.net/projects/win-bash
  • http://www.steve.org.uk/Software/bash/
  • http://www.hamiltonlabs.com/cshell.htm

如果没有繁琐的右键单击,这些都无法复制和粘贴文本。

我正在 Windows 中专门寻找一个 Unix 风格的 shell,这样我就不必在我的家庭开发(Windows)、实时服务器(Linux)或办公室开发(Mac)之间使用不同的 shell。

是的,我已经用 Google 搜索过了,但还没有找到...

答案1

你有没有尝试过控制台2

它允许您使用 cmd、bash 或任何程序作为您的 shell,并允许在任何方向上调整大小。

您可以通过转到编辑->设置,然后将其粘贴到 Shell 字段中,将其默认为 Git Bash:

"C:\Program Files\Git\bin\sh.exe" --login -i"

要复制,请按住 Shift,用鼠标左键单击并拖动进行选择,然后单击鼠标左键进行复制。

最后,Git 附带了 rxvt。您可以创建一个新的 Windows 快捷方式,并将目标字段设置为:

"C:\Program Files\Git\bin\rxvt.exe" -e /bin/sh --login -i

答案2

[应 Anentropic 的要求,重新发布我的评论作为答案。]

如果你正在使用 Cygwin 并且喜欢 PuTTY,请查看 mintty。它位于 Cygwin 安装程序的 Shells 类别中(或获取源代码这里)。作者使用了大量 PuTTY 来创建它,因此它的行为与 PuTTY 非常相似。它可以配置为按照您希望的方式工作:

  • 只需拖动边缘或角落即可调整窗口大小,就像任何其他 Windows 应用程序一样。这将通过添加或删除行和/或列来调整终端大小,就像您期望从 xterm 之类的程序中看到的那样。
  • 复制/粘贴可以配置为单击操作(例如,左键单击突出显示并自动复制,右键单击扩展,中键单击粘贴)。
  • 与 OS X 终端一样,将文件或文件夹拖入 mintty 窗口将会在光标位置粘贴完整路径。
  • 所有 Windows 驱动器都可用,默认“安装”在 /cygdrive 下(尽管我通常用 将其更改为 /mnt mount -c /mnt)。

我对 mintty 的唯一问题是,最新版本 (0.9.4+) 似乎做了一些 Windows 7 UAC 不喜欢的事情,所以每次运行它时都会提示权限。这似乎导致它以不同的权限运行,所以我的网络驱动器等东西无法工作。不过,我不知道这是 mintty 的问题,还是我的系统的问题。

答案3

抱歉,我进行了自我推销,我是另一个控制台模拟器的作者。

康埃穆是一个带有选项卡的 Windows 控制台模拟器,它将多个控制台和简单的 GUI 应用程序显示为一个具有各种功能的可定制 GUI 窗口。

以下是从众多选项中摘录的简短内容:

  • 平滑调整大小、最大化和全屏窗口模式
  • 用户友好的文本和块选择(通过键盘或鼠标)、复制、粘贴、在控制台中搜索文本
  • 以管理员身份(Vista+)或选定用户身份运行选定的选项卡
  • 在网格/分屏中运行多个 shell(最新开发版本)
  • 使用系统中安装的任何字体,或复制到程序文件夹中(ttf、otf、fon、bdf)
  • Windows 7 跳转列表和任务栏上的进度
  • 集成道斯宝箱(在 64 位系统中运行 DOS 应用程序很有用)
  • 滚动条最初隐藏,可以通过鼠标悬停或设置中的复选框显示出来
  • 针对选定应用程序的可选设置(例如调色板)
  • ANSI X3.64 和 Xterm 256 色

Hanselman 的帖子,用户的评论, 康埃穆标签在 superuser.com 上

答案4

复制和粘贴的大问题不是终端仿真器的错误;而是键绑定本身的错误。

当在 Mac 中发明快捷键时,Apple 为它们添加了一个新键:“命令键”(也称为“splat”),它没有 ASCII 等效键。

几年后,当微软复制相同的快捷键时,PC 键盘上没有任何“窗口”或“菜单”键,因此他们采用了另一个可以用小指按住的不常用的键:Ctrl 键。问题是,Ctrl-C、Ctrl-V 等是有效的 ASCII 代码,并且在命令行界面上大量使用。

那么,当您在 Windows 终端上按下 Ctrl-C 时,它应该复制文本还是中断正在运行的命令?

相关内容