The Linux Command Line

The Linux Command Line pdf epub mobi txt 电子书 下载 2026

出版者:No Starch Press, Incorporated
作者:William E. Shotts Jr.
出品人:
页数:480
译者:
出版时间:2012-1-17
价格:USD 39.95
装帧:Paperback
isbn号码:9781593273897
丛书系列:
图书标签:
  • Linux
  • Shell
  • 计算机
  • Command-line
  • 命令行
  • 编程
  • linux
  • bash
  • Linux
  • 命令行
  • 操作系统
  • 编程
  • 服务器
  • 运维
  • 命令
  • 基础
  • 学习
  • 实用
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

You've experienced the shiny, point-and-click surface of your Linux computer-now dive below and explore its depths with the power of the command line. The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell. Along the way you'll learn the timeless skills handed down by generations of gray-bearded, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more. In addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore. As you make your way through the book's short, easily-digestible chapters, you'll learn how to: * Create and delete files, directories, and symlinks * Administer your system, including networking, package installation, and process management * Use standard input and output, redirection, and pipelines * Edit files with Vi, the world's most popular text editor * Write shell scripts to automate common or boring tasks * Slice and dice text files with cut, paste, grep, patch, and sed Once you overcome your initial "shell shock," you'll find that the command line is a natural and expressive way to communicate with your computer. Just don't be surprised if your mouse starts to gather dust.

深入 Shell 编程的实践指南:构建高效、可靠的自动化工作流 本书并非聚焦于某一特定操作系统的命令行基础,而是将读者的目光引向 通用 Shell 脚本语言的强大潜力,以及如何运用这些工具构建复杂、健壮且跨平台(在 POSIX 兼容环境内)的自动化系统。我们假定读者已经掌握了基本的文本编辑器使用和文件系统导航概念,本书将直接切入核心:如何将一系列简单的命令组合成具有逻辑结构、能够自我管理并优雅地处理错误的复杂程序。 本书的结构围绕着“实用性”和“可维护性”两大支柱展开。我们不会冗余地介绍诸如 `ls`、`cd` 或 `mkdir` 等命令的默认功能,而是将重点放在 如何利用这些工具的参数、管道(Pipes)以及输入/输出重定向(I/O Redirection) 来执行复杂的任务。 第一部分:超越基础——理解 Shell 的本质与环境控制 本部分将深入探讨 Shell 作为解释器的工作原理,超越表面的命令执行。 1. 变量、参数与环境:精细化控制执行上下文 我们将详尽阐述变量的生命周期、作用域(局部、全局、导出),并深入解析参数展开(Parameter Expansion)的全部形态——包括默认值设置、空值检查、子串替换与删除。这部分内容旨在帮助开发者写出能够根据输入条件动态调整行为的脚本,而非僵硬的固定流程。我们将展示如何利用 `$?`、`$!` 和 `$`/`$@` 的细微差别,实现精确的进程状态捕获和参数传递。 2. 流程控制的艺术:构建分支与循环 本书将用大量篇幅解析 `if/then/else/elif` 结构的高级用法,特别是 如何利用退出状态码(Exit Status)而非仅仅依赖字符串比较 来进行条件判断,这是编写健壮脚本的关键。在循环方面,我们将超越简单的 `for i in 1 2 3` 结构,重点介绍 `while read` 循环在处理逐行输入流时的效率优势,以及如何结合 `select` 语句创建交互式的命令行菜单。 3. 函数定义与模块化:面向脚本编程思维 我们将详细介绍 Shell 函数的定义、参数传递(包括位置参数和命名参数的模拟)以及返回值机制。更重要的是,我们将探讨如何使用Source(`.` 或 `source`)命令实现脚本间的函数库共享,从而构建可重用的代码模块,有效避免重复劳动和命名冲突。 第二部分:数据流的驾驭——文本处理与流操作的深度挖掘 Shell 脚本的强大之处在于其对文本流的无缝处理能力。本部分聚焦于使用强大的文本处理工具链,实现高效的数据清洗、转换和报告生成。 4. 管道的哲学:高效串联工具的艺术 我们将系统地分析管道(`|`)如何工作,以及它对性能的影响。核心内容包括如何设计多阶段的管道,以确保数据格式在每一步转换后都能被下一个命令正确解析。我们将强调理解标准输入(stdin)、标准输出(stdout)和标准错误(stderr)流分离的重要性,并展示如何利用文件描述符(如 `3>` 或 `&2`)进行高级错误定向。 5. Sed 与 Awk 的实战应用:超越正则表达式的文本操作 本书不会仅仅停留在 `sed` 的基本替换,而是深入探讨其流编辑能力——例如,在特定行范围进行块操作、多行模式匹配以及缓冲区的使用。对于 `awk`,我们将详细讲解其编程模型(BEGIN, MAIN, END),如何利用内置变量(如 `NF`, `NR`, `FS`, `OFS`)和强大的关联数组(Associative Arrays)进行复杂的数据聚合、分组和报告生成,使其成为一个真正的报告语言。 6. 正则表达式的精进:从匹配到捕获 本章专注于现代 Shell 环境中(如支持 Perl 兼容正则表达式的工具)如何更精确地使用捕获组(Capturing Groups)来提取和重排数据,而非仅仅进行布尔匹配。 第三部分:系统交互与进程管理——构建后台服务与调度任务 脚本并非总是即时运行的,它们常常需要与操作系统内核进行通信,管理持久化进程或定时执行任务。 7. 作业控制与后台进程管理 我们将详细解析前台/后台作业(`&`, `fg`, `bg`, `jobs`)的控制机制。重点在于如何使用 `nohup` 和 `disown` 来确保脚本在终端会话结束时仍能继续运行,并探讨如何利用 进程替换(如 `<(command)`)来模拟文件进行高级 I/O 操作。 8. 信号处理与健壮性:优雅地退出 编写生产级脚本必须考虑异常终止。本章将聚焦于 Shell 如何响应操作系统信号(SIGINT, SIGHUP, SIGTERM 等),并使用 `trap` 命令来捕获这些信号,执行清理操作(如删除临时文件、关闭数据库连接),确保脚本能够“优雅地”而非“粗暴地”退出。 9. 调度与依赖:Cron/At 之外的现代方案 除了传统的 `cron` 机制,我们将探讨更现代的调度工具(如 `systemd` 的计时器单元或 `at` 的高级用法),重点在于如何确保脚本的执行时间是精确的,并且能够处理任务依赖和幂等性问题。 第四部分:脚本工程化——编写可维护、安全且跨平台的代码 本部分是将“能跑”的脚本提升为“专业”代码的关键。 10. 脚本安全与权限:避免常见的安全陷阱 我们将深入分析 Shell 脚本中的安全隐患,特别是当脚本处理用户输入或执行特权操作时。内容包括如何安全地处理用户提供的文件名(避免路径遍历攻击)、如何避免注入恶意命令,以及如何合理使用 `set -u` (未设置变量检查) 和 `set -o pipefail` (管道错误检查) 等安全选项。 11. 调试、日志与错误报告 教授如何利用 Shell 内置的调试模式(`set -x`),结合输出重定向,创建详细的执行日志。我们将设计一套通用的错误报告函数,用于在脚本的任何阶段记录时间戳和上下文信息,并统一向用户反馈清晰的错误代码。 12. 编写可移植的脚本 讨论 POSIX 标准与特定 Shell(如 Bash、Zsh)扩展之间的差异,指导读者如何使用 `!/usr/bin/env bash` 或明确指定解释器,并提供一套最佳实践,确保脚本在不同的类 Unix 环境中保持一致的行为。 --- 本书旨在为读者提供一个坚实的基础,使其能够独立设计、实现和维护复杂的命令行自动化解决方案,专注于逻辑的严谨性、数据的精确处理以及系统的可靠性。

