HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
Covers 20.04, 20.10, and 21.04
Ubuntu Linux Unleashed 2021 Edition is filled with unique and advanced information for everyone who wants to make the most of the Ubuntu Linux operating system. This new edition has been thoroughly updated by a long-time Ubuntu user and early community leader to reflect the exciting new Ubuntu 20.04 LTS release, with a forthcoming online update mid-2021, at the halfway mark before the next LTS release comes out.
Linux writer Matthew Helmke covers all you need to know about Ubuntu 20.04 LTS installation, configuration, productivity, command-line usage, development, systems administration, server operations, networking, virtualization, cloud computing, DevOps, and moreincluding intermediate-to-advanced techniques you won't find in any other book.
Helmke presents up-to-the-minute introductions to Ubuntu's key productivity and web development tools, programming languages, hardware support, and more. You'll find new or improved coverage of the Ubuntu desktop experience, common web servers and software stacks, an introduction to containers like Docker and Kubernetes, as well as a wealth of systems administration information that is stable and valuable over many years.
Introduction xxxi
PART I: GETTING STARTED
Chapter 1 Installing Ubuntu and Post-Installation Configuration 1
Before You Begin the Installation 1
Researching Your Hardware Specifications 2
Installation Options 2
32-Bit Versus 64-Bit Ubuntu 4
Planning Partition Strategies 5
The Boot Loader 5
Installing from DVD or USB Drive 6
Step-by-Step Installation 6
Installing 7
First Update 11
Shutting Down 11
Finding Programs and Files 12
Software Updater 12
The sudo Command 14
Configuring Software Repositories 15
System Settings 17
Detecting and Configuring a Printer 18
Configuring Power Management in Ubuntu 18
Setting the Time and Date 19
Configuring Wireless Networks 20
Troubleshooting Post-Installation Configuration Problems 21
Chapter 2 Background Information and Resources 23
What Is Linux? 23
Why Use Linux? 25
What Is Ubuntu? 27
Ubuntu for Business 27
Ubuntu in Your Home 28
Getting the Most from Linux and Ubuntu Documentation 28
Linux 29
Ubuntu 30
PART II: DESKTOP UBUNTU
Chapter 3 Foundations of the Linux GUI 31
Foundations and the X Server 31
Basic X Concepts 32
Using X 33
Elements of the xorg conf File 34
Starting X 39
Using a Display Manager 39
Changing Window Managers 39
Chapter 4 Ubuntu Desktop Options 41
Desktop Environment 41
Using GNOME: A Primer 42
KDE and Kubuntu 45
Xfce and Xubuntu 46
LXDE and Lubuntu 47
MATE and Ubuntu MATE 48
Ubuntu Budgie 49
Ubuntu Kylin 50
Chapter 5 On the Internet 51
Getting Started with Firefox 52
Checking Out Google Chrome and Chromium 53
Chapter 6 Productivity Applications 55
Introducing LibreOffice 56
Other Useful Productivity Software 58
Working with PDFs 58
Writing Scripts 59
Working with XML and DocBook 59
Working with LaTeX 60
Creating Mind Maps 61
Productivity Applications Written for Microsoft Windows 61
Chapter 7 Multimedia Applications 63
Sound and Music 63
Sound Cards 64
Sound Formats 65
Listening to Music 65
Graphics Manipulation 66
The GNU Image Manipulation Program 66
Using Scanners in Ubuntu 67
Working with Graphics Formats 67
Capturing Screen Images 69
Other Graphics Manipulation Options 70
Using Digital Cameras with Ubuntu 70
Handheld Digital Cameras 70
Using Shotwell Photo Manager 71
Burning CDs and DVDs in Ubuntu 71
Creating CDs and DVDs with Brasero 71
Creating CDs from the Command Line 72
Creating DVDs from the Command Line 73
Viewing Video 75
Video Formats 75
Viewing Video in Linux 76
Recording and Editing Audio 76
Editing Video 77
Chapter 8 Games 79
Ubuntu Gaming 79
Installing Proprietary Video Drivers 80
Online Game Sources 81
Steam 81
GOG com 82
Humble 82
itch io 82
LGDB 82
Game Jolt 82
Installing Games from the Ubuntu Repositories 82
Warsow 82
Scorched 3D 83
Frozen Bubble 84
SuperTux 84
Battle for Wesnoth 85
Frets on Fire 85
FlightGear 87
Speed Dreams 87
Games for Kids 88
Commercial Games 88
Playing Windows Games 88
PART III: SYSTEM ADMINISTRATION
Chapter 9 Managing Software 91
Ubuntu Software 91
Using Synaptic for Software Management 92
Staying Up to Date 94
Working on the Command Line 95
Day-to-Day APT Usage 95
Finding Software 98
Using apt-get Instead of apt 99
Compiling Software from Source 100
Compiling from a Tarball 100
Compiling from Source from the Ubuntu Repositories 101
Configuration Management 102
dotdee 102
Ubuntu Core 103
Using the Snappy Package Manager 103
Chapter 10 Command-Line Beginner's Class 105
What Is the Command Line? 106
Accessing the Command Line 107
Text-Based Console Login 107
Logging Out 108
Logging In and Out from a Remote Computer 108
User Accounts 109
Reading Documentation 111
Using Man Pages 111
Using apropros 112
Using whereis 112
Understanding the Linux File System Hierarchy 112
Essential Commands in /bin and /sbin 114
Configuration Files in /etc 114
User Directories: /home 115
Using the Contents of the /proc Directory to Interact with or Obtain Information from the Kernel 115
Working with Shared Data in the /usr Directory 117
Temporary File Storage in the /tmp Directory 117
Accessing Variable Data Files in the /var Directory 117
Navigating the Linux File System 117
Listing the Contents of a Directory with ls 118
Changing Directories with cd 120
Finding Your Current Directory with pwd 120
Working with Permissions 120
Assigning Permissions 121
Directory Permissions 122
Altering File Permissions with chmod 123
File Permissions with umask 124
File Permissions with chgrp 125
Changing File Permissions with chown 125
Understanding Set User ID, Set Group ID, and Sticky Bit Permissions 125
Setting Permissions with Access Control Lists 127
Working with Files 128
Creating a File with touch 128
Creating a Directory with mkdir 129
Deleting a Directory with rmdir 129
Deleting a File or Directory with rm 130
Moving or Renaming a File with mv 131
Copying a File with cp 131
Displaying the Contents of a File with cat 132
Displaying the Contents of a File with less 132
Using Wildcards and Regular Expressions 133
Working as Root 133
Understanding and Fixing sudo 134
Creating Users 136
Deleting Users 137
Shutting Down the System 137
Rebooting the System 138
Commonly Used Commands and Programs 139
Chapter 11 Command-Line Master Class, Part 1 141
Why Use the Command Line? 142
Using Basic Commands 143
Printing the Contents of a File with cat 144
Changing Directories with cd 145
Changing File Access Permissions with chmod 147
Copying Files with cp 147
Printing Disk Usage with du 148
Using echo 148
Finding Files by Searching with find 149
Searches for a String in Input with grep 151
Paging Through Output with less 152
Creating Links Between Files with ln 154
Finding Files from an Index with locate 156
Listing Files in the Current Directory with ls 156
Listing System Information with lsblk, lshw, lsmod, lspci, and neofetch 158
Reading Manual Pages with man 159
Making Directories with mkdir 160
Moving Files with mv 161
Renaming Files with rename 161
Deleting Files and Directories with rm 161
Sorting the Contents of a File with sort 162
Printing the Last Lines of a File with tail 163
Printing the Location of a Command with which 164
Downloading Files with wget 164
Chapter 12 Command-Line Master Class, Part 2 167
Redirecting Output and Input 167
stdin, stdout, stderr, and Redirection 169
Comparing Files 170
Finding Differences in Files with diff 170
Finding Similarities in Files with comm 170
Limiting Resource Use and Job Control 171
Listing Processes with ps 171
Listing Jobs with jobs 173
Running One or More Tasks in the Background 173
Moving Jobs to the Background or Foreground with bg and fg 174
Printing Resource Usage with top 175
Setting Process Priority with nice 177
Combining Commands 178
Pipes 178
Combining Commands with Boolean Operators 180
Running Separate Commands in Sequence 180
Process Substitution 181
Executing Jobs in Parallel 181
Using Environment Variables 182
Using Common Text Editors 185
Working with nano 186
Working with vi 187
Working with emacs 188
Working with sed and awk 189
Working with Compressed Files 191
Using Multiple Terminals with byobu192
Doing a Polite System Reset Using REISUB 194
Fixing an Ubuntu System That Will Not Boot 195
Checking BIOS 195
Checking GRUB 195
Reinstalling GRUB 195
Using Recovery Mode 196
Reinstalling Ubuntu 196
Tips and Tricks 196
Running the Previous Command 196
Running Any Previous Command 197
Running a Previous Command That Started with Specific Letters 197
Running the Same Thing You Just Ran with a Different First Word 197
Viewing Your History and More 197
Doing Two or More Things 198
Using Shortcuts 198
Confining a Script to a Directory 198
Using Coreutils 199
Reading the Contents of the Kernel Ring Buffer with dmesg 200
Chapter 13 Managing Users 201
User Accounts 201
The Super User/Root User 202
User IDs and Group IDs 204
File Permissions 204
Managing Groups 205
Group Listing 205
Group Management Tools 206
Managing Users 207
User Management Tools 208
Adding New Users 209
Monitoring User Activity on the System 211
Managing Passwords 212
System Password Policy 212
The Password File 212
Shadow Passwords 214
Managing Password Security for Users 216
Changing Passwords in a Batch 216
Granting System Administrator Privileges to Regular Users 217
Temporarily Changing User Identity with the su Command 217
Granting Root Privileges on Occasion: The sudo Command 219
Disk Quotas 222
Implementing Quotas 222
Manually Configuring Quotas 223
Related Ubuntu Commands 223
Chapter 14 Automating Tasks and Shell Scripting 225
What Is a Shell? 225
Scheduling Tasks 226
Using at and batch to Schedule Tasks for Later 227
Using cron to Run Jobs Repeatedly 229
Using rtcwake to Wake Your Computer from Sleep Automatically 231
Basic Shell Control 233
The Shell Command Line 233
Shell Pattern-Matching Support 235
Redirecting Input and Output 236
Piping Data 237
Background Processing 237
Writing and Executing a Shell Script 237
Running the New Shell Program 239
Storing Shell Scripts for System-wide Access 240
Interpreting Shell Scripts Through Specific Shells 240
Using Variables in Shell Scripts 242
Assigning a Value to a Variable 242
Accessing Variable Values 243
Positional Parameters 243
A Simple Example of a Positional Parameter 243
Using Positional Parameters to Access and Retrieve Variables from the Command Line 244
Using a Simple Script to Automate Tasks 244
Built-in Variables 246
Special Characters 247
Comparison of Expressions in pdksh and bash 250
Comparing Expressions with tcsh 255
The for Statement 259
The while Statement 261
The until Statement 263
The repeat Statement (tcsh) 263
The select Statement (pdksh) 264
The shift Statement 264
The if Statement 265
The expr Statement 266
The case Statement 267
The break and exit Statements 269
Using Functions in Shell Scripts 269
Chapter 15 The Boot Process 271
Running Services at Boot 271
Beginning the Boot Loading Process 272
Loading the Linux Kernel 274
Starting and Stopping Services with systemd 275
Controlling Services at Boot with Administrative Tools 278
Troubleshooting Runlevel Problems 278
Boot-Repair 278
Chapter 16 System-Monitoring Tools 281
Console-Based Monitoring 281
Using the kill Command to Control Processes 283
Using Priority Scheduling and Control 285
Displaying Free and Used Memory with free 286
Disk Space 286
Disk Quotas 287
Checking Log Files 287
Rotating Log Files 289
Graphical Process- and System-Management Tools 292
System Monitor 292
Conky 292
Other Graphical Process- and System-Monitoring Tools 297
KDE Process- and System-Monitoring Tools 298
Enterprise Server Monitoring 298
Chapter 17 Backing Up 301
Choosing a Backup Strategy 301
Why Data Loss Occurs 302
Assessing Your Backup Needs and Resources 303
Evaluating Backup Strategies 304
Making the Choice 308
Choosing Backup Hardware and Media 308
External Hard Drive 308
Network Storage 308
Tape Drive Backups 309
Cloud Storage 309
Using Backup Software 309
tar: The Most Basic Backup Tool 310
The GNOME File Roller 312
The KDE ark Archiving Tool 312
Déjà Dup 313
Back In Time 314
Unison 315
Amanda 315
Alternative Backup Software 316
Copying Files 316
Copying Files Using tar 317
Compressing, Encrypting, and Sending tar Streams 318
Copying Files Using cp 318
Using rsync 319
Version Control for Configuration Files 320
System Rescue 323
The Ubuntu Rescue Disc 323
Restoring the GRUB2 Boot Loader 323
Saving Files from a Nonbooting Hard Drive 324
Chapter 18 Networking 325
Laying the Foundation: The localhost Interface 326
Checking for the Availability of the Loopback Interface 326
Configuring the Loopback Interface Manually 327
Checking Connections with ping, traceroute, and mtr 328
Networking with TCP/IP 330
TCP/IP Addressing 331
Using IP Masquerading in Ubuntu 332
Ports 333
IPv6 Basics 334
Network Organization 337
Subnetting 337
Subnet Masks 337
Broadcast, Unicast, and Multicast Addressing 338
Hardware Devices for Networking 338
Network Interface Cards 338
Network Cable 340
Hubs and Switches 342
Routers and Bridges 343
Initializing New Network Hardware 343
Using Network Configuration Tools 345
Command-Line Network Interface Configuration 346
Network Configuration Files 350
Using Graphical Configuration Tools 355
Dynamic Host Configuration Protocol 355
How DHCP Works 356
Activating DHCP at Installation and Boot Time 357
DHCP Software Installation and Configuration 358
Using DHCP to Configure Network Hosts 359
Other Uses for DHCP 361
Wireless Networking 361
Support for Wireless Networking in Ubuntu 361
Choosing from Among Available Wireless Protocols 363
Beyond the Network and onto the Internet 363
Common Configuration Information 364
Configuring Digital Subscriber Line Access 365
Understanding PPP over Ethernet 366
Configuring a PPPoE Connection Manually 366
Configuring Dial-up Internet Access 367
Troubleshooting Connection Problems 368
Chapter 19 Remote Access with SSH and VNC 371
Setting Up an SSH Server 371
SSH Tools 372
Using scp to Copy Individual Files Between Machines 372
Using sftp to Copy Many Files Between Machines 373
Using ssh-keygen to Enable Key-Based Logins 373
Virtual Network Computing 375
Guacamole 377
Chapter 20 Securing Your Machines 379
Understanding Computer Attacks 379
Assessing Your Vulnerability 381
Protecting Your Machine 382
Securing a Wireless Network 382
Passwords and Physical Security 383
Configuring and Using Tripwire 384
Securing Devices 385
Viruses 385
Configuring Your Firewall 386
AppArmor 388
Forming a Disaster Recovery Plan 390
Chapter 21 Performance Tuning 393
Storage Disk 394
Linux File Systems 394
The hdparm Command 395
File System Tuning 396
The tune2fs Command 396
The e2fsck Command 397
The badblocks Command 397
Disabling File Access Time 397
Kernel 398
Tuned 399
Chapter 22 Kernel and Module Management 401
The Linux Kernel 402
The Linux Source Tree 403
Types of Kernels 405
Managing Modules 406
When to Recompile 408
Kernel Versions 409
Obtaining the Kernel Sources 409
Patching the Kernel 410
Compiling the Kernel 412
Using xconfig to Configure the Kernel 414
Creating an Initial RAM Disk Image 418
When Something Goes Wrong 418
Errors During Compile 418
Runtime Errors, Boot Loader Problems, and Kernel Oops 419
PART IV: UBUNTU AS A SERVER
Chapter 23 Sharing Files and Printers 421
Using Network File System 422
Installing and Starting or Stopping NFS 422
NFS Server Configuration 422
NFS Client Configuration 423
Putting Samba to Work 424
Manually Configuring Samba with /etc/samba/smb conf 426
Testing Samba with the testparm Command 429
Starting, Stopping, and Restarting the smbd Daemon 429
Mounting Samba Shares 430
Network and Remote Printing with Ubuntu 431
Creating Network Printers 431
Using the CUPS GUI 433
Avoiding Printer Support Problems 434
Chapter 24 Common Web Server Stacks 437
LAMP 437
LEMP 439
MEAN 440
Chapter 25 Apache Web Server Management 443
About the Apache Web Server 443
Installing the Apache Server 444
Starting and Stopping Apache 444
Runtime Server Configuration Settings 446
Runtime Configuration Directives 446
Editing apache2 conf 447
Apache Multiprocessing Modules 449
Using htaccess Configuration Files 450
File System Authentication and Access Control 452
Restricting Access with Require 452
Authentication 453
Final Words on Access Control 455
Apache Modules 455
mod_access 456
mod_alias 456
mod_asis 456
mod_auth 457
mod_auth_anon 457
mod_auth_dbm 457
mod_auth_digest 457
mod_autoindex4 58
mod_cgi 458
mod_dir and mod_env 458
mod_expires 458
mod_headers 458
mod_include 459
mod_info and mod_log_config 459
mod_mime and mod_mime_magic 459
mod_negotiation 459
mod_rewrite 459
mod_setenvif 460
mod_speling 460
mod_status 460
mod_ssl 460
mod_unique_id 460
mod_userdir 460
mod_usertrack 460
mod_vhost_alias 460
Virtual Hosting 461
Address-Based Virtual Hosts 461
Name-Based Virtual Hosts 461
Logging 463
HTTPS 464
Chapter 26 Nginx Web Server Management 467
About the Nginx Web Server 467
Installing the Nginx Server 469
Installing from the Ubuntu Repositories 469
Building the Source Yourself 469
Configuring the Nginx Server 470
Virtual Hosting 473
Setting Up PHP 474
Adding and Configuring Modules 475
HTTPS 476
Chapter 27 Other HTTP Servers 479
Lighttpd 479
Yaws 480
Cherokee 480
Jetty 481
thttpd 481
Apache Tomcat 482
WildFly 482
Caddy 482
Chapter 28 Administering Relational Database Services 483
A Brief Review of Database Basics 484
How Relational Databases Work 486
Understanding SQL Basics 487
Creating Tables 488
Inserting Data into Tables 489
Retrieving Data from a Database 490
Choosing a Database: MySQL Versus PostgreSQL 492
Speed 492
Data Locking 492
ACID Compliance in Transaction Processing to Protect Data Integrity 493
SQL Subqueries 494
Procedural Languages and Triggers 494
Configuring MySQL 494
Setting a Password for the MySQL Root User 495
Creating a Database in MySQL 496
Configuring PostgreSQL 498
Initializing the Data Directory in PostgreSQL 498
Creating a Database in PostgreSQL 499
Creating Database Users in PostgreSQL 499
Deleting Database Users in PostgreSQL 500
Granting and Revoking Privileges in PostgreSQL 500
Database Clients 501
SSH Access to a Database 501
Local GUI Client Access to a Database 503
Web Access to a Database 503
The MySQL Command-Line Client 504
The PostgreSQL Command-Line Client 505
Graphical Clients 506
Chapter 29 NoSQL Databases 509
Key/Value Stores 512
Berkeley DB 512
Cassandra 513
etcd 513
Memcached and MemcacheDB 513
Redis 514
Riak 514
Scylla 514
Document Stores 514
CouchDB 515
MongoDB 516
BaseX 517
Wide Column Stores 517
BigTable 517
HBase 518
Graph Stores 518
Neo4j 518
OrientDB 519
HyperGraphDB 519
FlockDB 519
Chapter 30 Virtualization on Ubuntu 521
KVM 523
VirtualBox 527
VMware 528
Xen 528
Chapter 31 Containers and Ubuntu 531
LXC and LXD 532
Docker 533
Kubernetes 534
Chapter 32 Ubuntu and Cloud Computing 535
Why a Cloud? 536
Software as a Service (SaaS) 537
Platform as a Service (PaaS) 537
Infrastructure as a Service (IaaS) 537
Metal as a Service (MaaS) 537
Things to Consider Before You Make Any Decisions 538
Ubuntu on the Public Cloud 538
OpenStack 538
Amazon Web Services 539
Google Cloud 539
Microsoft Azure 539
Hybrid Clouds 539
Canonical-Specific Cloud Offerings 540
Juju 540
Mojo: Continuous Delivery for Juju 541
Landscape 541
Chapter 33 Managing Sets of Servers 543
Puppet 543
Chef 544
Ansible 544
SaltStack 544
CFEngine 545
Juju 545
Landscape 545
Chapter 34 Handling Email 547
How Email Is Sent and Received 547
The Mail Transport Agent 548
Choosing an MTA 550
The Mail Delivery Agent 550
The Mail User Agent 551
Basic Postfix Configuration and Operation 552
Configuring Masquerading 554
Using Smart Hosts 554
Setting Message Delivery Intervals 555
Mail Relaying 555
Forwarding Email with Aliases 556
Using Fetchmail to Retrieve Mail 557
Installing Fetchmail 557
Configuring Fetchmail 557
Choosing a Mail Delivery Agent 560
Procmail 561
Spamassassin 561
Squirrelmail 561
Virus Scanners 562
Autoresponders 562
Chapter 35 Proxying, Reverse Proxying, and Virtual Private Networks (VPNs) 563
What Is a Proxy Server? 563
Installing Squid 564
Configuring Clients 564
Access Control Lists 565
Specifying Client IP Addresses 569
Sample Configurations 570
Virtual Private Networks (VPNs) 572
Setting Up a VPN Client 573
Setting Up a VPN Server 575
Chapter 36 Lightweight Directory Access Protocol (LDAP) 579
Configuring the Server 580
Creating Your Schema 580
Populating Your Directory 582
Configuring Clients 584
LDAP Administration 584
Chapter 37 Name Serving with the Domain Name System (DNS) 587
Understanding Domain Names 588
DNS Servers 589
DNS Records 590
Setting Up a DNS Server with BIND 593
PART V: PROGRAMMING LINUX
Chapter 38 Using Programming Tools 597
Programming in C with Linux 598
Using the C Programming Project Management Tools Provided with Ubuntu 599
Building Programs with make 599
Using the autoconf Utility to Configure Code 601
Debugging Tools 602
Using the GNU C Compiler 603
Programming in Java with Linux 604
Graphical Development Tools 605
IDEs and SDKs 605
Using the KDevelop Client 606
The Glade Client for Developing in GNOME 607
Beginning Mobile Development for Android 607
Hardware 608
Linux Kernel 608
Libraries 608
Android Runtime 608
Application Framework 608
Applications 609
Installing Android Studio 609
Creating Your First Android Application 609
Version Control Systems 609
Managing Software Projects with Git 610
Managing Software Projects with Bazaar 611
Managing Software Projects with Subversion 612
Continuous Integration and Continuous Delivery and DevOps Tools 613
CI/CD Tools 614
Chaos Engineering 614
Canonical-created Tools 614
Launchpad 614
Ubuntu Make 615
Creating Snap Packages 615
Bikeshed and Other Tools 616
Chapter 39 Using Popular Programming Languages 621
Ada 622
Clojure 622
COBOL 623
D 624
Dart 624
Elixir 625
Elm 625
Erlang 625
Forth 626
Fortran 626
Go 626
Groovy 627
Haskell 627
Java 627
JavaScript 628
Kotlin 628
Lisp 629
Lua 629
Mono 629
OCaml 630
Perl 630
PHP 631
Python 631
Raku 631
Ruby 631
Rust 632
Scala 632
Scratch 632
Vala 633
Chapter 40 Helping with Ubuntu Development 635
Introduction to Ubuntu Development 636
Setting Up Your Development System 637
Install Basic Packages and Configure 637
Creating a Launchpad Account 638
Setting Up Your Environment to Work with Launchpad 638
Fixing Bugs and Packaging 640
Chapter 41 Helping with Ubuntu Testing and QA 645
Community Teams 645
Ubuntu Testing Team 646
Ubuntu QA Team 646
Bug Squad 647
References 647
Index 649
PART VI: BONUS ONLINE-ONLY CHAPTERS
Chapter 42 Using Perl (Online) Web:1
Using Perl with Linux Web:1
Perl Versions Web:2
A Simple Perl Program Web:2
Perl Variables and Data Structures Web:4
Perl Variable Types Web:4
Special Variables Web:5
Perl Operators Web:6
Comparison Operators Web:6
Compound Operators Web:7
Arithmetic Operators Web:7
Other Operators Web:8
Special String Constants Web:8
Conditional Statements: if/else and unless Web:9
If Web:9
unless Web:9
Looping Web:10
for Web:10
foreach Web:10
while Web:11
until Web:11
last and next Web:12
do while and do until Web:12
Regular Expressions Web:12
Access to the Shell Web:13
Modules and CPAN Web:14
Code Examples Web:15
Sending Mail Web:15
Purging Logs Web:17
Posting to Usenet Web:18
One-Liners Web:19
Command-Line Processing Web:19
Chapter 43 Using Python (Online) Web:21
Python on Linux Web:22
The Basics of Python Web:23
Numbers Web:23
More on Strings Web:24
Lists Web:27
Dictionaries Web:30
Conditionals and Looping Web:30
Functions Web:33
Object Orientation Web:34
Class and Object Variables Web:34
Constructors and Destructors Web:35
Class Inheritance Web:36
The Standard Library and the Python Package Index Web:38
Chapter 44 Using PHP (Online) Web:39
Introduction to PHP Web:39
Entering and Exiting PHP Mode Web:40
Variables Web:40
Arrays Web:42
Constants Web:43
References Web:44
Comments Web:44
Escape Sequences Web:45
Variable Substitution Web:46
Operators Web:46
Conditional Statements Web:48
Special Operators Web:50
Switching Web:51
Loops Web:52
Including Other Files Web:54
Basic Functions Web:55
Strings Web:55
Arrays Web:58
Files Web:60
Miscellaneous Web:63
Handling HTML Forms Web:66
Databases Web:67