Shells
"What is a shell, anyway? It's simple, really. The UNIX operating system is a complex collection of files and programs. UNIX does not require any single method or interface. Many different techniques can be used. The oldest interface, which sits between the user and the software, is the shell. Twenty five years ago many users didn't even have a video terminal. Some only had a noisy, large, slow hard-copy terminal. The shell was the interface to the operating system. Shell, layer, interface, these words all describe the same concept. By convention, a shell is a user program that is ASCII based, that allows the user to specify operations in a certain sequence.
There are four important concepts in a UNIX shell:
- The user interacts with the system using a shell.
- A sequence of operations can be scripted, or automatic, by placing the operations in a script file.
- A shell is a full featured programming language, with variables, conditional statements, and the ability to execute other programs. It can be, and is, used to prototype new programs.
- A shell allows you to easily create a new program that is not a "second-class citizen," but instead is a program with all of the privileges of any other UNIX program." - Bruce Barnett (from Sh)
- The Unix Shell Guide [Bourne, Korn, C] - Norman Buchanan and Douglas Gingrich (1996)
- Shell Differences FAQ [All] - Brian Blackmore et al. (Jul. 1997)
- Working in the the Shell Environment [Bourne, Korn, C] (Feb. 2002)
- AIX Version 4.3 System User's Guide: Shells (Oct. 1997)
- Unix/Linux Shell Command Cross-Referencing [All]
This is a three page PDF file. - Unix Shell Quote Tutorial [Bourne, C] - Bruce Barnett (2001)
- Consultix Shell Quoting Guidelines [Bourne, C, Korn] - Tim Maher (1995)
- Command and Shell User's Guide [Bourne, C, Korn] - DEC (Aug. 1994)
- Shell Portability
- Choosing a Shell for Portable UNIX Scripts - Richard Anderson (1998-2002)
- Good Shell Coding Practices [Bourne, Korn] - Heiner Steven (1998-2002)
- GNU Autoconf, Automake and Libtool - Gary Vaughan et al. (Oct. 2000)
- bash
- Advanced Bash Scripting Guide: An In-Depth Exploration of the Gentle Art of Shell Scripting - Mendel Cooper (Sep. 2002)
- Bash by Example - Daniel Robbins
- Fundamental Programming in Bash (Mar. 2000)
- More Bash Programming Fundamentals (Apr. 2000)
- Exploring the Ebuild System (May 2000)
- Learning the Shell - William Shotts, Jr. (2000-2002)
- Writing Shell Scripts - William Shotts, Jr. (2000-2002)
- The Linux Terminal: A Beginner's Bash - Ramon Cash (Nov. 2001)
- Working More Productively with bash 2.x - Ian Macdonald (Oct. 2002)
- Linux Shell Scripting Tutorial - Vivek G. Gite (Mar. 2001)
- Functions and Aliases in Bash - Pat Eyler (May 2000)
- BASH FAQ - Chet Ramey et al. (Sep. 2002)
- GNU Bash Reference Manual - Chet Ramey and Brian Fox (Apr. 1998)
- Introduction to Shell Scripting - Ben Okopnik (Jun. 2000)
- The Deep, Dark Secrets of Bash - Ben Okopnik (Jul. 2000)
- Configuring the Bash Shell
- Bash Programming Cheat Sheet - ph34r
- bash man page - Brian Fox and Chet Ramey (1991)
- Bourne/Bash: Shell Programming Introduction - Rick Dearman (Feb. 1998)
- Extending the Bash Prompt - Giles Orr (Aug. 1999)
- Improve Bash Shell Scripts Using Dialog - Mihai Bisca (May 1999)
- Shell Prompt Customization - Jose (Nov. 2000)
- Bourne (sh)
- An Introduction to the Unix Shell - Stephen Bourne
- Sh - Bruce Barnett
- UNIX Bourne Shell Programming (Feb. 1991)
- The Unix Shell Guide: The Bourne Shell - Norman Buchanan and Douglas Gingrich (1996)
- Bourne Shell Programming - Andrew Arensburger (1998)
- Bourne Shell Programming - Roger Hampel (Feb. 1998)
- Bourne Shell Scripting - Martin Cracauer (Jan. 2000)
- Unix Shell Scripting (1996)
- Shell Script Programming - Matz Kindahl (Jun. 2002)
- Bourne Shell - Richard Rummel and William Farra
- Bourne Shell Scripting Online Course
- Bourne Shell Scripting Tricks - Paul Balyoz (Sep. 1999)
- Bourne Shell Examples
- The Traditional Bourne Shell Family - Sven Mascheck
- Characteristic Common Properties of Traditional Bourne Shells - Sven Maschek
- csh
- csh (C) Man Page - William Joy (Feb. 1994)
- An Introduction to the C Shell - William Joy
- Basic Scripting with the Csh - P. Walker
- Csh Programming Considered Harmful - Tom Christiansen (Oct. 1996)
- Csh - Bruce Barnett (Sep. 2001)
- Top Ten Reasons NOT to Use the C Shell - Bruce Barnett (Sep. 2001)
- C Shell Tutorial - Ben Yoshimo (Aug. 2002)
- C Shell Introduction (Feb. 1998)
- A Brief Introduction To C Shell Variables - Norman Matloff (Jan. 2001)
- UNIX Shell Scripts - Norman Matloff (Jul. 2002)
- Csh Startup FAQ - Anthony Thyssen
- Csh One-Liners
- C Shell Examples
- tcsh
- tcsh Man Page - Ken Greer et al. (Jul. 1993)
- tcsh FAQ
- Tcsh: An Enhanced C Shell
- Features of the TCSH Shell - Jesper Pederson (Mar. 1997)
- Korn
- Getting the Most from Your Shell [pdksh] - Paul Dunne (Apr. 1999)
- What is the KornShell Language?
- KSH-93 FAQ
- The New Korn Shell - ksh93 - David Korn, Charles Northrup and Jeffery Korn
- Korn Shell Programming - Philip Brown (2000)
- UNIX Korn Shell Memento
- Korn Shell Examples
- Z-Shell FAQ - P. W. Stephenson (1995-2001)
- Writing UNIX Scripts
- Unix 101: How to Write a Shell Script - Kathy R.
- UNIX Shell Patterns - Jim Coplien et al. (1996)
"Shell has emerged as a family of programming languages for the UNIX Operating System in the same sense that JCL emerged as a programming language for mainframe job control in the 1960s. It is a family of languages because we find variant syntaxes and capabilities in the Bourne shell, the Korn shell, the C shell, and others. Most of the patterns described here apply equally well to all these variants. These patterns do not form a full pattern language nor are they a comprehensive collection of patterns for the "architecture" of a Shell program. They cover frequent Shell programming problems that often are resolved only with expert insight." - Shell Command Language Index
The Open Group Single UNIX Specification's definition of the XSI Shell Command Language. - Shell Functions and Path Variables - Stephen Collyer
- The Zsh Workshop - Larry P. Schrof
- A User's Guide to the Z-Shell - Peter Stephenson (Jun. 1999)
- Rc - The Plan 9 Shell - Tom Duff (1995)
Rc is a command interpreter for Plan 9 that provides similar facilities to UNIX's Bourne shell, with some small additions and less idiosyncratic syntax. - Emacs Shell (Eshell)
"Eshell is a command shell implemented entirely in Emacs Lisp. It invokes no external processes beyond those requested by the user. It is intended to be a functional replacement for command shells such as bash, zsh, rc, 4dos; since Emacs itself is capable of handling most of the tasks accomplished by such tools." - hush FAQ - Jaco van Ossenbruggen (May 1997)
"The standard interpreter associated with the hush library is a shell, called hush, including a number of the available extensions of Tcl/Tk and widgets developed by ourselves (such as a www and a video widget). The hush library offers a C++ interface to the Tcl/Tk toolkit and its extensions. It allows the programmer to employ the functionality of Tcl/Tk in a C++ program." - scsh FAQ - Michel Schinz (Nov. 2002)
Scsh is a Scheme shell, i.e. a Unix shell which uses Scheme as its scripting language. - Man pages:
- sh (Bourne)
- csh (C) - William Joy (Feb. 1994)
- bash (GNU) - Brian Fox and Chet Ramey
- ksh 88 (Korn) (Mar. 1997)
- ksh 93 (Korn) (Mar. 1997)
- rc - Tom Duff
- zsh (Z) - Paul Falstad
- tcsh - Ken Greer et al. (Jul. 1993)
- pdksh (Public Domain Korn) - Charles Forsyth et al. (Aug. 1996)
Links by Visitors:
Add a Link