作者简介

目录信息

Part 1 – Introduction.........................................................................1
1 – Introduction................................................................................................2
Why Use The Command Line?.......................................................................................2
What This Book Is About.................................................................................................3
Who Should Read This Book..........................................................................................3
What's In This Book.........................................................................................................4
How To Read This Book..................................................................................................5
Prerequisites...............................................................................................................5
Why I Don't Call It “GNU/Linux”.............................................................................5
Acknowledgments...........................................................................................................6
Your Feedback Is Needed!..............................................................................................7
Further Reading...............................................................................................................7
Colophon.........................................................................................................................7
Part 2 – Learning The Shell..............................................................9
2 – What Is The Shell?...................................................................................10
Terminal Emulators........................................................................................................10
Your First Keystrokes....................................................................................................10
Command History.....................................................................................................11
Cursor Movement.....................................................................................................11
A Few Words About Mice And Focus...................................................................11
Try Some Simple Commands........................................................................................12
Ending A Terminal Session............................................................................................13
The Console Behind The Curtain........................................................................13
Further Reading.............................................................................................................13
3 – Navigation.................................................................................................14
Understanding The File System Tree............................................................................14
The Current Working Directory......................................................................................14
Listing The Contents Of A Directory..............................................................................15
Changing The Current Working Directory.....................................................................16
Absolute Pathnames................................................................................................16
Relative Pathnames.................................................................................................16
Some Helpful Shortcuts............................................................................................18
Important Facts About Filenames........................................................................18
4 – Exploring The System.............................................................................20
More Fun With ls...........................................................................................................20
Options And Arguments............................................................................................21
A Longer Look At Long Format.................................................................................22
Determining A File's Type With file................................................................................23
Viewing File Contents With less....................................................................................24
What Is “Text”?.....................................................................................................24
Less Is More........................................................................................................26
A Guided Tour................................................................................................................26
Symbolic Links...............................................................................................................29
Hard Links.....................................................................................................................30
Further Reading.............................................................................................................30
5 – Manipulating Files And Directories........................................................31
Wildcards.......................................................................................................................31
Character Ranges................................................................................................33
Wildcards Work In The GUI Too..........................................................................33
mkdir – Create Directories.............................................................................................34
cp – Copy Files And Directories....................................................................................34
Useful Options And Examples..................................................................................35
mv – Move And Rename Files......................................................................................36
Useful Options And Examples..................................................................................36
rm – Remove Files And Directories...............................................................................37
Useful Options And Examples..................................................................................37
Be Careful With rm!.............................................................................................38
ln – Create Links............................................................................................................39
Hard Links................................................................................................................39
Symbolic Links..........................................................................................................40
Let's Build A Playground................................................................................................40
Creating Directories..................................................................................................40
Copying Files............................................................................................................41
Moving And Renaming Files.....................................................................................42
Creating Hard Links..................................................................................................43
Creating Symbolic Links...........................................................................................44
Removing Files And Directories...............................................................................45
Creating Symlinks With The GUI.........................................................................47
Summing Up.............................................................................................................47
6 – Working With Commands........................................................................48
What Exactly Are Commands?......................................................................................48
Identifying Commands...................................................................................................49
type – Display A Command's Type...........................................................................49
which – Display An Executable's Location...............................................................49
Getting A Command's Documentation..........................................................................50
help – Get Help For Shell Builtins............................................................................50
--help – Display Usage Information..........................................................................51
man – Display A Program's Manual Page................................................................51
apropos – Display Appropriate Commands..............................................................53
whatis – Display A Very Brief Description Of A Command.......................................53
The Most Brutal Man Page Of Them All..............................................................53
info – Display A Program's Info Entry.......................................................................54
README And Other Program Documentation Files................................................55
Creating Your Own Commands With alias....................................................................56
Revisiting Old Friends...................................................................................................58
Further Reading.............................................................................................................58
7 – Redirection................................................................................................59
Standard Input, Output, And Error.................................................................................59
Redirecting Standard Output.........................................................................................60
Redirecting Standard Error............................................................................................61
Redirecting Standard Output And Standard Error To One File................................62
Disposing Of Unwanted Output................................................................................63
/dev/null In Unix Culture......................................................................................63
Redirecting Standard Input............................................................................................63
cat – Concatenate Files............................................................................................63
Pipelines........................................................................................................................65
Filters........................................................................................................................66
uniq - Report Or Omit Repeated Lines....................................................................66
wc – Print Line, Word, And Byte Counts..................................................................67
grep – Print Lines Matching A Pattern......................................................................67
head / tail – Print First / Last Part Of Files................................................................68
tee – Read From Stdin And Output To Stdout And Files..........................................69
Summing Up..................................................................................................................70
Linux Is About Imagination..................................................................................70
8 – Seeing The World As The Shell Sees It..................................................72
Expansion......................................................................................................................72
Pathname Expansion...............................................................................................73
Pathname Expansion Of Hidden Files.................................................................74
Tilde Expansion........................................................................................................74
Arithmetic Expansion................................................................................................75
Brace Expansion......................................................................................................76
Parameter Expansion...............................................................................................77
Command Substitution.............................................................................................78
Quoting..........................................................................................................................79
Double Quotes..........................................................................................................79
Single Quotes...........................................................................................................81
Escaping Characters................................................................................................82
Backslash Escape Sequences............................................................................82
Summing Up..................................................................................................................83
Further Reading.............................................................................................................83
9 – Advanced Keyboard Tricks.....................................................................84
Command Line Editing..................................................................................................84
Cursor Movement.....................................................................................................84
Modifying Text...........................................................................................................85
Cutting And Pasting (Killing And Yanking) Text........................................................85
The Meta Key......................................................................................................86
Completion....................................................................................................................86
Programmable Completion..................................................................................88
Using History.................................................................................................................88
Searching History.....................................................................................................89
History Expansion.....................................................................................................91
script....................................................................................................................91
Summing Up..................................................................................................................92
Further Reading.............................................................................................................92
10 – Permissions............................................................................................93
Owners, Group Members, And Everybody Else............................................................94
Reading, Writing, And Executing...................................................................................95
chmod – Change file mode.......................................................................................97
What The Heck Is Octal?.....................................................................................98
Setting File Mode With The GUI.............................................................................100
umask – Set Default Permissions..........................................................................101
Some Special Permissions................................................................................103
Changing Identities......................................................................................................104
su – Run A Shell With Substitute User And Group IDs..........................................105
sudo – Execute A Command As Another User.......................................................106
Ubuntu And sudo...............................................................................................107
chown – Change File Owner And Group................................................................107
chgrp – Change Group Ownership.........................................................................109
Exercising Our Privileges............................................................................................109
Changing Your Password.............................................................................................111
Further Reading...........................................................................................................112
11 – Processes..............................................................................................113
How A Process Works.................................................................................................113
Viewing Processes......................................................................................................114
Viewing Processes Dynamically With top...............................................................116
Controlling Processes..................................................................................................118
Interrupting A Process.............................................................................................119
Putting A Process In The Background....................................................................119
Returning A Process To The Foreground...............................................................120
Stopping (Pausing) A Process................................................................................121
Signals.........................................................................................................................122
Sending Signals To Processes With kill.................................................................122
Sending Signals To Multiple Processes With killall................................................125
More Process Related Commands.............................................................................125
Part 3 – Configuration And The Environment.............................127
12 – 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?.............................................................................134
Text Editors.............................................................................................................134
Using A Text Editor.................................................................................................135
Why Comments Are Important..........................................................................138
Activating Our Changes..........................................................................................139
Summing Up................................................................................................................139
Further Reading..........................................................................................................139
13 – A Gentle Introduction To vi.................................................................140
Why We Should Learn vi.............................................................................................140
A Little Background ....................................................................................................141
Starting And Stopping vi..............................................................................................141
Compatibility Mode............................................................................................142
Editing Modes..............................................................................................................143
Entering Insert Mode..............................................................................................144
Saving Our Work....................................................................................................144
Moving The Cursor Around.........................................................................................145
Basic Editing................................................................................................................146
Appending Text.......................................................................................................146
Opening A Line.......................................................................................................147
Deleting Text...........................................................................................................148
Cutting, Copying And Pasting Text.........................................................................149
Joining Lines...........................................................................................................151
Search And Replace....................................................................................................151
Searching Within A Line..........................................................................................151
Searching The Entire File.......................................................................................151
Global Search And Replace...................................................................................152
Editing Multiple Files...................................................................................................154
Switching Between Files.........................................................................................155
Opening Additional Files For Editing......................................................................155
Copying Content From One File Into Another........................................................156
Inserting An Entire File Into Another.......................................................................157
Saving Our Work.........................................................................................................158
Further Reading..........................................................................................................159
14 – Customizing The Prompt.....................................................................160
Anatomy Of A Prompt..................................................................................................160
Trying Some Alternate Prompt Designs......................................................................162
Adding Color................................................................................................................163
Terminal Confusion............................................................................................163
Moving The Cursor......................................................................................................166
Saving The Prompt......................................................................................................167
Summing Up................................................................................................................167
Further Reading..........................................................................................................168
Part 4 – Common Tasks And Essential Tools.............................169
15 – Package Management..........................................................................170
Packaging Systems.....................................................................................................170
How A Package System Works...................................................................................171
Package Files.........................................................................................................171
Repositories............................................................................................................171
Dependencies.........................................................................................................172
High And Low-level Package Tools........................................................................172
Common Package Management Tasks.......................................................................173
Finding A Package In A Repository........................................................................173
Installing A Package From A Repository.................................................................173
Installing A Package From A Package File.............................................................174
Removing A Package.............................................................................................174
Updating Packages From A Repository..................................................................175
Upgrading A Package From A Package File...........................................................175
Listing Installed Packages......................................................................................176
Determining If A Package Is Installed.....................................................................176
Displaying Info About An Installed Package...........................................................177
Finding Which Package Installed A File.................................................................177
Summing Up................................................................................................................177
The Linux Software Installation Myth.................................................................178
Further Reading..........................................................................................................179
16 – Storage Media.......................................................................................180
Mounting And Unmounting Storage Devices..............................................................180
Viewing A List Of Mounted File Systems................................................................182
Why Unmounting Is Important...........................................................................185
Determining Device Names....................................................................................186
Creating New File Systems.........................................................................................189
Manipulating Partitions With fdisk..........................................................................189
Creating A New File System With mkfs..................................................................192
Testing And Repairing File Systems............................................................................193
What The fsck?..................................................................................................193
Formatting Floppy Disks..............................................................................................193
Moving Data Directly To/From Devices.......................................................................194
Creating CD-ROM Images..........................................................................................195
Creating An Image Copy Of A CD-ROM.................................................................195
Creating An Image From A Collection Of Files.......................................................195
A Program By Any Other Name.........................................................................196
Writing CD-ROM Images.............................................................................................196
Mounting An ISO Image Directly............................................................................196
Blanking A Re-Writable CD-ROM...........................................................................197
Writing An Image....................................................................................................197
Further Reading..........................................................................................................197
Extra Credit..................................................................................................................197
17 – Networking............................................................................................199
Examining And Monitoring A Network.........................................................................200
ping.........................................................................................................................200
traceroute...............................................................................................................201
netstat.....................................................................................................................202
Transporting Files Over A Network..............................................................................203
ftp............................................................................................................................204
lftp – A Better ftp.....................................................................................................206
wget........................................................................................................................206
Secure Communication With Remote Hosts...............................................................206
ssh..........................................................................................................................207
Tunneling With SSH..........................................................................................210
scp And sftp............................................................................................................211
An SSH Client For Windows?............................................................................212
Further Reading..........................................................................................................212
18 – Searching For Files..............................................................................213
locate – Find Files The Easy Way...............................................................................213
Where Does The locate Database Come From?..............................................215
find – Find Files The Hard Way...................................................................................215
Tests.......................................................................................................................216
Operators................................................................................................................218
Predefined Actions..................................................................................................221
User Defined Actions..............................................................................................223
Improving Efficiency...............................................................................................224
xargs.......................................................................................................................224
Dealing With Funny Filenames..........................................................................225
A Return To The Playground..................................................................................226
Options...................................................................................................................228
Further Reading..........................................................................................................229
19 – Archiving And Backup.........................................................................230
Compressing Files.......................................................................................................230
gzip.........................................................................................................................231
bzip2.......................................................................................................................233
Don’t Be Compressive Compulsive...................................................................234
Archiving Files.............................................................................................................234
tar............................................................................................................................234
zip...........................................................................................................................240
Synchronizing Files And Directories............................................................................242
Using rsync Over A Network...................................................................................245
Further Reading..........................................................................................................246
20 – Regular Expressions...........................................................................247
What Are Regular Expressions?............................................................................247
grep.............................................................................................................................247
Metacharacters And Literals........................................................................................249
The Any Character......................................................................................................250
Anchors.......................................................................................................................251
A Crossword Puzzle Helper...............................................................................251
Bracket Expressions And Character Classes..............................................................252
Negation.................................................................................................................252
Traditional Character Ranges.................................................................................253
POSIX Character Classes......................................................................................254
Reverting To Traditional Collation Order............................................................257
POSIX Basic Vs. Extended Regular Expressions.......................................................258
POSIX................................................................................................................258
Alternation...................................................................................................................259
Quantifiers...................................................................................................................260
? - Match An Element Zero Or One Time...............................................................260
* - Match An Element Zero Or More Times............................................................261
+ - Match An Element One Or More Times............................................................262
{ } - Match An Element A Specific Number Of Times..............................................262
Putting Regular Expressions To Work.........................................................................263
Validating A Phone List With grep...........................................................................263
Finding Ugly Filenames With find...........................................................................264
Searching For Files With locate.............................................................................265
Searching For Text In less And vim........................................................................265
Summing Up................................................................................................................267
Further Reading..........................................................................................................267
21 – Text Processing....................................................................................268
Applications Of Text.....................................................................................................268
Documents.............................................................................................................269
Web Pages.............................................................................................................269
Email.......................................................................................................................269
Printer Output.........................................................................................................269
Program Source Code............................................................................................269
Revisiting Some Old Friends.......................................................................................269
cat...........................................................................................................................270
MS-DOS Text Vs. Unix Text...............................................................................271
sort..........................................................................................................................271
uniq.........................................................................................................................279
Slicing And Dicing........................................................................................................280
cut...........................................................................................................................280
Expanding Tabs.................................................................................................283
paste.......................................................................................................................284
join..........................................................................................................................285
Comparing Text...........................................................................................................287
comm......................................................................................................................288
diff...........................................................................................................................288
patch.......................................................................................................................291
Editing On The Fly.......................................................................................................292
tr..............................................................................................................................292
ROT13: The Not-So-Secret Decoder Ring........................................................294
sed..........................................................................................................................295
People Who Like sed Also Like.........................................................................303
aspell......................................................................................................................303
Summing Up................................................................................................................307
Further Reading..........................................................................................................307
Extra Credit..................................................................................................................308
22 – Formatting Output................................................................................309
Simple Formatting Tools..............................................................................................309
nl – Number Lines..................................................................................................309
fold – Wrap Each Line To A Specified Length........................................................313
fmt – A Simple Text Formatter................................................................................313
pr – Format Text For Printing..................................................................................317
printf – Format And Print Data................................................................................318
Document Formatting Systems...................................................................................321
groff.........................................................................................................................322
Summing Up................................................................................................................328
Further Reading..........................................................................................................328
23 – Printing..................................................................................................330
A Brief History Of Printing............................................................................................330
Printing In The Dim Times......................................................................................330
Character-based Printers.......................................................................................331
Graphical Printers...................................................................................................332
Printing With Linux......................................................................................................333
Preparing Files For Printing.........................................................................................333
pr – Convert Text Files For Printing........................................................................333
Sending A Print Job To A Printer..................................................................................335
lpr – Print Files (Berkeley Style).............................................................................335
lp – Print Files (System V Style).............................................................................336
Another Option: a2ps..............................................................................................337
Monitoring And Controlling Print Jobs.........................................................................340
lpstat – Display Print System Status......................................................................340
lpq – Display Printer Queue Status........................................................................341
lprm / cancel – Cancel Print Jobs..........................................................................342
Summing Up................................................................................................................342
Further Reading..........................................................................................................342
24 – Compiling Programs............................................................................344
What Is Compiling?.....................................................................................................344
Are All Programs Compiled?..................................................................................345
Compiling A C Program...............................................................................................346
Obtaining The Source Code...................................................................................346
Examining The Source Tree...................................................................................348
Building The Program.............................................................................................350
Installing The Program...........................................................................................354
Summing Up................................................................................................................354
Further Reading..........................................................................................................355
Part 5 – Writing Shell Scripts.......................................................357
25 – Writing Your First Script......................................................................358
What Are Shell Scripts?...............................................................................................358
How To Write A Shell Script.........................................................................................358
Script File Format........................................................................................................359
Executable Permissions..............................................................................................360
Script File Location......................................................................................................360
Good Locations For Scripts....................................................................................362
More Formatting Tricks................................................................................................362
Long Option Names................................................................................................362
Indentation And Line Continuation.........................................................................362
Configuring vim For Script Writing.....................................................................363
Summing Up................................................................................................................364
Further Reading..........................................................................................................364
26 – Starting A Project.................................................................................365
First Stage: Minimal Document...................................................................................365
Second Stage: Adding A Little Data............................................................................367
Variables And Constants.............................................................................................368
Assigning Values To Variables And Constants.......................................................371
Here Documents.........................................................................................................372
Summing Up................................................................................................................375
Further Reading..........................................................................................................375
27 – Top-Down Design.................................................................................376
Shell Functions............................................................................................................377
Local Variables............................................................................................................380
Keep Scripts Running..................................................................................................381
Shell Functions In Your .bashrc File..................................................................384
Summing Up................................................................................................................384
Further Reading..........................................................................................................384
28 – Flow Control: Branching With if.........................................................385
if...................................................................................................................................385
Exit Status...................................................................................................................386
test...............................................................................................................................388
File Expressions.....................................................................................................388
String Expressions..................................................................................................391
Integer Expressions................................................................................................392
A More Modern Version Of test...................................................................................393
(( )) - Designed For Integers........................................................................................395
Combining Expressions...............................................................................................396
Portability Is The Hobgoblin Of Little Minds.......................................................398
Control Operators: Another Way To Branch................................................................399
Summing Up................................................................................................................399
Further Reading..........................................................................................................400
29 – Reading Keyboard Input......................................................................401
read – Read Values From Standard Input...................................................................402
Options...................................................................................................................404
IFS..........................................................................................................................406
You Can’t Pipe read...........................................................................................407
Validating Input............................................................................................................408
Menus..........................................................................................................................409
Summing Up................................................................................................................411
Extra Credit.............................................................................................................411
Further Reading...........................................................................................................411
30 – Flow Control: Looping With while / until...........................................412
Looping........................................................................................................................412
while........................................................................................................................412
Breaking Out Of A Loop...............................................................................................415
until.........................................................................................................................416
Reading Files With Loops...........................................................................................417
Summing Up................................................................................................................418
Further Reading..........................................................................................................418
31 – Troubleshooting...................................................................................419
Syntactic Errors...........................................................................................................419
Missing Quotes.......................................................................................................420
Missing Or Unexpected Tokens..............................................................................420
Unanticipated Expansions......................................................................................421
Logical Errors .............................................................................................................423
Defensive Programming.........................................................................................423
Verifying Input.........................................................................................................425
Design Is A Function Of Time............................................................................425
Testing.........................................................................................................................425
Test Cases..............................................................................................................426
Debugging...................................................................................................................427
Finding The Problem Area......................................................................................427
Tracing....................................................................................................................427
Examining Values During Execution......................................................................430
Summing Up................................................................................................................430
Further Reading..........................................................................................................431
32 – Flow Control: Branching With case...................................................432
case.............................................................................................................................432
Patterns..................................................................................................................434
Summing Up................................................................................................................436
Further Reading..........................................................................................................436
33 – Positional Parameters.........................................................................437
Accessing The Command Line...................................................................................437
Determining The Number of Arguments.................................................................438
shift – Getting Access To Many Arguments............................................................439
Simple Applications................................................................................................440
Using Positional Parameters With Shell Functions................................................441
Handling Positional Parameters En Masse.................................................................442
A More Complete Application......................................................................................444
Summing Up................................................................................................................447
Further Reading..........................................................................................................450
34 – Flow Control: Looping With for..........................................................451
for: Traditional Shell Form...........................................................................................451
Why i?................................................................................................................453
for: C Language Form.................................................................................................454
Summing Up................................................................................................................455
Further Reading..........................................................................................................456
35 – Strings And Numbers..........................................................................457
Parameter Expansion..................................................................................................457
Basic Parameters...................................................................................................457
Expansions To Manage Empty Variables...............................................................458
Expansions That Return Variable Names..............................................................460
String Operations....................................................................................................460
Arithmetic Evaluation And Expansion.........................................................................463
Number Bases........................................................................................................464
Unary Operators.....................................................................................................464
Simple Arithmetic....................................................................................................464
Assignment.............................................................................................................466
Bit Operations.........................................................................................................468
Logic.......................................................................................................................469
bc – An Arbitrary Precision Calculator Language........................................................472
Using bc..................................................................................................................473
An Example Script..................................................................................................473
Summing Up................................................................................................................475
Extra Credit..................................................................................................................475
Further Reading..........................................................................................................475
36 – Arrays....................................................................................................476
What Are Arrays?........................................................................................................476
Creating An Array........................................................................................................476
Assigning Values To An Array......................................................................................477
Accessing Array Elements...........................................................................................478
Array Operations.........................................................................................................480
Outputting The Entire Contents Of An Array..........................................................480
Determining The Number Of Array Elements.........................................................480
Finding The Subscripts Used By An Array.............................................................481
Adding Elements To The End Of An Array.............................................................481
Sorting An Array......................................................................................................482
Deleting An Array....................................................................................................482
Summing Up................................................................................................................483
Further Reading..........................................................................................................484
37 – Exotica...................................................................................................485
Group Commands And Subshells...............................................................................485
Process Substitution...............................................................................................486
Traps............................................................................................................................488
Temporary Files.................................................................................................491
Asynchronous Execution.............................................................................................492
wait.........................................................................................................................492
Named Pipes...............................................................................................................493
Setting Up A Named Pipe.......................................................................................494
Using Named Pipes................................................................................................494
Summing Up................................................................................................................495
Further Reading..........................................................................................................495
· · · · · · (收起)

