I made the decision about a year ago to start learning Linux.
It’s pretty commonplace in the IT world already, and becoming more prevalent every day. VMWare’s domination over the virtualization world grows each year, *nix-based firewalls are now in the Gartner leaders quadrant, even many SANs today are based on *nix technology. If your career is IT, there’s no excuse to exclude Linux from your repertoire of skills. I hate saying “I can’t do that” when someone asks me, and Linux skills was a gaping hole on my resumé.
I was surprised to find that there’s so much in common between Linux and Windows. While people are often put off by the number of Linux distributions (distros or flavors), it’s no different from the various Windows builds, like Server 2000/2003/2008 or Windows XP/Vista/7. There’s a similar architecture in place, and each build or version is unique in its own way. Both Linux and Windows are designed to run on the same hardware, with a CPU, RAM, and hard drives. Because everything is based off of the same hardware model, there’s really nothing unique about either OS. Both have ways to install programs easily, run updates, and manage files.
The command line
Windows admins are often hesitant to learn Linux due to it’s command line-based interface. However, as Powershell and Windows Server Core continue to expand, we’re going to find ourselves at the command line more often. At some point, you have to bite the bullet and go back to the old days of cd‘ing your way around.
It doesn’t need to be user-friendly
I don’t use Linux for my “user” OS at all. My work laptop and my home PC both run Windows 7, and I’m unlikely to ever swap. There’s simply too many programs and too much hardware that’s incompatible with Linux, and it’s not worth the trouble. The Linux GUIs are inconsistent and constantly changing. The true value of Linux comes from its server capabilities.
I constantly see guides advising people to “switch to Linux” for a few weeks, such as Ubuntu’s ability to actually dual-boot off the same partition as Windows. No. You are doing yourself a disservice as an IT professional by not knowing the world’s most popular client OS, Windows. Windows’ hold on the client market is unlikely to budge any time soon. But, with Linux servers rapidly gaining market share in the enterprise IT world, you need to at least have a working knowledge of the technology to stay relevant.
By learning Linux over the past several months, I have already solved several client requests/issues that I would’ve previously been unable to address. Expanding my capabilities has allowed me to tackle more issues, which directly results in a more satisfied client and a financial win for my company.
Break it, then fix it
I began my Linux education by starting a project to run my own Mumble server. I had been paying money out of my pocket every month to my friend Antiarc for Mumble services, but I thought it would be a fun experiment to try running it on my own. I bought a small VPS from Linode on Antiarc’s advice, and installed my first build of Ubuntu server. I spent weeks poring over Linode’s library of Linux documentation and the internet, struggling with all of the challenges that come from learning a completely different OS and environment. After many long nights of struggling, I finally got my Mumble server up and running.
In the months since then, I now run a website, a wiki, my Mumble server, a mail server (Postfix/Dovecot/Squirrelmail), a proxy server (Squid), and my DNS servers for all of my domains on my Ubuntu servers. Between my two geographically-separate Linux servers, I’m getting thousands of different requests a day. I am always looking for the next Linux project I want to tackle. The amazing thing is that I’m doing all of this on servers with 256MB of RAM, which is a feat I’d have a hard time replicating on Windows.