好书推荐 好书速递 排行榜 读书文摘

精通Linux(第2版)

精通Linux(第2版)
作者:[美] Brian Ward
译者:姜南 / 袁志鹏
出版社:人民邮电出版社
出版年:2015-07
ISBN:9787115394927
行业:计算机
浏览数:2

内容简介

本书讲解了Linux操作系统的工作机制以及运行Linux系统所需的常用工具和命令。根据系统启动的大体顺序,本书更深入地介绍从设备管理到网络配置的各个部分,最后演示了系统各部分的运行方式,并介绍了一些基本技巧和开发人员常用的工具。

Linux不像其他操作,会对用户隐藏很多重要的东西。相反,Linux会让用户掌控一切。而要掌控一切,就必须理解这个操作系统的工作机制,包括如何启动、如何连网,以及Linux内核如何工作。本书是畅销书的新版本,作者拥有多年的实践经验,内容通俗易懂。通过这本书,读者可以迅速从Linux新手变成老鸟,把作者丰富的经验装进自己的知识库。

......(更多)

作者简介

Brian Ward

毕业于芝加哥大学,获计算机科学博士学位。1993年开始接触Linux,研究并教授Linux二十余年。除了这本深受读者喜爱的书,Brian还著有Linux Kernel-HOWTO(No Starch Press)、The Linux Problem Solver(No Starch Press)等畅销著作。现居旧金山,身兼计算机高级顾问与高级讲师等数职。

......(更多)

目录

第1章 概述  1

1.1 Linux操作系统中的抽象级别和层次  2

1.2 硬件系统:理解主内存  3

1.3 内核  3

1.3.1 进程管理  4

1.3.2 内存管理  5

1.3.3 设备驱动程序和设备管理  5

1.3.4 系统调用和系统支持  5

1.4 用户空间  6

1.5 用户  7

1.6 前瞻  8

第2章 基础命令和目录结构  9

2.1 Bourne shell: /bin/sh  9

2.2 shell的使用  10

2.2.1 shell窗口  10

2.2.2 cat命令  11

2.2.3 标准输入输出  11

2.3 基础命令  11

2.3.1 ls命令  12

2.3.2 cp命令  12

2.3.3 mv命令  12

2.3.4 touch命令  13

2.3.5 rm命令  13

2.3.6 echo命令  13

2.4 浏览目录  13

2.4.1 cd命令  14

2.4.2 mkdir命令  14

2.4.3 rmdir命令  14

2.4.4 shell通配符  14

2.5 中间命令  15

2.5.1 grep命令  15

2.5.2 less命令  16

2.5.3 pwd命令  16

2.5.4 diff命令  16

2.5.5 file命令  17

2.5.6 find和locate命令  17

2.5.7 head和tail命令  17

2.5.8 sort命令  17

2.6 更改密码和shell  18

2.7 dot文件  18

2.8 环境变量和shell变量  18

2.9 命令路径  19

2.10 特殊字符  19

2.11 命令行编辑  20

2.12 文本编辑器  21

2.13 获取在线帮助  21

2.14 shell输入输出  23

2.14.1 标准错误输出  23

2.14.2 标准输入重定向  24

2.15 理解错误信息  24

2.15.1 解析Unix的错误信息  24

2.15.2 常见错误  25

2.16 查看和操纵进程  26

2.16.1 命令选项  26

2.16.2 终止进程  27

2.16.3 任务控制  27

2.16.4 后台进程  28

2.17 文件模式和权限  28

2.17.1 更改文件权限  29

2.17.2 符号链接  30

2.17.3 创建符号链接  30

2.18 归档和压缩文件  31

2.18.1 gzip命令  31

2.18.2 tar命令  31

2.18.3 压缩归档文件(.tar.gz)  32

2.18.4 zcat命令  32

2.18.5 其他的压缩命令  33

2.19 Linux目录结构基础  33

2.19.1 root目录下的其他目录  34

2.19.2 /usr目录  35

2.19.3 内核位置  35

2.20 以超级用户的身份运行命令  35

2.20.1 sudo命令  35

2.20.2 /etc/sudoers  35

2.21 前瞻  36

第3章 设备管理  37

3.1 设备文件  37

3.2 sysfs设备路径  38

3.3 dd命令和设备  39

3.4 设备名总结  40

3.4.1 硬盘:/dev/sd*  40

3.4.2 CD和DVD:/dev/sr*  41

3.4.3 PATA 硬盘:/dev/hd*  41

