14
votes

I am mostly using 'git-bash' which came with the Windows install of Git vcs. I think it is the same one that comes with Cygwin. It works fine technically but the UI sucks:

  • have to right-click the title bar and go to Properties to change the window width
  • most annoyingly... copy and paste and highlight with the mouse are equally cumbersome

In contrast, the Terminal app that comes with OS X manages these with aplomb and makes it so much more comfortable to work with. You can even drag and drop a file on it and it will paste the file path in at your cursor!

I have also tried:

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

None of these do copy and paste of text without cumbersome right-clicking.

I am specifically looking for a Unix-flavoured shell in Windows so I don't have to use different shells between my home dev (Windows), the live server (Linux) or dev at the office (Mac).

Yes I have Googled and haven't found one yet...

7
  • 3
    For any console in Windows, including cygwin bash, you can enable quick-edit and it's better than the default behavior. Since you didn't describe what you are finding cumbersome, I don't know if you tried that.
    – mfinni
    Jan 10, 2011 at 18:56
  • Actually I think Git-Bash runs on MSYS from MinGW rather than Cygwin per se... nonetheless having just installed each of them separately the shell app that comes with Cygwin seems to be identical to the one in MSYS, which is the same as the one that comes with Git.
    – Anentropic
    Jan 10, 2011 at 19:08
  • @mfinni thanks, I hadn't tried 'quick edit' mode. However it's still pretty clunky and you can't do copy and paste as easily as in a normal program...
    – Anentropic
    Jan 10, 2011 at 19:10
  • QuckEdit is close to PuTTY/X's copy/paste: highlight text and hit enter to copy, then right click to paste.
    – DerfK
    Jan 10, 2011 at 19:32
  • You should be aware (I can't tell for sure if you are) that terminals and shells are distinct and largely independent of each other. Jan 11, 2011 at 1:32

7 Answers 7

10
votes

Have you tried console2?

It lets you use cmd, bash, or any program as your shell, and allows resizing in any direction.

You can make it default to Git Bash by going to Edit->Settings, then pasting this in the Shell field:

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

To copy, hold Shift, click and drag with the left mouse button to select, then left click to Copy.

Finally, Git ships with rxvt. You could create a new Windows shortcut with the Target field set to:

"C:\Program Files\Git\bin\rxvt.exe" -e /bin/sh --login -i
3
  • Great tip - I had tried Console2 but had no idea I could change the underlying shell!
    – Anentropic
    Jan 18, 2011 at 10:06
  • 1
    @Mikel, Have you tried ConEmu?
    – Maximus
    Oct 1, 2012 at 23:09
  • ConEmu is a worthy successor to Console2 and a big improvement. Oct 2, 2012 at 14:27
6
votes

[Reposting my comment as an answer at Anentropic's request.]

If you're using Cygwin and like PuTTY, check out mintty. It's available in the Shells category in the Cygwin setup program (or get the source here). The author used large parts of PuTTY to create it, so it behaves very much like PuTTY. It can be configured to work like you'd like it to:

  • Resize the window just by dragging the edges or corners, like any other Windows app. This will resize the terminal by add or removing rows and/or columns, like you'd expect from something like xterm.
  • Copy/paste can be configured as single-click operations (e.g. left click to highlight and auto-copy, right click to extend, middle click to paste).
  • As with OS X Terminal, dragging a file or folder into a mintty window will paste the full path at the cursor position.
  • All Windows drives are available, "mounted" by default under /cygdrive (though I usually change this to /mnt with mount -c /mnt).

My only problem with mintty is that recent versions (0.9.4+) seem to be doing something that Windows 7 UAC doesn't like, so it prompts for permission to run it every time. This seems to cause it to run with different privileges, so things like my network drives don't work. I don't know if this is a mintty problem, or a problem with my system, though.

3
  • I don't have this problem under Windows 7, so it's most likely a problem with your system. I second the use of Mintty which also supports all those nice new Windows shortcuts to move windows around (Windows key + arrows)
    – Renik
    Jan 17, 2011 at 22:17
  • This is great - do you know if it's possible to point it to use the shell that comes with Git (like @Mikel's tip for Console2)?
    – Anentropic
    Jan 18, 2011 at 10:13
  • By default, mintty will invoke whatever your $SHELL environment variable points to. However, you can instead specify another program as the first argument on the command line, which can be useful in shortcuts. The author has put together a nice list of tips (code.google.com/p/mintty/wiki/Tips) that show how you can do this. Jan 18, 2011 at 15:31
2
votes

Sorry for the self-promotion, I'm the author of another Console Emulator.

ConEmu is a Windows console emulator with tabs, which presents multiple consoles and simple GUI applications as one customizable GUI window with various features.

A brief excerpt from the long list of options:

  • Smooth resize, maximized and fullscreen window modes
  • User friendly text and block selection (from keyboard or mouse), copy, paste, text search in console
  • Run selected tabs as Administrator (Vista+) or as selected user
  • Running several shells in a grid/splitscreen (latest dev. build)
  • Use any font installed in the system, or copied to a folder of the program (ttf, otf, fon, bdf)
  • Windows 7 Jump lists and Progress on taskbar
  • Integration with DosBox (useful in 64bit systems to run DOS applications)
  • Scrollbar initially hidden, may be revealed by mouseover or checkbox in settings
  • Optional settings (e.g. pallette) for selected applications
  • ANSI X3.64 and Xterm 256 color

Hanselman's post, user's reviews, ConEmu tag on superuser.com

3
  • looks good, +1 for the Prince Of Persia screenshot :)
    – Anentropic
    Oct 2, 2012 at 10:17
  • antialiased fonts would be even better
    – Anentropic
    Oct 2, 2012 at 10:17
  • It has 3 options for antialiasing: None, Standard and ClearType. Oct 2, 2012 at 14:24
