Which Distro to learn linux for IT career

Jalseng

Limp Gawd
Joined
Dec 10, 2012
Messages
153
Hey guys, I've used Ubuntu in the past, so I have some some knowledge of linux. However, now that I've had a few years of doing IT repairs (some hardware, mostly software such as troubleshooting, virus removal, and so forth) I have been wanting to get into the IT field more and move up from under-payed retail IT repairs. First step that I've chosen is to get a refresher on linux and expand my linux knowledge. I'll be running it on VM on my desktop. I've decided not to go completely linux as I game alot and did not want to deal with dual booting just to game a bit. However I am going to "try" to live on linux as much as I can.

So what I need is a distro where I am to learn more about linux from use. I know there are a few IT jobs out there that likes people with Linux knowledge/experience, but im not sure what they are looking for specifically. I can install programs and setup it up to my liking for use but other then that i don't know much. As I stated, I've used Ubuntu before and did learn about linux a great deal, but I would like to try something that will help me learn more. Searching the forums I've read about Gentoo being a good start, but that thread is 7 years old. Any suggestions and tips would be great.

Thanks!
 
So what I need is a distro where I am to learn more about linux from use. I know there are a few IT jobs out there that likes people with Linux knowledge/experience, but im not sure what they are looking for specifically.
From what I can tell, they're looking for Linux server experience. I.e can you setup a web-server in Linux? Or can you optimize the old' holy combination of LAMP (Linux, Apache, MySQL/MariaDB, PHP/Python/Perl) server setups? Do you know how to configure, update, or modify a linux server using just the command-line? How about using nginx instead of Apache? How would you secure a linux server?

So setup a Linux server. Ubuntu Server should be a solid enough distro to start with. Just dive right in with the command-line.

EDIT: Slightly old but still helpful guide:
http://arstechnica.com/gadgets/2012/11/how-to-set-up-a-safe-and-secure-web-server/
 
I would say CentOS mainly because a large number of companies will be using RedHat
 
Gentoo would be a good start.

One of the basic things you'd learn is, for example, building your own kernel from sources. With most distributions this is a thing of the past as kernels are built automatically for you. Of course, there's nothing stopping you from building your own, but you're going against best practices of a distribution.

On a similar note, learn to build software from sources in general. Learn how to unbuild things.

Learn emerge, apt, yum and pacman.

Learn the basics of GIT and SVN.

Learn to use vi. If things break there's a likely chance you'll have to use an editor in shell. A lot of the times, it's vi only.

Learn how to configure X.

Learn the basics of file storage system (what is a soft link, hard link, inode and so forth).

Learn how to troubleshoot ALSA.

Learn how to build a display driver from scratch.

Learn how to set up and configure SSH.

Learn how to set up and add users to sudo.

Learn hot to set up and configure iptables.

As someone else has mentioned, learn how to set up and maintain LAMP servers.

Learn some other common webserver configurations - Ruby and Node.

So, in a nutshell, there's a lot to learn. I'm just listing the basics.
 
Gentoo does require more knowledge than most (which can make it a good distro to learn for some), but I think it'd be better if he used something like CentOS as previously recommended. Different distros use different package managers, different init systems, etc., and could be confusing. Of course it's best to learn multiple init systems and such but it's probably best to start with those he'd be likely to encounter in a workplace and then expand to alternatives.
 
I'd focus on either Debian or Redhat derivatives before heading into stuff like Gentoo, Slack or Arch if you're looking for IT career distributions. CentOS/Ubuntu being the ones I'd suggest.
 
I'd also recommend CentOS.

In my 13 year professional career, every company I've worked for has standardized on Redhat based distro's.
 
If you want to be some sort of infrastructure admin (server admin, web admin) or a technician in a Linux environment, I'd say something Red Hat based (so probably CentOS) would be your best bet by far. Everyone in the entire world (exaggeration) uses Red Hat for their Linux systems.

If you want to go into software development, Gentoo would probably be your best bet.

Outside of those, I'd say it really shouldn't matter that much.
 
I'd learn centos and debian, debian should be basically the same as ubuntu but without as many packages out of the box. CentOS is pretty similar to debian once you get used to yum instead of apt-get.

