本书讲解了Linux操作系统的工作机制以及运行Linux系统所需的常用工具和命令。根据系统启动的大体顺序,本书更深入地介绍从设备管理到网络配置的各个部分,最后演示了系统各部分的运行方式,并介绍了一些基本技巧和开发人员常用的工具。
Linux不像其他操作,会对用户隐藏很多重要的东西。相反,Linux会让用户掌控一切。而要掌控一切,就必须理解这个操作系统的工作机制,包括如何启动、如何连网,以及Linux内核如何工作。本书是畅销书的新版本,作者拥有多年的实践经验,内容通俗易懂。通过这本书,读者可以迅速从Linux新手变成老鸟,把作者丰富的经验装进自己的知识库。
第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/sh9
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 更改密码和shell18
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/sudoers35
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/tty41
3.4.5 串行端口:/dev/ttyS*42
3.4.6 并行端口:/dev/lp0 和/dev/lp142
3.4.7 音频设备:/dev/snd/*、/dev/dsp、/dev/audio 和其他43
3.4.8 创建设备文件43
3.5 udev44
3.5.1 devtmpfs44
3.5.2 udevd的操作和配置44
3.5.3 udevadm46
3.5.4 设备监控47
3.6 详解SCSI和Linux内核47
3.6.1 USB存储设备和SCSI50
3.6.2 SCSI和ATA50
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 安装GRUB84
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 识别你的init91
6.4 systemd91
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 Upstart104
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 init112
6.6.1 System V init启动命令顺序113
6.6.2 System V init链接池114
6.6.3 run-parts115
6.6.4 System V init控制115
6.7 关闭系统116
6.8 initramfs117
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和login125
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 PAM132
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 使用iostat149
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 ping159
9.5.2 traceroute160
9.5.3 DNS与host160
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/hosts167
9.12.2 resolv.conf 文件167
9.12.3 缓存和零配置DNS167
9.12.4 /etc/nsswitch.conf文件168
9.13 Localhost168
9.14 传输层:TCP、UDP和Service169
9.14.1 TCP 端口与连接169
9.14.2 建立TCP连接169
9.14.3 端口的数字和/etc/services 170
9.14.4 TCP的特点171
9.14.5 UDP171
9.15 普通本地网络172
9.16 理解DHCP173
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 路由器与Linux177
9.21 防火墙177
9.21.1 Linux防火墙基础178
9.21.2 设置防火墙规则179
9.21.3 防火墙策略181
9.22 以太网、IP和ARP182
9.23 无线以太网183
9.23.1 iw184
9.23.2 无线网络安全184
9.24 小结185
第10章 网络应用与服务186
10.1 服务的基本概念186
10.2 网络服务器188
10.3 SSH189
10.3.1 SSHD服务器190
10.3.2 SSH客户端191
10.4 守护进程inetd和xinetd193
10.5 诊断工具193
10.5.1 lsof194
10.5.2 tcpdump195
10.5.3 netcat196
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 脚本名:$0208
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 elif210
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 basename217
11.10.2 awk218
11.10.3 sed218
11.10.4 xargs219
11.10.5 expr219
11.10.6 exec219
11.11 子shell220
11.12 在脚本中包含其他文件220
11.13 读取用户输入221
11.14 什么时候(不)应该使用shell脚本221
第12章 在网络上传输文件222
12.1 快速复制222
12.2 rsync222
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 shell239
13.4.2 tcsh shell241
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-Bus250
14.5.1 系统和会话实例251
14.5.2 监视D-Bus消息251
14.6 打印251
14.6.1 CUPS252
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 make261
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 Python268
15.5.2 Perl268
15.5.3 其他脚本语言268
15.6 Java269
15.7 展望:编译包270
第16章 从C代码编译出软件.271
16.1 软件的构建系统271
16.2 解开C源码包272
16.3 GNU autoconf273
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
《声音体验设计》内容简介:真正好的设计是让人感觉不到设计痕迹的设计。声音体验设计就是实现这种好设计的魔鬼细节,本书从声音体
内容提要本书深入描述了IEEE的开放系统接口标准-POSIX线程,通常称为Pthreads标准。本书首先解释了线程的基本概念,包括异步编程
《视听媒体虚拟现实内容创作研究》内容简介:本书主要研究视听媒体虚拟现实(VR)作品内容的创作理念、创作方法和艺术规律,主要的研
《从平面到立体:设计师必备的折叠技巧》在把诸如织物、纸板、塑料、金属等二维片材制作成三维形态时,许多设计师都会采用折叠这一
全国计算机等级考试一级教程-计算机基础及WPS Office应用-(2018年版) 本书特色 本书是根据《全国计算机等级考试一级WPS Office考试大纲(2...
《1936—1941年日本对德同盟政策研究》内容简介:20世纪三四十年代,日本发动的侵华战争给中国社会发展带来了严重影响。从九一八事
《国际经济学教程(第二版)》内容简介:本书主要内容有国际贸易的理论与政策、国际收支理论、汇率理论、要素的国际流动理论、国际
本书紧紧围绕下一代(XC)移动网络发展前沿的热点问题,依据XC移动网络的最新标准,以XC移动网络技术与应用为核心,比较全面和系统
Theclassic,landmarkworkonsoftwaretestingThehardwareandsoftwareofcomputinghavecha...
《地方公务员能力框架与能力建设研究》内容简介:本书在国家公务员九项能力框架和项目组调研的基础上,细分、构建了H省地方公务员的
《从0到1写方案》内容简介:基于全网10万+学员订阅的爆款课程《如何成为年入百万的方案高手》《15堂零基础系统方案课》内容来进一步
关东升智捷课堂创始人,国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。担任51CTO社区iOS技术顾问,精通iOS、A
ThelargestgroupwithanunsatisfieddemandforagoodbookonHTTPistheworldwidegroupofWeb...
《史记八讲》内容简介:本书稿是日本东洋文化研究所访问学者史杰鹏为所开《史记》网课撰写的讲稿的结集。分为“刺客”“游侠”“战
《应试指南·真题·预测三合一:财经法规与会计职业道德》内容简介:本书共4篇。第1篇“应试指南”在深入研究考试大纲和各地考试环
Searchisnotjustaboxandtenbluelinks.Searchisajourney:anexplorationwherewhatweenco...
《数据化网站运营深度剖析》内容简介:近些年,互联网促进经济迅速发展,越来越多的企业把互联网当作产品营销的重要渠道。网络营销
数据时代已经到来,但数据分析、数据挖掘人才却十分短缺。由于“大数据”对每个领域的决定性影响, 相对于经验和直觉,在商业、
《看得懂的金融投资课》内容简介:什么是货币?什么是金融?你要怎么做才能获得更高的、更稳健的投资收益,更好地分析投资的风险,
1作者为德国红点设计大奖得主。2书中独有作者自创的图形创作模式,即“理性—直觉—手—电脑”的结合运用。3本书包含40种颠覆惯性