0
votes

I wish that PuTTY was able to work as an emulator for local OS access like Cygwin does. PuTTY is my favorite when I am stuck on a Windows box. I voted this question up, I would love to know about a better emulator for Windows as well.

4
  • 1
    Putty is a terminal program, not a shell. Even if you could use putty to connect to your local Windows box (which you can, if it's running a SSH daemon), the actual shell is still whatever shell you're running when you login via SSH.
    – mfinni
    Jan 10, 2011 at 19:16
  • I did not say it was a shell, I said I wish it worked like an emulator. I like the GUI on putty, that was my point.
    – c1tadel1
    Jan 10, 2011 at 19:28
  • 3
    If you're using Cygwin and like PuTTY, check out mintty. It's available in the Shells category in the Cygwin setup program (or check the source at code.google.com/p/mintty). The author used large parts of PuTTY to create it, so it behaves very much like PuTTY. Jan 10, 2011 at 19:59
  • @James do you want to post your mintty suggestion as an answer? It looks promising! I seem to be stuck in the Cygwin virtual unix filesystem though, I can't browse my Windows files like I can in git-bash?
    – Anentropic
    Jan 17, 2011 at 17:27
0
votes

The big problem with copy and paste isn't fault of the terminal emulators; it's the keybinding themselves.

When the shortcuts were invented in Mac, Apple added a new key for them: the 'command key' (also known as 'splat') It doesn't have an ASCII equivalent.

A few years later, when Microsoft copied the same shortcuts, PC keyboards didn't have any 'windows', or 'menu' keys, so they went with another little used key you could hold with your pinky: the Ctrl key. Problem is, that Ctrl-C, Ctrl-V, etc. are valid ASCII codes, and heavily used on command line interfaces.

So, when you press Ctrl-C on a Windows ternimal, should it copy the text or break the running command?

1
  • That's a good point, I hadn't realised OS X had a lucky advantage there. Still, this is a UI issue that the current terminal apps for Windows haven't really attempted to solve.
    – Anentropic
    Jan 17, 2011 at 17:16
0
votes

As is the case with just about every piece of windows software that I've touched, I had to repeat steps with uncertainty and a brute-force sort of approach...

But somewhere in there I got it to work without installing any new consoles!

I followed AnandK's solution... http://www.thewindowsclub.com/full-screen-command-prompt-in-windows-7 I got it to work with git bash by doing the following

  • open a regular cmd,
  • execute wmic
  • resize (double-click window bar)
  • close cmd
  • open git bash
  • resize (didn't work...)
  • unresize resize

I suppose I should clarify: this is specifically for allowing fullscreen -- nothing more.

0
votes

Just tossing this out since it hasn't been mentioned yet. But MS's own PowerShell is actually a really good CLI for Windows.

It has some Bash-like features that should make it feel somewhat familiar. In my opinion, it's worth learning if you do any type of scripting or automation with Windows, even if you're primarily a *nix guy (like myself). You'll be able to do more in less time compared to trying to hack together something that runs atop Cygwin.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .