Let’s face it, Linux and Unix are great operating systems, but many users have to live in the real world, and living in the real world often means using a certain operating system called Windows. Whether you just visit Windows or live there, there are some ways that will make it work more like the systems you’re used to.
If you’re a serious Linux/Unix user confronted with Windows, you’re probably missing the command line. Sure, Windows’ Command Prompt is OK, but it has nowhere near the flexibility of the Unix shell. Cygwin is the answer for you. It’s a DLL and POSIX compatibility layer to make it easier to port Linux software to Windows while giving you a familiar environment.
You just download the Setup.exe file from the project website and install Cygwin. The installer doubles as the package manager, and you can install your favorite utilities, tools, editors and so on. There’s a command line front-end called Cyg-get that’s similar to the apt-get utility on Debian and Ubuntu.
You won’t be able to use Linux binaries with Cygwin. Software has to be compiled for Windows. There are hundreds of packages available. If you’re so inclined, you can install GCC and compile from source yourself.
You can not only run command-line applications, but programs designed for the X Window System as well using Cygwin/X.
Microsoft’s own PowerShell is an interesting alternative to both the traditional Unix shell and the standard Windows command line derived from MS-DOS. PowerShell is heavily objected-oriented.
You can create pipelines of chained commands just like you can in Unix shells, but the difference is that instead of using plain text, it pipes objects. This might be an affront to serious Unix programmers, but the advantage is that you can pick out data without using complex text-processing tools like AWK or even Perl.
There is a bit of a learning curve, but the designers have attempted to make learning PowerShell easier. It’s more useful for interacting with Windows itself. You might want to stick to other scripting languages if you don’t need to automate Windows tasks.
No matter which side of the “editor wars” between vi and Emacs you’re on, you can use your favorite one on Windows. You have a wide choice of editors on Windows, from the Unix editors available on Cygwin, as well as native ports of both vi and Emacs.
A good lightweight but full-featured alternative to both is Notepad++.
If you’re a serious programmer or system administrator, you already know about SSH. Fortunately, you can access remote machines on Windows as well as on Linux. One way is PuTTY, which lets you manage connections.
You can also install SSH using Cygwin. The advantage of doing it this way is that you can use Mosh, which lets you stay connected if you put your machine to sleep or you change networks. It’s really great for working on a laptop over Wi-Fi.
Unix is a great development environment, and whatever your favorite programming language is on Unix, it’s available for Windows.
All of the major scripting languages, including Python, Perl, PHP and others have native Windows versions as well as Cygwin versions available.
Microsoft has its own development tools, but Unix tools tend to be much more lightweight.
Another feature of Linux desktops you’re probably missing is virtual desktops. While Microsoft is adding it to Windows 10, you don’t have to wait. You can install VirtuaWin, which gives you advanced window management features right now. Like the best Linux software, it’s free and open source.
Getting to Real *nix
If you must have real Unix, you don’t have to give up your favorite system. Dual-booting Windows and Linux is the classic solution.
If you go this route, just make sure Windows is installed first. Otherwise, Windows will overwrite any bootloader in the Master Boot Record with its own when you install it. Most Linux distributions are smart enough to detect Windows partitions and install a bootloader that lets you choose which OS you want to boot into.
Another issue you might run into on newer computers designed for Windows 8 is UEFI protection. Ostensibly designed to defend against rootkits and bootkits, it was criticized for requiring operating systems to be cryptographically signed, which had the potential to lock out many distros.
Microsoft mandates that new PCs have it enabled by default, but fortunately they also require that you have the ability to turn it off, but only on x86 PCs. They might decide otherwise in the future. If you do want to keep secure boot, or are using an ARM processor, you can choose distros that are signed, such as the 64-bit version of Ubuntu.
Even if you find yourself stuck on Windows temporarily or permanently, you can still have your own little taste of heaven with some simple additions to your Windows environment.