When you log into a unix system in text mode, or open a terminal window in GUI mode, you are running a program called a shell. The shell is a command interpreter. You type commands, and the shell carries out those commands (by running other programs, etc.). You primarily interact with the unix OS by entering commands at the shell's command prompt. If you have ever used MS-DOS, or a DOS Window in Microsoft Windows, then you have experienced a shell.
While there are many shells available, the standard shell for a GNU/Linux system is bash. The normal command prompt for bash is a dollar sign, often preceded by various information such as the current working directory and your username.
When you enter a command at the shell prompt, the shell interprets the command, passes it to the kernel, then displays the results of the command back to you.
Most commands are a combination of the command name, switches, and
arguments. For example, in the command ls -l *.html, ls is the command name (the command for listing files).
Minus ell, -l, is a switch meaning give a
detailed (long) listing instead of the default brief listing. Finally,
*.hmtl is the argument, in this case containing
a wildcard (the star matches any string of letters).
The net effect of this command is to request a long-format directory listing of all files whose names end with .html. The result might look like:
Example 1-1. Typing a command in the shell
$ ls -l *.html -rw-r--r-- 1 dbindner dbindner 5997 Mar 23 15:01 commands.html -rw-r--r-- 1 dbindner dbindner 1030 Mar 23 15:01 edit.html -rw-r--r-- 1 dbindner dbindner 1175 Mar 23 15:01 environment.html -rw-r--r-- 1 dbindner dbindner 780 Mar 23 15:01 files.html -rw-r--r-- 1 dbindner dbindner 2996 Mar 23 15:11 fs.html -rw-r--r-- 1 dbindner dbindner 1758 Mar 21 23:58 index.html -rw-r--r-- 1 dbindner dbindner 428 Mar 23 15:01 indx.html -rw-r--r-- 1 dbindner dbindner 627 Mar 23 15:01 install.html -rw-r--r-- 1 dbindner dbindner 1538 Mar 23 15:01 intro.html -rw-r--r-- 1 dbindner dbindner 550 Mar 23 15:01 jobs.html -rw-r--r-- 1 dbindner dbindner 687 Mar 22 21:33 kernel.html -rw-r--r-- 1 dbindner dbindner 473 Mar 23 15:01 links.html -rw-r--r-- 1 dbindner dbindner 511 Mar 23 15:01 network.html -rw-r--r-- 1 dbindner dbindner 1726 Mar 23 15:14 shell.html -rw-r--r-- 1 dbindner dbindner 1339 Mar 23 15:01 start.html -rw-r--r-- 1 dbindner dbindner 555 Mar 22 16:31 template.html