Description

Book Synopsis
A compendium of shell scripting recipes that can immediately be used or adjusted The Shell is the primary way of communicating with Unix and Linux and provides a direct way to program the system by automating simple-to-intermediate tasks.

Table of Contents

Introduction xxix

Part I: About the Ingredients

Chapter 1: The History of Unix, Gnu, and Linux 3

Unix 3

“Everything is a File” and Pipelines 5

BSD 6

GNU 7

Linux 11

Summary 12

Chapter 2: Getting Started 15

Choosing an OS 15

GNU/Linux 15

The BSDs 17

Proprietary Unix 17

Microsoft Windows 17

Choosing an Editor 18

Graphical Text Editors 18

Terminal Emulation 21

Nongraphical Text Editors 22

Setting Up the Environment 24

The Shell Profile 24

Aliases 26

vim Settings 30

Summary 31

Chapter 3: Variables 33

Using Variables 33

Typing 34

Assigning Values to Variables 35

Positional Parameters 39

Return Codes 42

Unsetting Variables 45

Preset and Standard Variables 47

BASH_ENV 47

BASHOPTS 47

SHELLOPTS 48

BASH_COMMAND 50

BASH_SOURCE, FUNCNAME, LINENO, and BASH_LINENO 51

SHELL 55

HOSTNAME and HOSTTYPE 55

Working Directory 55

PIPESTATUS 55

TIMEFORMAT 56

PPID 57

RANDOM 58

REPLY 58

SECONDS 58

BASH_XTRACEFD 59

GLOBIGNORE 60

HOME 62

IFS 62

PATH 63

TMOUT 64

TMPDIR 65

User Identification Variables 65

Summary 66

Chapter 4: Wildcard Expansion 67

Filename Expansion (Globbing) 67

Bash Globbing Features 70

Shell Options 71

Regular Expressions and Quoting 75

Overview of Regular Expressions 76

Quoting 77

Summary 81

Chapter 5: Conditional Execution 83

If/Then 83

Else 85

elif 85

