Make Windows 10 more Linux like
I am a Linux1 user for over a decade and my workflow and productivity is optimized to this environment especially the shell2. For some insights of my workflow and tools have a look at here. From time to time my work demands from me to work on a Windows machine despite the fact that in my kind of business, Infrastructure and DevOps, the majority of systems and tools is Linux driven.
Now the question is how to get the best Linux like experience on a Windows 103 machine specifically how to get the best shell experience and the tools that I am used to.
I want to describe some Windows tweaks and software and three ways of getting a more Linux like experience on your Windows 10 machine:
- A combination of a virtual machine running Linux and a local SSH client
- The Windows Subsystem for Linux basically a compatibility layer for running linux binaries (ELF)
- Tweak and enhance the Powershell
Windows 10 finally has built-in functionality that is available on Linux since my beginning: virtual desktops and a clipboard manager!
You can access the clipboard manager by pressing
Win + r. Although it is not as powerful as some Linux managers it is a start. Also have a look at ditto for a replacement.
Virtual desktops are crucial for my workflow! I use them to structure my apps and keep my applications organized on different desktops. Unfortunatley, the shortcuts for interacting with virtual desktops are not customizable out of the box. Virtual Desktop Enhancer fills the gap and allows me to create more "home row friendly" shortcuts.
Generally speaking, I always prefer cross platform software to be able to have a as much as possible unified user experience across different platforms. That said have a look at my CLI Applications and GUI Applications summaries. Particularly, most of the GUI applications I am running are cross platform capable. Nevertheless, find some usefull Windows applications that are not necessary useful or available on Linux systems:
- ConEmu - An enhanced terminal featuring tabs, Guake drop down style, various differents shells and much customazation options
- MobaXterm - A fully featured SSH, FTP, RDP and more client with session management, tunneling, its own shell and more
- Autohotkey - An open source Windows scripting tool for automation and key binding settings
- Virtual Desktop Enhancer - Customizing shortcuts for built in virtual desktops
- ditto - A free clipboard manager for those that want more customization than the built-in one offers
- A hypervisor installed. I prefer VirtualBox
- A ssh client. I prefer MobaXterm but Putty will get the job done as well
- Enable/Install WSL
- Choose and install a Linux distribution from. As of now the choice is Ubuntu, OpenSUSE, SLES, Kali Linux, or Debian GNU/Linux. I prefer Ubuntu for the easiest usage
Basically, configure it like your Linux. Install zsh, clone your dotfiles, install tools like ripgrep, fzf, etc. Generally speaking WSL is intended to be used to access Linux toolchain and not for server or GUI applications (altough possible). Also keep in mind that there might be issues due to differences in both, Windows' and Linux' filessystems.
|Easy Setup||Needs admin rights|
|Close to native Linux||Not all distributions available|
|Your Linux config works||Can be slow (emulation)|
- Powershell 4+