The Linux Command Line

[Pages:555]The Linux Command Line

Fifth Internet Edition

William Shotts

A Book

Copyright ?2008-2019, William E. Shotts, Jr.

This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License. To view a copy of this license, visit the link above or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042.

A version of this book is also available in printed form, published by No Starch Press. Copies may be purchased wherever fine books are sold. No Starch Press also offers electronic formats for popular e-readers. They can be reached at: .

Linux? is the registered trademark of Linus Torvalds. All other trademarks belong to their respective owners.

This book is part of the project, a site for Linux education and advocacy devoted to helping users of legacy operating systems migrate into the future. You may contact the project at .

Release History

Version 19.01A 19.01 17.10 16.07 13.07 09.12

Date January 28, 2019 January 17, 2019 October 19, 2017 July 28, 2016 July 6, 2013 December 14, 2009

Description Fifth Internet Edition (Corrected TOC) Fifth Internet Edition. Fourth Internet Edition. Third Internet Edition. Second Internet Edition. First Internet Edition.

Table of Contents

Introduction....................................................................................................xvi

Why Use the Command Line?......................................................................................xvi What This Book Is About..............................................................................................xvii Who Should Read This Book.......................................................................................xvii What's in This Book.....................................................................................................xviii How To Read This Book................................................................................................xix

Prerequisites............................................................................................................xix Why I Don't Call It "GNU/Linux"...........................................................................xix

What's New in the Fifth Internet Edition.........................................................................xx Acknowledgments..........................................................................................................xx

First Internet Edition..................................................................................................xx Second Internet Edition............................................................................................xxi Third Internet Edition................................................................................................xxi Fourth Internet Edition..............................................................................................xxi Fifth Internet Edition.................................................................................................xxi Your Feedback Is Needed!............................................................................................xxi Further Reading............................................................................................................xxi Colophon......................................................................................................................xxii

Part 1 ? Learning the Shell...............................................................1

1 ? What Is the Shell?......................................................................................2

Terminal Emulators..........................................................................................................2 Making Your First Keystrokes..........................................................................................2

Command History.......................................................................................................3 Cursor Movement.......................................................................................................3

A Few Words About Mice and Focus.....................................................................3 Try Some Simple Commands..........................................................................................4 Ending a Terminal Session..............................................................................................5

The Console Behind the Curtain...........................................................................5 Summing Up....................................................................................................................5 Further Reading...............................................................................................................6

2 ? Navigation...................................................................................................7

Understanding the File System Tree...............................................................................7 The Current Working Directory........................................................................................7 Listing the Contents of a Directory..................................................................................8

i

Changing the Current Working Directory........................................................................9 Absolute Pathnames..................................................................................................9 Relative Pathnames...................................................................................................9 Some Helpful Shortcuts............................................................................................11 Important Facts About Filenames........................................................................11

Summing Up..................................................................................................................12

3 ? Exploring the System..............................................................................13

Having More Fun with ls................................................................................................13 Options and Arguments............................................................................................14 A Longer Look at Long Format.................................................................................16

Determining a File's Type with file.................................................................................17 Viewing File Contents with less.....................................................................................17

What Is "Text"?.....................................................................................................17 Less Is More........................................................................................................19 Taking a Guided Tour.....................................................................................................19 Symbolic Links...............................................................................................................23 Hard Links.....................................................................................................................24 Summing Up..................................................................................................................24 Further Reading.............................................................................................................24

4 ? Manipulating Files and Directories........................................................25

Wildcards.......................................................................................................................25 Character Ranges................................................................................................27 Wildcards Work in the GUI Too............................................................................27

mkdir ? Create Directories.............................................................................................28 cp ? Copy Files and Directories....................................................................................28

Useful Options and Examples..................................................................................29 mv ? Move and Rename Files.......................................................................................30

Useful Options and Examples..................................................................................30 rm ? Remove Files and Directories...............................................................................31

Useful Options and Examples..................................................................................32 Be Careful with rm!..............................................................................................33

ln ? Create Links............................................................................................................33 Hard Links................................................................................................................33 Symbolic Links..........................................................................................................34

Let's Build a Playground................................................................................................34 Creating Directories..................................................................................................34 Copying Files............................................................................................................35 Moving and Renaming Files.....................................................................................36 Creating Hard Links..................................................................................................37 Creating Symbolic Links...........................................................................................38 Removing Files and Directories...............................................................................39 Creating Symlinks With The GUI.........................................................................41