Most of the time if I want to do a quick lamp server I use CentOS, but if I'm trying something new or setting up a general server I prefer debian/ubuntu since I'm more familiar with it
 
I recommend CentOS, gets you some Red Hat experience without the $$$.

I've been in a few places that run SUSE Enterprise Linux still. I can't think of a way to get comfortable with that unless you download a trial or play around with OpenSUSE.
 
Okay, I think I'll go with CentOS. Gentoo sounds good and sounds like I'll get a lot of info from it, but right now im just diving into the world of IT and haven't planned on going that in depth with Linux as of yet.. Can I use CentOS to run a server like Ubuntu server? After skimming through the article, I want to set one up, just to have it on my experience list. I am able to get windows server 2012 through my college Comp Science department, which would you guys rather I learn? Somehow a Linux server seems more fun to build and set up then a Microsoft one..
 
Okay, I think I'll go with CentOS. Gentoo sounds good and sounds like I'll get a lot of info from it, but right now im just diving into the world of IT and haven't planned on going that in depth with Linux as of yet.. Can I use CentOS to run a server like Ubuntu server? After skimming through the article, I want to set one up, just to have it on my experience list. I am able to get windows server 2012 through my college Comp Science department, which would you guys rather I learn? Somehow a Linux server seems more fun to build and set up then a Microsoft one..

Yep, it runs like any other. You can specify in the package management at the end of the installer whether you want to have a desktop environment or set it as a basic server.
 
Centos/Ubuntu

That will be the majority of your enterprise systems out there. When you get into cloud based operations, Ubuntu becomes even more prevalent. However, you will be looking at RHE/Centos based deployments probably(just a guess) out numbering Ubuntu/debian based deployments 80/20 at this point.

Dont even bother with gentoo, its such a non factor at this point its not even worth mentioning. You are NOT going to be building kernels from source at anytime, unless you end up working with some VERY specialized hardware. I dont think I have had a need in the workplace to compile a kernel for any reason in the last 7 years. Especially with virtualization being prevalent.
 
Dont even bother with gentoo, its such a non factor at this point its not even worth mentioning. You are NOT going to be building kernels from source at anytime, unless you end up working with some VERY specialized hardware. I dont think I have had a need in the workplace to compile a kernel for any reason in the last 7 years. Especially with virtualization being prevalent.

No, but you should (if you plan to be worth anything as a tech expert) have an understanding of how Linux and it's internals work, how to use GCC and make, how the important data structures used by the OS work, how the Linux kernel offers essential OS functionality like scheduling, etc., and Gentoo is a reasonably accessible way to work towards achieving that. Lots of people claim to be Linux experts, yet don't even understand why Ctrl+C closes some terminal programs but does other things in others.
 
CentOS/Ubuntu

They will give you the expience with the big 2 debian distros and RHEL based distros.
 
Personally I hope Ubuntu's move to a more restricted, in-house, Apple-like environment (Mir, Upstart, Unity, all the whining about other devs not wanting to support those proprietary things) will be their demise. I already answered CentOS earlier, but I would specifically say not to spend a lot of time with Ubuntu. Using Ubuntu in the enterprise is foolish. Some companies do and will use it anyway, but hopefully Red Hat (which in itself has several disadvantages compared to some distros, but is at least more open and standardized) will not lose to Ubuntu.

If you do use Ubuntu in the enterprise, make sure to use it with other relatively shitty software packages that shouldn't be used in the enterprise, e.g. use MySQL instead of the good Postgres, ProFTPd instead of good vsFTPd, etc..
 
Quick question, so I want to run a linux server to get some exp.. probably a web host server or something.. I know I can use an old pc (duo-core 2.0ghz, 512+ram, etc).. but if i can get a real server for not much more, would it be beneficial for me to get the server? saw this in my local Craigslist and seems like a good price, no?
 
Quick question, so I want to run a linux server to get some exp.. probably a web host server or something.. I know I can use an old pc (duo-core 2.0ghz, 512+ram, etc).. but if i can get a real server for not much more, would it be beneficial for me to get the server? saw this in my local Craigslist and seems like a good price, no?

