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.