Test ([) 87

Flags for Test 88

File Comparison Tests 95

String Comparison Tests 96

Regular Expression Tests 98

Numerical Tests 101

Combining Tests 103

Case 105

Summary 109

Chapter 6: Flow Control Using Loops 111

For Loops 111

When to Use for Loops 112

Imaginative Ways of Feeding “for” with Data 112

C-Style for Loops 118

while Loops 119

When to Use while Loops 119

Ways to Use while Loops 119

Nested Loops 125

Breaking and Continuing Loop Execution 126

while with Case 130

until Loops 131

select Loops 133

Summary 137

Chapter 7: Variables Continued 139

Using Variables 139

Variable Types 141

Length of Variables 142

Special String Operators 144

Stripping Variable Strings by Length 144

Stripping from the End of the String 146

Stripping Strings with Patterns 147

Searching Strings 151

Using Search and Replace 151

Replacing Patterns 153

Deleting Patterns 153

Changing Case 153

Providing Default Values 153

Indirection 157

Sourcing Variables 158

Summary 159

Chapter 8: Functions and Libraries 161

Functions 161

Defining Functions 162

Function Output 162

Writing to a File 164

Redirecting the Output of an Entire Function 167

Functions with Trap 171

Recursive Functions 173

Variable Scope 177

Libraries 181

Creating and Accessing Libraries 183

Library Structures 183

Network Configuration Library 187

Use of Libraries 191

getopts 191

Handling Errors 194

getopts within Functions 195

Summary 197

Chapter 9: Arrays 199

Assigning Arrays 199

One at a Time 200

All at Once 200

By Index 201

All at Once from a Source 201

Read from Input 203

Accessing Arrays 205

Accessing by Index 205

Length of Arrays 206

Accessing by Variable Index 206

Selecting Items from an Array 209

Displaying the Entire Array 209

Associative Arrays 210

Manipulating Arrays 211

Copying an Array 211

Appending to an Array 213

Deleting from an Array 214

Advanced Techniques 216

Summary 217

Chapter 10: Processes 219

The ps Command 219

ps Line Length 220

Parsing the Process Table Accurately 220

killall 223

The /proc pseudo-filesystem 225

prtstat 226

I/O Redirection 227

Appending Output to an Existing File 229

Permissions on Redirections 229

exec 229

Using exec to Replace the Existing Program 230

Using exec to Change Redirection 231

Pipelines 237

Background Processing 237

wait 238

Catching Hangups with nohup 239

Other Features of /proc and /sys 242

Version 242

SysRq 242

/proc/meminfo 245

/proc/cpuinfo 245

/sys 246

/sys/devices/system/node 251

sysctl 253

Summary 254

Chapter 11: Choosing and Using Shells 255

The Bourne Shell 256

The KornShell 256

The C Shell 256

The Tenex C Shell 257

The Z Shell 257

The Bourne Again Shell 257

The Debian Almquist Shell 258

Dotfiles 258

Interactive Login Shells 259

Interactive Non-Login Shells 260

Non-Interactive Shells 261

Logout Scripts 262

Command Prompts 262

The PS1 Prompt 262

The PS2, PS3, and PS4 Prompts 264

Aliases 265

Timesavers 265

Modifying Behaviors 265

History 266

Recalling Commands 267

Searching History 267

Timestamps 268

Tab Completion 269

ksh 269

tcsh 270

zsh 270

bash 271

Foreground, Background, and Job Control 272

Backgrounding Processes 272

Job Control 273

nohup and disown 275

Summary 276

Part II: Recipes For Using and Extending System Tools

Chapter 12: File Manipulation 279

stat 279

cat 281

Numbering Lines 282

Dealing with Blank Lines 282

Non-Printing Characters 283

cat Backwards is tac 284

Redirection 285

Redirecting Output: The Single Greater-Than Arrow (>) 285

Appending: The Double Greater-Than Arrow (>>) 286

Input Redirection: The Single Less-Than Arrow (<) 288

Here Documents: The Double Less-Than Arrow (<< EOF) 290

dd 292

df 294

mktemp 295

join 297

install 298

grep 300

grep Flags 300

grep Regular Expressions 301

split 303

tee 304

touch 306

find 307

find-exec 310

Summary 313

Chapter 13: Text Manipulation 315

cut 315

echo 316

dial1 316

dial2 319

fmt 320

head and tail 323

Prizes 323

World Cup 324

od 328

paste 331

pr 334

printf 335

shuf 337

Dice Thrower 337

Card Dealer 338

Travel Planner 340

sort 341

Sorting on Keys 342

Sorting Log Files by Date and Time 344

Sorting Human-Readable Numbers 345

tr 346

uniq 350

wc 351

Summary 352

Chapter 14: Tools For Systems Administration 353

basename 353

date 355

Typical Uses of date 355

More Interesting Uses of date 359

dirname 360

factor 362

identity, groups, and getent 364

logger 367

md5sum 368

mkfi fo 370

Master and Minions 371

Reversing the Order 373

Networking 375

telnet 376

netcat 376

ping 378

Scripting ssh and scp 381

OpenSSL 383

nohup 390

seq 391

Integer Sequences 391

Floating Point Sequences 393

sleep 394

timeout 394

Shutdown Script 396

Network Timeout 399

uname 400

uuencode 401

xargs 402

yes 405

Summary 406

Part III: Recipes For Systems Administration

Chapter 15: Shell Features 409

Recipe 15-1: Installing Init Scripts 409

Technologies Used 410

Concepts 410

Potential Pitfalls 410

Structure 410

Recipe 412

Invocation 414

Summary 414

Recipe 15-2: RPM Report 414

Technologies Used 415

Concepts 415

Potential Pitfalls 415

Structure 415

Recipe 417

Invocation 419

Summary 420

Recipe 15-3: Postinstall Scripts 421

Technologies Used 421

Concepts 421

Potential Pitfalls 422

Structure 422

Recipe 423

Invocation 425

Summary 426

Chapter 16: Systems Administration 427

Recipe 16-1: init Scripts 427

Technologies Used 428

Concepts 428

Potential Pitfalls 429

Structure 430

Recipe 431

Invocation 432

Summary 433

Recipe 16-2: CGI Scripts 433

Technologies Used 433

Concepts 434

Potential Pitfalls 434

Structure 435

Recipe 438

Invocation 441

Summary 445

Recipe 16-3: Configuration Files 445

Technologies Used 445

Concepts 445

Potential Pitfalls 446

Structure 446

Recipe 446

Invocation 447

Summary 448

Recipe 16-4: Locks 448

Technologies Used 448

Concepts 448

Potential Pitfalls 449

Structure 450

Recipe 453

Invocation 455

Summary 458

Chapter 17: Presentation 459

Recipe 17-1: Space Game 459

Technologies Used 459

Concepts 460

Potential Pitfalls 462

Structure 462

Recipe 464

Invocation 469

Summary 470

Chapter 18: Data Storage and Retrieval 471

Recipe 18-1: Parsing HTML 471

Technologies Used 471

Concepts 472

Potential Pitfalls 472

Structure 472

Recipe 473

Invocation 474

Summary 476

Recipe 18-2: CSV Formatting 476

Technologies Used 476

Concepts 476

Potential Pitfalls 477

Structure 477

Recipe 478

Invocation 480

Summary 481

Chapter 19: Numbers 483

Recipe 19-1: The Fibonacci Sequence 483

Technologies Used 483

Concepts 484

Potential Pitfalls 484

Structure for Method 1 485

Recipe for Method 1 486

Invocation of Method 1 486

Structure for Method 2 487

Recipes for Method 2 488

Invocations of Method 2 489

Structure for Method 3 490

Recipe for Method 3 490

Invocation of Method 3 491

Summary 492

Recipe 19-2: PXE Booting 492

Technologies Used 492

Concepts 493

Potential Pitfalls 493

Structure 493

Recipe 494

Invocation 497

Summary 499

Chapter 20: Processes 501

Recipe 20-1: Process Control 501

Technologies Used 501

Concepts 502

Potential Pitfalls 503

Structure 503

Recipe 506

Invocation 511

Summary 516

Chapter 21: Internationalization 517

Recipe 21-1: Internationalization 517

Technologies Used 518

Concepts 518

Potential Pitfalls 519

Structure 520

Recipe 521

Invocation 525

Summary 526

Part IV: Reference

Appendix: Further Reading 529

Shell Tutorials and Documentation 529

Arrays 530

Tools 530

Unix Flavors 531

Shell Services 531

Glossary 533

Index 539

Shell Scripting

Product form

£32.00

Includes FREE delivery

RRP £40.00 – you save £8.00 (20%)

Order before 4pm tomorrow for delivery by Thu 22 Jan 2026.

A Paperback / softback by Steve Parker

15 in stock


    View other formats and editions of Shell Scripting by Steve Parker

    Publisher: John Wiley & Sons Inc
    Publication Date: 26/08/2011
    ISBN13: 9781118024485, 978-1118024485
    ISBN10: 1118024486

    Description

    Book Synopsis
    A compendium of shell scripting recipes that can immediately be used or adjusted The Shell is the primary way of communicating with Unix and Linux and provides a direct way to program the system by automating simple-to-intermediate tasks.

    Table of Contents

    Introduction xxix

    Part I: About the Ingredients

    Chapter 1: The History of Unix, Gnu, and Linux 3

    Unix 3

    “Everything is a File” and Pipelines 5

    BSD 6

    GNU 7

    Linux 11

    Summary 12

    Chapter 2: Getting Started 15

    Choosing an OS 15

    GNU/Linux 15

    The BSDs 17

    Proprietary Unix 17

    Microsoft Windows 17

    Choosing an Editor 18

    Graphical Text Editors 18

    Terminal Emulation 21

    Nongraphical Text Editors 22

    Setting Up the Environment 24

    The Shell Profile 24

    Aliases 26

    vim Settings 30

    Summary 31

    Chapter 3: Variables 33

    Using Variables 33

    Typing 34

    Assigning Values to Variables 35

    Positional Parameters 39

    Return Codes 42

    Unsetting Variables 45

    Preset and Standard Variables 47

    BASH_ENV 47

    BASHOPTS 47

    SHELLOPTS 48

    BASH_COMMAND 50

    BASH_SOURCE, FUNCNAME, LINENO, and BASH_LINENO 51

    SHELL 55

    HOSTNAME and HOSTTYPE 55

    Working Directory 55

    PIPESTATUS 55

    TIMEFORMAT 56

    PPID 57

    RANDOM 58

    REPLY 58

    SECONDS 58

    BASH_XTRACEFD 59

    GLOBIGNORE 60

    HOME 62

    IFS 62

    PATH 63

    TMOUT 64

    TMPDIR 65

    User Identification Variables 65

    Summary 66

    Chapter 4: Wildcard Expansion 67

    Filename Expansion (Globbing) 67

    Bash Globbing Features 70

    Shell Options 71

    Regular Expressions and Quoting 75

    Overview of Regular Expressions 76

    Quoting 77

    Summary 81

    Chapter 5: Conditional Execution 83

    If/Then 83

    Else 85

    elif 85

    Test ([) 87

    Flags for Test 88

    File Comparison Tests 95

    String Comparison Tests 96

    Regular Expression Tests 98

    Numerical Tests 101

    Combining Tests 103

    Case 105

    Summary 109

    Chapter 6: Flow Control Using Loops 111

    For Loops 111

    When to Use for Loops 112

    Imaginative Ways of Feeding “for” with Data 112

    C-Style for Loops 118

    while Loops 119

    When to Use while Loops 119

    Ways to Use while Loops 119

    Nested Loops 125

    Breaking and Continuing Loop Execution 126

    while with Case 130

    until Loops 131

    select Loops 133

    Summary 137

    Chapter 7: Variables Continued 139

    Using Variables 139

    Variable Types 141

    Length of Variables 142

    Special String Operators 144

    Stripping Variable Strings by Length 144

    Stripping from the End of the String 146

    Stripping Strings with Patterns 147

    Searching Strings 151

    Using Search and Replace 151

    Replacing Patterns 153

    Deleting Patterns 153

    Changing Case 153

    Providing Default Values 153

    Indirection 157

    Sourcing Variables 158

    Summary 159

    Chapter 8: Functions and Libraries 161

    Functions 161

    Defining Functions 162

    Function Output 162

    Writing to a File 164

    Redirecting the Output of an Entire Function 167

    Functions with Trap 171

    Recursive Functions 173

    Variable Scope 177

    Libraries 181

    Creating and Accessing Libraries 183

    Library Structures 183

    Network Configuration Library 187

    Use of Libraries 191

    getopts 191

    Handling Errors 194

    getopts within Functions 195

    Summary 197

    Chapter 9: Arrays 199

    Assigning Arrays 199

    One at a Time 200

    All at Once 200

    By Index 201

    All at Once from a Source 201

    Read from Input 203

    Accessing Arrays 205

    Accessing by Index 205

    Length of Arrays 206

    Accessing by Variable Index 206

    Selecting Items from an Array 209

    Displaying the Entire Array 209

    Associative Arrays 210

    Manipulating Arrays 211

    Copying an Array 211

    Appending to an Array 213

    Deleting from an Array 214

    Advanced Techniques 216

    Summary 217

    Chapter 10: Processes 219

    The ps Command 219

    ps Line Length 220

    Parsing the Process Table Accurately 220

    killall 223

    The /proc pseudo-filesystem 225

    prtstat 226

    I/O Redirection 227

    Appending Output to an Existing File 229

    Permissions on Redirections 229

    exec 229

    Using exec to Replace the Existing Program 230

    Using exec to Change Redirection 231

    Pipelines 237

    Background Processing 237

    wait 238

    Catching Hangups with nohup 239

    Other Features of /proc and /sys 242

    Version 242

    SysRq 242

    /proc/meminfo 245

    /proc/cpuinfo 245

    /sys 246

    /sys/devices/system/node 251

    sysctl 253

    Summary 254

    Chapter 11: Choosing and Using Shells 255

    The Bourne Shell 256

    The KornShell 256

    The C Shell 256

    The Tenex C Shell 257

    The Z Shell 257

    The Bourne Again Shell 257

    The Debian Almquist Shell 258

    Dotfiles 258

    Interactive Login Shells 259

    Interactive Non-Login Shells 260

    Non-Interactive Shells 261

    Logout Scripts 262

    Command Prompts 262

    The PS1 Prompt 262

    The PS2, PS3, and PS4 Prompts 264

    Aliases 265

    Timesavers 265

    Modifying Behaviors 265

    History 266

    Recalling Commands 267

    Searching History 267

    Timestamps 268

    Tab Completion 269

    ksh 269

    tcsh 270

    zsh 270

    bash 271

    Foreground, Background, and Job Control 272

    Backgrounding Processes 272

    Job Control 273

    nohup and disown 275

    Summary 276

    Part II: Recipes For Using and Extending System Tools

    Chapter 12: File Manipulation 279

    stat 279

    cat 281

    Numbering Lines 282

    Dealing with Blank Lines 282

    Non-Printing Characters 283

    cat Backwards is tac 284

    Redirection 285

    Redirecting Output: The Single Greater-Than Arrow (>) 285

    Appending: The Double Greater-Than Arrow (>>) 286

    Input Redirection: The Single Less-Than Arrow (<) 288

    Here Documents: The Double Less-Than Arrow (<< EOF) 290

    dd 292

    df 294

    mktemp 295

    join 297

    install 298

    grep 300

    grep Flags 300

    grep Regular Expressions 301

    split 303

    tee 304

    touch 306

    find 307

    find-exec 310

    Summary 313

    Chapter 13: Text Manipulation 315

    cut 315

    echo 316

    dial1 316

    dial2 319

    fmt 320

    head and tail 323

    Prizes 323

    World Cup 324

    od 328

    paste 331

    pr 334

    printf 335

    shuf 337

    Dice Thrower 337

    Card Dealer 338

    Travel Planner 340

    sort 341

    Sorting on Keys 342

    Sorting Log Files by Date and Time 344

    Sorting Human-Readable Numbers 345

    tr 346

    uniq 350

    wc 351

    Summary 352

    Chapter 14: Tools For Systems Administration 353

    basename 353

    date 355

    Typical Uses of date 355

    More Interesting Uses of date 359

    dirname 360

    factor 362

    identity, groups, and getent 364

    logger 367

    md5sum 368

    mkfi fo 370

    Master and Minions 371

    Reversing the Order 373

    Networking 375

    telnet 376

    netcat 376

    ping 378

    Scripting ssh and scp 381

    OpenSSL 383

    nohup 390

    seq 391

    Integer Sequences 391

    Floating Point Sequences 393

    sleep 394

    timeout 394

    Shutdown Script 396

    Network Timeout 399

    uname 400

    uuencode 401

    xargs 402

    yes 405

    Summary 406

    Part III: Recipes For Systems Administration

    Chapter 15: Shell Features 409

    Recipe 15-1: Installing Init Scripts 409

    Technologies Used 410

    Concepts 410

    Potential Pitfalls 410

    Structure 410

    Recipe 412

    Invocation 414

    Summary 414

    Recipe 15-2: RPM Report 414

    Technologies Used 415

    Concepts 415

    Potential Pitfalls 415

    Structure 415

    Recipe 417

    Invocation 419

    Summary 420

    Recipe 15-3: Postinstall Scripts 421

    Technologies Used 421

    Concepts 421

    Potential Pitfalls 422

    Structure 422

    Recipe 423

    Invocation 425

    Summary 426

    Chapter 16: Systems Administration 427

    Recipe 16-1: init Scripts 427

    Technologies Used 428

    Concepts 428

    Potential Pitfalls 429

    Structure 430

    Recipe 431

    Invocation 432

    Summary 433

    Recipe 16-2: CGI Scripts 433

    Technologies Used 433

    Concepts 434

    Potential Pitfalls 434

    Structure 435

    Recipe 438

    Invocation 441

    Summary 445

    Recipe 16-3: Configuration Files 445

    Technologies Used 445

    Concepts 445

    Potential Pitfalls 446

    Structure 446

    Recipe 446

    Invocation 447

    Summary 448

    Recipe 16-4: Locks 448

    Technologies Used 448

    Concepts 448

    Potential Pitfalls 449

    Structure 450

    Recipe 453

    Invocation 455

    Summary 458

    Chapter 17: Presentation 459

    Recipe 17-1: Space Game 459

    Technologies Used 459

    Concepts 460

    Potential Pitfalls 462

    Structure 462

    Recipe 464

    Invocation 469

    Summary 470

    Chapter 18: Data Storage and Retrieval 471

    Recipe 18-1: Parsing HTML 471

    Technologies Used 471

    Concepts 472

    Potential Pitfalls 472

    Structure 472

    Recipe 473

    Invocation 474

    Summary 476

    Recipe 18-2: CSV Formatting 476

    Technologies Used 476

    Concepts 476

    Potential Pitfalls 477

    Structure 477

    Recipe 478

    Invocation 480

    Summary 481

    Chapter 19: Numbers 483

    Recipe 19-1: The Fibonacci Sequence 483

    Technologies Used 483

    Concepts 484

    Potential Pitfalls 484

    Structure for Method 1 485

    Recipe for Method 1 486

    Invocation of Method 1 486

    Structure for Method 2 487

    Recipes for Method 2 488

    Invocations of Method 2 489

    Structure for Method 3 490

    Recipe for Method 3 490

    Invocation of Method 3 491

    Summary 492

    Recipe 19-2: PXE Booting 492

    Technologies Used 492

    Concepts 493

    Potential Pitfalls 493

    Structure 493

    Recipe 494

    Invocation 497

    Summary 499

    Chapter 20: Processes 501

    Recipe 20-1: Process Control 501

    Technologies Used 501

    Concepts 502

    Potential Pitfalls 503

    Structure 503

    Recipe 506

    Invocation 511

    Summary 516

    Chapter 21: Internationalization 517

    Recipe 21-1: Internationalization 517

    Technologies Used 518

    Concepts 518

    Potential Pitfalls 519

    Structure 520

    Recipe 521

    Invocation 525

    Summary 526

    Part IV: Reference

    Appendix: Further Reading 529

    Shell Tutorials and Documentation 529

    Arrays 530

    Tools 530

    Unix Flavors 531

    Shell Services 531

    Glossary 533

    Index 539

    Recently viewed products

    © 2026 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