Don't bother; just make sure you're backing up any data you don't want to lose.

Now if you were going to run a production server that you cared a lot about (e.g. you use it for business) then having enterprise-grade equipment would be a good idea.
 
No, but you should (if you plan to be worth anything as a tech expert) have an understanding of how Linux and it's internals work, how to use GCC and make, how the important data structures used by the OS work, how the Linux kernel offers essential OS functionality like scheduling, etc., and Gentoo is a reasonably accessible way to work towards achieving that. Lots of people claim to be Linux experts, yet don't even understand why Ctrl+C closes some terminal programs but does other things in others.

I agree completely, but gentoo is legacy. Learn gcc/etc/etc in Ubuntu or CentOS. Its more important to learn your BASH/Perl/Ruby if anything these days to be proficient in managing Linux environments.
 
Quick question, so I want to run a linux server to get some exp.. probably a web host server or something.. I know I can use an old pc (duo-core 2.0ghz, 512+ram, etc).. but if i can get a real server for not much more, would it be beneficial for me to get the server? saw this in my local Craigslist and seems like a good price, no?

sign up for an AWS account and use the free usage tier for a year playing with t1.micro instances for your experience. Easy to blow away and start over.
 
I agree completely, but gentoo is legacy. Learn gcc/etc/etc in Ubuntu or CentOS. Its more important to learn your BASH/Perl/Ruby if anything these days to be proficient in managing Linux environments.

Nope. Wrong answer. It sounds to me like you're completely missing the point here. Gentoo is a good experience because it requires you to set some things up yourself. To get it working, you must exercise a basic understanding of Linux. It doesn't ship with a 'click two buttons and you're done' installer. It also doesn't come in with a 'proprietary driver manager' either. With Ubuntu, you can get by without understanding a single thing about computers, let alone Linux. With Gentoo, it's not the case. The majority of 'Linux experts' who use Ubuntu, as a result, don't even know their signals from their semaphores.

The point of learning something like Gentoo isn't to learn the newest and greenest stuff. The point of Gentoo is that it doesn't do things for you. So even though things like Ubuntu have a bunch of new crap that you don't want, learning Gentoo is a good idea despite it's age because the core Linux concepts haven't changed. Linux still uses virtual file systems. Linux still uses inodes. Linux still uses jiffies. If your goal is to actually understand how Linux works, Gentoo will teach you that, whereas Ubuntu won't. Ubuntu won't even teach you how daemons like init work, because Ubuntu doesn't even use init anymore.
 
Last edited:
You can also sign up for something like https://koding.com/R/dino82 and get a free VM to play with that you can start, destroy and start again without worrying about making too much of a mess. This runs the latest Ubuntu I believe

I'm all for suggesting learning new distros and how things work, but from the sounds of it, it seems like the OP wants to get on the fast track to learning Linux and get into the IT field with minimal downtime. To combine suggestions made in this thread, learn a mainstream enterprise distribution first like CentOS/RH, or if Debian/Ubuntu sounds good, go there, and then learn Gentoo/misc. distros later when you have your Linux job experience more solidified.
 
The point of learning something like Gentoo isn't to learn the newest and greenest stuff. The point of Gentoo is that it doesn't do things for you. So even though things like Ubuntu have a bunch of new crap that you don't want, learning Gentoo is a good idea despite it's age because the core Linux concepts haven't changed. Linux still uses virtual file systems. Linux still uses inodes. Linux still uses jiffies. If your goal is to actually understand how Linux works, Gentoo will teach you that, whereas Ubuntu won't. Ubuntu won't even teach you how daemons like init work, because Ubuntu doesn't even use init anymore.

pfft, Gentoo is for noobs. http://www.linuxfromscratch.org/ is what real Linux users use. Better yet, why let Linux devs hold your hand in providing a working kernel and OS for your computer? That's so lame.

:D
 
