Different shells will allow you to pass arguments in different ways. All of the commands, and combinations of commands, that you will learn in this tutorial will work in all of the common UNIX shells. The real difference is noticed when you begin to write advanced shell scripts. Shell scripts allow you to perform a series of commands and can even loop commands in order to automate tasks. The way in which the script is 'programmed' depends upon the type of shell that you are running.
Some common shells are csh, tcsh, bash, ash, ksh, and zsh.
A flag is a tool that is used to format the output of commands in a specific way. The ls command allows the user to specify several different flags which will alter the output of the command. Flags are very useful because you may want to view only part of the output of a command. They can also be used to specify several files with one filename. Commands are processes as well as the shells that interpret them.