读后感

评分

先感慨一下:许久没有完整的看完一本书了,更何况是一本技术书! 回到正题:这是一本非常好的 Linux 入门书籍,结构编排循序渐进,重点难点反复出现、有利于巩固消化;代码示例丰富、讲解简明扼要;适时插入相关背景知识、扩大对知识点来龙去脉的理解。 关键的问题是,你必须...  

评分

先感慨一下:许久没有完整的看完一本书了,更何况是一本技术书! 回到正题:这是一本非常好的 Linux 入门书籍,结构编排循序渐进,重点难点反复出现、有利于巩固消化;代码示例丰富、讲解简明扼要;适时插入相关背景知识、扩大对知识点来龙去脉的理解。 关键的问题是,你必须...  

评分

本读书笔记原文在: http://smilejay.com/2012/07/the-linux-command-line/ #copy abc_1.txt as abc_2.txt, abc_3.txt… seq 2 9 | xargs -I ‘{}’ cp abc_1.txt abc_{}.txt aspell check vim-temp.txt 做拼写检查 格式化输出的几个命令: nl: number lines; folder -w 80...

评分

先感慨一下:许久没有完整的看完一本书了,更何况是一本技术书! 回到正题:这是一本非常好的 Linux 入门书籍,结构编排循序渐进,重点难点反复出现、有利于巩固消化;代码示例丰富、讲解简明扼要;适时插入相关背景知识、扩大对知识点来龙去脉的理解。 关键的问题是,你必须...  