Having done both (though I haven't done Linux from scratch in years), I'd say Linux From Scratch is worth the time investment to do at least once. But it is more involved, and if you're just now learning Linux it's probably inaccessible to do.

Checked out the website and skimmed the fist part of their LFS book. Sounds like a fun side project to do. I'll probably stick with CentOS, get a refresher, figure what I like and dont like, and then build a LFS to my liking in the future. :D
 
CentOS and Debian and spend some time on a Ubuntu LTS machine. In that order. If you're looking into a job doing Linux just forget Gentoo/Arch and all the others. No one, let me repeat no one, is going to use a rolling release like Gentoo in a professional environment. I do Linux for a living and I love Arch as much as anyone but no way it's going on my work machine. This is assuming you're going the IT/Server admin route.

If your intent is software development it's really even easier. You have two choices. Red Hat/CentOS for the corporate side and Ubuntu/Debian for everything else. I'd probably learn both to be honest if I was starting out. Stay away from the niche distros like Arch/Gentoo and the known distros who consistently produce buggy garbage like PClinuxOs and Fedora. If you can't package it into .deb or .rpm it 's going to be of little use in the real world.
 
Nope. Wrong answer. It sounds to me like you're completely missing the point here. Gentoo is a good experience because it requires you to set some things up yourself. To get it working, you must exercise a basic understanding of Linux. It doesn't ship with a 'click two buttons and you're done' installer. It also doesn't come in with a 'proprietary driver manager' either. With Ubuntu, you can get by without understanding a single thing about computers, let alone Linux. With Gentoo, it's not the case. The majority of 'Linux experts' who use Ubuntu, as a result, don't even know their signals from their semaphores.

The point of learning something like Gentoo isn't to learn the newest and greenest stuff. The point of Gentoo is that it doesn't do things for you. So even though things like Ubuntu have a bunch of new crap that you don't want, learning Gentoo is a good idea despite it's age because the core Linux concepts haven't changed. Linux still uses virtual file systems. Linux still uses inodes. Linux still uses jiffies. If your goal is to actually understand how Linux works, Gentoo will teach you that, whereas Ubuntu won't. Ubuntu won't even teach you how daemons like init work, because Ubuntu doesn't even use init anymore.

Whatever you do don't follow this advice. For the love of god don't waste your time learning init (system D or upstart if you really need to know this crap) or any of that under the hood crap that is time wasting at it's finest. Know what happens in the real world when your Linux server crashes? You blow out the VM, start a new one and roll the backups. Poof...done. Anyone who thinks you're going to poor over logfiles and dumps to see what's going on is living in a dream world. You're job is to get the machine into production. Why it crashed is of little matter while it's down.

You don't need to know archaic deprecated systems like init least of all. It's a dead end system that's on life support and the last "major" distro using it is Debian and even that's on the way out. Do some research of what's being used in what field you're interested in and follow suit.
 
Whatever you do don't follow this advice. For the love of god don't waste your time learning init (system D or upstart if you really need to know this crap) or any of that under the hood crap that is time wasting at it's finest. Know what happens in the real world when your Linux server crashes? You blow out the VM, start a new one and roll the backups. Poof...done. Anyone who thinks you're going to poor over logfiles and dumps to see what's going on is living in a dream world. You're job is to get the machine into production. Why it crashed is of little matter while it's down.

You don't need to know archaic deprecated systems like init least of all. It's a dead end system that's on life support and the last "major" distro using it is Debian and even that's on the way out. Do some research of what's being used in what field you're interested in and follow suit.

What if it crashes again and again? Then the reason why suddenly becomes interesting!
 
Whatever you do don't follow this advice. For the love of god don't waste your time learning init (system D or upstart if you really need to know this crap) or any of that under the hood crap that is time wasting at it's finest. Know what happens in the real world when your Linux server crashes? You blow out the VM, start a new one and roll the backups. Poof...done. Anyone who thinks you're going to poor over logfiles and dumps to see what's going on is living in a dream world. You're job is to get the machine into production. Why it crashed is of little matter while it's down.

You don't need to know archaic deprecated systems like init least of all. It's a dead end system that's on life support and the last "major" distro using it is Debian and even that's on the way out. Do some research of what's being used in what field you're interested in and follow suit.

Finally someone else who gets it. You would think anyone who actually works with enterprise level linux deployments would realize that Virtualization has changed just about everything you need to know about troubleshooting *nix deployments. 99% of the time you will be troubleshooting the application(tomcat/jboss/smtp/mysql/etc/etc), not the OS. Getting into Openstack/AWS etc makes it even easier. Have a problem? Blow away the whole stack and barf out a whole new stack of 15 linux systems working out of the box from the get go in concert.
 
I would say CentOS mainly because a large number of companies will be using RedHat

As others have said this is the place to start. Redhat enterprise(or systems based off it) is one of the most common used in business.

Okay, I think I'll go with CentOS. Gentoo sounds good and sounds like I'll get a lot of info from it, but right now im just diving into the world of IT and haven't planned on going that in depth with Linux as of yet.. Can I use CentOS to run a server like Ubuntu server? After skimming through the article, I want to set one up, just to have it on my experience list. I am able to get windows server 2012 through my college Comp Science department, which would you guys rather I learn? Somehow a Linux server seems more fun to build and set up then a Microsoft one..

Well you asked in the *nix area so most will give you answers on that. What is your end goal? If it is to get out of retail IT and move up learning windows server, active directory, etc would be a good option to at least get you into a help desk somewhere. You can build off that and learn some exchange, sharepoint, basic sql work(more of the management side, not programming) from there.

Depending on your area the windows networking side will give you some more options. You can always use it to get out of retail and then start learning more linux down the road.

I should mention I say help desk as that is how many people move up. They get in with a company doing help desk work as they don't have the experience for anything else. They can build off that and get some certs or learn more tech and get promoted out of it.
 
Finally someone else who gets it. You would think anyone who actually works with enterprise level linux deployments would realize that Virtualization has changed just about everything you need to know about troubleshooting *nix deployments. 99% of the time you will be troubleshooting the application(tomcat/jboss/smtp/mysql/etc/etc), not the OS. Getting into Openstack/AWS etc makes it even easier. Have a problem? Blow away the whole stack and barf out a whole new stack of 15 linux systems working out of the box from the get go in concert.

Bingo, we have bingo.
 
Whatever you do don't follow this advice. For the love of god don't waste your time learning init (system D or upstart if you really need to know this crap) or any of that under the hood crap that is time wasting at it's finest. Know what happens in the real world when your Linux server crashes? You blow out the VM, start a new one and roll the backups. Poof...done. Anyone who thinks you're going to poor over logfiles and dumps to see what's going on is living in a dream world. You're job is to get the machine into production. Why it crashed is of little matter while it's down.

You don't need to know archaic deprecated systems like init least of all. It's a dead end system that's on life support and the last "major" distro using it is Debian and even that's on the way out. Do some research of what's being used in what field you're interested in and follow suit.

We have people at my work who have this attitude. They're my subordinates, they make less money than I do and when they can't figure something out, they have to come to people like me for help.

See important point raised by boonie:
What if it crashes again and again? Then the reason why suddenly becomes interesting!

Now back to what you said:

You blow out the VM, start a new one and roll the backups. Poof...done. Anyone who thinks you're going to poor over logfiles and dumps to see what's going on is living in a dream world. You're job is to get the machine into production. Why it crashed is of little matter while it's down.

If you don't know why it's crashing, and simply 'redeploying' isn't working, you have a problem. And it's very common in the real world that simply 'blowing the VM away' doesn't remedy the problem. At my organization, I can't think of any production issues that were solved without any troubleshooting. If you can't exercise debugging, troubleshooting and problem solving skills, you're not worth much even as a Linux admin. Even if it's one of the software developers goofed a data change or pushed broken code, and that's why the system isn't working even when you redeploy it, you should be able to clearly identify where the problem is (from a black box perspective) and work with tier 3 support or on-call developers to get it resolved as quickly as possible.
 
Last edited:
What if it crashes again and again? Then the reason why suddenly becomes interesting!

Not really. If it crashes over and over again 99% of the time its an application or a hardware problem. Hardware I can fix easy enough, assuming I have the parts to replace. If it's an app though, well there are so many variables I'd hate to speculate. Chances are better than nothing you have clean working backups and the problem will just disappear once you get it all rolling again. I know some feel this need to get under the hood as it were, but when you actually feed your family doing this you realize it's just not how it works.
 
We have people at my work who have this attitude. They're my subordinates, they make less money than I do and when they can't figure something out, they have to come to people like me for help.

See important point raised by boonie:

Cool story bro. Do you have a point? Honestly I am dying to hear how many times knowledge of whatever vague init system your referring to has saved the day.
 
Not really. If it crashes over and over again 99% of the time its an application or a hardware problem. Hardware I can fix easy enough, assuming I have the parts to replace. If it's an app though, well there are so many variables I'd hate to speculate. Chances are better than nothing you have clean working backups and the problem will just disappear once you get it all rolling again. I know some feel this need to get under the hood as it were, but when you actually feed your family doing this you realize it's just not how it works.

And let's say the app works in the staging environment, but every time it get's pushed to production, it breaks. This happens sometimes. What do you do, then? You can certainly roll-back the changes, but eventually the code is going to have to get updated and it's going to take work to figure out where the problem is and how to fix it. If the Linux admin is completely useless in that situation, they're not pulling their own weight.

Even server admins and Linux admins should be able to contribute. Your approach shouldn't be "I'm here to make sure the lights stay on and nothing else. Anything else that goes wrong is someone else's problem".
 
And let's say the app works in the staging environment, but every time it get's pushed to production, it breaks. This happens sometimes. What do you do, then? You can certainly roll-back the changes, but eventually the code is going to have to get updated and it's going to take work to figure out where the problem is and how to fix it. If the Linux admin is completely useless in that situation, they're not pulling their own weight.

Even server admins and Linux admins should be able to contribute. Your approach shouldn't be "I'm here to make sure the lights stay on and nothing else. Anything else that goes wrong is someone else's problem".

Sorry about the lack of reply, you edited while I was responding. I think you make a fair enough point, but at the same time what you're saying is not jiving with what you're saying other should do. Everyone knows its poor application, bad code or hardware failures that bring systems down. It's not the guts of an OS. But if you're going to move the goal posts fine, I'll try to address them as best I can.

So your app works in staging but not in production. Great. Obviously you have a problem, but not one that a Linux admin should have to bother with. Get the machine back into production, forward the logs up the appropriate channels and move on. Or are we now saying you're admins are responsible for debugging code? Because honestly that's just ridicules. What language is said broken code in? If I don't know every programming language ever invented am I still not contributing? Do I have to have all the code to every app deployed so I can check for said regressions? What if it's proprietary code? There are so many variables in applications that I prefer not to speculate how to handle it, like I stated earlier. I know this much. It has literally ZERO to do with init and building your OS from scratch though.
 
Sorry about the lack of reply, you edited while I was responding. I think you make a fair enough point, but at the same time what you're saying is not jiving with what you're saying other should do. Everyone knows its poor application, bad code or hardware failures that bring systems down. It's not the guts of an OS. But if you're going to move the goal posts fine, I'll try to address them as best I can.

So your app works in staging but not in production. Great. Obviously you have a problem, but not one that a Linux admin should have to bother with. Get the machine back into production, forward the logs up the appropriate channels and move on. Or are we now saying you're admins are responsible for debugging code? Because honestly that's just ridicules. What language is said broken code in? If I don't know every programming language ever invented am I still not contributing? Do I have to have all the code to every app deployed so I can check for said regressions? What if it's proprietary code? There are so many variables in applications that I prefer not to speculate how to handle it, like I stated earlier. I know this much. It has literally ZERO to do with init and building your OS from scratch though.
I tend to agree.

Oh, don't mistake me; the more indepth knowledge an admin has, the better they can do their job. But likewise, having a clear delineation of responsibility is of critical importance, not just to organisational efficiency, but also to the whole troubleshooting process.

The kind of knowledge Dogs is talking about tends to be useful during implementation, or perhaps in situations where you can't redeploy; you have to troubleshoot the OS and fix it.

However, in modern environments replete with VM infrastructure, I hardly think this comes up nearly as often as it used to ( and even back then, I used to give the problem an hour, max, before redeploying ).
 
Back
Top