Last Updated: November 17, 2017
· projectcleverweb

The importance of a good shell interface

Over the years of becoming more and more involved with programming, I have slowly started relying on my OS's shell more and more. Whether it is pushing to Github or starting up Minecraft, I seem to be always using the shell interface. I am to the point now, where I tend to use it more times in a day than I use my cell phone.

Our Options

I think some point, we all get to a place where user@host ~dir $ just doesn't cut it anymore. Whether your only want a little Git integration, or you want to USE ALL THE COLORS!!! (insert rage-comic), in the end the standard is never enough.

Thankfully there is hope for us all, because there are plenty of shell interface options available. For Windows users there are utilities such as Cygwin, Git Shell or Ansicon.


I do not own ANSICON. The ANSICON source on Github is incomplete, so I am linking to one of my repos that has the complete version. You can view the ANSICON Github here)

Complete Customization

For those hell-bent on complete customization in windows, combine those 3 inside of a set /p loop and you can do just about anything. For Mac/Linux users, customization is slightly easier (thanks to either .bash_profile [mac] or .bashrc [linux]). However like windows there are some pre-made options.


While everyone (myself included) has their own favorites, I think it is agreed the standard is not up to par. So take a bit to find the one that's right for you, after all, you are the one who has to deal with it.



Thanks for reading

If you enjoyed what I wrote, consider upvoting this protip or endorsing me.
If you want to see more of my stuff, you can see other protips I have written or visit my profile.

11 Responses
Add your response

Tried it in cygwin with the Linux .bashrc but it is too slow imo but + nonethe less

over 1 year ago ·

If you don't know oh-my-zsh, you must try it!

over 1 year ago ·

I've actually stopped using oh-my-zsh, as most of the options I relied on were simple to add to a short .zshrc, or were some git aliases that belonged in a small .sh file, or in my .gitconfig.

over 1 year ago ·

@teachmeter .... cygwin is designed to give you access to linux commands on windows.... meaning it is completely useless and redundant on any linux system.

over 1 year ago ·

@projectcleverweb What i meant was using the .bashrc from linux in my windows cygwin not cywing in linux... Still a long time since I posted it. oh-my-zsh git plugin lacks speed with a huge git repo or maybe it was a problem with server/bad git repo.

over 1 year ago ·

@teachmeter I misunderstood what you meant; additionally, at the time I posted this I was working on a faster solution for windows using ansicon, but its been a while since I have had time to work on it.

every once in a while I like to go back through all my protips to make sure I didn't miss any comments, thus the delayed response.

over 1 year ago ·

fish ftw

over 1 year ago ·

So what's the message?

You mention Cygwin, Git Shell and Ansicon in the same line. But the "Git Shell" link is actually a link to GitHub for Windows, which is a GUI app, not a shell. Then the "Ansicon" link asks for credentials to login...

So what is it all about? Promoting Perfect-Shell? Why not say "Guys, I made Perfect-Shell. It solves my problems. I think it's good, you should give it a try". Would save us time!

over 1 year ago ·

@gpakosz First off git shell comes with the gui client, and given you add it to your $PATH you can use it in most any command line across your OS. The reason I picked the windows link is because windows is simply the most common OS (especially for beginners), and most programmers that use mac/linux know how to get git if it isn't already installed. The ANSICON link is dead because the site I was hosting it on was discontinued by the owner (I updated the link just now), so that's prolly why it asked you for a login.

Also, if your determined to have your own custom setup on windows with linux comands (which is what I typically do) those 3 are probably your best option, which is why they are in the same sentence. I even gave a hint on how to do it in a standard batch file via set /p. (although this isn't the only way to do it)

Finally, since you somehow didn't get the message from the post: If your someone who uses shell a lot, you should probably take the time to give it some of your own personal flare, to make it a little more enjoyable. I threw in the bits about Perfect Shell , cause it's relative to the topic and it's my post I can write it however I want.

over 1 year ago ·

I won't comment on ANSICON which I don't know and the link is still out of reach at the time I'm writing this.

For those using Windows, msys-git comes with bash inside mintty which is nice. I assume it's pretty much what would end up in most people's hands (those who don't go the Git Extensions or Soucetree route)

Another option for Windows is ConEmu-Maximus5 + msys-git.

Never said Perfect Shell wasn't related to the topic. It's actually very related to it. And sure you write however you want. I was just looking for a tip and felt all I got were random thoughts pasted together :) Didn't meant to be rude or something.

over 1 year ago ·

@gpakosz Eh coderwall is prolly still serving the cached version of the link. As far as any rudeness, no worries. I am not especially familiar with git options on windows, as I typically use linux CLI's and manage my repos remotely, so thanks for mention some other applications, I'll have to look into them.

All ANSICON does is give the standard windows prompt understanding of ANSI characters (which allow colors in CLI's). It does have the ability to be permanently installed or temporally instanced, but other than that it doesn't do anything else.

over 1 year ago ·