Here is a proper tutorial to building your first Linux box from the perspective of a Windows person.
If you google “Windows guy wants to learn Linux” (and yes, I’m a girl, but I’m using “Windows guy” as a gender-neutral term here), you’ll get a myriad of forums where people use trite encouraging sayings like “It’s easy!” and “The best way to learn it is just to try it and break things!” While these things may all be true, they’re not very useful in how to get started learning Linux. Or why as a Windows admin, you may want to think about crossing to the dark side and learning a different operating system.Way Back in the Days of the Dinosaur…
I started out my career in IT on the mainframe – OS/390, to be exact. I majored in JCL, minored in COBOL, and if in 2017 you know what either of these things are, then I salute you! I did, at some point, decide that furthering my IT career meant I needed to continue to learn, and so I learned Windows. Yes, it was a learning curve, and for those who think “learning Windows” is simply learning how to click “Next”, then you’ve obviously never run Windows NT. As technologies evolve, though, this operating system known as Linux, a UNIX variant, continues to make headway in the server operating system space.
Why Would I Care to Learn Linux?
Are you currently looking for a job? If you’re not, when was the last time you looked at open job descriptions? Even if you aren’t actively looking, knowing what skill sets IT hiring managers are looking for will help you decide what technologies to concentrate on. The modern-day data center or cloud infrastructure now encompasses a range of operating systems, including many variants of Linux and Windows. More and more modern-day shops are mixing technologies and choosing the right OS for the application architecture. Applications using cutting-edge architectures such as containers and microservices emphasize the importance of tech workers growing with the times. Hiring managers are looking for technicians with a wide range of skill sets, rather than specializing on a certain skill.
Where Do I Start?
Don’t start by googling “Windows guy wants to learn Linux”, for one. But first things first. “Linux” may be the operating system, but there are many different distributions, or “distros”. While Microsoft may have different versions of their server operating system - like standard and datacenter or core and desktop experience – they are all supported by Microsoft. Linux distros vary here in that while some distributions have enterprise support, like Red Hat, some may not that big-name vendor support – or any vendor support at all. CentOS, Ubuntu, Red Hat, and Debian are all names of Linux distros – and they all have their own pros and cons.
Command-Line vs. GUI?
Just like Windows Server 2016 has the “Desktop Experience” flavor with the GUI installed, or Server Core for a more lightweight server OS, GUIs are also available for Linux as an optional install. Popular GUIs include the KDE Project’s Plasma Desktop, which provides a “Windows-like” experience, and GNOME, which provides a more Mac- or Unix-like experience. Windows admins can use either to administer a Linux machine, however, hard-core Linux admins advocate for using the command line. If you’re currently running Server Core, or you’re used to administering Windows using PowerShell, VBScript, or just plain cmd.exe, this may not be a difficult transition.
Installing the OS
When installing a Windows OS, you may have all kinds of automation in place that handles the bare-bones OS build for you. But surely you remember the days when you had to install an OS from scratch – you acquired a CD, popped it in the server the old-school way.
To get familiar with the install and install process, I’m going to install a Linux OS the same way. I am randomly picking a distro – Ubuntu – simply because I have read articles that express the opinion that it’s a good distro to start on for the first time. I start at the Ubuntu download site, which I got to by simply googling “Ubuntu”. I notice that even the Ubuntu distro has different versions, Ubuntu Desktop, Server, Cloud, etc., and settle on Ubuntu Desktop as my flavor of choice. Next I go through a couple of screens and I am soon downloading the ISO. While I’m waiting, I’ll prepare a Hyper-V machine to install onto.
Preparing the VM
I’ve already got Hyper-V installed on my laptop, so I’ll just create a new VM with the memory and drive specs that were listed on the Ubuntu page (2GB RAM and 25GB hard drive space). Using PowerShell, I quickly create a new VM shell:
new-VM -Name Ubuntu -MemoryStartupBytes 2GB -BootDevice CD -SwitchName LabNet -NewVHDPath C:\HyperV\Ubuntu.VHDX -NewVHDSizeBytes 25 GB
Once I finish downloading the ISO, I mount it for use on the Ubuntu machine using:
set-VMDVDDrive -VMName Ubuntu -Path C:\<location_of_iso>\ubuntu-16.04.3-desktop-amd64.iso
Then I start up the VM and watch the magic happen. When I connect to the VM, it asks me typical OS installation questions like “Are you sure you want to format the hard disk?” and “What time zone are you in?”
Completing the Installation
Once it’s complete, I disconnect the DVD drive and change the boot order to boot from IDE. When it boots, it takes me to a GUI, which surprises me. Where’s my command line? I do what any self-respecting Windows admin would do and find the “settings” icon – the one that looks like a gear in the upper right corner – and select “Ubuntu help”. I start with “Welcome to Ubuntu”, and it tells me about Unity, the desktop GUI, and in the Getting Started with Unity section, I see that the icon on the top left of my screen is called the “Launcher” and from there, I can search for programs I’m looking for, including “Terminal”, which is exactly what I want right now. I launch terminal and I am ready to administer my machine with the command line.
A Simple Yet Effective Linux Install
So far, I’ve built a Linux box using nothing but my google skills and some simple PowerShell commands for Hyper-V to create a shell for my VM. Although the machine isn’t completely what I expected – I did expect a command line and not a desktop, for example – I do have a running, working Linux machine. In the next article, I’ll be discussing how to configure the networking on the box. Until then, if you’ve followed along with this article on your own machine, go ahead and explore your new Linux box. It’s the best way to learn, and if you break it – you can easily build another.