Learning linux

DrewChan

Expert Member
Joined
May 19, 2010
Messages
4,937
Reaction score
3
Location
Cape Town
I am currently attempting to learn as much Linux as I can in as short a time as possible,

Reading:
Linux Bible
LPIC Linux essentials

Watching various video sets on YouTube, playing around with Ubuntu and command line,

Going through Code academies Command Line tutorial.

Does anyone have suggestions for gaining real world working knowledge of Linux,

I feel like there's this void of information between doing basic command line work and more advanced tasks like setting up servers, and load balancing.

All suggestions welcome.
 
Install something difficult to use like Gentoo of Slackware.

And google a lot.
 
Yes, install it and make everything that you currently use on Windows work on Linux instead.

That is the fastest way with the highest motivation to learn.

And I don't mean keep your Windows system going. I'm saying replace it so that you are forced to MAKE IT WORK and not just switch back.

Unfortunately you cannot just read the knowledge.


People take for granted that they learnt to use Windows through exposure, not through reading about it. For some reason they don't do the same with Linux even though it's the simplest and most logical way to do it.

You have to learn through doing.
 
Last edited:
Install something difficult to use like Gentoo of Slackware.

And google a lot.

Still doesn't really teach you anything or give you an understanding.

Often through frustration people just read the damn page and do it word for word and feel very proud when it works but have no clue what they did.

I think do the exact opposite.

Start with the EASY stuff like Ubuntu Server or CentOS and then make typical stuff work on it. You don't want the baseline OS to frustrate you while trying to make something deeper work.

Also Ubuntu and Centos(Redhat) has the best documentation.

Gentoo and Slackware are probably more difficult for a lack of documentation than a "difficult" OS.

Support is everything.
 
I feel like there's this void of information between doing basic command line work and more advanced tasks like setting up servers, and load balancing.

So elaborate.

What do you find is missing? Maybe we can fill in the blanks for you?
 
Set up various servers in VM's. A DNS server, caching proxy, mysql cluster, etc.
Use something like "ISP Config".

You can do a lot with a few VMs.
 
I am currently attempting to learn as much Linux as I can in as short a time as possible,

Reading:
Linux Bible
LPIC Linux essentials

Watching various video sets on YouTube, playing around with Ubuntu and command line,

Going through Code academies Command Line tutorial.

Does anyone have suggestions for gaining real world working knowledge of Linux,

I feel like there's this void of information between doing basic command line work and more advanced tasks like setting up servers, and load balancing.

All suggestions welcome.

Easy:
- Pick any LAMP software (vBulletin, Wordpress etc)
- Pick a flavour of Linux and install (don't be a wuss and disable firewall and selinux)
- Install LAMP stack
- Tune HTTP
- Harden Linux
- Make it run on PHP7
- Configure APC
- Have MySQL run on a separate volume (i.e. mount as "/data") - tons of fun here getting to know MySQL config
- Figure out how to run a hot-MySQL backup
- Install mod_evasive
- Install mod_security (and cry, because you have to write unblock rules)
- Install server monitoring
- Use JMeter to load-testing your config and tune HTTP (prefork vs worker vs event model) and MySQL (bonus points if you use memcache)
- Put a Varnish / Nginx in front of it
- Then duplicate the environment and loadbalance

Once you have done all of the above:
- Build a Graylog / Elastic search cluster
- Use Logstash to feed your LAMP logs into it

After this, move to Joburg and I will hire you :-)
 
Set up various servers in VM's. A DNS server, caching proxy, mysql cluster, etc.
Use something like "ISP Config".

You can do a lot with a few VMs.

I would not use ISPConfig (ISPConfig = MS Frontpage for Linux admins) - as it masks many of the management tasks. Rather go with something like SaltStack / Chef / Puppet etc - but I would only use that once you know the basics.
 
Thanks everyone, will take all suggestions into account,

MagicDude, planning on moving to the UK but thanks for the offer, I assume your rather large list is extremely complex
 
I'd also recommend going through a few of these Perfect Server guides, like this one: https://www.howtoforge.com/tutorial...l-pureftpd-bind-postfix-doveot-and-ispconfig/ (there are a bunch of these for different distros).

Stop at each step and analyse what the purpose is of each component, learn the basic configuration options, etc. When you complete these guides you'll have a working web/mail/dns server too which you can experiment on.
 
A very good place to play is virtualbox.

(I do not mean run virtualbox off a windows machine, I mean you can set up many virtual servers/pc's and play with them/get them to interact).
 
Last edited:
A very good place to play is virtualbox.

(I do not mean run virtualbox off a windows machine, I mean you can set up many virtual servers/pc's and play with them/get them to interact).

Will be installing virtualbox and figuring out how to use it, I think I will need to research severs as a separate entity, there is a lot I don't know there.
 
I'd also recommend going through a few of these Perfect Server guides, like this one: https://www.howtoforge.com/tutorial...l-pureftpd-bind-postfix-doveot-and-ispconfig/ (there are a bunch of these for different distros).

Stop at each step and analyse what the purpose is of each component, learn the basic configuration options, etc. When you complete these guides you'll have a working web/mail/dns server too which you can experiment on.

At OP - tutorials like those are in my mind super dangerous as they make you believe that you are doing the right thing. When I see someone uncommenting "bind-address" in mysql.conf and thus allowing access to all interfaces it makes my toes curl (yes, someone will now argue, that hardening of MySQL will restrict privileges, but why on earth then listen on all interfaces in the first place)? Never mind the aspect of allowing remote root login on MySQL.

I would possibly get familar with one flavour of Linux (CentOS is perhaps the best as it is based on Redhat) and then get yourself some decent books:
- https://www.packtpub.com/networking-and-servers/centos-7-linux-server-cookbook-second-edition
- https://www.packtpub.com/networking-and-servers/mastering-centos-7-linux-server
- https://www.packtpub.com/networking-and-servers/centos-high-performance
 
I'm always curious when I see this thread pop up as it does from time to time across all sorts of forums.

I always wonder what exactly does the OP have in mind. Do they want to use some form of Linux as a desktop OS at home? Do the want to go full sparrow and use it at home, at work, everywhere, but essentially still as a desktop OS, although one now where they have to interact with company and outside resources that use mainly Windows? Do they want to learn server admin?

I mean the question initially posed is as broad as Linux ecosystem itself.
 
Top
Sign up to the MyBroadband newsletter
X