Ubuntu Linux unleashed

Author(s)
    • Helmke, Matthew
    • Hudson, Andrew
    • Hudson, Paul
Bibliographic Information

Ubuntu Linux unleashed

Matthew Helmke ; with Andrew Hudson and Paul Hudson

Sams, c2021

2021 ed

Other Title

Ubuntu Linux : unleashed

Search this Book/Journal
Note

Covers 20.04, 20.10, and 21.04

"Pearson"--Back cover

Includes index

Description and Table of Contents

Description

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. Configure and use the Ubuntu desktop Get started with multimedia and productivity applications Manage Linux services, users, and software packages Administer and run Ubuntu from the command line Automate tasks and use shell scripting Provide secure remote access and configure a secure VPN Manage kernels and modules Administer file, print, email, proxy, LDAP, DNS, and HTTP servers (Apache, Nginx, or alternatives) Work with databases (SQL) and learn about NoSQL alternatives Get started with virtualization and cloud deployment, including information about containers Learn about options for managing large numbers of servers, including in the cloud Learn the basics about popular programming languages including Python, PHP, Perl, and gain an introduction to new alternatives such as Go and Rust

Table of Contents

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 Deja 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

by "Nielsen BookData"

Details
Page Top