2016-02-06

Getting Started with Learning Linux

This article also posted in the Spiceworks Community.

Introduction

Linux is constantly growing in popularity. Anymore, its almost a requirement in IT to know at least something about Linux or BSD. Even the most Microsoft Windows centric company has at least 1 Linux box, either as a network appliance or hardware made for a specific roll. Even if your job roll has nothing to do with Linux, having a basic understanding will help you in your IT career.

This how-to is built for the first time user of Linux. Following this guide will help you make the right decisions to get you started in the right direction. Be sure to check the reference links at the bottom of this how-to article for more information.

Home Lab


If you have not already done so, build yourself a home lab. This lab will be the basis to help you get started. The nice part about having a home lab is you can do whatever you want and you don't have to worry about damaging anything in a production environment.

Don't get hung up on what hardware you need. Just get something! Yes it would be great to setup a full 42U rack in your garage, populate with Servers and network gear. But if you're like me, you don't have the funds for that.

A home lab can be anything from a spare desktop to laptop. Start with something cheap and basic. You can always add onto it later.

If you really want to go cheap, buy yourself a Raspberry Pi. You can pickup a Zero for as little as $5. Remember, you don't need much to learn Linux.

What if you don't have any spare hardware? Go ahead and install Virtual Box on your computer. You can always install Linux on your desktop/laptop virtually.

For more ideas on what you can do in a home lab and where to find hardware deals, check out my how-to "IT Pro Education: Build a Home Lab". Link to this how-to is listed under the References.

Choosing a Distro: Advise


Starting off everyone pretty much gets hung up on Linux right here. Choosing a Linux Distribution. They know they want to learn Linux, but they don't know where to start. So they do a Google search and learn that their are these things called "distros". Unlike Windows or Mac, their is no single OS, their are all kinds of different Linux types out there! And they are all different! Where should you start?

First and formost don't let this stop you. Don't get hung up on picking one. If you search the community you will find all kinds of different questions such as: What Linux distro should I use for ______? Or What is the best Linux distro for _______? Forget distros. Thats right, forget about them. They don't really matter! Yes they all are different, but you are just starting out so they don't matter to you! Don't let trying to pick one stop you or hold you up.

Why should choosing a distro not matter? You learn one, you learn them all. Yes they are all a little different, but thats just it. They are a little different. Think of it this way... You know how to drive a car right? Because you know how to drive a car you can drive any make or model car. Doesn't matter who built it. They are all similar enough you can get in one and drive. Yeah it may take you a minute to figure out how to use the cruise control, but that doesn't stop you from driving. Linux is very similar. You learn one Linux distro you really learn them all, or at least you are good enough to get around and use any distro. All you need to do is learn that distro's particulars to become proficient at it.

To sum up this step, remember this:
Don't get hung up on picking. Just dig in and learn!

Choosing a Distro


OK, now that I just told you to pay no attention to distros, now I'm going to tell you the opposite. [troll face] Seriously... yes it does matter what distro you pick, but only because as you learn Linux you will find that you like one over another. Its features, its commands, etc may factor in to what you personally like to use, how you learn, or even what you want to learn. Just remember my point from before: Don't get hung up on picking! Just dig in and learn.

Now that we got that out of the way. First know their are some core distros. From these pretty much all other distributions come from in some way shape or form. Those include Red Hat, Debian, Slackware, Gentoo, and Linux From Scratch. You may want to start with one of these.

So the question is... How do I pick what distro to start with?

Before you move on, I suggest you answer these two questions:
1. What do you want to learn?
2. How do you want to learn it?

The reason you ask yourself those questions is because knowing the answer will help you know how best to proceed in what and how you learn.

For example...
1. What do you want to learn? - I want to know the basics of Linux.
2. How do you want to learn it? - I just want to install it and poke around. I don't want to have to troubleshoot anything and I don't want to mess with the command line.