评分

综合来看,这本书更像是一个引导“教程”,只要有一点编程基础甚至零基础的人,按照这本书学习,都应该不会有明显的不适感。 综合几本我大体浏览过的Linux入门书, 《Linux Pocket Guide》 《Linux In a Nutshell》 《Running Linux》 《The Linux Command Line》 个人推荐的...  

用户评价

评分

我必须强调,《The Linux Command Line》这本书的深度和广度都超出了我的预期。我本以为它会是一本讲解基础指令的入门读物,但它所包含的内容远不止于此。它不仅涵盖了从文件管理、文本处理到进程控制等基础操作,还深入探讨了用户和组管理、网络配置、软件包管理等更高级的主题。书中对于Shell脚本的讲解,更是让我打开了新世界的大门。作者通过一些实际的案例,展示了如何编写简单的脚本来实现自动化任务,这对于提高工作效率有着不可估量的价值。我尤其喜欢书中关于查找和替换文本的章节,`grep`和`sed`这两个工具的强大功能,让我对文本处理有了全新的认识。它让我在处理大量的文本数据时,能够事半功倍。这本书不仅仅是教我如何使用命令,更是教我如何“思考”和“解决问题”,它培养了我一种逻辑分析和系统性的思维能力,这对我未来的学习和工作都将产生深远的影响。

