On Thu, 21 Mar 2013, Jake Vath wrote:

>> or an explanation of pipes, or how to use the semi-colon on the command 
>> line, or parentheses to make subshells, but some of those are even a 
>> little advanced.
>
> Yeah, subshells and an actual explanation of pipes and how they work is
> quite advanced...

I wouldn't explain pipes much except to say that we can capture output 
instead of sending it to the screen, for example:

grep foo file | less

Then we have to do stuff like

sort file | head

The pipe is pretty central to stuff we normally do, so they need that. 
Subshell can wait, but this is the kind of thing I do a lot, when a flat 
db text file has a header line with field names:

( head -1 file ; tail -n+2 file | sort ) > outfile

That sorts the file except for the header line and preserves the header. 
We might not get to that in the first class, which is 1 hour 15 mins.


>> The biggest questions I have are about the best order to teach things 
>> in. What's best -- explain the concept of a shell, or just start typing 
>> commands?  Probably the former, then go to the kernel/shell concept, 
>> then back to commands.
>
> I think you're right.
> I'd start out with a little history on the shell, this doesn't have to be
> Bash specific.
> Just touch on the conception of, "The Shell".

I think I will do that.  "Everyone log in.  OK, now each of you is in your 
own shell..."  It sounds appealing.  "When you type a command, your shell 
interprets it and decides what to do."  Then I can talk about 
personalizing the experience for different accounts.


> Maybe mention some stuff about how a shell is a command interpreter.
> It's another layer of abstraction between the operating system and the user.
> Mention something to the affect of shell scripting is *really* just a way
> of gluing together system calls, tools, utilities, and other programs.
> Why do we need a shell? What you can do/should do/ should not do with the
> shell.
> Mention shell limitations.
>
> How much time do you have with these students? One day?

There will be 2.5 hours total in two classes, but almost all of this basic 
stuff needs to be in the first class, so it will be good to direct them to 
online resources.  The second class has to focus more on a particular kind 
of statistical analysis job that they will often run.  We're using Torque 
PBS, so they have to learn that, too.

Mike