If these are your answers then you probably want to start simple and use a distro that does most everything for you. If so, I suggest you look at these:
Fedora Core
Ubuntu or Mint

These are very end user desktop oriented distributions. They can be powerful and used as servers too (I wouldn't recommend) but they make getting into Linux very easy since they do most the work for you, and they look really nice with their fancy GUIs.

However lets say you answer those questions like this:
1. What do you want to learn? - I want to know how Linux works, I want to know every in and out about it.
2. How do you want to learn it? - I want to build everything myself so I know how it all works.

If so then I suggest you consider using one of these:
Gentoo
Linux from Scratch
Slackware

Now that I gave you some ideas here are some popular distributions and what they are well known for:

-- Centos (Red Hat) --
I highly suggest this is where you start. Most companies use Red Hat, so using Centos is a great place to start and use since its a clone of Red Hat Enterprise Linux. If you have an interest in becoming a Linux Sysadmin this is the distro for you because of this. Also Red Hat has many certifications that you can take to help you get started professionally. Due to Red Hat's popularity in the corporate world, many compare other distros to it. Centos is a very solid OS and follows (many times creates!) most Linux standards. Has a great community behind it.

-- Gentoo --
One of my personal favorite distros. You will build your own system from scratch, including your kernel. Great way to learn the in and out of Linux, especially if you want to be a Linux Sysadmin. Has a great community behind it. Be ready to spend your time on this, however, since you are compiling everything yourself. However you may or may not want to learn from this distro since it takes Linux into almost the BSD world because of how it works. Not a bad thing, just different from Linux standards.

-- Linux from Scratch --
If you really want to dig your heels into Linux, then this is it. You literally get to download and build everything yourself. You cannot get more basic than this. You may want to punch a hole in the wall due to frustration, but after spending hours building your very first Linux distribution and successfully installing it you will feel like you just beat the biggest challenge life can throw at you. I don't recommend unless you really want to learn Linux deeply and you like learning the hardest most time consuming way possible.

-- Debian --
Very stable OS and some companies use it. Debian has been around for a very long time. Its focus is on stability so when you install it you will think you just installed an older OS (because you did). Not knocking this distro, many swear by it. Its a good one to start with, especially if you have older hardware. Note that you can install newer features if you want to. This is a good one to learn from since it follows (and creates) many Linux standards.

-- Ubuntu --
Many small businesses use Ubuntu. Not because of any technology reasons, but because Ubuntu's popularity in the desktop market. Many people really like it and it does have a good community behind it. I do NOT suggest you learn from Ubuntu. Reason I say this is because Ubuntu does its own thing very different from Linux standards that may build bad habbits in the future if you want to ever become a Linux Sysadmin. But if you want something easy to install and use, this (or Mint) may be the best one for you.

Still confused on what you should try? Download Centos and get started. Why didn't I just say that in the beginning? Well, because Linux is all about choice. Its diversification is what makes Linux so powerful, and that is something you should know and understand.

Lets get Learning Resources


Their are several online resources that you can leverage. Both paid and free courses are available. I linked a couple of free online courses I found that can help you get started.

If you want to pay for an online training course their are many available. Companies such as Plural Sight, Linux Academy, & CBT Nuggets just to name a few have great courses that you can leverage.

You can also start by getting a book. Here are a few titles that are my personal favorites:
Running Linux
Think Unix
Unix and Linux System Administration Handbook

I highly suggest you search the internet. Their are many great free books that you can download online.

Be sure to check the reference section of this how-to. Their are several links I added to help you get started.

Project Ideas & Learning Tips


Now that you have your distro downloaded and you are starting to learn your way around your Linux system you may be asking yourself a question. Now what?

Come up with some projects. Give yourself a task to help you learn.

  • Create a File Server 
  • Build a web server 
  • Setup a Game server such as Minecraft 
  • Host a Photo Album 
  • Build a Media Server for your movies and/or music


I also suggest you replace your desktop by installing Linux. If you do this then it forces you to learn Linux and what Open Source software is available. Using it daily is a great way to learn.

Lastly don't skip over the Terminal. The terminal is the real power behind Linux. If you know how to navigate and work in the system on the command line you can do this on any Linux/BSD system. This is especially true on servers since they typically never have a GUI interface. I highly suggest you learn the command line and get used to using it. You will find its a valuable tool.

Join a Linux User Grou (LUG)


Another great way to learn is you can join your local Linux Users group. Typically you will find your local LUG and when they meet by just searching for them.

And don't forget to ask around in your local Spicecorp. You may find that some in your group have Linux experience and can help you learn.

Conclusion


I hope this how-to helps you get started and gives you ideas on what and how you can reach your Linux learning goals.

If you get stuck be sure to ask questions here in the community. Don't forget to search the internet too. Many times you can solve your issue just by doing some searching.

Have fun learning!

References


Spicecorps
Spiceworks Community Linux Group
Learn Linux the Hard Way
Free Learning Linux Course by IBM
The Linux Documentation Project
CBT Nuggets
Plural Sight
Linux Academy
Book -- UNIX and Linux System Administration Handbook
Book -- Think Unix
Book -- Running Linux
VirtualBox
Raspberry Pi
DistroWatch
Free Linux Training Courses
Free Linux Training
The Complete Beginners Guide to Linux
Linux Distro Timeline
IT Pro Education: Build a Home Lab

2011-03-23

How-to: Fix a Drive Suffering from an Identity Crisis

This is a short how-to I wrote on spiceworks on how to fix a drive that forgot what size it is.

http://community.spiceworks.com/how_to/show/2043

2011-02-05

Using ntfsclone to Image Clients

Here is a how-to I wrote on Spiceworks on how to use ntfsclone to image Windows based systems:

http://community.spiceworks.com/how_to/show/1751

The Sysprep How-To

Here is a how-to I wrote on Spiceworks about Sysprep:

http://community.spiceworks.com/how_to/show/1752

2010-12-06

How to Configure Trusted Sites in Internet Explorer via Group Policy

Microsoft didn't exactly make configuring Trusted Sites in Group Policy (GPO) a straight forward thing. Thankfully this simple how-to will get you off the ground getting Trusted Sites configured quickly and easily.

First either create a GPO and link it to the desired OU or edit an existing where you have the computer(s) located in Active Directory you want to have this setting.

NOTE: the fewer GPO's you have the better. Try to always keep GPO's stacked on top of eachother and don't duplicate settings. This will help cut down on configuration issues and the time it takes for a user to login.

Now in the GPO you're editing go to Computer Configuration –> Administrative Tools –> Windows Components –> Internet Explorer –> Internet Control Panel –> Security Page and then double click to the zone assignment list in the right pane.

Next you want to Enable then click on the "Show..." button.

Now all you need to do is add all your URL's you want to this list and specify what zone you want them configured for. The top field is for the URL, the second field requires a number to specify what zone to place the URL in. In our case we want the URL in the Trusted Zone so we would place a number "2" in this field. Here are all the numbers and what zones they represent.

1. Intranet zone – sites on your local network.
2. Trusted Sites zone – sites that have been added to your trusted sites.
3. Internet zone – sites that are on the Internet.
4. Restricted Sites zone – sites that have been specifically added to your restricted sites.

After you update you can either wait 15 minutes for the Policy to go into effect or force via reboot or run the gpupdate command.

2010-12-04

How to upgrade Fedora without downloading a new CD image

Upgrading Fedora from one version to the next is very simple just follow these steps:

1. Make sure you backup all your data, just to be safe.

2. Make sure your system is up to date:
#yum update

3. Just in case, make sure you running the latest version of RPM and yum:
#yum update rpm
#yum update yum

4. Install the preupgrade package:
#yum install preupgrade

5. Run the preupgrade command:
#preupgrade

Enjoy!