评分

这本书的出现,绝对是我近期学习旅程中的一座灯塔。在接触Linux的初期,我常常感到迷失在浩瀚的命令行指令中,就像一个初入丛林的孩子,周围都是陌生的植物和动物,不知道从何处下脚,也不知道哪条路才是正确的。当我翻开《The Linux Command Line》这本书时,那种感觉瞬间被一种踏实和期待所取代。作者并没有上来就抛出一堆枯燥的技术术语,而是以一种循序渐进、由浅入深的逻辑,将命令行这个看似复杂的世界一一展现在我面前。我惊喜地发现,原来那些曾经让我望而生畏的指令,都可以被拆解成一个个易于理解的逻辑单元。书中的例子非常贴合实际应用,比如如何查找文件、如何管理进程、如何进行文件权限设置等等,这些都是我日常工作中经常会遇到的问题,而这本书给出了清晰、高效的解决方案。更重要的是,它教会了我“思考”的方式,让我明白命令行不仅仅是敲击键盘,更是一种强大的思维工具,能够帮助我更有效地与计算机进行交互,解决问题。它不仅仅是一本技术书籍,更像是一位耐心细致的导师,引导我一步步地走向熟练和精通。读完前几章,我已经能够自信地在终端里进行一些基本操作,并且对未来的学习充满了信心,感觉自己已经掌握了打开Linux世界大门的钥匙。

