书海网短评:
撰写本书时使用的是Debian,这是你可获得的通用Linux分发版,也是广泛使用的版本。虽然使用的是Debian,但本书讨论的命令也在其他Linux分发版本中有效。只有在以root用户的身份运行命令时,才会产生一些主要的区别。
《Linux命令速查手册(第2版)》列出Linux命令短语和示例代码,帮助读者快捷高效地使用Linux操作系统和开发环境。
通俗易懂,简明扼要
便于携带,使用方便——你尽可抛弃所有厚重书籍,随身携带这本袖珍手册即可。
代码灵活,优质实用
《Linux命令速查手册(第2版)》附带100多个可供随时查阅的命令段和代码段,为你完成所有日常简单乃至复杂Linux任务提供完整命令短语。
ScottGranneman,是一位作家、教育家以及一家小公司的所有者。他迄今已独自撰写七本著作,与他人合著两本著作。Scott是圣路易斯华盛顿大学和韦伯斯特大学的兼职教授,主要讲授各种互联网和技术课程。
第Ⅰ部分入门
第1章需要了解的命令行相关事项3
1.1一切皆文件3
1.2文件名最大长度5
1.3文件名区分大小写5
1.4名称中应避免使用的特殊字符6
1.5通配符及其含义9
1.6影响命令行的特殊文件15
1.7如果屏幕上有过多内容,请重置18
1.8本章小结19
第2章导航文件系统21
2.1列出文件和文件夹22
2.2列出其他文件夹的内容23
2.3使用通配符列出文件夹的内容24
2.4查看子文件夹中的文件列表25
2.5以单独一列显示内容列表26
2.6以逗号分隔列表显示内容27
2.7查看隐藏的文件和文件夹28
2.8直观显示文件的类型29
2.9以各种颜色显示内容30
2.10列出权限、所有者以及其他信息32
2.11以倒序列出文件内容37
2.12按日期和时间排序内容38
2.13按文件大小排序内容40
2.14用K、M和G表示文件大小41
2.15显示当前目录的路径42
2.16改为不同的目录44
2.17改为home目录44
2.18改为之前的目录45
2.19本章小结46
第3章创建和销毁47
3.1将文件改为当前时间48
3.2将文件改为任意所需的时间49
3.3新建空文件51
3.4新建目录52
3.5创建新目录以及必要的子目录53
3.6复制文件54
3.7使用通配符复制文件56
3.8显示复制文件的过程58
3.9防止在复制时覆盖重要文件59
3.10复制目录61
3.11为建立完善副本而将文件复制到
另一个目录62
3.12移动文件和文件夹64
3.13重命名文件和文件夹66
3.14理解Linux存储文件的方式68
3.15创建指向另一个文件或目录的链接70
3.16删除文件78
3.17使用通配符一次性删除多个文件80
3.18防止删除关键文件80
3.19删除空目录81
3.20删除文件和非空的目录82
3.21删除难缠的文件84
3.22本章小结86
第4章学习命令87
4.1使用man查找命令相关信息88
4.2基于命令的名称来快速弄清其功能91
4.3基于其功能搜索命令93
4.4读取命令的特定手册页面95
4.5使用info学习命令97
4.6在info页面中导航98
4.7查找命令的可执行文件、源文件和
手册页面的路径102
4.8找出将要运行的命令的版本104
4.9揭示shell如何解释命令105
4.10本章小结107
第5章组合命令109
5.1连续运行多个命令109
5.2仅在前面的命令成功运行时才运行
下一条命令112
5.3仅在前面的命令运行失败时才运行
下一条命令115
5.4将一条命令的输出插入另一条命令116
5.5理解输入/输出流117
5.6将一条命令的输出用作另一条命令
的输入118
5.7将命令的输出重定向到文件121
5.8防止重定向时覆盖文件122
5.9将命令的输出追加到文件中123
5.10将文件用作命令的输入124
5.11结合使用输入和输出重定向125
5.12将输出同时发送到文件和stdout127
5.13本章小结129
第Ⅱ部分处理文件
第6章查看文件(主要是文本文件)133
6.1了解文件的类型134
6.2在标准输出设备上查看文件137
6.3将文件拼接至标准输出设备138
6.4将文件与其他文件拼接139
6.5拼接文件并添加行号141
6.6逐屏查看文本文件142
6.7在分页器中搜索145
6.8在分页查看文件时进行编辑146
6.9查看文件的前10行内容147
6.10查看多个文件的前10行内容148
6.11查看一个或多个文件的前几行内容149
6.12查看文件前几个字节、几K字节或
几M字节的内容150
6.13查看文件的最后10行内容153
6.14查看多个文件的最后10行内容154
6.15查看一个或多个文件的最后几行
内容155
6.16查看一个或多个文件中经常更新的
最后几行内容156
6.17本章小结158
第7章使用过滤器操作文本文件159
7.1计算文件中的单词数、行数和字符数160
7.2对文件中的行编号163
7.3选择分隔文件中的整列数据165
7.4排序文件的内容168
7.5按数字排序文件的内容170
7.6删除文件中重复的行173
7.7使用其他字符替换选择的字符177
7.8使用单个实例替换重复的字符178
7.9删除匹配的字符180
7.10转变文件中的文本184
7.11打印文件中的特定字段190
7.12本章小结194
第8章拥有者和权限197
8.1成为另一个用户198
8.2成为另一个用户并使用其环境变量199
8.3成为root用户200
8.4成为root用户并使用其环境变量201
8.5更改文件或目录所属的用户组202
8.6递归更改目录所属的用户组204
8.7更改文件和目录的拥有者205
8.8同时更改文件和目录的拥有者和
用户组207
8.9理解权限的基础208
8.10用字母表示法修改文件和目录的
权限211
8.11用数字权限修改文件和目录的权限214
8.12递归地修改权限218
8.13设置和清除suid220
8.14设置和清除sgid224
8.15设置和清除stickybit227
8.16本章小结230
第9章归档和压缩231
9.1用zip命令归档和压缩文件233
9.2用zip命令获得最好的压缩效果235
9.3归档和压缩目录及子目录中特定类型
的文件237
9.4用密码保护压缩的zip文档240
9.5解压缩文件242
9.6测试将要解压缩的文件243
9.7用gzip归档和压缩文件244
9.8用gzip递归地归档和压缩文件245
9.9解压缩用gzip压缩的文件247
9.10测试将要用gunzip解压缩的文件248
9.11用bzip2归档和压缩文件249
9.12解压缩用bzip2压缩的文件250
9.13测试将用bunzip2解压缩的文件251
9.14用tar归档文件252
9.15用tar和gzip归档和压缩文件254
9.16测试将要解开和解压缩的文件256
9.17解开和解压缩文件258
9.18本章小结259
第Ⅲ部分查找文件、单词等
第10章查找文件、目录、单词和短语263
10.1搜索文件名数据库264
10.2不区分大小写地搜索文件名数据库266
10.3更新locate使用的数据库268
10.4在文本文件中搜索匹配的模式270
10.5在文本文件中搜索特定模式的
基础知识271
10.6递归地搜索文件中的文本276
10.7搜索单词并突出结果277
10.8搜索文件中的文本且忽略大小写279
10.9在文件中搜索完整单词280
10.10显示搜索单词在文件中的对应
行号281
10.11在其他命令的输出中搜索特定
单词282
10.12查看文件中搜索单词的上下文284
10.13显示文件中没有包含匹配单词
的行287
10.14列出包含搜索词的文件名288
10.15列出文件中单词的出现次数289
10.16在搜索结果中搜索单词291
10.17本章小结292
第11章find命令293
11.1根据文件名搜索文件294
11.2根据拥有者搜索文件296
11.3根据文件大小搜索文件297
11.4根据文件类型搜索文件300
11.5根据时间搜索文件302
11.6当表达式均为true时显示结果
(AND)305
11.7当任一表达式为true时显示结果
(OR)306
11.8当表达式为nottrue时显示结果
(NOT)310
11.9对搜索到的每个文件执行命令312
11.10更高效地对搜索到的文件执行命令315
11.11对找到的包含空格的文件执行命令318
11.12本章小结320
第Ⅳ部分环境
第12章shell323
12.1查看命令行历史323
12.2再次运行最近输入的命令325
12.3使用数字再次运行之前的命令327
12.4使用字符串再次运行之前的命令328
12.5搜索之前输入的命令并运行329
12.6显示所有命令的别名335
12.7查看特定命令的别名336
12.8创建新的临时别名336
12.9创建新的永久别名337
12.10删除别名339
12.11创建新的临时函数340
12.12创建新的永久函数342
12.13显示所有函数346
12.14删除函数347
12.15何时使用别名以及何时使用函数348
12.16本章小结351
第13章监视系统资源353
13.1显示计算机的持续运行时间354
13.2查看正在运行的所有进程354
13.3查看进程树357
13.4查看特定用户拥有的进程359
13.5终止正在运行的进程360
13.6查看运行中进程的动态更新列表363
13.7列出打开的文件366
13.8列出某个用户打开的文件367
13.9列出使用特定文件的用户369
13.10列出特定程序的进程370
13.11显示系统RAM的相关信息372
13.12显示文件系统的磁盘使用情况374
13.13报告目录使用的文件空间376
13.14只报告目录使用的总空间378
13.15本章小结379
第14章安装软件381
14.1安装软件包(RPM)382
14.2删除软件包(RPM)384
14.3安装软件包及其依赖程序(RPM)385
14.4删除软件包及其依赖程序(RPM)389
14.5升级软件包及其依赖程序(RPM)390
14.6查找可供下载的软件包(RPM)392
14.7安装软件包(DEB)393
14.8删除软件包(DEB)395
14.9安装软件包及其依赖程序(DEB)396
14.10删除软件包及其依赖程序(DEB)402
14.11升级软件包及其依赖程序(DEB)403
14.12查找可供下载的软件包(DEB)406
14.13清除不再需要的安装包(DEB)409
14.14处理APT相关的错误(DEB)410
14.15本章小结412
第Ⅴ部分联网
第15章连接417
15.1查看网络接口的状态419
15.2验证计算机是否正在运行和能否
接收请求422
15.3跟踪数据包在两台主机之间经过的
路由424
15.4查询DNS记录426
15.5配置网络接口431
15.6查看无线网络接口的状态434
15.7配置无线网络接口437
15.8使用DHCP获得新的网络地址438
15.9激活网络连接441
15.10关闭网络连接443
15.11显示IP路由表444
15.12修改IP路由表447
15.13解决网络问题451
15.14本章小结456
第16章操作网络457
16.1安全登录到另一台计算机457
16.2在不使用密码的情况下安全登录到
另一台计算机461
16.3在计算机之间安全地传输文件465
16.4在主机之间安全复制文件468
16.5安全传输和备份文件470
16.6非交互式下载文件478
16.7非交互式下载整个网站485
16.8顺序下载多个文件和互联网资源487
16.9本章小结489
在Linux的许多特性中,命令行shell是最重要的特性之一。如果运行Linux服务器,则使用的主要界面将很可能是shell。如果你是在台式机中运行Linux系统的高级用户,那么可能总是打开终端来完成操作。但如果你是Linux新手,则可能会认为以后不会打开命令行,但总会有那么一天要使用各种命令,而且使用Linux越多,你就越有可能要使用shell。
shell在许多方面都是体现Linux强大和简洁的关键所在。可通过命令行完成一些使用任何喜爱的GUI都无法完成的操作。不论KDE或GNOME的功能有多么强大(或者是IceWM、XFCE以及其他为数众多的窗口化环境),使用终端始终能够更快、更有效地完成许多工作。如果要掌握Linux,首先需要掌握Linux命令行。
学习shell的传统方法是使用Linux的手册页面。虽然手册页面很有用,但这通常并不够,原因很简单:缺少示例。虽然一些手册页面也会提供少量例子,但总体来说,很难找到优秀的示例。这就给不同经验水平的用户带来了一个实际问题:查看列出的选项和相关的解释很简单,但要弄清楚在真实环境中应该怎么使用这些选项,就完全是另一回事儿了。
撰写《Linux命令速查手册(第2版)》的目的正是为了弥补手册页面中缺失的示例。我使用Linux已经有二十多年了,并且认为自己对这个令人惊讶的、强大的操作系统已相当精通。而且,我对命令行也非常着迷,因此始终打开终端窗口。最重要的是,我公司所依赖的Linux服务器完全没有GUI(我喜欢这种方式!),因此我不得不使用终端操作服务器。然而,我总是为其他Linux用户(以及使用Linux的朋友、熟人和LUG成员)缺少手册页面示例而感到惋惜。所以,当有人邀请我撰写《Linux命令速查手册(第2版)》,并且表明《Linux命令速查手册(第2版)》将由数百个演示最重要Linux命令的示例组成时,我立即回复道:“我等不及了!这就是我迫不及待想立刻购买的那《Linux命令速查手册(第2版)》!”
现在你手中拿着的就是这《Linux命令速查手册(第2版)》:这是一本讲解你必须知道的Linux命令的图书,它用大量示例演示了每个命令的使用方法。《Linux命令速查手册(第2版)》现在和将来都会是一本有用的参考书,我同时希望阅读《Linux命令速查手册(第2版)》能令你愉悦,在学习过程中享受乐趣。
注意:
可以访问我们的网站并注册,网址是informit.com/register,这样可以方便地访问《Linux命令速查手册(第2版)》适用的任何更新、下载资料以及勘误。
《Linux命令速查手册(第2版)》读者对象
撰写《Linux命令速查手册(第2版)》的目的是为Linux新人和有经验的用户提供帮助。刚参加过我们Linux用户组会议的人员如果想为自己的Linux使用之旅寻求指导和帮助,《Linux命令速查手册(第2版)》将助他们一臂之力。而已经使用shell完成各项工作(从管理系统、玩游戏到编写程序)的有经验用户也会发现《Linux命令速查手册(第2版)》十分有用。如果你刚开始使用Linux,《Linux命令速查手册(第2版)》将指导你使用shell及其强大的功能;如果你已使用Linux多年时间,《Linux命令速查手册(第2版)》也会讲授一些新技巧,提醒你回忆起遗忘许久的特性。
有许多种shell,如csh、tcsh、zsh,这里不再列举,但是我使用的是几乎每种Linux分发版的默认shell:bash,也就是BourneAgainShell。bashshell不仅无处不在,而且功能强大和灵活。熟悉了bash之后,你可选择探索其他shell,但在Linux领域中,读者必须掌握bash。
撰写《Linux命令速查手册(第2版)》时使用的是Debian,这是你可获得的通用Linux分发版,也是最广泛使用的版本。虽然使用的是Debian,但《Linux命令速查手册(第2版)》讨论的命令也在其他Linux分发版本中有效。只有在以root用户的身份运行命令时,才会产生一些主要的区别。一些分发版(如Ubuntu)鼓励使用sudo命令,而不是以root身份登录系统。换句话说,Ubuntu用户不必以root身份运行lsoffirefox,而是可以运行sudolsoffirefox。
注意:
眼尖的读者可能注意到,在第1版中使用了Ubuntu(或书中称其为K/Ubuntu,这是为了强调结合使用KDE和Ubuntu)。在第2版中改为采用更加通用和直观的Debian,Ubuntu就是以此分发版为基础开发出来的。
为满足大多数读者的需要,《Linux命令速查手册(第2版)》展示的命令看起来都必须以root用户的身份运行,而不是用sudo。如果在命令前面看到一个“#”符号,就是shell在表明root用户登录了系统,这意味着需要以root用户的身份运行该命令,或者如果使用Ubuntu或类似的Linux分发版,则可以使用sudo命令。
最后一件事:为避免《Linux命令速查手册(第2版)》内容过长,对书中许多命令的输出都进行了截断。例如,在你的Linux计算机上,输入ls-l后通常会看到如下的输出:
-rwxr-xr-x1scottadmins1261Jun12012script.sh
在《Linux命令速查手册(第2版)》的若干适当位置,你将看到此命令,但通常会发现类似于如下输出:
-rw-r--r--1scottadminsscript.sh
在此例中,我删除了在我看来不重要的数据,这有助于使输出只占用一行,而非两行。如果看到这些命令的输出实际上有多少行,你会相当惊讶,因此我在适当的位置对这些输出进行了删减(否则编辑会因为这《Linux命令速查手册(第2版)》最终的篇幅而崩溃!)。
提示:
《Linux命令速查手册(第2版)》中提供的许多Linux相关信息也适用于其他风格的UNIX,如BSD和OSX。请注意此处没有“所有”或“大多数”这样的措辞,而是用了“许多”。请记住这一点,你会发现《Linux命令速查手册(第2版)》也会对上述操作系统有所帮助。
第2版简介
当Pearson的编辑MarkTaber第一次找到我商谈编写《Linux命令速查手册(第2版)》的第2版时,我立刻抓住了这次机会。我每个月都会多次将自己写的书用作参考资料,因此这么多年下来,我注意到了其中的许多错误(每次都让我懊恼不已),并有许多内容需要修改、删除或添加。
我的目标是使《Linux命令速查手册(第2版)》的第2版列入新读者和第1版拥有者的必买清单。这不是所谓的只有少量更改的新版本。下面列出了在第2版中新增或更改的内容:
●将之前的第2章“基础命令”拆分为两章:第2章“导航文件系统”和第3章“创造和毁灭”。第1版中的第2章内容过多,将不同类型的命令放在一起介绍。拆分为两章之后,内容组织形式就更易于管理,并且合乎情理(尽管这意味着要对之后的每一章重新编号)。
●删除了第6章“打印和管理打印任务”和第16章“Windows联网”,因为这些内容已不像十年前那样重要。此外,需要执行打印操作或连接并使用基于Windows网络的大多数人都有适当的GUI工具来完成这些工作。然而不要感到失望,你仍然可以在我的网站上找到这些原始章节的内容:www.granneman.com/linux-redaction。
●添加了新的第7章“使用过滤器操作文本文件”,本章中将给出大量重要的全新信息,你会发现这些信息非常有用。
●删除了第2章(现在拆分为第2章和第3章)、第3章(现在的第4章)、第7(8)章、第8(9)章、第9(10)章、第10(11)章和第14(15)章中的部分小节。再次声明,你可在我的网站上找到这些原始章节的内容:www.granneman.com/linux-redaction。
●在第1~6章和第8~13章中新增了一些小节,并且大幅度增加了第15章的内容,不仅保留了已经淘汰的命令(因为它们仍然出现在大多数分发版中),还增加了对所有相关新命令的介绍。
●将一些小节移入其他章中,以使内容组织更加合理,在第8章中可以明显看出这一点。
●对《Linux命令速查手册(第2版)》的每一章都进行了适当修订。修正了一些错误,重写了表达不清楚的部分内容,添加了额外的“注意”和“提示”部分,并通过添加或修订文本改进了示例。
●顺带介绍了更多的命令,如ssh-agent、wput、htop、dnf、pandoc、rename、whoami和iconv。
●提供了一些值得了解的其他相关信息,如变量、for循环、cron作业、实参和sources。还有更多的H.P.Lovecraft!
最后给出一点提示:如果有链接已断开,不再生效,可尝试在InternetArchive的WaybackMachine(可在https://archive.org中找到该工具)中输入这些链接,看看是否仍然可以找到链接的内容。然后请告知我,这样我就可以在未来的版本中修复此引用。
感谢你读到此处,希望诸位能够喜欢上《Linux命令速查手册(第2版)》的第2版!
《Linux命令速查手册(第2版)》中使用的约定
《Linux命令速查手册(第2版)》使用以下约定:
●等宽字体用于区分代码/编程相关的术语和普通的文本,表示应该在屏幕上显示的信息。例如:
df命令在默认情况下是以KB(千字节)来显示结果的,但是如果使用-h(或--human-readable)选项,则通常更容易让人理解。
Itwilllooklikethistomimicthewaytext
looksonyourscreen.
●如果代码太长一行放不下,转行代码开始前使用箭头(?)提示读者接下来的代码应该与前面的代码在同一行。
●此外,《Linux命令速查手册(第2版)》使用以下要素来表明其他一些相关信息。
注意:
表示与正在讨论的内容有关的信息。
提示:
表示提供建议,或指导另一种更容易的解决方法。
警告:
用于指出潜在的问题,帮助你远离困境。









