Wednesday, 2 April 2014

Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Part I The Linux Command Line
Chapter 1: Starting with Linux Shells ...............................................................................................3
Chapter 2: Getting to the Shell .......................................................................................................25
Chapter 3: Basic bash Shell Commands .........................................................................................59
Chapter 4: More bash Shell Commands .........................................................................................91
Chapter 5: Using Linux Environment Variables ..........................................................................123
Chapter 6: Understanding Linux File Permissions .......................................................................147
Chapter 7: Working with Editors .................................................................................................171
Part II Shell Scripting Basics
Chapter 8: Basic Script Building ...................................................................................................201
Chapter 9: Using Structured Commands .....................................................................................229
Chapter 10: More Structured Commands ....................................................................................255
Chapter 11: Handling User Input .................................................................................................285
Chapter 12: Presenting Data .........................................................................................................313
Chapter 13: Script Control ...........................................................................................................335
Part III Advanced Shell Scripting
Chapter 14: Creating Functions ....................................................................................................363
Chapter 15: Adding Color to Scripts ............................................................................................385
Chapter 16: Introducing sed and gawk ........................................................................................419
Chapter 17: Regular Expressions ..................................................................................................447
Chapter 18: Advanced sed ............................................................................................................473
Chapter 19: Advanced gawk .........................................................................................................501
Part IV Alternative Linux Shells
Chapter 20: The ash Shell .............................................................................................................533
Chapter 21: The tcsh Shell ...........................................................................................................557
Chapter 22: The Korn Shell ..........................................................................................................587
Chapter 23: The zsh Shell .............................................................................................................611
ix
Contents at a Glance
Part V Advanced Topics
Chapter 24: Using a Database .......................................................................................................639
Chapter 25: Using the Web ..........................................................................................................673
Chapter 26: Using E-Mail .............................................................................................................701
Chapter 27: Shell Scripts for Administrators ...............................................................................725
Appendix A: Quick Guide to bash Commands ...........................................................................749
Appendix B: Quick Guide to sed and gawk ................................................................................759
Appendix C: Comparing Shells .....................................................................................................771
Index .............................................................................................................................................777
x
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Part I The Linux Command Line
Chapter1: StartingwithLinux Shells . . . . . . . . . . . . . . . . . . . . 3
What Is Linux? ........................................................................................................................3
Looking into the Linux kernel ......................................................................................4
The GNU utilities ........................................................................................................12
The Linux desktop environment ................................................................................14
Linux Distributions ................................................................................................................20
Core Linux distributions .............................................................................................21
Specialized Linux distributions ...................................................................................22
The Linux LiveCD .......................................................................................................23
Summary ...............................................................................................................................24
Chapter2:Getting tothe Shell . . . . . . . . . . . . . . . . . . . . . . . 25
Terminal Emulation ...............................................................................................................25
Graphics capabilities ...................................................................................................27
The keyboard ...............................................................................................................30
The terminfo Database ..........................................................................................................31
The Linux Console ................................................................................................................35
The xterm Terminal ..............................................................................................................36
Command line parameters ..........................................................................................37
The xterm main menu ................................................................................................38
The VT options menu .................................................................................................41
The VT fonts menu .....................................................................................................43
The Konsole Terminal ...........................................................................................................45
Command line parameters ..........................................................................................45
Sessions ........................................................................................................................45
The menu bar ..............................................................................................................48
The GNOME Terminal ..........................................................................................................52
The command line parameters ...................................................................................52
Tabs .............................................................................................................................53
The menu bar ..............................................................................................................54
Summary ...............................................................................................................................58
xi
Contents
Chapter3:BasicbashShellCommands . . . . . . . . . . . . . . . . . . 59
Starting the Shell ...................................................................................................................59
The Shell Prompt ...................................................................................................................60
The bash Manual ...................................................................................................................63
Filesystem Navigation ............................................................................................................64
The Linux filesystem ...................................................................................................64
Traversing directories ..................................................................................................66
File and Directory Listing .....................................................................................................69
Basic listing ..................................................................................................................69
Modifying the information presented .........................................................................71
The complete parameter list .......................................................................................72
Filtering listing output ................................................................................................74
File Handling .........................................................................................................................75
Creating files ................................................................................................................75
Copying files ................................................................................................................76
Linking files .................................................................................................................79
Renaming files .............................................................................................................80
Deleting files ................................................................................................................81
Directory Handling ................................................................................................................82
Creating directories .....................................................................................................82
Deleting directories .....................................................................................................82
Viewing File Contents ...........................................................................................................83
Viewing file statistics ...................................................................................................84
Viewing the file type ...................................................................................................84
Viewing the whole file ................................................................................................85
Viewing parts of a file .................................................................................................89
Summary ...............................................................................................................................90
Chapter4:MorebashShellCommands . . . . . . . . . . . . . . . . . . 91
Monitoring Programs .............................................................................................................91
Peeking at the processes .............................................................................................91
Real-time process monitoring .....................................................................................98
Stopping processes ....................................................................................................101
Monitoring Disk Space ........................................................................................................104
Mounting media ........................................................................................................104
Using the df command .............................................................................................108
Using the du command ............................................................................................109
Working with Data Files .....................................................................................................110
Sorting data ...............................................................................................................110
Searching for data .....................................................................................................114
Compressing data ......................................................................................................116
Archiving data ...........................................................................................................120
Summary ..............................................................................................................................121
xii
Contents
Chapter5:Using Linux EnvironmentVariables . . . . . . . . . . . . . . 123
What Are Environment Variables? ......................................................................................123
Global environment variables ...................................................................................124
Local environment variables .....................................................................................125
Setting Environment Variables ............................................................................................127
Setting local environment variables ..........................................................................127
Setting global environment variables ........................................................................129
Removing Environment Variables .......................................................................................129
Default Shell Environment Variables ..................................................................................130
Setting the PATH Environment Variable ............................................................................134
Locating System Environment Variables ............................................................................135
Login shell .................................................................................................................136
Interactive shell .........................................................................................................139
Non-interactive shell .................................................................................................141
Variable Arrays ....................................................................................................................142
Using Command Aliases .....................................................................................................143
Summary ..............................................................................................................................144
Chapter6:UnderstandingLinux FilePermissions . . . . . . . . . . . . . 147
Linux Security .....................................................................................................................147
The /etc/passwd file ...................................................................................................148
The /etc/shadow file ..................................................................................................150
Adding a new user ....................................................................................................150
Removing a user ........................................................................................................153
Modifying a user .......................................................................................................154
Using Linux Groups ............................................................................................................157
The /etc/group file .....................................................................................................157
Creating new groups .................................................................................................158
Modifying groups ......................................................................................................159
Decoding File Permissions ..................................................................................................160
Using file permission symbols ..................................................................................160
Default file permissions .............................................................................................161
Changing Security Settings .................................................................................................163
Changing permissions ...............................................................................................163
Changing ownership .................................................................................................165
Sharing Files ........................................................................................................................166
Summary ..............................................................................................................................168
Chapter7:WorkingwithEditors . . . . . . . . . . . . . . . . . . . . . 171
The vim Editor ....................................................................................................................171
The basics of vim ......................................................................................................172
Editing data ...............................................................................................................174
Copy and paste ..........................................................................................................174
Search and substitute ................................................................................................175
xiii
Contents
The emacs Editor .................................................................................................................176
Using emacs on the console .....................................................................................176
Using emacs in X Windows ......................................................................................181
The KDE Family of Editors .................................................................................................183
The KWrite editor .....................................................................................................183
The Kate editor ..........................................................................................................189
The GNOME Editor ............................................................................................................191
Starting gedit .............................................................................................................191
Basic gedit features ....................................................................................................192
Setting preferences ....................................................................................................193
Summary ..............................................................................................................................197
Part II Shell Scripting Basics
Chapter8:Basic ScriptBuilding . . . . . . . . . . . . . . . . . . . . . 201
Using Multiple Commands .................................................................................................201
Creating a Script File ..........................................................................................................202
Displaying Messages ............................................................................................................204
Using Variables ....................................................................................................................206
Environment variables ...............................................................................................206
User variables ............................................................................................................207
The backtick ..............................................................................................................209
Redirecting Input and Output ............................................................................................210
Output redirection ....................................................................................................211
Input redirection .......................................................................................................211
Pipes ....................................................................................................................................213
Performing Math ..................................................................................................................216
The expr command ...................................................................................................216
Using brackets ...........................................................................................................218
A floating-point solution ...........................................................................................219
Exiting the Script .................................................................................................................223
Checking the exit status ............................................................................................223
The exit command ....................................................................................................225
Summary ..............................................................................................................................226
Chapter9:Using StructuredCommands . . . . . . . . . . . . . . . . . 229
Working with the if-then Statement ...................................................................................229
The if-then-else Statement ..................................................................................................232
Nesting ifs ............................................................................................................................232
The test Command ..............................................................................................................233
Numeric comparisons ...............................................................................................234
String comparisons ....................................................................................................236
File comparisons .......................................................................................................241
Compound Condition Testing ............................................................................................249
xiv
Contents
Advanced if-then Features ..................................................................................................250
Using double parentheses .........................................................................................250
Using double brackets ...............................................................................................251
The case Command .............................................................................................................252
Summary ..............................................................................................................................253
Chapter10:More StructuredCommands . . . . . . . . . . . . . . . . . 255
The for Command ...............................................................................................................255
Reading values in a list .............................................................................................256
Reading complex values in a list ..............................................................................257
Reading a list from a variable ...................................................................................259
Reading values from a command .............................................................................260
Changing the field separator .....................................................................................261
Reading a directory using wildcards .........................................................................262
The C-Style for Command ..................................................................................................264
The C language for command ..................................................................................264
Using multiple variables ............................................................................................266
The while Command ...........................................................................................................266
Basic while format .....................................................................................................267
Using multiple test commands .................................................................................268
The until Command ............................................................................................................269
Nesting Loops ......................................................................................................................271
Looping on File Data ..........................................................................................................273
Controlling the Loop ...........................................................................................................274
The break command .................................................................................................275
The continue Command ...........................................................................................278
Processing the Output of a Loop ........................................................................................281
Summary ..............................................................................................................................282
Chapter11:HandlingUser Input . . . . . . . . . . . . . . . . . . . . . 285
Command Line Parameters .................................................................................................285
Reading parameters ...................................................................................................285
Reading the program name .......................................................................................288
Testing parameters ....................................................................................................289
Special Parameter Variables .................................................................................................290
Counting parameters .................................................................................................290
Grabbing all the data ................................................................................................292
Being Shifty ..........................................................................................................................293
Working With Options .......................................................................................................295
Finding your options ................................................................................................295
Using the getopt command .......................................................................................299
The more advanced getopts ......................................................................................302
Standardizing Options .........................................................................................................304
Getting User Input ..............................................................................................................305
Basic reading ..............................................................................................................306
xv
Contents
Timing out .................................................................................................................307
Silent reading .............................................................................................................308
Reading from a file ....................................................................................................309
Summary ..............................................................................................................................310
Chapter12:PresentingData . . . . . . . . . . . . . . . . . . . . . . . 313
Understanding Input and Output .......................................................................................313
Standard file descriptors ...........................................................................................314
Redirecting errors ......................................................................................................316
Redirecting Output in Scripts .............................................................................................318
Temporary redirections .............................................................................................318
Permanent redirections .............................................................................................319
Redirecting Input in Scripts ................................................................................................320
Creating Your Own Redirection ..........................................................................................321
Creating output file descriptors ................................................................................321
Redirecting file descriptors ........................................................................................322
Creating input file descriptors ..................................................................................323
Creating a read/write file descriptor .........................................................................323
Closing file descriptors ..............................................................................................324
Listing Open File Descriptors .............................................................................................326
Suppressing Command Output ..........................................................................................328
Using Temporary Files ........................................................................................................328
Creating a local temporary file .................................................................................329
Creating a temporary file in /tmp .............................................................................330
Creating a temporary directory .................................................................................331
Logging Messages ................................................................................................................332
Summary ..............................................................................................................................333
Chapter13: ScriptControl . . . . . . . . . . . . . . . . . . . . . . . . 335
Handling Signals ..................................................................................................................335
Linux signals revisited ...............................................................................................335
Generating signals .....................................................................................................336
Trapping signals ........................................................................................................338
Trapping a script exit ................................................................................................339
Removing a trap ........................................................................................................340
Running Scripts in Background Mode ................................................................................341
Running in the background ......................................................................................341
Running multiple background jobs ..........................................................................342
Exiting the terminal ..................................................................................................343
Running Scripts without a Console ....................................................................................343
Job Control ..........................................................................................................................344
Viewing jobs ..............................................................................................................345
Restarting stopped jobs .............................................................................................347
Being Nice ............................................................................................................................348
The nice command ....................................................................................................348
xvi
Contents
The renice command ................................................................................................349
Running Like Clockwork ....................................................................................................349
Scheduling a job using the at command ..................................................................350
Using the batch command ........................................................................................352
Scheduling regular scripts .........................................................................................353
Start At the Beginning .........................................................................................................355
Starting your scripts at boot .....................................................................................355
Starting with a new shell ..........................................................................................357
Summary ..............................................................................................................................358
Part III Advanced Shell Scripting
Chapter14:Creating Functions . . . . . . . . . . . . . . . . . . . . . . 363
Basic Script Functions .........................................................................................................363
Creating a function ....................................................................................................364
Using functions .........................................................................................................364
Returning a Value ................................................................................................................366
The default exit status ...............................................................................................367
Using the return command .......................................................................................368
Using function output ...............................................................................................369
Using Variables in Functions ..............................................................................................369
Passing parameters to a function ..............................................................................370
Handling variables in a function ..............................................................................372
Array Variables and Functions ............................................................................................375
Passing arrays to functions ........................................................................................375
Returning arrays from functions ...............................................................................376
Function Recursion .............................................................................................................377
Creating a Library ................................................................................................................379
Using Functions on the Command Line ............................................................................381
Creating functions on the command line .................................................................381
Defining functions in the .bashrc file .......................................................................382
Summary ..............................................................................................................................384
Chapter15:AddingColor toScripts . . . . . . . . . . . . . . . . . . . 385
Creating Text Menus ...........................................................................................................385
Create the menu layout .............................................................................................386
Create the menu functions ........................................................................................387
Add the menu logic ..................................................................................................388
Putting it all together ................................................................................................389
Using the select command ........................................................................................390
Adding Color .......................................................................................................................391
The ANSI escape codes .............................................................................................392
Displaying ANSI escape codes ..................................................................................393
Using colors in scripts ...............................................................................................395
xvii
Contents
Doing Windows ...................................................................................................................397
The dialog package ....................................................................................................397
The dialog options ....................................................................................................404
Using the dialog command in a script .....................................................................407
Getting Graphic ...................................................................................................................409
The KDE environment ..............................................................................................409
The GNOME environment ........................................................................................412
Summary ..............................................................................................................................417
Chapter16: Introducingsedandgawk . . . . . . . . . . . . . . . . . . 419
Text Manipulation ...............................................................................................................419
The sed editor ...........................................................................................................420
The gawk program ....................................................................................................423
The sed Editor Basics ..........................................................................................................430
More substitution options .........................................................................................430
Using addresses .........................................................................................................432
Deleting lines .............................................................................................................434
Inserting and appending text ....................................................................................436
Changing lines ...........................................................................................................438
The transform command ..........................................................................................439
Printing revisited .......................................................................................................440
Using files with sed ...................................................................................................442
Summary ..............................................................................................................................445
Chapter17:Regular Expressions . . . . . . . . . . . . . . . . . . . . . 447
What Are Regular Expressions? ..........................................................................................447
A definition ................................................................................................................447
Types of regular expressions .....................................................................................448
Defining BRE Patterns .........................................................................................................449
Plain text ....................................................................................................................449
Special characters ......................................................................................................451
Anchor characters ......................................................................................................452
The dot character ......................................................................................................454
Character classes .......................................................................................................455
Negating character classes .........................................................................................457
Using ranges ..............................................................................................................458
Special character classes ............................................................................................459
The asterisk ...............................................................................................................460
Extended Regular Expressions ............................................................................................461
The question mark ....................................................................................................461
The plus sign .............................................................................................................462
Using braces ..............................................................................................................463
The pipe symbol ........................................................................................................464
Grouping expressions ................................................................................................465
Regular Expressions in Action ............................................................................................466
xviii
Contents
Counting directory files ............................................................................................466
Validating a phone number ......................................................................................467
Parsing an e-mail address .........................................................................................469
Summary ..............................................................................................................................471
Chapter18:Advancedsed . . . . . . . . . . . . . . . . . . . . . . . . 473
Multiline Commands ...........................................................................................................473
The next commands ..................................................................................................474
The multiline delete command .................................................................................477
The multiline print command ..................................................................................479
The Hold Space ...................................................................................................................479
Negating a Command .........................................................................................................481
Changing the Flow ..............................................................................................................484
Branching ...................................................................................................................484
Testing .......................................................................................................................486
Pattern Replacement ............................................................................................................487
The ampersand ..........................................................................................................488
Replacing individual words .......................................................................................488
Using sed in Scripts ............................................................................................................489
Using wrappers ..........................................................................................................489
Redirecting sed output ..............................................................................................490
Creating sed Utilities ...........................................................................................................491
Double spacing lines .................................................................................................491
Double spacing files that may have blanks ..............................................................492
Numbering lines in a file ..........................................................................................493
Printing last lines .......................................................................................................494
Deleting lines .............................................................................................................495
Removing HTML tags ................................................................................................497
Summary ..............................................................................................................................499
Chapter19:Advancedgawk . . . . . . . . . . . . . . . . . . . . . . . 501
Using Variables ....................................................................................................................501
Built-in variables ........................................................................................................502
User-defined variables ...............................................................................................508
Working with Arrays ...........................................................................................................510
Defining array variables ............................................................................................510
Iterating through array variables ...............................................................................511
Deleting array variables .............................................................................................511
Using Patterns ......................................................................................................................512
Regular expressions ...................................................................................................512
The matching operator ..............................................................................................513
Mathematical expressions ..........................................................................................514
Structured Commands ........................................................................................................514
The if statement .........................................................................................................514
The while statement ..................................................................................................516
xix
Contents
The do-while statement ............................................................................................518
The for statement ......................................................................................................518
Formatted Printing ..............................................................................................................519
Built-in Functions ................................................................................................................522
Mathematical functions .............................................................................................522
String functions .........................................................................................................524
Time functions ..........................................................................................................526
User-Defined Functions ......................................................................................................527
Defining a function ...................................................................................................527
Using your functions .................................................................................................528
Creating a function library ........................................................................................528
Summary ..............................................................................................................................529
Part IV Alternative Linux Shells
Chapter20:The ashShell . . . . . . . . . . . . . . . . . . . . . . . . 533
What Is the ash Shell? .........................................................................................................533
The Original ash Shell .........................................................................................................534
The Original ash command line parameters ............................................................534
The original ash built-in commands ........................................................................536
The ash shell files ......................................................................................................539
The dash Shell .....................................................................................................................540
The dash command line parameters ........................................................................540
The dash environment variables ...............................................................................540
The dash built-in commands ....................................................................................544
Scripting in dash .................................................................................................................549
Creating ash and dash scripts ...................................................................................549
Things that won’t work .............................................................................................549
Summary ..............................................................................................................................555
Chapter21:The tcshShell . . . . . . . . . . . . . . . . . . . . . . . . 557
What Is the tcsh Shell? .......................................................................................................557
The tcsh Shell Components ................................................................................................558
The tcsh command line parameters .........................................................................558
The tcsh files .............................................................................................................560
The tcsh login files ....................................................................................................560
Shell startup files .......................................................................................................561
The logout files ..........................................................................................................562
The tcsh environment variables ................................................................................563
Shell variables ............................................................................................................563
Environment variables ...............................................................................................569
Setting variables in tcsh ............................................................................................572
Using the set command ............................................................................................572
Using the setenv command .......................................................................................573
xx
Contents
The tcsh built-in commands .....................................................................................574
Scripting in tcsh ..................................................................................................................577
Working with variables .............................................................................................578
Array variables ...........................................................................................................578
Handling mathematical operations ...........................................................................578
Structured commands ...............................................................................................578
The if statements .......................................................................................................579
The foreach statement ...............................................................................................582
The while statement ..................................................................................................582
The switch command ................................................................................................583
Summary ..............................................................................................................................584
Chapter22:TheKornShell . . . . . . . . . . . . . . . . . . . . . . . . 587
The Korn Shell History .......................................................................................................587
The Parts of the ksh93 Shell ...............................................................................................588
Command line parameters ........................................................................................588
Default files ................................................................................................................590
Environment variables ...............................................................................................590
Built-in commands ....................................................................................................597
Scripting in the ksh93 Shell ...............................................................................................602
Mathematical operations ...........................................................................................602
Structured commands ...............................................................................................605
Command redirection ...............................................................................................607
Discipline functions ...................................................................................................608
Summary ..............................................................................................................................609
Chapter23:The zshShell . . . . . . . . . . . . . . . . . . . . . . . . 611
History of the zsh Shell .......................................................................................................611
Parts of the zsh Shell ...........................................................................................................612
Shell options ..............................................................................................................612
The zsh shell files ......................................................................................................615
Environment variables ...............................................................................................619
Built-in commands ....................................................................................................625
Scripting with zsh ............................................................................................................... 631
Mathematical operations ...........................................................................................631
Structured commands ...............................................................................................633
Functions ...................................................................................................................634
Summary ..............................................................................................................................636
Part V Advanced Topics
Chapter24:Using aDatabase . . . . . . . . . . . . . . . . . . . . . . 639
The MySQL Database ..........................................................................................................639
Installing MySQL .......................................................................................................640
Completing the MySQL configuration ......................................................................642
xxi
Contents
The MySQL client interface ......................................................................................644
Creating MySQL database objects ............................................................................649
The PostgreSQL Database ...................................................................................................651
Installing PostgreSQL ................................................................................................652
The PostgreSQL command interface ........................................................................654
Creating PostgreSQL database objects ......................................................................657
Working with Tables ...........................................................................................................659
Creating a table .........................................................................................................659
Inserting and deleting data .......................................................................................661
Querying data ............................................................................................................663
Using the Database in Your Scripts ....................................................................................664
Connecting to the databases .....................................................................................664
Sending commands to the server .............................................................................666
Formatting data .........................................................................................................670
Summary ..............................................................................................................................671
Chapter25:Using theWeb . . . . . . . . . . . . . . . . . . . . . . . . 673
The Lynx Program ...............................................................................................................673
Installing Lynx ...........................................................................................................674
The lynx command line ............................................................................................675
The Lynx configuration file .......................................................................................676
The Lynx environment variables ..............................................................................683
Capturing data from Lynx ........................................................................................684
The cURL Program ..............................................................................................................687
Installing cURL ..........................................................................................................687
The cURL command line ..........................................................................................688
Exploring with curl ...................................................................................................688
Networking with zsh ...........................................................................................................694
The TCP module .......................................................................................................694
The client/server paradigm ........................................................................................695
Client/server programming with zsh ........................................................................695
Summary ..............................................................................................................................699
Chapter26:Using E-Mail . . . . . . . . . . . . . . . . . . . . . . . . . 701
The Basics of Linux E-Mail .................................................................................................701
E-Mail in Linux .........................................................................................................701
The Mail Transfer Agent ...........................................................................................702
The Mail Delivery Agent ...........................................................................................703
The Mail User Agent .................................................................................................705
Setting Up Your Server ........................................................................................................708
sendmail ....................................................................................................................709
Postfix ........................................................................................................................711
Sending a Message with Mailx ............................................................................................717
The Mutt Program ...............................................................................................................720
Installing Mutt ...........................................................................................................720
xxii
Contents
The Mutt command line ...........................................................................................721
Using Mutt .................................................................................................................721
Summary ..............................................................................................................................723
Chapter27: Shell Scripts forAdministrators . . . . . . . . . . . . . . . 725
Monitoring System Statistics ...............................................................................................725
Monitoring disk free space ........................................................................................725
Catching disk hogs ....................................................................................................728
Watching CPU and memory usage ...........................................................................732
Performing Backups ............................................................................................................739
Archiving data files ....................................................................................................740
Storing backups off-site .............................................................................................744
Summary ..............................................................................................................................746
AppendixA:QuickGuide tobashCommands . . . . . . . . . . . . . . 749
Built-In Commands .............................................................................................................749
Bash Commands ..................................................................................................................749
Environment Variables ........................................................................................................753
AppendixB:QuickGuide tosedandgawk . . . . . . . . . . . . . . . . 759
The sed Editor .....................................................................................................................759
Starting the sed editor ...............................................................................................759
sed commands ...........................................................................................................760
The gawk program ..............................................................................................................764
The gawk command format ......................................................................................764
Using gawk ................................................................................................................765
The gawk variables ....................................................................................................766
The gawk program features ......................................................................................768
AppendixC:Comparing Shells . . . . . . . . . . . . . . . . . . . . . . 771
Variables ..............................................................................................................................771
Environment variables ...............................................................................................771
User-defined variables ...............................................................................................772
Array variables ...........................................................................................................772
Structured Commands ........................................................................................................773
The if-then, while, and until statements ..................................................................773
The for statement ......................................................................................................774
Mathematical Operations ....................................................................................................775
Index .............................................................................................................................................777
xxiii