评分

这本书的写作方式非常具有启发性,它鼓励读者去“玩转”命令行,去探索它的无限可能。作者并没有把命令行描述成一个冰冷的工具,而是将其比作一个充满魔法的工具箱,里面装满了各种神奇的咒语。在学习这本书的过程中,我发现自己越来越享受在终端中敲击指令的过程,每一次成功的执行都让我感到一种成就感。书中对于一些看似复杂的概念,比如环境变量、通配符、别名等等,都通过非常直观的例子进行了讲解,让我能够快速理解其含义和用途。我特别喜欢书中关于文件查找和过滤的技巧,`find`命令的强大之处,加上`grep`的灵活组合,让我能够轻松地从海量的数据中定位我想要的信息。这本书让我明白,学习命令行并不是一件枯燥的事情,它也可以是一场充满惊喜的探索之旅。

评分

《The Linux Command Line》这本书的价值,在于它能够让你真正地理解Linux的底层运作机制。在没有学习这本书之前,我虽然知道Linux是一个强大的操作系统,但对其内部工作原理却知之甚少。这本书从最基础的Shell开始,一步步地揭示了Linux的奥秘。我尤其对书中关于用户和权限管理的章节印象深刻。它让我明白了为什么有些文件我无法访问,以及如何通过正确的权限设置来保障数据的安全。另外,书中对于进程和服务的管理,也让我对系统的运行有了更深的认识。我学会了如何查看系统中运行的所有进程,如何查看服务的状态,以及如何启动和停止服务。这些都是非常实用的技能,能够帮助我更好地管理和维护我的Linux系统。这本书就像一扇窗户,让我得以窥见Linux系统的内部世界,让我对这个操作系统有了更深刻的理解和尊重。