Summing Up..................................................................................................................41 Further Reading.............................................................................................................41

5 ? Working with Commands........................................................................42

What Exactly Are Commands?......................................................................................42 Identifying Commands...................................................................................................43

ii

type ? Display a Command's Type...........................................................................43 which ? Display an Executable's Location...............................................................43 Getting a Command's Documentation..........................................................................44 help ? Get Help for Shell Builtins..............................................................................44 --help ? Display Usage Information..........................................................................45 man ? Display a Program's Manual Page................................................................46 apropos ? Display Appropriate Commands..............................................................47 whatis ? Display One-line Manual Page Descriptions..............................................48

The Most Brutal Man Page Of Them All..............................................................48 info ? Display a Program's Info Entry.......................................................................48 README and Other Program Documentation Files................................................50 Creating Our Own Commands with alias......................................................................50 Summing Up..................................................................................................................52 Further Reading.............................................................................................................52

6 ? Redirection................................................................................................54

Standard Input, Output, and Error.................................................................................54 Redirecting Standard Output.........................................................................................55 Redirecting Standard Error............................................................................................57

Redirecting Standard Output and Standard Error to One File.................................57 Disposing of Unwanted Output.................................................................................58

/dev/null In Unix Culture......................................................................................58 Redirecting Standard Input............................................................................................58

cat ? Concatenate Files............................................................................................59 Pipelines........................................................................................................................61

The Difference Between > and |..........................................................................61 Filters........................................................................................................................62 uniq - Report or Omit Repeated Lines......................................................................62 wc ? Print Line, Word, and Byte Counts...................................................................63 grep ? Print Lines Matching a Pattern......................................................................63 head / tail ? Print First / Last Part of Files................................................................64 tee ? Read from Stdin and Output to Stdout and Files............................................65 Summing Up..................................................................................................................66

Linux Is About Imagination..................................................................................66

7 ? Seeing the World as the Shell Sees It....................................................68

Expansion......................................................................................................................68 Pathname Expansion...............................................................................................69 Pathname Expansion of Hidden Files.................................................................70 Tilde Expansion........................................................................................................70 Arithmetic Expansion................................................................................................71 Brace Expansion......................................................................................................72 Parameter Expansion...............................................................................................73 Command Substitution.............................................................................................74

Quoting..........................................................................................................................75 Double Quotes..........................................................................................................76 Single Quotes...........................................................................................................78 Escaping Characters................................................................................................78 Backslash Escape Sequences............................................................................79

Summing Up..................................................................................................................79

iii

Further Reading.............................................................................................................80

8 ? Advanced Keyboard Tricks.....................................................................81

Command Line Editing..................................................................................................81 Cursor Movement.....................................................................................................81 Modifying Text...........................................................................................................82 Cutting and Pasting (Killing and Yanking) Text.........................................................82 The Meta Key......................................................................................................83

Completion....................................................................................................................83 Programmable Completion..................................................................................85

Using History.................................................................................................................85 Searching History.....................................................................................................86 History Expansion.....................................................................................................88 script....................................................................................................................88

Summing Up..................................................................................................................89 Further Reading.............................................................................................................89

9 ? Permissions..............................................................................................90

Owners, Group Members, and Everybody Else............................................................91 Reading, Writing, and Executing...................................................................................92

chmod ? Change File Mode.....................................................................................94 What the Heck is Octal?......................................................................................95

Setting File Mode with the GUI.................................................................................98 umask ? Set Default Permissions............................................................................98

Some Special Permissions................................................................................100 Changing Identities......................................................................................................101

su ? Run a Shell with Substitute User and Group IDs...........................................102 sudo ? Execute a Command as Another User.......................................................103

Ubuntu and sudo...............................................................................................104 chown ? Change File Owner and Group................................................................104 chgrp ? Change Group Ownership.........................................................................106 Exercising Our Privileges............................................................................................106 Changing Your Password............................................................................................108 Summing Up................................................................................................................109 Further Reading..........................................................................................................109

10 ? Processes..............................................................................................110

How a Process Works.................................................................................................110 Viewing Processes.......................................................................................................111

Viewing Processes Dynamically with top................................................................113 Controlling Processes..................................................................................................116

