I was asked for advice on how to start learning Linux. Rather than replying via email I’m writing a blog post for future people who ask such questions and also to get comments from other people which may provide information I missed.
Table of Contents
Join a LUG
The best thing to do is to start by joining your local Linux Users Group (LUG). Linux International maintains a list of LUGs that is reasonably comprehensive [1]. Even if there isn’t a LUG near enough for you to attend meetings you can learn a lot from a mailing list of a LUG that’s close to your region. There is usually no great reason not to join the mailing list of a LUG in a different region or country, but a local LUG is that the advice will often be tailored to issues such as the local prices of hardware and the practices of your government.
Also note that Linux International doesn’t list all LUGs, the MLUG group in Melbourne [2] and the BLUG group in Ballarat [3] aren’t listed. Anyone who joins LUG (the group based in Melbourne, Victoria that I’m a member of) will be advised of the smaller groups in the region if they ask on the list.
As an aside it would probably make sense for the main LUV web page [4] to have links to local LUGs and to the LI page of users’ groups and for other LUGs to do the same. It’s pretty common for a Google search to turn up the web site of a LUG that’s near the ideal location but not quite right. Also it would be good if LUV could have a link to the Victorian Linux Users Group in Canada – this should reduce the confusion a bit and they have a link to us [5].
Play with Linux
Get a spare PC (with no important data) and try installing different distributions of Linux on it. Make sure that it never has anything particularly important so you can freely try things out without worrying about the risk of losing data. Part of the learning process usually involves breaking a system so badly that it needs to be reinstalled. Linux can run on really old hardware, an old system with 64M of RAM will do for learning (but 128M will really be preferred and 256M will be even better).
Learn with other Beginners
LUV has a very active beginners group, with a beginners mailing list and special beginners meetings. A group that has such things will be more helpful as you can easily learn from other people who are at a similar level to you. Also you can spend time learning Linux with friends, just spend a weekend with some friends who want to learn Linux and play with things – you can often learn more by trying things than by reading books etc.
Do some Programming
One of the advantages of Linux (and other Free Software OSs) is that it comes with a full range of programming languages for free. You can get a much greater understanding of an OS by writing programs for it and a typical Linux distribution gives you all the tools you need.
Any other Ideas?
Does anyone have any other suggestions? Please leave a comment.
If the person has used a computer before, ask her to try achieve the same on the new platform, and an extra bonus is asking if there was anything easier/harder, compared to the familiar platform.
Read a book or two, preferably while practicing on a real Linux system.
As this question has arisen from several independent sources lately, I have
started searching for suitable texts (preferably online) that would give
serious newcomers a solid foundation of understanding in regard to shell
usage and basic system administration.
William E. Shotts, The Linux Command Line, appears to be very good, based on a
reading of the first few chapters.
http://linuxcommand.org/tlcl.php
Paul Sheer, Rute User’s Tutorial and Exposition
(http://rute.2038bug.com/index.html.gz) is somewhat out of date in places, but
remains a valuable introduction nevertheless.
If you know of any other online books that fall into the “I wish I had read
this when I was learning UNIX/Linux” category, particularly if they foster an
understanding of the UNIX tradition and the ways of working and thinking
unique to it, then I would welcome references.