评分

《The Linux Command Line》这本书是一次非常愉快的学习体验。作者的写作风格幽默风趣,又不失专业性。他善于用生动的语言和贴近生活的例子来讲解复杂的概念,让我感觉学习过程轻松而有趣。我特别喜欢书中关于Shell脚本的入门讲解,它让我看到了自动化处理的强大威力。我学会了编写简单的脚本来批量重命名文件,或者自动备份重要数据,这极大地提高了我的工作效率。书中关于查找和过滤文本的技巧,也让我对`grep`和`find`这两个命令有了更深的认识。它让我能够从海量的数据中快速地找到我需要的信息。这本书不仅仅是一本技术指南,更像是一位良师益友,它不仅教会我如何使用Linux命令行,更激发了我对这个领域的兴趣,让我愿意继续深入探索。

评分

这本书的结构设计堪称完美,每一章的内容都承接上一章,形成了一个流畅的学习闭环。它不仅仅是指令的罗列,更是在教授一种解决问题的方法论。例如,在讲解了查找文件和搜索文本的指令后,书中会引导读者如何结合使用这些指令来完成更复杂的任务,比如在一个大型项目中找到某个特定的配置文件,或者从大量的日志文件中提取有用的信息。作者非常注重培养读者的“命令行思维”,也就是如何将复杂的问题分解成一系列可执行的命令,并找到最优化的组合方式。我特别欣赏书中关于Shell脚本编程的入门章节。它并没有一上来就讲复杂的脚本语言,而是从最简单的自动化任务开始,比如批量重命名文件,或者自动备份某个目录。这些例子非常贴近实际工作需求,让我能够立刻感受到命令行自动化带来的效率提升。这本书就像一位经验丰富的教练,不仅教你如何挥杆,更教你如何理解风向、场地,从而打出更精彩的一杆。

