Ubuntu
®
Linux®
TOOLBOX
1000+ Commands for Ubuntu
and Debian Power Users
Christopher Negus
François Caen
Wiley Publishing, Inc.
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page iii
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page ii
Ubuntu
®
Linux
®
TOOLBOX
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page i
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page ii
Ubuntu
®
Linux®
TOOLBOX
1000+ Commands for Ubuntu
and Debian Power Users
Christopher Negus
François Caen
Wiley Publishing, Inc.
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page iii
Ubuntu® Linux® Toolbox:
1000+ Commands for Ubuntu and Debian Power Users
P
ublished by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2008 by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-0-470-08293-5
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
Library of Congress Cataloging-in-Publication Data
Negus, Chris, 1957–
Ubuntu Linux toolbox : 1000+ commands for Ubuntu and Debian power users / Christopher Negus,
François Caen.
p. cm.
Includes index.
ISBN 978-0-470-08293-5 (pbk.)
1. Linux. 2. Operating systems (Computers) I. Caen, François. II. Title.
QA76.76.O63N42676 2007
005.4'32—dc22
2007041567
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by
any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under
Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the
Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center,
222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permis-
sion should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis,
IN 46256, (317) 572-3447, fax (317) 572-4355, or online at
/>.
Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties
with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties,
including without limitation warranties of fitness for a particular purpose. No warranty may be created or
extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for
every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal,
accounting, or other professional services. If professional assistance is required, the services of a competent pro-
fessional person should be sought. Neither the publisher nor the author shall be liable for damages arising here-
from. The fact that an organization or Website is referred to in this work as a citation and/or a potential source of
further information does not mean that the author or the publisher endorses the information the organization or
Website may provide or recommendations it may make. Further, readers should be aware that Internet Websites
listed in this work may have changed or disappeared between when this work was written and when it is read.
For general information on our other products and services please contact our Customer Care Department
within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Trademarks: Wiley and the Wiley logo are trademarks or registered trademarks of John Wiley & Sons, Inc.
and/or its affiliates, in the United States and other countries, and may not be used without written permission.
Ubuntu, Canonical, and Canonical Ltd. are trademarks of Canonical, Inc. Linux is a registered trademark of
Linus Torvalds. All other trademarks are the property of their respective owners. Wiley Publishing, Inc. is not
associated with any product or vendor mentioned in this book.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be
available in electronic books.
82935ffirs.qxd:Toolbox 10/29/07 6:27 PM Page iv
As always, I dedicate my work on this book to my wife, Sheree.
— Christopher Negus
To my wife, Tonya, for supporting me in all my endeavors.
— François Caen
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page v
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page vi
About the Authors
Christopher Negus is the author of the best-selling Fedora and Red Hat Linux Bibles,
Linux Toys, Linux Troubleshooting Bible, and Linux Bible 2007 Edition. He is a member of
the Madison Linux Users Group. Prior to becoming a full-time writer, Chris served
for eight years on development teams for the Unix operating system at AT&T, where
Unix was created and developed. He also worked with Novell on Unix development
and Caldera Linux.
François Caen, through his company Turbosphere LLC, hosts and manages business
application infrastructures, with 95 percent running on Linux systems. As an open
source advocate, he has lectured on OSS network management and Internet services,
and served as president of the Tacoma Linux User Group. François is a Red Hat
Certified Engineer (RHCE). In his spare time, François enjoys managing enterprise
Cisco networks.
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page vii
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page viii
Credits
Acquisitions Editor
Jenny Watson
Development Editor
Sara Shlaer
Technical Editor
Thomas Blader
Copy Editor
Michael Koch
Editorial Manager
Mary Beth Wakefield
Production Manager
Tim Tate
Vice President and
Executive Group Publisher
Richard Swadley
Vice President and Executive Publisher
Joseph B. Wikert
Project Coordinator, Cover
Lynsey Osborn
Compositor
Laurie Stewart,
Happenstance Type-O-Rama
Proofreader
Kathryn Duggan
Indexer
Melanie Belkin
Anniversary Logo Design
Richard Pacifico
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page ix
Contents at a Glance
Chapter 1: Starting with Ubuntu Linux . . . . . . . . . . . . . . . . . . . .1
Chapter 2: Installing Ubuntu and Adding Software . . . . . . . . . . .17
Chapter 3: Using the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Chapter 4: Working with Files . . . . . . . . . . . . . . . . . . . . . . . . .69
Chapter 5: Manipulating Text . . . . . . . . . . . . . . . . . . . . . . . . . .89
Chapter 6: Playing with Multimedia . . . . . . . . . . . . . . . . . . . .109
Chapter 7: Administering File Systems . . . . . . . . . . . . . . . . . .123
Chapter 8: Backups and Removable Media . . . . . . . . . . . . . . .151
Chapter 9: Checking and Managing Running Processes . . . . . .169
Chapter 10: Managing the System . . . . . . . . . . . . . . . . . . . . .187
Chapter 11: Managing Network Connections . . . . . . . . . . . . .211
Chapter 12: Accessing Network Resources . . . . . . . . . . . . . . .235
Chapter 13: Doing Remote System Administration . . . . . . . . .255
Chapter 14: Locking Down Security . . . . . . . . . . . . . . . . . . . .273
Appendix A: Using vi or Vim Editors . . . . . . . . . . . . . . . . . . . .289
Appendix B: Shell Special Characters and Variables . . . . . . . .297
Appendix C: Getting Information from /proc . . . . . . . . . . . . . .301
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
82935ffirs.qxd:Toolbox 10/29/07 12:53 PM Page x
Contents
Acknowledgments xix
Introduction xxi
Chapter 1: Starting with Ubuntu Linux 1
Ubuntu, Debian, and Linux 2
Ubuntu Compared to Other Linux Distributions 3
Finding Ubuntu Resources 4
Ubuntu Software 6
Focusing on Linux Commands 7
Finding Commands 8
Reference Information in Ubuntu 11
Using help Messages 11
Using man Pages 12
Using info Documents 14
Summary 15
Chapter 2: Installing Ubuntu and Adding Software 17
Obtaining and Installing Ubuntu 17
Preparing to Install 19
Choosing Installation Options 19
Answering Installation Questions 20
Working with Debian Software Packages 21
Working with Software Packages 23
Enabling More Repositories for apt 24
Managing Software with APT 25
Adding an APT Repository and Third-Party Signature Key 27
Finding Packages with APT 28
Installing Packages with APT 28
Upgrading Packages with APT 29
Upgrading a Single Package with APT 29
Removing Packages with APT 30
Cleaning Up Packages with APT 30
Managing Software with dpkg 31
Installing a Package with dpkg 32
Removing a Package with dpkg 33
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xi
xii
Contents
Extracting Files from a .deb File with dpkg 33
Querying Information about .deb Packages 33
Managing Software with aptitude 36
Updating and Upgrading Packages with aptitude 37
Querying Information about Packages with aptitude 38
Installing Packages with aptitude 38
Removing Packages with aptitude 39
Cleaning Up Packages with aptitude 39
Useful Combinations of Options with aptitude 40
Verifying Installed Packages with debsums 41
Building deb Packages 45
Summary 48
Chapter 3: Using the Shell 49
Terminal Windows and Shell Access 49
Using Terminal Windows 49
Using Virtual Terminals 51
Using the Shell 52
Using Bash History 52
Using Command Line Completion 54
Redirecting stdin and stdout 54
Using alias 57
Watching Commands 58
Watching Files 58
Acquiring Super User Power 59
Using the su Command 59
Delegating Power with sudo 60
Using Environment Variables 62
Creating Simple Shell Scripts 63
Editing and Running a Script 63
Adding Content to Your Script 64
Summary 68
Chapter 4: Working with Files 69
Understanding File Types 69
Using Regular Files 69
Using Directories 70
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xii
xiii
Contents
Using Symbolic and Hard Links 71
Using Device Files 72
Using Named Pipes and Sockets 73
Setting File/Directory Permissions 73
Changing Permissions with chmod 74
Setting the umask 76
Changing Ownership 76
Traversing the File System 77
Copying Files 78
Changing File Attributes 80
Searching for Files 81
Finding Files with locate 82
Locating Files with find 82
Using Other Commands to Find Files 85
Finding Out More About Files 85
Listing Files 85
Verifying Files 86
Summary 87
Chapter 5: Manipulating Text 89
Matching Text with Regular Expressions 89
Editing Text Files 90
Using the JOE Editor 91
Using the Pico and nano Editors 94
Graphical Text Editors 96
Listing, Sorting, and Changing Text 96
Listing Text Files 97
Paging Through Text 98
Paginating Text Files with pr 98
Searching for Text with grep 99
Replacing Text with sed 102
Translating or Removing Characters with tr 103
Checking Differences Between Two Files with diff 104
Using awk and cut to Process Columns 105
Converting Text Files to Different Formats 106
Summary 107
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xiii
xiv
Contents
Chapter 6: Playing with Multimedia 109
Working with Audio 109
Playing Music 109
Adjusting Audio Levels 111
Ripping CD Music 112
Encoding Music 113
Streaming Music 115
Converting Audio Files 117
Transforming Images 118
Getting Information about Images 118
Converting Images 119
Converting Images in Batches 120
Summary 122
Chapter 7: Administering File Systems 123
Understanding File System Basics 123
Creating and Managing File Systems 125
Partitioning Hard Disks 125
Working with File System Labels 129
Formatting a File System 130
Viewing and Changing File System Attributes 131
Creating and Using Swap Partitions 133
Mounting and Unmounting File Systems 134
Mounting File Systems from the fstab File 134
Mounting File Systems with the mount Command 136
Unmounting File Systems with umount 139
Checking File Systems 140
Checking RAID Disks 141
Finding Out About File System Use 143
Logical Volume Manager (LVM) 145
Creating LVM Volumes 145
Using LVM Volumes 148
Growing the LVM Volume 148
Shrinking an LVM Volume 149
Removing LVM Logical Volumes and Groups 150
Summary 150
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xiv
xv
Contents
Chapter 8: Backups and Removable Media 151
Backing Up Data to Compressed Archives 151
Creating Backup Archives with tar 151
Using Compression Tools 153
Listing, Joining, and Adding Files to tar Archives 156
Deleting Files from tar Archives 157
Backing Up Over Networks 157
Backing Up tar Archives Over ssh 158
Backing Up Files with rsync 159
Backing Up with unison 160
Backing Up to Removable Media 161
Creating Backup Images with mkisofs 162
Burning Backup Images with cdrecord 165
Making and Burning DVDs with growisofs 166
Summary 167
Chapter 9: Checking and Managing Running Processes 169
Listing Active Processes 170
Viewing Active Processes with ps 170
Watching Active Processes with top 175
Finding and Controlling Processes 177
Using pgrep to Find Processes 177
Using fuser to Find Processes 178
Changing Running Processes 179
Summary 185
Chapter 10: Managing the System 187
Monitoring Resources 187
Monitoring Memory Use 188
Monitoring CPU Usage 191
Monitoring Storage Devices 194
Mastering Time 196
Changing Time/Date with Graphical Tools 197
Displaying and Setting Your System Clock 197
Displaying and Setting Your Hardware Clock 199
Using Network Time Protocol to Set Date/Time 199
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xv
xvi
Contents
Managing the Boot Process 200
Using the GRUB Boot Loader 201
Repairing the initial ramdisk (initrd) 202
Controlling Startup and Run Levels 203
Straight to the Kernel 205
Poking at the Hardware 207
Summary 209
Chapter 11: Managing Network Connections 211
Configuring Networks from the GUI 211
Managing Network Interface Cards 212
Managing Network Connections 216
Starting and Stopping Ethernet Connections 216
Viewing Ethernet Connection Information 218
Using Wireless Connections 220
Using Dial-up Modems 222
Checking Name Resolution 225
Troubleshooting Network Problems 227
Checking Connectivity to a Host 227
Checking Address Resolution Protocol (ARP) 228
Tracing Routes to Hosts 229
Displaying netstat Connections and Statistics 231
Other Useful Network Tools 232
Summary 233
Chapter 12: Accessing Network Resources 235
Running Commands to Browse the Web 235
Transferring Files 237
Downloading Files with wget 237
Transferring Files with cURL 238
Transfering files with FTP Commands 239
Using SSH Tools to Transfer Files 241
Using Windows File Transfer Tools 242
Sharing Remote Directories 243
Sharing Remote Directories with NFS 243
Sharing Remote Directories with Samba 245
Sharing Remote Directories with SSHFS 248
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xvi
xvii
Contents
Chatting with Friends in IRC 249
Using Text-Based E-mail Clients 250
Managing E-mail with mail 251
Managing E-mail with mutt 252
Summary 253
Chapter 13: Doing Remote System Administration 255
Doing Remote Login and Tunneling with SSH 255
Configuring SSH 256
Logging in Remotely with ssh 257
Using screen: A Rich Remote Shell 263
Using a Remote Windows Desktop 265
Connecting to a Windows Desktop with tsclient 266
Connecting to a Windows Desktop with rdesktop 267
Using Remote Linux Desktop and Applications 267
Sharing Desktops Using VNC 268
Setting Up the VNC Server 269
Starting Up the VNC Client 269
Using VNC on Untrusted Networks with SSH 270
Sharing a VNC Desktop with Vino 270
Summary 271
Chapter 14: Locking Down Security 273
Working with Users and Groups 273
Managing Users the GUI Way 274
Adding User Accounts 274
Modifying User Accounts 276
Deleting User Accounts 277
Managing Passwords 277
Adding Groups 279
Checking on Users 280
Configuring the Built-In Firewall 282
Working with System Logs 286
Using Advanced Security Features 286
Summary 287
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xvii
xviii
Contents
Appendix A: Using vi or Vim Editors 289
Starting and Quitting the vi Editor 289
Moving Around in vi 291
Changing and Deleting Text in vi 292
Using Miscellaneous Commands 293
Modifying Commands with Numbers 294
Using Ex Commands 295
Working in Visual Mode 296
Appendix B: Shell Special Characters and Variables 297
Using Special Shell Characters 297
Using Shell Variables 298
Appendix C: Getting Information from /proc 301
Viewing /proc information 301
Changing /proc information 305
Index 307
82935ftoc.qxd:Toolbox 10/29/07 12:54 PM Page xviii
Acknowledgments
I would like to acknowledge Canonical Ltd. and the Ubuntu community for their
ongoing excellent work producing the Linux-based Ubuntu operating system.
Special thanks to François Caen for giving up most of his free time over the past year,
while juggling his existing professional obligations, to co-author the book with me.
Thomas Blader went far beyond his technical editor title, providing excellent insights
and meticulous testing throughout the book. Eric Foster-Johnson came in near the end
of the process and provided Ubuntu feature enhancements throughout the book.
At Wiley, I’d like to thank Jenny Watson for sticking with us through the development
of the book. And, last but not least, thanks to Sara Shlaer for keeping us on track with
schedules and supplying the never-ending ToDo lists we needed to accomplish to get
this book published.
— Christopher Negus
I would like to thank Chris Negus for giving me the opportunity to co-author this book
with him. We had wanted to write together for the last couple of years, and this Toolbox
series was the perfect fit for our collaboration.
I couldn’t have worked on this book without the unrelenting support from my wife,
Tonya. Thank you for emptying the dishwasher all these times even though we both
know it’s my job.
Thanks to Thomas Blader for his detailed tech editing. Thanks to Eric Foster-Johnson
for adding his Ubuntu expertise to this book. Thanks to Sara Shlaer for her guidance
throughout the authoring process, and to Jenny Watson for being the most patient cat-
herder out there. Special thanks to Wayne Tucker for sharing his Debian experience
with me over the years, especially when it came to cutting-edge features like kernel 2.4.
Finally, I would like to express my gratitude to Mark Shuttleworth, Canonical Ltd.,
and the Ubuntu community for making Ubuntu possible and helping spread Linux
to the masses.
— François Caen
82935flast.qxd:Toolbox 10/29/07 12:55 PM Page xix
82935flast.qxd:Toolbox 10/29/07 12:55 PM Page xx
Introduction
The huge, enthusiastic Ubuntu community has swept up thousands and thousands of
new Ubuntu Linux users. If you are one of them, you will probably soon find yourself
wanting to dig beneath the surface of Ubuntu’s applications and graphical tools. You’ll
want to become a power user.
Becoming a power user with any Linux system means being able to work from the
command line. Few graphical interfaces will provide you with the options and flexi-
bility you get with commands that address the same features.
Ubuntu Linux Toolbox provides you with more than 1000 specific command lines to
help you dig deeply into Linux. Whether you are a systems administrator or desktop
user, the book will show you commands to create file systems, troubleshoot networks,
lock down security, and dig out almost anything you care to know about your Linux
system.
This book’s focus for your Linux command-line journey is Ubuntu, the community-
based Linux distribution sponsored by Canonical Ltd., and the Debian GNU/Linux
system on which it is based. Tapping into the skills needed to run those systems
can help you to work with your own Linux systems and to learn what you need
as a Linux professional.
Ubuntu Takes Linux by Storm
Since its inaugural release in 2004, Ubuntu (
www.ubuntu.com
) has become the most
popular and, arguably, best loved of the Linux distributions. From its name, which
translates to humanity toward others, to its focus on support for many languages and
special needs, Ubuntu has reflected its ideals of spreading free software beyond the
standard Linux target markets of geeks and corporate servers.
The Ubuntu project does everything it can to help ease new users into using its Linux-
based Ubuntu operating system. Ubuntu live CDs let a new user try out Ubuntu before
installing it. If the user likes Ubuntu, a single click can start an Ubuntu install to hard
disk. And because Ubuntu is based on Debian GNU/Linux, Ubuntu has been able to
make massive amounts of software from the Debian software repositories available
free to Ubuntu users.
Although it’s true that Ubuntu focuses on ease-of-use desktop systems, that doesn’t
mean Ubuntu has no commercial Linux value. In fact, Canonical offers paid enterprise-
quality support for its systems through its Canonical Global Support Services team
(
www.ubuntu.com/support/paid
). Canonical also offers training courses to help you
become an Ubuntu Training Partner (
www.ubuntu.com/support/training
). In other
words, there are professional opportunities for those who learn to operate Ubuntu.
82935flast.qxd:Toolbox 10/29/07 12:55 PM Page xxi
Who Should Read This Book
This book is for anyone who wants to access the power of a Linux system as a systems
administrator or user. You may be a Linux enthusiast, a Linux professional, or possibly
a computer professional who is increasingly finding the Windows systems in your data
center supplanted by Linux boxes.
The bottom line is that you want to find quick and efficient ways of getting Ubuntu
and other Debian-based systems working at peak performance. Those systems may
be a few desktop systems at work, a file and print server at your school, or a home
web server that you’re doing just for fun.
In the best case, you should already have some experience with Linux. However, if you
are a computer professional with skills managing other types of operating systems,
such as Windows, you should be able to easily adapt your knowledge to be able to use
the specific commands we cover in the book.
What This Book Covers
This is not a beginner’s Linux book. Before you jump in, it would be best if you have a
basic working knowledge of what Linux is, how the shell works, and what processes,
files systems, and network interfaces are. The book will then supplement that knowl-
edge with information you need to do the following activities:
❑ Get software — Ubuntu offers the Add/Remove Applications GUI tool for getting
software. With tools such as
apt-get
, you’ll learn the best ways to search for, down-
load, install, update, and otherwise manage software from the command line.
❑ Use the shell — Find neat techniques and tips for using the shell.
❑ Play with multimedia — Play and stream multimedia content from your computer.
You can also modify audio and image files, and then convert the content of those
files to different formats.
❑ Work with files — Use, manipulate, convert, and secure a wide range of file types
in Linux.
❑ Administer file systems — Access, format, partition, and monitor your file stor-
age hardware (hard disks, CD/DVD drives, floppy disks, USB flash drives, and
so on). Then create, format, and check the file systems that exist on those hard-
ware devices.
❑ Backup and restore data — Use simple commands to gather, archive, and com-
press your files into efficient backup archives. Then store those archives locally
or on remote computers.
❑ Work with processes — List running processes in a variety of ways, such as by
CPU use, processor use, or process ID. Then change running processes to have
them run in the background or foreground. Send signals to processes to have them
re-read configuration files, stop and resume processing, or stop completely (abort).
Introduction
xxii
82935flast.qxd:Toolbox 10/29/07 12:55 PM Page xxii