1 A Quick Review of the Basics
Some Basic Commands
Displaying the Date and Time: The date Command
Finding Out Who's Logged In: The who Command
Echoing Characters: The echo Command
Working with Files
Listing Files: The ls Command
Displaying the Contents of a File: The cat Command
Counting the Number of Words in a File: The wc Command
Command Options
Making a Copy of a File: The cp Command
Renaming a File: The mv Command
Removing a File: The rm Command
Working with Directories
The Home Directory and Pathnames
Displaying Your Working Directory: The pwd Command
Changing Directories: The cd Command
More on the ls Command
Creating a Directory: The mkdir Command
Copying a File from One Directory to Another
Moving Files Between Directories
Linking Files: The ln Command
Removing a Directory: The rmdir Command
Filename Substitution
The Asterisk
Matching Single Characters
Filename Nuances
Spaces in Filenames
Other Weird Characters
Standard Input/Output, and I/O Redirection
Standard Input and Standard Output
Output Redirection
Input Redirection
Pipes
Filters
Standard Error
More on Commands
Typing More Than One Command on a Line
Sending a Command to the Background
The ps Command
Command Summary
2 What Is the Shell?
The Kernel and the Utilities
The Login Shell
Typing Commands to the Shell
The Shell's Responsibilities
Program Execution
Variable and Filename Substitution
I/O Redirection
Hooking up a Pipeline
Environment Control
Interpreted Programming Language
3 Tools of the Trade
Regular Expressions
Matching Any Character: The Period (.)
Matching the Beginning of the Line: The Caret (^)
Matching the End of the Line: The Dollar Sign $
Matching a Character Set: The [...] Construct
Matching Zero or More Characters: The Asterisk (*)
Matching a Precise Number of Subpatterns: \\{...\\}
Saving Matched Characters: \\(...\\)
cut
The -d and -f Options
paste
The -d Option
The -s Option
sed
The -n Option
Deleting Lines
tr
The -s Option
The -d Option
grep
Regular Expressions and grep
The -v Option
The -l Option
The -n Option
sort
The -u Option
The -r Option
The -o Option
The -n Option
Skipping Fields
The -t Option
Other Options
uniq
The -d Option
Other Options
4 And Away We Go
Command Files
Comments
Variables
Displaying the Values of Variables
Undefined Variables Have the Null Value
Filename Substitution and Variables
The ${variable} Construct
Built-in Integer Arithmetic
5 Can I Quote You on That?
The Single Quote
The Double Quote
The Backslash
Using the Backslash for Continuing Lines
The Backslash Inside Double Quotes
Command Substitution
The Back Quote
The $(...) Construct
The expr Command
6 Passing Arguments
The $# Variable
The $* Variable
A Program to Look Up Someone in the Phone Book
A Program to Add Someone to the Phone Book
A Program to Remove Someone from the Phone Book
${n}
The shift Command
7 Decisions, Decisions
Exit Status
The $? Variable
The test Command
String Operators
An Alternative Format for test
Integer Operators
File Operators
The Logical Negation Operator !
The Logical AND Operator -a
Parentheses
The Logical OR Operator -o
The else Construct
The exit Command
A Second Look at the rem Program
The elif Construct
Yet Another Version of rem
The case Command
Special Pattern-Matching Characters
The -x Option for Debugging Programs
Back to the case
The Null Command :
The && and || Constructs
8 'Round and 'Round She Goes
The for Command
The $@ Variable
The for Without the List
The while Command
The until Command
More on Loops
Breaking Out of a Loop
Skipping the Remaining Commands in a Loop
Executing a Loop in the Background
I/O Redirection on a Loop
Piping Data into and out of a Loop
Typing a Loop on One Line
The getopts Command
9 Reading and Printing Data
The read Command
A Program to Copy Files
Special echo Escape Characters
An Improved Version of mycp
A Final Version of mycp
A Menu-Driven Phone Program
The $$ Variable and Temporary Files
The Exit Status from read
The printf Command
10 Your Environment
Local Variables
Subshells
Exported Variables
export -p
PS1 and PS2
HOME
PATH
Your Current Directory
CDPATH
More on Subshells
The .Command
The exec Command
The (...) and { ...; } Constructs
Another Way to Pass Variables to a Subshell
Your .profile File
The TERM Variable
The TZ Variable
11 More on Parameters
Parameter Substitution
${parameter}
${parameter:-value}
${parameter:=value}
${parameter:?value}
${parameter:+value}
Pattern Matching Constructs
${#variable}
The $0 Variable
The set Command
The -x Option
set with No Arguments
Using set to Reassign Positional Parameters
The -- Option
Other Options to set
The IFS Variable
The readonly Command
The unset Command
12 Loose Ends
The eval Command
The wait Command
The $! Variable
The trap Command
trap with No Arguments
Ignoring Signals
Resetting Traps
More on I/O
<&- and >&-
In-line Input Redirection
Shell Archives
Functions
Removing a Function Definition
The return Command
The type Command
13 Rolo Revisited
Data Formatting Considerations
rolo
add
lu
display
rem
change
listall
Sample Output
14 Interactive and Nonstandard Shell Features
Getting the Right Shell
The ENV File
Command-Line Editing
Command History
The vi Line Edit Mode
Accessing Commands from Your History
The emacs Line Edit Mode
Accessing Commands from Your History
Other Ways to Access Your History
The history Command
The fc Command
The r Command
Functions
Local Variables
Automatically Loaded Functions
Integer Arithmetic
Integer Types
Numbers in Different Bases
The alias Command
Removing Aliases
Arrays
Job Control
Stopped Jobs and the fg and bg Commands
Miscellaneous Features
Other Features of the cd Command
Tilde Substitution
Order of Search
Compatibility Summary
Appendixes
A Shell Summary
B For More Information