评分

对于一个对命令行心存畏惧的初学者来说,《The Linux Command Line》简直是一剂良药。在学习这本书之前,我常常觉得命令行是属于那些“计算机大神”们的领域,普通人很难掌握。然而,这本书彻底颠覆了我的认知。作者从最基础的概念讲起,比如终端是什么,Shell是什么,以及我们为什么需要使用命令行。这些看似简单的问题,却奠定了非常重要的基础,让我明白了我正在学习的东西的意义和价值。书中对于文件系统的导航,比如`ls`、`cd`、`pwd`这些最基本的命令,都做了非常细致的讲解,并且通过一个个小练习,让我能够立即动手实践。我特别喜欢书中关于文件和目录管理的部分,那些关于复制、移动、删除文件和目录的指令,在实际操作中非常有用。更让我惊喜的是,这本书还触及到了文本编辑,比如`nano`和`vi`(虽然`vi`的讲解可能需要多花一些时间来消化,但作者的讲解已经足够清晰)。它让我意识到,即使是基础的操作,也有许多隐藏的技巧和高效的方法,而这本书恰恰将这些都毫无保留地分享了出来。

评分

我必须说,《The Linux Command Line》这本书的写作风格是我最欣赏的一点。它没有采用那种“一本正经”的学术论文式写法,而是充满了个人色彩和生活化的语言。作者就像一个经验丰富的老朋友,坐在你对面,一边喝着咖啡,一边娓娓道来他在Linux命令行世界中的探索和发现。这种亲切的沟通方式,让我感觉不到学习的压力,反而像是在听一个精彩的故事。他会分享一些自己曾经遇到的坑,以及如何巧妙地避开这些陷阱,这对我这个初学者来说简直是无价之宝。书中对于一些抽象的概念,比如管道、重定向、Shell脚本等,都做了非常形象生动的比喻,让我能够快速理解其核心思想。我尤其喜欢作者在讲解某些指令时,会先给出它的基本用法,然后再深入剖析它的各种选项和参数,并给出具体的实践场景。这种“由点到面,由浅入深”的讲解方式,不仅让我的记忆更加深刻,也让我学会了如何根据实际需求来灵活运用这些指令,而不是死记硬背。这本书让我觉得,学习Linux命令行并不一定是枯燥乏味的,它也可以充满乐趣和探索的惊喜。

评分

《The Linux Command Line》这本书的价值,在于它能够让你真正“掌控”你的计算机。在接触这本书之前,我一直习惯于使用图形界面来完成各种操作,但很多时候,图形界面操作起来并不够直接和高效。这本书让我看到了命令行的强大之处。它能够让你以一种更加直接、更加精细的方式来控制你的系统。我尤其喜欢书中关于文件权限管理的章节,`chmod`和`chown`这些指令,让我明白了如何保护我的文件和数据,以及如何与他人共享文件。另外,书中对于进程管理的讲解,比如如何查看正在运行的进程,如何终止不需要的进程,这些都是非常实用的技能,能够帮助我保持系统的流畅运行。最令我印象深刻的是,作者在讲解过程中,反复强调了“man pages”的重要性。他鼓励读者学会查阅手册,自己去探索指令的更多可能性,而不是仅仅依赖于书本。这种“授人以渔”的教学方式,让我感觉自己正在成为一个独立的学习者。

评分

这本书最让我惊喜的一点是,它真正地将“学习”和“实践”无缝地结合在了一起。作者在讲解每一个指令时,都会提供清晰的示例,并且鼓励读者立即动手去尝试。我发现,通过这种方式,我对指令的理解更加深刻,记忆也更加牢固。书中关于文本处理的部分,比如`awk`和`sed`,虽然初看时会觉得有些难以理解,但作者通过一系列的实例,循序渐进地引导我掌握了这些强大的工具。我学会了如何使用它们来批量修改文件内容,如何从日志文件中提取特定信息,这在我的日常工作中极大地提高了效率。更重要的是,这本书让我养成了“主动学习”的习惯。它不仅仅是提供知识,更是激发了我对Linux命令行的好奇心,让我愿意去探索和发现更多的可能性。

评分

相见恨晚

评分

想起大二时寒冬看这本书时的情境

评分

相见恨晚

评分

这本刚出的书是目前最好的linux command line学习指南,没有之一,生动,清晰,详细,无论是菜鸟还是多年的老手都能从中受益,远超过之前作为标准教材的practical guide to xx系列。越来越喜欢No starch这个出版社了

评分

相见恨晚

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有