Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
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 more—including 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 will 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.
Download the sample pages (includes Chapter 10)
Introduction xxxi
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
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
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
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
Getting Started with Firefox 52
Checking Out Google Chrome and Chromium 53
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
LAMP 437
LEMP 439
MEAN 440
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
We've made every effort to ensure the accuracy of this book and its companion content. Any errors that have been confirmed since this book was published can be downloaded below.
Download the errata (50 KB .doc)