Working with Linux Through an Enterprise Windows Desktop

The Enterprise Environment

This is the common setup. You get a Windows laptop, and you are coding, but your target is a collection of Linux servers. Now, these are Linux servers, be it Ubuntu or CentOS, and they do not have a GUI. Coding directly on these Linux servers forces you to use the old Vi, Vim, or Emacs. Much inferior to the common IDE on Windows (or even a Mac).

Having gone through this experience many times, I found a way using a collection of tools that make working on Linux through the enterprise Windows desktop feel native. No longer the narrow window of Putty with Vi/Vim/Emacs.

I explicitly have chosen free tools, because an individual developer in an enterprise setting usually does not have control of the budget.

We are talking about coding in languages like Node.js, PHP, Ruby, Perl, or Python.

Chocolatey - A Windows Package Manager

As an experienced Linux developer, or someone developing in Java or Node.js or PHP or Ruby, you are used to a package manager.

Chocolatey is a package manager for Windows that acts like the apt-get or apt or yum familiar from the Linux world, or Brew familiar from the Mac World.

Once you install Chocolatey many of the tools mentioned below will be installed with it.

Editors

One of Atom or VSCode.

Atom

Atom from GitHub is a superb IDE from with syntax highlighting for the well known languages.

FTP/SFTP

Since your code should run on a Linux server, you need to sync your code. A convenient way is the SFTP-Deployment for Atom.io package. It provides upload on save.

VSCode

VSCode from Microsoft is another superb IDE from with syntax highlighting for the well known languages.

FTP/SFTP

Since your code should run on a Linux server, you need to sync your code. A convenient way is the Ftp Sync plugin. It provides upload on save.

Remote Linux Access

MobaXterm Home Edition, is a remote access tool, better and more integrated than Putty.

Linux Servers

MobaXterm provides:

  1. SSH access to Linux servers - each server opens a separate tab, so multiple servers can be handled, in contrast to Putty.
  2. Server IP/DNS and username/password can be saved
  3. Open tabs can be duplicated, and tabs can be displayed by dragging across multiple screens
  4. Linux file browser with upload/download

Local Shell

MobaXterm lets you open a local shell on Windows. In that shell, one can use apt-get to install Linux packages such as Git.
So the local shell gives you a Linux experience on your Windows.

Version Control

Best done on your Windows with a convenient GUI. But the local shell described above gives you a command line experience if you like.

If you prefer the standard Windows Git experience, install Git with Chocolatey.

GitHub

GitHub Desktop for Windows lets you manage any Git repo.

BitBucket

SourceTree from Atlassian is just as good for any Git repo.