Interrupting a Process.............................................................................................116 Putting a Process in the Background.....................................................................117 Returning a Process to the Foreground.................................................................118 Stopping (Pausing) a Process................................................................................118 Signals.........................................................................................................................119 Sending Signals to Processes with kill...................................................................120 Sending Signals to Multiple Processes with killall..................................................122 Shutting Down the System..........................................................................................123 More Process-Related Commands.............................................................................124

iv

Summing Up................................................................................................................124

Part 2 ? Configuration and the Environment..............................127

11 ? The Environment..................................................................................128

What is Stored in the Environment?............................................................................128 Examining The Environment..................................................................................128 Some Interesting Variables.....................................................................................130

How Is The Environment Established?.......................................................................131 What's in a Startup File?........................................................................................132

Modifying the Environment..........................................................................................134 Which Files Should We Modify?.............................................................................135 Text Editors.............................................................................................................135 Using a Text Editor.................................................................................................136 Why Comments Are Important..........................................................................139 Activating Our Changes..........................................................................................140

Summing Up................................................................................................................140 Further Reading..........................................................................................................140

12 ? A Gentle Introduction to vi..................................................................141

Why We Should Learn vi.............................................................................................141 A Little Background.....................................................................................................142 Starting and Stopping vi..............................................................................................142

Compatibility Mode............................................................................................143 Editing Modes..............................................................................................................144

Entering Insert Mode..............................................................................................145 Saving Our Work....................................................................................................145 Moving the Cursor Around...........................................................................................146 Basic Editing................................................................................................................147 Appending Text.......................................................................................................147 Opening a Line.......................................................................................................148 Deleting Text...........................................................................................................149 Cutting, Copying, and Pasting Text........................................................................150 Joining Lines...........................................................................................................152 Search-and-Replace...................................................................................................152 Searching Within a Line..........................................................................................152 Searching the Entire File........................................................................................152 Global Search-and-Replace...................................................................................153 Editing Multiple Files...................................................................................................155 Switching Between Files.........................................................................................156 Opening Additional Files for Editing.......................................................................157 Copying Content from One File into Another..........................................................157 Inserting an Entire File into Another.......................................................................158 Saving Our Work.........................................................................................................159 Summing Up................................................................................................................160 Further Reading..........................................................................................................160

13 ? Customizing the Prompt......................................................................162

Anatomy of a Prompt...................................................................................................162

v

Trying Some Alternative Prompt Designs....................................................................164 Adding Color................................................................................................................165

Terminal Confusion............................................................................................165 Moving the Cursor.......................................................................................................168 Saving the Prompt.......................................................................................................169 Summing Up................................................................................................................169 Further Reading..........................................................................................................170

Part 3 ? Common Tasks and Essential Tools.............................171

14 ? Package Management..........................................................................172

Packaging Systems.....................................................................................................172 How a Package System Works...................................................................................173

Package Files.........................................................................................................173 Repositories............................................................................................................173 Dependencies.........................................................................................................174 High and Low-level Package Tools........................................................................174 Common Package Management Tasks.......................................................................175 Finding a Package in a Repository.........................................................................175 Installing a Package from a Repository..................................................................175 Installing a Package from a Package File..............................................................176 Removing a Package.............................................................................................176 Updating Packages from a Repository...................................................................177 Upgrading a Package from a Package File............................................................177 Listing Installed Packages......................................................................................178 Determining Whether a Package is Installed.........................................................178 Displaying Information About an Installed Package...............................................179 Finding Which Package Installed a File.................................................................179 Summing Up................................................................................................................180

The Linux Software Installation Myth.................................................................180 Further Reading..........................................................................................................181

15 ? Storage Media.......................................................................................182

Mounting and Unmounting Storage Devices...............................................................182 Viewing a List of Mounted File Systems.................................................................184 Why Unmounting Is Important...........................................................................187 Determining Device Names....................................................................................188

Creating New File Systems.........................................................................................191 Manipulating Partitions with fdisk...........................................................................192 Creating a New File System with mkfs...................................................................194

Testing and Repairing File Systems............................................................................195 What the fsck?...................................................................................................196

Moving Data Directly to and from Devices..................................................................196 Creating CD-ROM Images..........................................................................................197

Creating an Image Copy of a CD-ROM..................................................................197 Creating an Image From a Collection of Files........................................................197

A Program by Any Other Name.........................................................................198 Writing CD-ROM Images.............................................................................................198

Mounting an ISO Image Directly............................................................................198

vi

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download