Linux 101 - what to teach?
I am teaching a course in Linux to folks who have little or no experience in Unix/linux. If you are experienced, what do you think would be most helpful? If you are a Newbe, what would help you most?
I would like to keep the course 'distribution generic' but I am using Ubuntu and Knoppix CDs as training aids. Also, there is a follow-on course for Linux from a server point of view.
From the very start, get them used to the command line.
How to use commands such as ls, mv (to move a file as well as to rename a file), clear, ls, su and other such common commands. Teach them now to use man and info pages to get information on how to use commands, and give them excersizes that requie the use of command options to get particular output. Teach them how to use su and sudo to get root authority to accomplish tasks.
PATH: what the PATH variable and how to set the value. How to issue commands by using the full path to the executable from anywhere, and how to cd to a directory to give the command from within that directory. (two somewhat different meanings for path).
Teach them about software repositories and tools to get software: apt-get (aptitude, synaptic), yum, yast, wget, ftp, etc.
Archiving files using tar. Installing software using .tar archives, rpm and Debian tools to install software.
Bootloaders: lilo and grub: what they do; how to configure them; how to add another OS to the system and add it to the bootloader.
Partitioning and OS installation.
Using liveCDs to try out distros before installing (perhaps have an .iso on file that they can burn to cd). Show them distrowatch.com as a resource for more distros.
How to set up and boot an .iso on the hard drive (without cd/dvd drive). How to mount an .iso to see the files within and add/subtract files.
Teach the difference between /etc/bashrc and ~/.bashrc, and how to customize the shell prompt.
Command line text editing using sed, vim, emacs.
Gui text exiting using kate, joe, gedit, nedit, or other such editors.
Introductory shell scripting to automate common tasks.
Perhaps a bit of awk and python.
Hardware configuration with whatever tools are in the distro you use to teach the class.
Introduce them to www.google.com/linux as a resource for finding answers to questions they may have.
Equally important, introduce them to www.linuxquestions.org/questions.
Those are the things that come most readily to my mind. Surely I've left out equally important topics. No doubt others will fill in the blanks I've left behind.
There is so much to know, and so much to learn. I'd say it depends on what you are heading for.
You may give some introduction about linux, what can be achieved with it, where it is used. But i think the following topics should be covered:
Desktop / X11 / Window Managers / Office / Printing
What would help most would be, kind of in order:
* what Linux is (it is a kernel) and why it is important, GNU provides the rest of the OS and it can be used with a different kernel (BSD, Solaris, and others)
* what a distribution is (tell them to download some and try them out on their own)
* what xorg is (there are alternatives)
* what a window manager is (many to choose from)
* some common applications: firefox, openoffice, a text editor, file manager (don't tell them exactly how to use them)
* man pages, documentation, how to RTFM
* filesystems in use, different from Window$ (there are choices for these)
* top-level directory layout (/boot, /usr, /dev, /etc), basic knowledge everyone should have
* introduction to the command line, bash or Bourne-compatible (what a shell is if they don't know, what a terminal emulator is)
* installing packages (binary vs. source)
* configuring a system (this is already something more advanced)
* bootloaders (how to save your system if mess up an OS install)
* building a kernel (even more advanced, you probably won't get here)
However far you want to go. I listed these as very general, you can expand these much more. But, whatever you do, do NOT just jump into telling them how to use Linux without explaining to them what it is they are using and why it is important.
Everyone knows how to use applications, don't show them step by step how to use kedit or kate. That's not useful, they can figure it out or look it up on their own. Don't assume that students are stupid, I hate when teachers do that (even tho is sometimes holds some truth in some cases).
While--from my perspective**--I agree with "bigrig", I would NOT start with the command-line. For those who equate "computer" with Windows or maybe Mac, the very thought of typing a command might be totally alien.
I think the first steps would involve demonstrating some basic functionality---to get across the message about those things that are pretty much the same.
I would then walk through (and demonstrate) some of the features of the various desktop environments--making sure that you relate everything to whatever your audience is used to.
Depending on the scope of your course, another logical module would be a walk-thru of a basic install and configure. This is where I would introduce the CLI.
**Probably NOT typical of your audience: 1st computer: AppleII (what's a GUI?), learned Unix and VMS to get on the Internet and use power tools like Gopher..;), Got the first Mac128 and started writing SW for it in C (Interesting glitches since OS-1 or whatever was written in Pascal). Switched to Win95 to escape the disastrous Power-mac series. All this before the eventual Linux epiphany.
I promise you that your audience is not likely to have this perspective!!! I recently gave a 3-minute demo to a friend. He was surprised that the BofA online banking site looked similar in Linux and Windows. Teach him the CLI??--not anytime soon.....;)
First consideration is the amount of time these students will have to learn and the interests of the students. If you are going to teach sys admins or everyday desktop users. The age group you are teaching makes a lot of difference on the learning curve also.
Look up the Rute Users Tutorial and Exposition. The book is designed as a teaching aid and will, in a non-distro-specific way, teach you and them all about Linux, the commands and what it can do.
Even better, it's absolutely free to download and use.
|All times are GMT -5. The time now is 12:38 PM.|