Linux Command Line and Shell Scripting Bible, 3rd EditionWIley, 2015by Richard Blum and Christine Bresnahan |
Description
Linux Command Line and Shell Scripting Bible is your essential Linux guide. With detailed instruction and abundant examples, this book teaches you how to bypass the graphical interface and communicate directly with your computer, saving time and expanding capability. This third edition incorporates thirty pages of new functional examples that are fully updated to align with the latest Linux features. Beginning with command line fundamentals, the book moves into shell scripting and shows you the practical application of commands in automating frequently performed functions. This guide includes useful tutorials, and a desk reference value of numerous examples.
Table of Contents
Part I: The Linux Command Line 1
Chapter 1: Starting with Linux Shells 3
What Is Linux? 3
Looking into the Linux kernel 4
The GNU utilities 9
The Linux desktop environment 11
Linux Distributions 17
Summary 21
Chapter 2: Getting to the Shell 23
Reaching the Command Line 23
Accessing CLI via a Linux Console Terminal 25
Accessing CLI via Graphical Terminal Emulation 28
Using the GNOME Terminal Emulator 29
Using the Konsole Terminal Emulator 35
Using the xterm Terminal Emulator 41
Summary 44
Chapter 3: Basic bash Shell Commands 47
Starting the Shell 47
Using the Shell Prompt 48
Interacting with the bash Manual 49
Navigating the Filesystem 52
Listing Files and Directories 59
Handling Files 64
Managing Directories 73
Viewing File Contents 77
Viewing parts of a file 81
Summary 83
Chapter 4: More bash Shell Commands 85
Monitoring Programs 85
Monitoring Disk Space 96
Working with Data Files 102
Summary 111
Chapter 5: Understanding the Shell 113
Exploring Shell Types 113
Exploring Parent and Child Shell Relationships 115
Understanding Shell Built-In Commands 125
Summary 132
Chapter 6: Using Linux Environment Variables 135
Exploring Environment Variables 135
Setting User-Defined Variables 138
Removing Environment Variables 142
Uncovering Default Shell Environment Variables 143
Setting the PATH Environment Variable 148
Locating System Environment Variables 150
Learning about Variable Arrays 158
Summary 159
Chapter 7: Understanding Linux File Permissions 161
Linux Security 161
Using Linux Groups 172
Decoding File Permissions 175
Changing Security Settings 179
Sharing Files 182
Summary 184
Chapter 8: Managing Filesystems 187
Exploring Linux Filesystems 187
Understanding the copy-on-write filesystems 192
Working with Filesystems 192
Managing Logical Volumes 200
Summary 210
Chapter 9: Installing Software 211
Package Management Primer 211
The Debian-Based Systems 212
The Red Hat–Based Systems 221
Installing from Source Code 228
Summary 232
Chapter 10: Working with Editors 233
Visiting the vim Editor 233
Navigating the nano Editor 240
Exploring the emacs Editor 242
Exploring the KDE Family of Editors 251
Exploring the GNOME Editor 260
Summary 265
Part II: Shell Scripting Basics 267
Chapter 11: Basic Script Building 269
Using Multiple Commands 269
Creating a Script File 270
Displaying Messages 272
Using Variables 274
Redirecting Input and Output 279
Pipes 281
Performing Math 285
Exiting the Script 292
Summary 295
Chapter 12: Using Structured Commands 297
Working with the if-then Statement 297
Exploring the if-then-else Statement 300
Nesting ifs 301
Trying the test Command 304
Considering Compound Testing 324
Working with Advanced if-then Features 325
Considering the case Command 327
Summary 329
Chapter 13: More Structured Commands 331
The for Command 331
The C-Style for Command 341
The while Command 343
The until Command 346
Nesting Loops 347
Looping on File Data 350
Controlling the Loop 351
Processing the Output of a Loop 358
Practical Examples 359
Summary 362
Chapter 14: Handling User Input 365
Passing Parameters 365
Using Special Parameter Variables 371
Being Shifty 375
Working with Options 376
Standardizing Options 387
Getting User Input 388
Summary 392
Chapter 15: Presenting Data 395
Understanding Input and Output 395
Redirecting Output in Scripts 400
Redirecting Input in Scripts 402
Creating Your Own Redirection 403
Listing Open File Descriptors 408
Suppressing Command Output 410
Using Temporary Files 411
Logging Messages 414
Practical Example 416
Summary 418
Chapter 16: Script Control 419
Handling Signals 419
Running Scripts in Background Mode 427
Running Scripts without a Hang-Up 430
Controlling the Job 432
Being Nice 436
Running Like Clockwork 438
Summary 446
Part III: Advanced Shell Scripting 447
Chapter 17: Creating Functions 449
Basic Script Functions 449
Returning a Value 453
Using Variables in Functions 456
Array Variables and Functions 461
Function Recursion 464
Following a Practical Example 470
Summary 474
Chapter 18: Writing Scripts for Graphical Desktops 477
Creating Text Menus 477
Doing Windows 484
Getting Graphic 496
Summary 504
Chapter 19: Introducing sed and gawk 505
Manipulating Text 505
Getting to know the sed editor 505
Getting to know the gawk program 509
Commanding at the sed Editor Basics 516
Using addresses 518
Deleting lines 521
Inserting and appending text 523
Changing lines 525
Transforming characters 527
Printing revisited 527
Using files with sed 530
Summary 533
Chapter 20: Regular Expressions 535
What Are Regular Expressions? 535
Defining BRE Patterns 537
Plain text 537
Special characters 539
Anchor characters 540
Extended Regular Expressions 549
Regular Expressions in Action 554
Summary 560
Chapter 21: Advanced sed 561
Looking at Multiline Commands 561
Holding Space 567
Negating a Command 569
Changing the Flow 572
Replacing via a Pattern 575
Placing sed Commands in Scripts 577
Creating sed Utilities 579
Summary 588
Chapter 22: Advanced gawk 591
Using Variables 591
Working with Arrays 600
Using Patterns 602
Structured Commands 605
Formatted Printing 610
Built-In Functions 613
User-Defined Functions 617
Working through a Practical Example 620
Summary 621
Chapter 23: Working with Alternative Shells 623
What Is the dash Shell? 623
The dash Shell Features 624
The dash command line parameters 624
The dash environment variables 625
The dash built-in commands 628
Scripting in dash 629
Creating dash scripts 629
Things that don’t work 629
The zsh Shell 632
Parts of the zsh Shell 632
Shell options 632
Built-in commands 633
Scripting with zsh 638
Mathematical operations 639
Structured commands 640
Functions 641
Summary 642
Part IV: Creating Practical Scripts 643
Chapter 24 Writing Simple Script Utilities 645
Performing Archives 645
Archiving data files 645
Managing User Accounts 656
Obtaining the required functions 657
Creating the script 665
Running the script 671
Monitoring Disk Space 673
Obtaining the required functions 673
Creating the script 676
Running the script 677
Summary 678
Chapter 25: Producing Scripts for Database, Web, and E-Mail 681
Using a MySQL Database 681
Using MySQL 682
Using the database in your scripts 692
Using the Web 697
Installing Lynx 698
The lynx command line 699
The Lynx configuration file 700
Capturing data from Lynx 701
Using E-Mail 704
Summary 708
Chapter 26: Creating Fun Little Shell Scripts 709
Sending a Message 709
Understanding the required functions 709
Creating the script 712
Obtaining a Quote 720
Understanding the required functions 720
Creating the script 724
Generating an Excuse 731
Understanding the required functions 732
Creating the script 735
Summary 737
Appendix A: Quick Guide to bash Commands 739
Appendix B: Quick Guide to sed and gawk 751
Useful Web sites:
Linux
DistroWatch
Here's where I keep up to date on the latest Linux distribution news.
Ubuntu
The most popular desktop Linux distribution.
openSUSE
A popular full-featured Linux distribution, great for both desktops and servers.
CentOS
A popular Linux server distribution.
Web Programming
PHP online manual
The ultimate resource in all PHP programming topics
MySQL online manual
The MySQL database online manual.
W3Schools
A great online tutorial and reference for many Web programming languages.
Bass Guitar
Fender basses
One of my favorites, I love the Fender Jazz bass. It's such a versatile instrument you can take it to just about any gig!
Lakland basses
The Lakland Skyline 55-01 bass is yet another of my favorite basses!
Bible Study
Reformed Theological Seminary
When I'm not reading computer books, I'm doing bible studies. The Reformed Theological Seminary has some great online courses for free that cover the basics of reformed theology.
BiblicalTraining.org
A smorgasbord of more reformed and evangelical seminary course recordings, all for free!