Description

Book Synopsis

Stephen Kochan is the author or co-author of several best-selling titles on Unix and the C language, including Programming in C, Programming in Objective-C, Topics in C Programming, and Exploring the Unix System. He is a former software consultant for AT&T Bell Laboratories, where he developed and taught classes on Unix and C programming.

Patrick Wood is the CTO of the New Jersey location of Electronics for Imaging. He was a member of the technical staff at Bell Laboratories when he met Mr. Kochan in 1985. Together they founded Pipeline Associates, Inc., a Unix consulting firm, where he was vice president. They co-authored Exploring the Unix System, Unix System Security, Topics in C Programming, and Unix Shell Programming.



Table of Contents

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

Shell Programming in Unix Linux and OS X

Product form

£31.82

Includes FREE delivery

RRP £33.49 – you save £1.67 (4%)

Order before 4pm today for delivery by Fri 19 Dec 2025.

A Paperback / softback by Stephen Kochan, Patrick Wood

Out of stock


    View other formats and editions of Shell Programming in Unix Linux and OS X by Stephen Kochan

    Publisher: Pearson Education (US)
    Publication Date: 04/10/2016
    ISBN13: 9780134496009, 978-0134496009
    ISBN10: 0134496000

    Description

    Book Synopsis

    Stephen Kochan is the author or co-author of several best-selling titles on Unix and the C language, including Programming in C, Programming in Objective-C, Topics in C Programming, and Exploring the Unix System. He is a former software consultant for AT&T Bell Laboratories, where he developed and taught classes on Unix and C programming.

    Patrick Wood is the CTO of the New Jersey location of Electronics for Imaging. He was a member of the technical staff at Bell Laboratories when he met Mr. Kochan in 1985. Together they founded Pipeline Associates, Inc., a Unix consulting firm, where he was vice president. They co-authored Exploring the Unix System, Unix System Security, Topics in C Programming, and Unix Shell Programming.



    Table of Contents

    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

    Recently viewed products

    © 2025 Book Curl

      • American Express
      • Apple Pay
      • Diners Club
      • Discover
      • Google Pay
      • Maestro
      • Mastercard
      • PayPal
      • Shop Pay
      • Union Pay
      • Visa

      Login

      Forgot your password?

      Don't have an account yet?
      Create account