When Stephen Bourne released the his shell in 1977, shell scripting was born and he turned every UNIX user into a developer.
The UNIX shell can be used interactively, but the real power is when the shell is used as a programming language. Modern shells like bash can be seen as a general-purpose language but the syntax and semantics can be awkward at times. Moreover, with UNIX a broad range of small utilities follows (cut, sed, tr, etc.). These utilities together with the programming constructs of the shell, enables the user to automate any tasks and thereby become a more productive user.
This talk will go through how to use the command-line/terminal/shell efficiently (key bindings, pipes, redirection, etc.), and general patterns and pitfall in shell scripting will be discussed (checking if a file exists, looping, etc.). To feel the real power of OS X, knowing how to write shell scripts is essential.