Nathaniel Brown's

Guide To Surviving Windows

Written October 14, 2016

Are you using open source tools on Windows and want to claw your eyes out? You probably should just rip those retinas right out of your skull right now, but in case you actually like seeing things, I have some tips for you. I'm sure there are better ways, but learning these tricks the hard way took me long enough! NOTE: Some of this is only relevant to Windows 7, much has been improved in Windows 10.

Install ConEmu

Short for "Console Emulator," ConEmu makes using a command prompt reasonable. Download here.

cmd.exe meme

The CMD.exe doesn't support copy paste, resizing the window or tabs. Powershell.exe is better but it is really its own language and causes some issues if you're not using it to use "Powershell." Once you install ConEmu, you can open all sorts of different shells in the same environment with the same window, copy paste etc. I normally use cmd, which works ok, combined with the next section. Copying automatically happens when you select anything, pasting is right click. Some of these issues are fixed in Windows 10 CMD.exe (but ConEmu is still better).

One productivity tip, use tabs and whenever you open a new tab right click and "Rename Tab..." with a title for your intended task. I find this immensely helpful for keeping track of what I'm doing.

Install Git and Add Their *nix Programs to Your Path

I'll assume you know about and use git but if you don't it might be worth installing just for this. Git for Windows ships with many common *nix programs, like ls, grep, ssh, bash, etc. However, the installer does not add these to your path by default. By adding C:\Program Files\Git\usr\bin (or wherever these are installed, try where git and do some snooping) to your path you can have these at your fingertips! If you don't know how to modify your path, read how here.

Warning: One of the most annoying differences between Windows and the rest of the world is the path seperators (C:\User\Desktop vs /User/Desktop). The git tools try to do some magic translation for you, which sometimes helps you and sometimes causes very bizarre behaviour. Generally I've found that doubling the first slash (//User/Desktop) prevents the automatic translation to something like C:\User\Desktop.

Just use bash (everywhere)

You can't run .bat files on Linux, so you're going to have to learn bash anyway if you are using Linux for production. You might as well just do all your scripting in bash and learn just One Thing. You get bash with Git, so running a bash script is as simple as bash path/to/your/script.sh.

Install Cygwin?

I originally installed cygwin after spending literally days (I am embarassed about this) trying to use ssh on windows. I don't use it so much now that I discovered the Git trick, but I still use it for ssh as I had some issue using kefiles or maybe .ssh/config with git ssh. You can probably get away without this, but it is worth knowing about.

Heads Up: Everything is installed through the cygwin installer which has lots of options of what to install. Go select yourself a text editor for starters. To install more things later, you rerun the installer.

Conclusion

You can surivive on Windows if you are trying build Linuxy things, it just takes a little effort. Things aren't setup for you and there isn't great information online, but at least there's one more blog post now :)