Views
Shell is more than just a command processor
Don't be discouraged by the open-ended nature of this topic. "Mastering" shell usage is indeed a large and long undertaking.. ..but.. ..there is a lot to gain from even small investments of study and effort.
The wikipedia article http://en.wikipedia.org/wiki/Shell_(computing)offers this family-classification .. probably subject to alternative viewpoints and basis of classification
- sh .. ash dash bash ksh fish
- csh .. tcsh
- es
- rc
- schs
- zsh
- sash
Loose thoughts on ways to do more than execute a single command
- Filesystem navigation (pushd, popd, dirs)
- pipelines and redirection ( * | && || < > >> &> exec )
- jobs: job-control (jobs), background (&, ^Z, bg), foreground (fg), signals
- aliases, functions, environment variables
- Scripting
- cmd vs (cmd) vs { cmd; }
- sh -c 'cmd',
- sh scriptfile vs source scriptfile
- Misc
- shebang, subshells, environments, return codes
- globbing, word-splitting, expansion(s) and substitution(s)
- semicolon ';' command-separator
- command-terminator/separator (terminology?) &, &&, ||
- quoting and escaping
- shopt
- debugging
References
- http://wooledge.org/mywiki/BashPitfalls .. avoiding problems
- http://www.linux.com/articles/34658 .. a few words about portability
- http://wooledge.org/mywiki/BashFAQ .. a pretty good FAQ page
- ftp://ftp.cwru.edu/pub/bash/FAQ .. an older FAQ (I think the author may have been a major contributor)
- http://www.tldp.org/LDP/abs/html/ .. Advanced Bash-Scripting Guide .. loaded with examples