First, all glory and praise go to God, who through His Son makes all things possible, and
gives us the gift of eternal life.
Many thanks go to the great team of people at John Wiley & Sons for their outstanding work
on this project. Thanks to Jenny Watson, the acquisitions editor, for offering me the opportunity
to work on this book. Also thanks to Tom Dinse, the development editor, for keeping things
on track and making this book more presentable. The technical editor, John Kennedy, did an
amazing job of double-checking all the work in this book, plus making suggestions to improve
the content. Thanks, John, for your hard work and diligence. I would also like to thank Carole
McClendon at Waterside Productions, Inc. for arranging this opportunity for me, and for helping
out in my writing career.
Finally, I would like to thank my parents, Mike and Joyce Blum, for their dedication and support
while raising me, and my wife, Barbara, and daughters, Katie Jane and Jessica, for their love,
patience, and understanding, especially while I was writing this book.
xxv

Welcome to Linux Command Line and Shell Scripting Bible. Like all books in the Bible
series, you can expect to find both hands-on tutorials and real-world practical application
information, as well as reference and background information that provides
a context for what you are learning. This book is a fairly comprehensive resource on the Linux
command line and shell commands. By the time you have completed Linux Command Line and
Shell Scripting Bible, you will be well prepared to write your own shell scripts that can automate
practically any task on your Linux system.
Who Should Read This Book
If you’re a system administrator in a Linux environment, you’ll benefit greatly by knowing how to
write shell scripts. The book doesn’t walk through setting up a Linux system, but once you have
it running, you’ll want to start automating some of the routine administrative tasks. That’s where
shell scripting comes in, and that’s where this book will help you out. This book will demonstrate
how to automate any administrative task using shell scripts, from monitoring system statistics and
data files to generating reports for your boss.
If you’re a home Linux enthusiast, you’ll also benefit from Linux Command Line and Shell Scripting

No comments:

Post a Comment