Acknowledgments ix Introduction xxix Part I: Getting Started 1 Chapter 1: Starting with Linux 3 Understanding What Linux is 4 Understanding How Linux Differs from Other Operating Systems 6 Exploring Linux History 7 Free-flowing UNIX culture at Bell Labs 7 Commercial UNIX 9 Berkeley Software Distribution arrives 9 UNIX Laboratory and commercialization 10 GNU transitions UNIX to freedom 11 BSD loses some steam 13 Linus builds the missing piece 13 OSI open source definition 14 Understanding How Linux Distributions Emerged 16 Understanding Red Hat 17 Understanding Ubuntu and other Debian distributions 17 Finding Professional Opportunities with Linux Today 18 Understanding how companies make money with Linux 19 Summary 20 Chapter 2: Creating the Perfect Linux Desktop 21 Understanding Linux Desktop Technology 22 Starting with the GNOME 3 Desktop Live Image 24 Using the GNOME 3 Desktop 25 After the computer boots up 25 Navigating with the mouse 25 Navigating with the keyboard 30 Setting up the GNOME 3 desktop 31 Extending the GNOME 3 desktop 31 Using GNOME shell extensions 32 Using the GNOME Tweak Tool 33 Starting with desktop applications 33 Managing files and folders with Nautilus 33 Installing and managing additional software 35 Playing music with Rhythmbox 37 Stopping the GNOME 3 desktop 37 Using the Unity Graphical Shell with the GNOME Desktop 37 Using the Metacity window manager 38 Changing GNOME''s appearance 40 Using the panels 40 Adding a drawer 41 Changing panel properties 41 Summary 42 Exercises 42 Part II: Becoming a Linux Power User 43 Chapter 3: Using the Shell 45 About Shells and Terminal Windows 46 Using the shell prompt 47 Using a Terminal window 48 Using virtual consoles 49 Choosing Your Shell 49 Running Commands 50 Understanding command syntax 51 Locating commands 53 Recalling Commands Using Command History 56 Command-line editing 56 Command-line completion 58 Command-line recall 59 Connecting and Expanding Commands 61 Piping between commands 62 Sequential commands 62 Background commands 63 Expanding commands 63 Expanding arithmetic expressions 63 Expanding variables 64 Using Shell Variables 64 Creating and using aliases 66 Exiting the shell 67 Creating Your Shell Environment 67 Configuring your shell 67 Setting your prompt 68 Adding environment variables 70 Getting Information about Commands 71 Summary 74 Exercises 74 Chapter 4: Moving Around the Filesystem 77 Using Basic Filesystem Commands 80 Using Metacharacters and Operators 82 Using fi le-matching metacharacters 82 Using fi le-redirection metacharacters 84 Using brace expansion characters 85 Listing Files and Directories 86 Understanding File Permissions and Ownership 90 Changing permissions with chmod (numbers) 91 Changing permissions with chmod (letters) 92 Setting default file permission with umask 93 Changing file ownership 93 Moving, Copying, and Removing Files 94 Summary 95 Exercises 96 Chapter 5: Working with Text Files 97 Editing Files with vim and vi 97 Starting with vi 99 Adding text 99 Moving around in the text 100 Deleting, copying, and changing text 101 Pasting (putting) text 102 Repeating commands 102 Exiting vi 102 Skipping around in the file 103 Searching for text 103 Using ex mode 104 Learning more about vi and vim 104 Finding Files 105 Using locate to find files by name 105 Searching for files with find 107 Finding files by name 108 Finding files by size 108 Finding files by user 109 Finding files by permission 109 Finding files by date and time 110 Using "not" and "or" when finding files 111 Finding files and executing commands 112 Searching in files with grep 113 Summary 115 Exercises 115 Chapter 6: Managing Running Processes 117 Understanding Processes 117 Listing Processes 118 Listing processes with ps 118 Listing and changing processes with top 120 Listing processes with System Monitor 122 Managing Background and Foreground Processes 124 Starting background processes 124 Using foreground and background commands 125 Killing and Renicing Processes 126 Killing processes with kill and killall 126 Using kill to signal processes by PID 127 Using killall to signal processes by name 128 Setting processor priority with nice and renice 128 Limiting Processes with cgroups 129 Summary 131 Exercises 131 Chapter 7: Writing Simple Shell Scripts 133 Understanding Shell Scripts 133 Executing and debugging shell scripts 134 Understanding shell variables 135 Special shell positional parameters 136 Reading in parameters 137 Parameter expansion in bash 137 Performing arithmetic in shell scripts 138 Using programming constructs in shell scripts 139 The "if then" statements 139 The case command 142 The "for do" loop 143 The "while do" and "until do" loops 144 Trying some useful text manipulation programs 145 The global regular expression print 145 Remove sections of lines of text (cut) 145 Translate or delete characters (tr) 146 The stream editor (sed) 146 Using simple shell scripts 147 Telephone list 147 Backup script 148 Summary 149 Exercises 149 Part III: Becoming a Linux System Administrator 151 Chapter 8: Learning System Administration 153 Understanding System Administration 153 Using Graphical Administration Tools 155 Using Cockpit browser-based administration 155 Using other browser-based admin tools 157 Invoking Administration Privileges 158 Becoming root from the shell 158 Gaining temporary admin access with sudo 159 Exploring Administrative Commands, Configuration Files, and Log Files 161 Administrative commands 161 Administrative configuration files 162 Administrative log files and systemd journal 165 Using journalctl to view the systemd journal 165 Managing log messages with rsyslogd 166 Using Other Administrative Accounts 167 Checking and Configuring Hardware 167 Checking your hardware 168 Managing removable hardware 171 Working with loadable modules 172 Listing loaded modules 172 Loading modules 173 Removing modules 174 Summary 174 Exercises 175 Chapter 9: Installing Linux 177 Choosing a Computer 178 Installing Ubuntu Desktop 180 Installing Ubuntu Server 185 Understanding Cloud-Based Installations 188 Installing Linux in the Enterprise 189 Exploring Common Installation Topics 189 Upgrading or installing from scratch 189 Dual booting 190 Installing Linux to run virtually 191 Using installation boot options 192 Boot options for disabling features 192 Boot options for video problems 193 Boot options for special installation types 193 Using specialized storage 194 Partitioning hard drives 195 Understanding different partition types 196 Tips for creating partitions 196 Using the GRUB 2 boot loader 198 Summary 199 Exercises 199 Chapter 10: Getting and Managing Software 201 Managing Software on the Desktop 201 Going Beyond the Software Window 203 Understanding Linux Software Packaging 204 Working with Debian Packaging 205 APT basics 205 Working with APT repositories 209 Working with dpkg 211 Summary 214 Exercises 214 Chapter 11: Managing User Accounts 215 Creating User Accounts 215 Adding users with adduser 218 Setting user defaults 220 Modifying users with usermod 222 Deleting users with deluser 223 Understanding Group Accounts 223 Using group accounts 224 Creating group accounts 225 Managing Users in the Enterprise 225 Setting permissions with Access Control Lists 226 Setting ACLs with setfacl 227 Setting default ACLs 228 Enabling ACLs 229 Adding directories for users to collaborate 231 Creating group collaboration directories (set GID bit) 231 Creating restricted deletion directories (sticky bit) 233 Centralizing User Accounts 233 Summary 234 Exercises 234 Chapter 12: Managing Disks and Filesystems 237 Understanding Disk Storage 237 Partitioning Hard Disks 239 Understanding partition tables 239 Viewing disk partitions 240 Creating a single-partition disk 241 Creating a multiple-partition disk 245 Using Logical Volume Manager Partitions 249 Checking an existing LVM 249 Creating LVM logical volumes 252 Growing LVM logical volumes 254 Mounting Filesystems 254 Supported filesystems 255 Enabling swap areas 257 Disabling swap area 258 Using the fstab file to define mountable filesystems 258 Using the mount command to moun.
Ubuntu Linux Bible