On Unix-like systems, the shell is the command interpreter, which accepts command line input and runs other programs accordingly. It's also usually one of the first programming languages that Unix users and system administrators learn. Though relatively simplistic as languages go, the shell is useful because it can easily run other programs and respond to their output or error code results.

Programs that are commonly written in the shell include startup scripts for daemons, installer scripts for binary-only software packages, and system maintenance routines. It is relatively rare today to write larger application programs in a shell language, though it has been done in the past: for a long time, the master DNS and WHOIS databases at InterNIC were maintained by one big shellscript. Most sysadmins today prefer Perl or another more powerful scripting language for many of the tasks that were formerly done in the shell.

There are several flavors of shell commonly in use on Unix and Linux systems today. The original Unix shell is known as sh, or the Bourne shell; its successor on Linux systems is bash. Other popular shells include the C shell or csh, named for certain resemblances to the C language; David Korn's Korn shell or ksh; and the feature-packed zsh.