3.4.4 终端设备/dev/tty/*、/dev/pts/*和/dev/tty  41

3.4.5 串行端口:/dev/ttyS*  42

3.4.6 并行端口:/dev/lp0 和/dev/lp1  42

3.4.7 音频设备:/dev/snd/*、/dev/dsp、/dev/audio 和其他  43

3.4.8 创建设备文件  43

3.5 udev  44

3.5.1 devtmpfs  44

3.5.2 udevd的操作和配置  44

3.5.3 udevadm  46

3.5.4 设备监控  47

3.6 详解SCSI和Linux内核  47

3.6.1 USB存储设备和SCSI  50

3.6.2 SCSI和ATA  50

3.6.3 通用SCSI设备  51

3.6.4 访问设备的多种方法  51

第4章 硬盘和文件系统  53

4.1 为磁盘设备分区  55

4.1.1 查看分区表  55

4.1.2 更改分区表  56

4.1.3 磁盘和分区的构造  57

4.1.4 固态硬盘  58

4.2 文件系统  59

4.2.1 文件系统类型  59

4.2.2 创建文件系统  60

4.2.3 挂载文件系统  60

4.2.4 文件系统UUID   62

4.2.5 磁盘缓冲、缓存和文件系统   62

4.2.6 文件系统挂载选项  63

4.2.7 重新挂载文件系统  64

4.2.8 /etc/fstab文件系统表  64

4.2.9 /etc/fstab的替代者  65

4.2.10 文件系统容量  65

4.2.11 检查和修复文件系统.66

4.2.12 特殊用途的文件系统.68

4.3 交换空间  68

4.3.1 使用磁盘分区作为交换空间   69

4.3.2 使用文件作为交换空间   69

4.3.3 你需要多大的交换空间   69

4.4 前瞻:磁盘和用户空间  70

4.5 深入传统文件系统  70

4.5.1 查看inode细节  72

4.5.2 在用户空间中使用文件系统   73

4.5.3 文件系统的演进  73

第5章 Linux内核的启动  75

5.1 启动消息  75

5.2 内核初始化和启动选项  76

5.3 内核参数  77

5.4 引导装载程序  78

5.4.1 引导装载程序任务  78

5.4.2 引导装载程序概述  79

5.5 GRUB 简介  79

5.5.1 使用GRUB命令行浏览设备和分区  81

5.5.2 GRUB配置信息  83

5.5.3 安装GRUB  84

5.6 UEFI 安全启动的问题  86

5.7 链式加载其他操作系统  86

5.8 引导装载程序细节  86

5.8.1 MBR启动  87

5.8.2 UEFI启动  87

5.8.3 GRUB工作原理  87

第6章 用户空间的启动  89

6.1 init介绍  89

6.2 System V运行级别  90

6.3 识别你的init  91

6.4 systemd  91

6.4.1 单元和单元类型  91

6.4.2 systemd中的依赖关系  92

6.4.3 systemd配置  94

6.4.4 systemd操作  96

6.4.5 在systemd中添加单元  98

6.4.6 systemd进程跟踪和同步  99

6.4.7 systemd的按需和资源并行启动  99

6.4.8 systemd的System V兼容性  103

6.4.9 systemd辅助程序  103

6.5 Upstart  104

6.5.1 Upstart初始化过程  104

6.5.2 Upstart任务  105

6.5.3 Upstart配置  107

6.5.4 Upstart操作  110

6.5.5 Upstart日志  111

6.5.6 Upstart运行级别和System V兼容性  111

6.6 System V init  112

6.6.1 System V init启动命令顺序  113

6.6.2 System V init链接池  114

6.6.3 run-parts  115

6.6.4 System V init控制  115

6.7 关闭系统  116

6.8 initramfs  117

6.9 紧急启动和单用户模式  118

第7章 系统配置:日志、系统时间、批处理任务和用户  119

7.1 /etc目录结构  119

7.2 系统日志  120

7.2.1 系统日志  120

7.2.2 配置文件  120

7.3 用户管理文件  122

7.3.1 /etc/passwd文件  122

7.3.2 特殊用户  123

7.3.3 /etc/shadow文件  124

7.3.4 用户和密码管理  124

7.3.5 用户组  124

7.4 getty和login  125

7.5 设置时间  125

7.5.1 内核时间和时区  126

7.5.2 网络时间  127

7.6 使用cron来调度日常任务  127

7.6.1 安装crontab文件  128

7.6.2 系统crontab文件  128

7.6.3 cron的未来  129

7.7 使用at进行一次性任务调度  129

7.8 了解用户ID和用户切换  129

7.9 用户标识和认证  131

7.10 PAM  132

7.10.1 PAM配置  133

7.10.2 关于PAM的一些注解  135

7.10.3 PAM和密码  136

7.11 前瞻  136

第8章 进程与资源利用详解  137

8.1 进程跟踪  137

8.2 使用lsof 查看打开的文件  138

8.2.1 lsof输出  138

8.2.2 lsof的使用  139

8.3 跟踪程序执行和系统调用  139

8.3.1 strace命令  139

8.3.2 ltrace命令  141

8.4 线程  141

8.4.1 单线程进程和多线程进程  141

8.4.2 查看线程  142

8.5 资源监控简介  143

8.6 测量CPU时间  143

8.7 调整进程优先级  144

8.8 平均负载  145

8.8.1 uptime的使用  145

8.8.2 高负载  145

8.9 内存  146

8.9.1 内存工作原理  146

8.9.2 内存页面错误  146

8.10 使用vmstat监控CPU和内存性能  147

8.11 I/O监控  149

8.11.1 使用iostat  149

8.11.2 使用iotop查看进程的I/O使用和监控  150

8.12 使用pidstat监控进程  151

8.13 更深入的主题  151

第9章 网络与配置  153

9.1 网络基础  153

9.2 网络层次  154

9.3 网际层  155

9.3.1 查看自己计算机的IP 地址  156

9.3.2 子网  157

9.3.3 共用子网掩码与无类域内路由选择  157

9.4 路由和内核路由表  158

9.5 基本ICMP和DNS工具  159

9.5.1 ping  159

9.5.2 traceroute  160

9.5.3 DNS与host  160

9.6 物理层与以太网  161

9.7 理解内核网络接口  161

9.8 配置网络接口  162

9.9 开机启动的网络配置  163

9.10 手动和开机启动的网络配置带来的问题  163

9.11 一些网络配置管理器  164

9.11.1 NetworkManager的操作  164

9.11.2 与NetworkManager交互  164

9.11.3 NetworkManager的配置  165

9.12 解析主机名  166

9.12.1 /etc/hosts  167

9.12.2 resolv.conf 文件  167

9.12.3 缓存和零配置DNS  167

9.12.4 /etc/nsswitch.conf文件  168

9.13 Localhost  168

9.14 传输层:TCP、UDP和Service  169

9.14.1 TCP 端口与连接  169

9.14.2 建立TCP连接  169

9.14.3 端口的数字和/etc/services   170

9.14.4 TCP的特点  171

9.14.5 UDP  171

9.15 普通本地网络  172

9.16 理解DHCP  173

9.16.1 Linux的DHCP客户端   173

9.16.2 Linux的DHCP服务器   173

9.17 将Linux配置成路由器  174

9.18 私有网络  175

9.19 网络地址转换(IP伪装)   176

9.20 路由器与Linux  177

9.21 防火墙  177

9.21.1 Linux防火墙基础  178

9.21.2 设置防火墙规则  179

9.21.3 防火墙策略  181

9.22 以太网、IP和ARP  182

9.23 无线以太网  183

9.23.1 iw  184

9.23.2 无线网络安全  184

9.24 小结  185

第10章 网络应用与服务  186

10.1 服务的基本概念  186

10.2 网络服务器  188

10.3 SSH  189

10.3.1 SSHD服务器  190

10.3.2 SSH客户端  191

10.4 守护进程inetd和xinetd  193

10.5 诊断工具  193

10.5.1 lsof194

10.5.2 tcpdump  195

10.5.3 netcat  196

10.5.4 扫描端口  197

10.6 远程程序调用  198

10.7 网络安全  198

10.7.1 典型漏洞  199

10.7.2 安全资源  199

10.8 前瞻  200

10.9 套接字:进程与网络的通信方式   200

10.10 Unix域套接字  201

10.10.1 对开发者的好处.201

10.10.2 列出Unix域套接字   202

第11章 shell脚本  203

11.1 shell脚本基础  203

11.2 引号与字面量  204

11.2.1 字面量  205

11.2.2 单引号  205

11.2.3 双引号  205

11.2.4 单引号的字面义  206

11.3 特殊变量  206

11.3.1 单个参数:$1,$2,……   207

11.3.2 参数的数量:$#  207

11.3.3 所有参数:$@  207

11.3.4 脚本名:$0  208

11.3.5 进程号:$$  208

11.3.6 退出码:$?  208

11.4 退出码  208

11.5 条件判断  209

11.5.1 防范空参数  209

11.5.2 使用其他命令来测试  210

11.5.3 elif  210

11.5.4 逻辑结构&&和||  210

11.5.5 测试条件  211

11.5.6 用case进行字符串匹配  213

11.6 循环  214

11.6.1 for循环  214

11.6.2 while循环  214

11.7 命令替换  215

11.8 管理临时文件  216

11.9 here文档  216

11.10 重要的shell脚本工具  217

11.10.1 basename  217

11.10.2 awk  218

11.10.3 sed  218

11.10.4 xargs  219

11.10.5 expr  219

11.10.6 exec  219

11.11 子shell  220

11.12 在脚本中包含其他文件  220

11.13 读取用户输入  221

11.14 什么时候(不)应该使用shell脚本  221

第12章 在网络上传输文件  222

12.1 快速复制  222

12.2 rsync  222

12.2.1 rsync基础  223

12.2.2 准确复制目录结构  224

12.2.3 以斜杠结尾  224

12.2.4 排除文件与目录  226

12.2.5 合并、检查及冗长模式  226

12.2.6 压缩  227

12.2.7 限制带宽  227

12.2.8 传文件到你的计算机  227

12.2.9 更多有关rsync的话题  227

12.3 文件共享  228

12.4 用Samba分享文件  228

12.4.1 配置服务器  228

12.4.2 服务器访问控制  229

12.4.3 密码  229

12.4.4 启动服务器  231

12.4.5 诊断和日志文件  231

12.4.6 配置文件共享  231

12.4.7 home目录  232

12.4.8 共享打印机  232

12.4.9 使用Samba客户端  232

12.4.10 作为客户去访问文件  233

12.5 NFS 客户端  234

12.6 有关网络文件服务的选择与局限的更多内容  234

第13章 用户环境  235

13.1 创建启动文件的规则  235

13.2 何时需要修改启动文件  236

13.3 shell启动文件的元素  236

13.3.1 命令路径  236

13.3.2 帮助手册的路径  237

13.3.3 提示符  237

13.3.4 别名  238

13.3.5 权限掩码  238

13.4 启动文件的顺序及例子  238

13.4.1 bash shell  239

13.4.2 tcsh shell  241

13.5 用户默认设置  241

13.5.1 shell默认设置  242

13.5.2 编辑器  242

13.5.3 翻页器  242

13.6 启动文件的一些陷阱  242

13.7 前瞻  243

第14章 Linux 桌面概览  244

14.1 桌面组件  244

14.1.1 窗口管理器  245

14.1.2 工具包  245

14.1.3 桌面环境  245

14.1.4 应用  245

14.2 近观X Window系统  245

14.2.1 显示管理器  246

14.2.2 网络透明性  246

14.3 探索X客户端  247

14.3.1 X事件  247

14.3.2 理解X输入以及偏好设定  248

14.4 X的未来  250

14.5 D-Bus  250

14.5.1 系统和会话实例  251

14.5.2 监视D-Bus消息  251

14.6 打印  251

14.6.1 CUPS  252

14.6.2 格式转换与打印过滤器  252

14.7 其他有关桌面的话题  253

第15章 开发工具  254

15.1 C 编译器  254

15.1.1 多个源码文件  255

15.1.2 头(include)文件和目录  256

15.1.3 连接库  257

15.1.4 共享库  258

15.2 make  261

15.2.1 一个Makefile实例  261

15.2.2 内置规则  262

15.2.3 最终的程序构建  262

15.2.4 保持更新  263

15.2.5 命令行参数与选项263

15.2.6 标准宏和变量  264

15.2.7 常规的目标  264

15.2.8 组织一个Makefile.265

15.3 调试器  266

15.4 Lex和Yacc.267

15.5 脚本语言  267

15.5.1 Python  268

15.5.2 Perl  268

15.5.3 其他脚本语言  268

15.6 Java  269

15.7 展望:编译包  270

第16章 从C代码编译出软件.271

16.1 软件的构建系统  271

16.2 解开C源码包  272

16.3 GNU autoconf  273

16.3.1 一个autoconf的例子   274

16.3.2 使用打包工具来安装   275

16.3.3 configure脚本的选项   275

16.3.4 环境变量  276

16.3.5 autoconf的目标  277

16.3.6 autoconf的日志文件   277

16.3.7 pkg-config   277

16.4 实践安装  278

16.5 打补丁  279

16.6 编译和安装的问题排查  280

16.7 前瞻  282

第17章 在基础上搭建  284

17.1 Web服务器与应用  284

17.2 数据库  285

17.3 虚拟化  285

17.4 分布式计算与实时计算  286

17.5 嵌入式系统  286

17.6 结束语  287

......(更多)

读书文摘

......(更多)

猜你喜欢

点击查看