Beginning to learn Unix and Linux

To get proficient with unix, you will need to work on it regularly. Practise makes perfect.

Firstly, I would suggest that you pick a Linux distribution. Don't worry too much about picking the best one for you yet, when you are ready you will find the one. For a beginner, a distro like Ubuntu will be good enough.

Problems will arise, be ready for them. Ask questions on the web ( here on Unix SE or at other forums ), the linux community ( more correct is the "opensource community" ) is a helpful community. The more you partake in that community, the faster you will learn.

Now you will need to try and perform basic tasks on your shiny new OS. Chatting, Browsing, typing up documents, emailing, watching movies, etc. Use Linux for everything.

Be aware that Linux does have a learning curve, and that you will need to dedicate time to it if you want to become professional.


My suggestion would be to NOT start out with a "beginner" distro like Ubuntu. How many *nix servers have a GUI running on them?

What I did was start out with Slackware (http://www.slackware.com) and learned how to install, configure, and use a *nix system.

Slackware is a hands-on system that requires you know what you're doing to make things happen.

Lastly, if you haven't before, I'd suggest building your own PC and using Slackware as the OS for your home-brew system (also what I did).

You will learn A LOT by going this route.

If you want to take your learning to another level I'd highly suggest rolling your own system via "Linux From Scratch" (http://www.linuxfromscratch.org/).

Good luck with your educational endeavors!

~ tim


I agree with Stefan and disagree (partially, see further) with tim: start out with a good desktop distro, and use it for your basic daily tasks. That will allow you to experiment and learn without having to reboot all the time (IME if you have to reboot, you just don't do it very often).

If you want to become a professional, you will have to get familiar with the underlying system though. Just like you need to know about the registry and permissions and how DLLs are loaded, etc. on Windows...

And once you're somewhat starting to get familiar with the GUI & a bit of the commandline, and you want to learn about linux/unix servers, you can run them in a virtual machine (kvm/qemu, virtualbox, vmware, ...) and ssh to them.

Then when you start to understand the commandline well, something like CRUX, Slackware or LFS is a good tool to get more in-depth knowledge about how all the parts of the OS (can) fit together.