鸟哥的Linux私房菜
畅销Linux入门书 鸟哥教你Linux从入门到精通 适用Linux系统应用和开发及Linux运维的人员。
本书是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口 shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。
本书内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。本书是初学者学习Linux不可多得的一本入门好书。
本书特色
- 台湾知名Linux网站站长鸟哥新作
- 畅销不衰的Linux经典入门图书
- 适用于各种常见版本的Linux
- Linux管理人员必备的参考手册
- 内容包含鸟哥从完全不懂Linux到现今的所有历程,由浅入深带领您进入Linux的世界
作者介绍
鸟哥,台湾成功大学环境工程系博士,就学期间由于研究需要接触到Linux操作系统,又因实验室交接需求而建立“鸟哥的Linux私房菜”网站。因个人喜好“絮叨”,网站文章风格就此成形。曾任台湾多家知名Linux教育中心讲师,目前于昆山科技大学资讯传播系教授Linux相关课程。专长是Linux操作系统、网站规划与维护、网络安全,兴趣是写作与阅读,研究方向是网络应用整合。
购买链接
下载电子书

微信扫码关注公众号 「Linux265」 后,回复 nl92 获取电子书!
- 目 录
- 第一部分 Linux的规则与安装
- 第0章 计算机概论 1
- 0.1 计算机:辅助人脑的好工具 2
- 0.1.1 计算机硬件的五大单元 2
- 0.1.2 CPU的种类 3
- 0.1.3 接口设备 4
- 0.1.4 运作流程 4
- 0.1.5 计算机分类 5
- 0.1.6 计算机上面常用的计算单位(大小、速度等) 6
- 0.2 个人计算机架构与接口设备 7
- 0.2.1 CPU 7
- 0.2.2 内存 9
- 0.2.3 显卡 11
- 0.2.4 硬盘与存储设备 12
- 0.2.5 PCI适配卡 14
- 0.2.6 主板 15
- 0.2.7 电源 16
- 0.2.8 选购须知 16
- 0.3 数据表示方式 17
- 0.3.1 数字系统 17
- 0.3.2 文字编码系统 18
- 0.4 软件程序运行 18
- 0.4.1 机器程序与编译程序 18
- 0.4.2 操作系统 19
- 0.4.3 应用程序 22
- 0.5 重点回顾 22
- 0.6 本章习题 23
- 0.7 参考数据与扩展阅读 24
- 第1章 Linux是什么 25
- 1.1 Linux是什么 26
- 1.1.1 Linux是什么 26
- 1.1.2 Linux之前UNIX的历史 27
- 1.1.3 关于GNU项目 32
- 1.2 Torvalds的Linux开发 34
- 1.2.1 Minix 34
- 1.2.2 对386硬件的多任务测试 35
- 1.2.3 初次释出Linux 0.02 36
- 1.2.4 Linux的开发:虚拟团队的产生 37
- 1.2.5 Linux的内核版本 38
- 1.2.6 Linux distributions 39
- 1.3 Linux的特色 42
- 1.3.1 Linux的特色 42
- 1.3.2 Linux的优缺点 43
- 1.3.3 关于授权 45
- 1.4 重点回顾 46
- 1.5 本章习题 46
- 1.6 参考数据与扩展阅读 47
- 第2章 Linux如何学习 48
- 2.1 Linux当前的应用角色 49
- 2.1.1 企业环境的利用 49
- 2.1.2 个人环境的使用 50
- 2.2 鸟哥的Linux苦难经验回忆录 51
- 2.2.1 鸟哥的Linux学习之路 51
- 2.2.2 学习心态的分别 53
- 2.2.3 X Window的学习 54
- 2.3 有心向Linux操作系统学习者学习态度 55
- 2.3.1 从头学习Linux基础 56
- 2.3.2 选择一本易读的工具书 57
- 2.3.3 实践再实践 57
- 2.3.4 发生问题怎么处理.. 58
- 2.4 鸟哥的建议(重点在Solution的学习) 59
- 2.5 重点回顾 60
- 2.6 本章习题 61
- 2.7 参考数据与扩展阅读 61
- 第3章 主机规划与磁盘分区 62
- 3.1 Linux与硬件的搭配 63
- 3.1.1 认识计算机的硬件配置 63
- 3.1.2 选择与Linux搭配的主机配置 64
- 3.1.3 各硬件设备在Linux中的文件名 66
- 3.2 磁盘分区 67
- 3.2.1 磁盘连接的方式与设备文件名的关系 67
- 3.2.2 磁盘的组成复习 68
- 3.2.3 磁盘分区表(partition table) 69
- 3.2.4 开机流程与主引导分区(MBR) 72
- 3.2.5 Linux安装模式下,磁盘分区的选择(极重要) 74
- 3.3 安装Linux前的规划 76
- 3.3.1 选择适当的distribution 76
- 3.3.2 主机的服务规划与硬件的关系 77
- 3.3.3 主机硬盘的主要规划 79
- 3.3.4 鸟哥说:关于练习机的安装建议 80
- 3.3.5 鸟哥的两个实际案例 80
- 3.3.6 大硬盘配合旧主机造成的无法开机问题 81
- 3.4 重点回顾 82
- 3.5 本章习题 82
- 3.6 参考数据与扩展阅读 82
- 第4章 安装CentOS 5.x与多重引导小技巧 83
- 4.1 本练习机的规划(尤其是分区参数) 84
- 4.2 开始安装CentOS 5 85
- 4.2.1 调整启动媒体(BIOS) 86
- 4.2.2 选择安装结构与开机 87
- 4.2.3 选择语系数据 89
- 4.2.4 磁盘分区 90
- 4.2.5 引导装载程序、网络、时区设置与root密码 95
- 4.2.6 软件选择 98
- 4.2.7 其他功能:RAM testing、安装笔记本电脑的内核参数(Option) 99
- 4.3 安装后的首次设置 100
- 4.4 多重引导安装流程与技巧 104
- 4.4.1 新主机仅有一块硬盘 104
- 4.4.2 旧主机有两块以上硬盘 105
- 4.4.3 旧主机只有一块硬盘 105
- 4.5 关于大硬盘导致无法开机的问题 106
- 4.6 重点回顾 106
- 4.7 本章习题 107
- 4.8 参考数据与扩展阅读 107
- 第5章 首次登录与在线求助man page 108
- 5.1 首次登录系统 109
- 5.1.1 首次登录CentOS 5.x图形界面 109
- 5.1.2 GNOME的操作与注销 110
- 5.1.3 KDE的操作与注销 113
- 5.1.4 X Window与命令行模式的切换 115
- 5.1.5 在终端界面登录linux 116
- 5.2 在命令行模式下执行命令 117
- 5.2.1 开始执行命令 117
- 5.2.2 基础命令的操作 118
- 5.2.3 重要的热键[Tab], [ctrl]-c, [ctrl]-d 121
- 5.2.4 错误信息的查看 122
- 5.3 Linux系统的在线求助man page与info page 122
- 5.3.1 man page 123
- 5.3.2 info page 127
- 5.3.3 其他有用的文件(documents) 129
- 5.4 超简单文本编辑器:nano 130
- 5.5 正确的关机方法 131
- 5.5.1 数据同步写入磁盘:sync 132
- 5.5.2 惯用的关机命令:shutdown 132
- 5.5.3 重启、关机:reboot, halt, poweroff 133
- 5.5.4 切换执行等级:init 133
- 5.6 开机过程的问题排解 134
- 5.6.1 文件系统错误的问题 134
- 5.6.2 忘记root密码 135
- 5.7 重点回顾 136
- 5.8 本章习题 136
- 5.9 参考数据与扩展阅读 137
- 第二部分 Linux文件、目录与磁盘格式
- 第6章 Linux的文件权限与目录配置 138
- 6.1 用户与用户组 139
- 6.2 Linux文件权限概念 140
- 6.2.1 Linux文件属性 141
- 6.2.2 如何改变文件属性与权限 144
- 6.2.3 目录与文件的权限意义 147
- 6.2.4 Linux文件种类与扩展名 150
- 6.3 Linux目录配置 152
- 6.3.1 Linux目录配置标准:FHS 152
- 6.3.2 目录树(directory tree) 156
- 6.3.3 绝对路径与相对路径 158
- 6.3.4 CentOS的查看 159
- 6.4 重点回顾 159
- 6.5 本章练习 160
- 6.6 参考数据与扩展阅读 160
- 第7章 Linux文件与目录管理 161
- 7.1 目录与路径 162
- 7.1.1 相对路径与绝对路径 162
- 7.1.2 目录的相关操作 162
- 7.1.3 关于执行文件路径的变量:$PATH 165
- 7.2 文件与目录管理 167
- 7.2.1 查看文件与目录:ls 167
- 7.2.2 复制、删除与移动:cp, rm, mv 169
- 7.2.3 取得路径的文件名与目录名称 173
- 7.3 文件内容查阅 173
- 7.3.1 直接查看文件内容 173
- 7.3.2 可翻页查看 175
- 7.3.3 数据选取 176
- 7.3.4 非纯文本文件:od 177
- 7.3.5 修改文件时间或创建新文件:touch 178
- 7.4 文件与目录的默认权限与隐藏权限 180
- 7.4.1 文件默认权限:umask 181
- 7.4.2 文件隐藏属性:chattr, lsattr 183
- 7.4.3 文件特殊权限:SUID, SGID, SBIT 184
- 7.4.4 查看文件类型:file 187
- 7.5 命令与文件的查询 187
- 7.5.1 脚本文件名的查询 187
- 7.5.2 文件名的查找 188
- 7.6 权限与命令间的关系(极重要) 192
- 7.7 重点回顾 193
- 7.8 本章习题 194
- 7.9 参考数据与扩展阅读 195
- 第8章 Linux磁盘与文件系统管理 196
- 8.1 认识EXT2文件系统 197
- 8.1.1 硬盘组成与分区的复习 197
- 8.1.2 文件系统特性 197
- 8.1.3 Linux的EXT2文件系统(inode) 199
- 8.1.4 与目录树的关系 204
- 8.1.5 EXT2/EXT3文件的访问与日志文件系统的功能 206
- 8.1.6 Linux文件系统的操作 208
- 8.1.7 挂载点(mount point)的意义 208
- 8.1.8 其他Linux支持的文件系统 与VFS 209
- 8.2 文件系统的简单操作 210
- 8.2.1 磁盘与目录的容量:df, du 210
- 8.2.2 连接文件:ln 213
- 8.3 磁盘的分区、格式化、检验与挂载 217
- 8.3.1 磁盘分区:fdisk 217
- 8.3.2 磁盘格式化 223
- 8.3.3 磁盘检验:fsck, badblocks 225
- 8.3.4 磁盘挂载与卸载 226
- 8.3.5 磁盘参数修改 231
- 8.4 设置开机挂载 234
- 8.4.1 开机挂载/etc/fstab及/etc/mtab 234
- 8.4.2 特殊设备loop挂载(镜像文件不刻录就挂载使用) 236
- 8.5 内存交换空间(swap)的构建 238
- 8.5.1 使用物理分区构建swap 238
- 8.5.2 使用文件构建swap 240
- 8.5.3 swap使用上的限制 241
- 8.6 文件系统的特殊查看与操作 241
- 8.6.1 boot sector与superblock的关系 241
- 8.6.2 磁盘空间的浪费问题 243
- 8.6.3 利用GNU的parted进行分区行为 243
- 8.7 重点回顾 245
- 8.8 本章习题 245
- 8.9 参考数据与扩展阅读 246
- 第9章 文件与文件系统的压缩与打包 248
- 9.1 压缩文件的用途与技术 249
- 9.2 Linux系统常见的压缩命令 250
- 9.2.1 Compress 250
- 9.2.2 gzip, zcat 252
- 9.2.3 bzip2, bzcat 253
- 9.3 打包命令:tar 253
- 9.3.1 tar 254
- 9.4 完整备份工具:dump 259
- 9.4.1 dump 259
- 9.4.2 restore 262
- 9.5 光盘写入工具 265
- 9.5.1 mkisofs:新建镜像文件 265
- 9.5.2 Cdrecord:光盘刻录工具 267
- 9.6 其他常见的压缩与备份工具 269
- 9.6.1 dd 269
- 9.6.2 Cpio 270
- 9.7 重点回顾 272
- 9.8 本章习题 272
- 9.9 参考数据与扩展阅读 273
- 第三部分 学习shell与shell script
- 第10章 vim程序编辑器 274
- 10.1 vi与vim 275
- 10.1.1 为何要学vim 275
- 10.2 vi的使用 276
- 10.2.1 简单执行范例 277
- 10.2.2 按键说明 278
- 10.2.3 一个案例练习 281
- 10.2.4 vim的保存文件、恢复与打开时的警告信息 282
- 10.3 vim的功能 284
- 10.3.1 块选择(Visual Block) 285
- 10.3.2 多文件编辑 286
- 10.3.3 多窗口功能 286
- 10.3.4 vim环境设置与记录:~/.vimrc, ~/.viminfo 287
- 10.3.5 vim常用命令示意图 289
- 10.4 其他vim使用注意事项 289
- 10.4.1 中文编码的问题 289
- 10.4.2 DOS与Linux的断行字符 290
- 10.4.3 语系编码转换 290
- 10.5 重点回顾 291
- 10.6 本章练习 291
- 10.7 参考数据与扩展阅读 292
- 第11章 认识与学习bash 293
- 11.1 认识bash这个shell 294
- 11.1.1 硬件、内核与shell 294
- 11.1.2 为何要学命令行界面的shell 295
- 11.1.3 系统的合法shell与/etc/shells功能 295
- 11.1.4 bash shell的功能 296
- 11.1.5 bash shell的内置命令:type 298
- 11.1.6 命令的执行 298
- 11.2 shell的变量功能 299
- 11.2.1 什么是变量 299
- 11.2.2 变量的显示与设置:echo, unset 300
- 11.2.3 环境变量的功能 304
- 11.2.4 影响显示结果的语系变量(locale) 308
- 11.2.5 变量的有效范围 309
- 11.2.6 变量键盘读取、数组与声明:read,array,declare 310
- 11.2.7 与文件系统及程序的限制关系:ulimit 312
- 11.2.8 变量内容的删除、替代与替换 313
- 11.3 命令别名与历史命令 317
- 11.3.1 命令别名设置:alias,unalias 317
- 11.3.2 历史命令:history 318
- 11.4 Bash Shell的操作环境 320
- 11.4.1 路径与命令查找顺序 320
- 11.4.2 bash的登录与欢迎信息:/etc/issue, /etc/motd 320
- 11.4.3 bash 的环境配置文件 321
- 11.4.4 终端机的环境设置:stty, set 325
- 11.4.5 通配符与特殊符号 327
- 11.5 数据流重定向 328
- 11.5.1 什么是数据流重定向 329
- 11.5.2 命令执行的判断依据:;,&&, || 331
- 11.6 管道命令(pipe) 334
- 11.6.1 选取命令:cut, grep 334
- 11.6.2 排序命令:sort,wc,uniq 336
- 11.6.3 双向重定向:tee 338
- 11.6.4 字符转换命令:tr,col,join,paste,expand 338
- 11.6.5 切割命令:split 342
- 11.6.6 参数代换:xargs 342
- 11.6.7 关于减号-的用途 343
- 11.7 重点回顾 344
- 11.8 本章习题 344
- 11.9 参考数据与扩展阅读 345
- 第12章 正则表达式与文件格式化处理 346
- 12.1 前言:什么是正则表达式 347
- 12.1.1 什么是正则表达式 347
- 12.1.2 正则表达式对于系统管理员的用途 347
- 12.1.3 正则表达式的广泛用途 348
- 12.1.4 正则表达式与Shell在Linux当中的角色定位 348
- 12.1.5 扩展的正则表达式 348
- 12.2 基础正则表达式 348
- 12.2.1 语系对正则表达式的影响 349
- 12.2.2 grep的一些高级参数 349
- 12.2.3 基础正则表达式练习 350
- 12.2.4 基础正则表达式字符(characters) 356
- 12.2.5 sed工具 357
- 12.3 扩展正则表达式 361
- 12.4 文件的格式化与相关处理 362
- 12.4.1 格式化打印:printf 362
- 12.4.2 awk:好用的数据处理工具 363
- 12.4.3 文件比较工具 366
- 12.4.4 文件打印准备:pr 369
- 12.5 重点回顾 369
- 12.6 本章习题 370
- 12.7 参考数据与扩展阅读 371
- 第13章 学习shell script 372
- 13.1 什么是shell script 373
- 13.1.1 为什么学习shell script 373
- 13.1.2 第一个script的编写与执行 374
- 13.1.3 编写shell script的良好习惯 376
- 13.2 简单的shell script练习 376
- 13.2.1 简单范例 377
- 13.2.2 script的执行方式区别(source, shscript, ./script) 378
- 13.3 善用判断式 379
- 13.3.1 利用test命令的测试功能 380
- 13.3.2 利用判断符号[] 382
- 13.3.3 shell script的默认变量($0, $1...) 383
- 13.4 条件判断式 385
- 13.4.1 利用if...then 385
- 13.4.2 利用case...esac判断 389
- 13.4.3 利用function功能 391
- 13.5 循环(loop) 393
- 13.5.1 while do done, until do done(不定循环) 393
- 13.5.2 for...do...done(固定循环) 394
- 13.5.3 for...do...done的数值处理 396
- 13.6 shell script的追踪与调试 397
- 13.7 重点回顾 398
- 13.8 本章习题 398
- 13.9 参考数据与扩展阅读 399
- 第四部分 Linux使用者管理
- 第14章 Linux账号管理与ACL权限设置 400
- 14.1 Linux的账号与用户组 401
- 14.1.1 用户标识符:UID与GID 401
- 14.1.2 用户账号 402
- 14.1.3 有效与初始用户组:groups, newgrp 406
- 14.2 账号管理 409
- 14.2.1 新增与删除用户:useradd, 相关配置文件, passwd, usermod, userdel 409
- 14.2.2 用户功能 417
- 14.2.3 新增与删除用户组 420
- 14.2.4 账号管理实例 422
- 14.3 主机的具体权限规划:ACL的使用 423
- 14.3.1 什么是ACL 423
- 14.3.2 如何启动ACL 423
- 14.3.3 ACL的设置技巧:getfacl, setfacl 424
- 14.4 用户身份切换 427
- 14.4.1 su 428
- 14.4.2 sudo 429
- 14.5 用户的特殊shell与PAM模块 433
- 14.5.1 特殊的shell, /sbin/nologin 433
- 14.5.2 PAM模块简介 434
- 14.5.3 PAM模块设置语法 435
- 14.5.4 常用模块简介 437
- 14.5.5 其他相关文件 439
- 14.6 Linux主机上的用户信息传递 440
- 14.6.1 查询用户:w, who, last, lastlog 440
- 14.6.2 用户对谈:write, mesg, wall 441
- 14.6.3 用户邮件信箱:mail 441
- 14.7 手动新增用户 443
- 14.7.1 一些检查工具 443
- 14.7.2 特殊账号(如纯数字账号)的手工新建 444
- 14.7.3 批量新建账号模板(适用于passwd --stdin参数) 445
- 14.7.4 批量新建账号的范例(适用于连续数字,如学号) 446
- 14.8 重点回顾 448
- 14.9 本章习题 449
- 14.10 参考数据与扩展阅读 450
- 第15章 磁盘配额(Quota)与高级文件系统管理 451
- 15.1 磁盘配额(Quota)的应用与实践 452
- 15.1.1 什么是Quota 452
- 15.1.2 一个Quota范例 454
- 15.1.3 实践Quota流程1:文件系统支持 454
- 15.1.4 实践Quota流程2:新建Quota配置文件 455
- 15.1.5 实践Quota流程3:Quota启动、关闭与限制值设置 456
- 15.1.6 实践Quota流程4:Quota限制值的报表 458
- 15.1.7 实践Quota流程5:测试与管理 459
- 15.1.8 不改动既有系统的Quota实例 462
- 15.2 软件磁盘阵列(Software RAID) 463
- 15.2.1 什么是RAID 463
- 15.2.2 software, hardware RAID 466
- 15.2.3 软件磁盘阵列的设置 467
- 15.2.4 仿真RAID错误的救援模式 470
- 15.2.5 开机自动启动 RAID 并自动挂载 472
- 15.2.6 关闭软件RAID(重要!) 472
- 15.3 逻辑卷管理器(Logical Volume Manager) 473
- 15.3.1 什么是LVM:PV, PE, VG, LV的意义 473
- 15.3.2 LVM实作流程 475
- 15.3.3 放大LV容量 479
- 15.3.4 缩小LV容量 481
- 15.3.5 LVM的系统快照 483
- 15.3.6 LVM相关命令汇整与LVM的关闭 488
- 15.4 重点回顾 489
- 15.5 本章习题 489
- 15.6 参考数据与扩展阅读 491
- 第16章 例行性工作(crontab) 492
- 16.1 什么是例行性工作 493
- 16.1.1 Linux工作调度的种类:at, cron 493
- 16.1.2 Linux上常见的例行性工作 493
- 16.2 仅执行一次的工作调度 494
- 16.2.1 atd的启动与at运行的方式 494
- 16.2.2 实际运行单一工作调度 495
- 16.3 循环执行的例行性工作调度 498
- 16.3.1 用户的设置 498
- 16.3.2 系统的配置文件:/etc/crontab 500
- 16.3.3 一些注意事项 501
- 16.4 可唤醒停机期间的工作任务 502
- 16.4.1 什么是anacron 503
- 16.4.2 anacron与/etc/anacrontab 503
- 16.5 重点回顾 504
- 16.6 本章习题 505
- 第17章 程序管理与SELinux初探 506
- 17.1 什么是进程(process) 507
- 17.1.1 进程与程序(process & program) 507
- 17.1.2 Linux的多用户、多任务环境 509
- 17.2 工作管理(job control) 511
- 17.2.1 什么是工作管理 511
- 17.2.2 job control的管理 511
- 17.2.3 脱机管理问题 515
- 17.3 进程管理 515
- 17.3.1 进程的查看 516
- 17.3.2 进程的管理 521
- 17.3.3 关于进程的执行顺序 523
- 17.3.4 系统资源的查看 525
- 17.4 特殊文件与程序 530
- 17.4.1 具有SUID/SGID权限的命令执行状态 530
- 17.4.2 /proc/* 代表的意义 531
- 17.4.3 查询已打开文件或已执行程序打开的文件 532
- 17.5 SELinux初探 534
- 17.5.1 什么是SELinux 534
- 17.5.2 SELinux的运行模式 536
- 17.5.3 SELinux的启动、关闭与查看 538
- 17.5.4 SELinux网络服务运行范例 540
- 17.5.5 SELinux所需的服务 542
- 17.5.6 SELinux的策略与规则管理 544
- 17.6 重点回顾 547
- 17.7 本章习题 548
- 17.8 参考数据与扩展阅读 550
- 第18章 认识系统服务(daemons) 551
- 18.1 什么是daemon与服务(service) 552
- 18.1.1 daemon的主要分类 552
- 18.1.2 服务与端口的对应 554
- 18.1.3 daemon的启动脚本与启动方式 555
- 18.2 解析super daemon的配置文件 558
- 18.2.1 默认值配置文件:xinetd.conf 558
- 18.2.2 一个简单的rsync范例设置 561
- 18.3 服务的防火墙管理xinetd, TCP Wrappers 562
- 18.3.1 /etc/hosts.allow, /etc/hosts.deny管理 563
- 18.3.2 TCP Wrappers特殊功能 565
- 18.4 系统开启的服务 565
- 18.4.1 查看系统启动的服务 566
- 18.4.2 设置开机后立即启动服务的方法 566
- 18.4.3 CentOS 5.x默认启动的服务简易说明 569
- 18.5 重点回顾 572
- 18.6 本章习题 573
- 18.7 参考数据与扩展阅读 574
- 第19章 认识与分析日志文件 575
- 19.1 什么是日志文件 576
- 19.2 syslogd:记录日志文件的服务 578
- 19.2.1 日志文件内容的一般格式 578
- 19.2.2 syslog的配置文件:/etc/syslog.conf 579
- 19.2.3 日志文件的安全性设置 583
- 19.2.4 日志文件服务器的设置 584
- 19.3 日志文件的轮替(logrotate) 585
- 19.3.1 logrotate的配置文件 586
- 19.3.2 实际测试logrotate的操作 588
- 19.3.3 自定义日志文件的轮替功能 589
- 19.4 分析日志文件 590
- 19.4.1 CentOS默认提供的logwatch 590
- 19.4.2 鸟哥自己写的日志文件分析工具 591
- 19.5 重点回顾 593
- 19.6 本章习题 594
- 19.7 参考数据与扩展阅读 594
- 第五部分 Linux系统管理员
- 第20章 启动流程、模块管理与Loader 595
- 20.1 Linux的启动流程分析 596
- 20.1.1 启动流程一览 596
- 20.1.2 BIOS,boot loader与kernel加载 596
- 20.1.3 第一个进程init及配置文件/etc/inittab与runlevel 601
- 20.1.4 init处理系统初始化流程(/etc/rc.d/rc.sysinit) 603
- 20.1.5 启动系统服务与相关启动配置文件(/etc/rc.d/rc N &/etc/sysconfig) 604
- 20.1.6 用户自定义开机启动程序(/etc/rc.d/rc.local) 605
- 20.1.7 根据/etc/inittab的设置加载终端机或X Window界面 605
- 20.1.8 启动过程会用到的主要配置文件 606
- 20.1.9 Run level的切换 607
- 20.2 内核与内核模块 608
- 20.2.1 内核模块与依赖性 608
- 20.2.2 内核模块的查看 609
- 20.2.3 内核模块的加载与删除 610
- 20.2.4 内核模块的额外参数设置:/etc/modprobe.conf 611
- 20.3 Boot Loader: Grub 611
- 20.3.1 boot loader的两个stage 611
- 20.3.2 grub的配置文件/boot/grub/menu.lst与菜单类型 612
- 20.3.3 initrd的重要性与创建新initrd文件 616
- 20.3.4 测试与安装grub 617
- 20.3.5 启动前的额外功能修改 620
- 20.3.6 关于内核功能当中的vga设置 621
- 20.3.7 BIOS无法读取大硬盘的问题 622
- 20.3.8 为某个菜单加上密码 623
- 20.4 启动过程的问题解决 624
- 20.4.1 忘记root密码的解决之道 624
- 20.4.2 init配置文件错误 625
- 20.4.3 BIOS磁盘对应的问题(device.map) 625
- 20.4.4 因文件系统错误而无法启动 626
- 20.4.5 利用chroot切换到另一块硬盘工作 626
- 20.5 重点回顾 627
- 20.6 本章习题 627
- 20.7 参考数据与扩展阅读 628
- 第21章 系统设置工具(网络与打印机)与硬件检测 629
- 21.1 CentOS系统设置工具:setup 630
- 21.1.1 用户身份验证设置 631
- 21.1.2 网络配置选项(手动设置IP与自动获取) 632
- 21.1.3 防火墙设置 633
- 21.1.4 键盘形式设置 634
- 21.1.5 系统服务的启动与否设置 635
- 21.1.6 系统时钟的时区设置 635
- 21.1.7 X窗口界面分辨率设置 635
- 21.2 利用CUPS设置Linux打印机 636
- 21.2.1 Linux的打印组件(打印操作、队列、服务与打印机) 636
- 21.2.2 CUPS支持的联机模式 639
- 21.2.3 以Web界面管理网络打印机 640
- 21.2.4 以Web界面管理USB本地打印机 643
- 21.2.5 将Linux本地打印机开放成为网络打印机 644
- 21.2.6 手动设置打印机 645
- 21.3 硬件数据收集与驱动及lm_sensors 649
- 21.3.1 硬件信息的收集与分析 649
- 21.3.2 驱动USB设备 651
- 21.3.3 使用lm_sensors取得温度、电压等信息 653
- 21.3.4 udev与hal简介 655
- 21.4 重点回顾 656
- 21.5 本章习题 657
- 21.6 参考数据与扩展阅读 657
- 第22章 软件安装:源码与Tarball 658
- 22.1 开放源码的软件安装与升级简介 659
- 22.1.1 什么是开放源码、编译程序与可执行文件 659
- 22.1.2 什么是函数库 660
- 22.1.3 什么是make与configure 661
- 22.1.4 什么是Tarball的软件 662
- 22.1.5 如何安装与升级软件 662
- 22.2 使用传统程序语言进行编译的简单范例 663
- 22.2.1 单一程序:打印Hello World 663
- 22.2.2 主程序、子程序链接:子程序的编译 665
- 22.2.3 调用外部函数库:加入链接的函数库 666
- 22.2.4 gcc的简易用法(编译、参数与链接) 667
- 22.3 用make进行宏编译 667
- 22.3.1 为什么要用make 667
- 22.3.2 makefile的基本语法与变量 668
- 22.4 Tarball的管理与建议 670
- 22.4.1 使用源码管理软件所需要的基础软件 671
- 22.4.2 Tarball安装的基本步骤 671
- 22.4.3 一般Tarball软件安装的建议事项(如何删除、升级) 673
- 22.4.4 一个简单的范例(利用ntp来示范) 674
- 22.4.5 利用patch更新源码 675
- 22.5 函数库管理 677
- 22.5.1 动态与静态函数库 677
- 22.5.2 ldconfig与/etc/ld.so.conf 678
- 22.5.3 程序的动态函数库解析:ldd 679
- 22.6 检验软件正确性 680
- 22.7 重点回顾 682
- 22.8 本章习题 682
- 22.9 参考数据与扩展阅读 683
- 第23章 软件安装:RPM、SRPM与YUM功能 684
- 23.1 软件管理器简介 685
- 23.1.1 Linux界的两大主流:RPM与DPKG 685
- 23.1.2 什么是RPM与SRPM 686
- 23.1.3 什么是i386、i586、i686、noarch、x86_64 687
- 23.1.4 RPM的优点 688
- 23.1.5 RPM属性依赖的解决方式:YUM在线升级 689
- 23.2 RPM软件管理程序:rpm 690
- 23.2.1 RPM默认安装的路径 690
- 23.2.2 RPM安装(install) 690
- 23.2.3 RPM升级与更新(upgrade/freshen) 692
- 23.2.4 RPM查询(query) 692
- 23.2.5 RPM验证与数字证书(Verify/Signature) 694
- 23.2.6 卸载RPM与重建数据库(erase/rebuilddb) 697
- 23.3 SRPM的使用:rpmbuild 697
- 23.3.1 利用默认值安装SRPM文件(--rebuid/--recompile) 698
- 23.3.2 SRPM使用的路径与需要的软件 698
- 23.3.3 设置文件的主要内容(*.spec) 699
- 23.3.4 SRPM的编译命令(-ba/-bb) 703
- 23.3.5 一个打包自己软件的范例 703
- 23.4 YUM在线升级机制 705
- 23.4.1 利用yum进行查询、安装、升级与删除功能 705
- 23.4.2 yum的设置文件 709
- 23.4.3 yum的软件组功能 710
- 23.4.4 全系统自动升级 711
- 23.5 管理的抉择:RPM还是Tarball 711
- 23.6 重点回顾 712
- 23.7 本章习题 713
- 23.8 参考数据与扩展阅读 714
- 第24章 X Window设置介绍 715
- 24.1 什么是X Window System 716
- 24.1.1 X Window的发展简史 716
- 24.1.2 主要组件:X Server/X Client/Window Manager/DisplayManager 717
- 24.1.3 X Window的启动流程 719
- 24.1.4 X启动流程测试 722
- 24.1.5 我是否需要启用X Window System 723
- 24.2 X Server设置文件解析与设置 724
- 24.2.1 解析xorg.conf设置 724
- 24.2.2 X Font Server(XFS)与加入其他中文字体 727
- 24.2.3 设置文件重建与显示器参数微调 729
- 24.3 显卡驱动程序安装范例 730
- 24.3.1 NVidia 730
- 24.3.2 ATI (AMD) 732
- 24.3.3 Intel 733
- 24.4 重点回顾 733
- 24.5 本章习题 734
- 24.6 参考数据与扩展阅读 734
- 第25章 Linux备份策略 735
- 25.1 备份要点 736
- 25.1.1 备份资料的考虑 736
- 25.1.2 备份哪些Linux数据 737
- 25.1.3 选择备份设备 738
- 25.2 备份的种类、频率与工具的选择 740
- 25.2.1 完整备份的增量备份(Incremental backup) 740
- 25.2.2 完整备份的差异备份(differential backup) 742
- 25.2.3 关键数据备份 743
- 25.3 鸟哥的备份策略 743
- 25.3.1 每周系统备份的script 744
- 25.3.2 每日备份数据的script 745
- 25.3.3 远程备份的 script 746
- 25.4 灾难恢复的考虑 747
- 25.5 重点回顾 747
- 25.6 本章习题 748
- 25.7 参考数据与扩展阅读 748
- 第26章 Linux内核编译与管理 749
- 26.1 编译前的任务:认识内核与取得内核源代码 750
- 26.1.1 什么是内核(Kernel) 750
- 26.1.2 更新内核的目的 751
- 26.1.3 内核的版本 752
- 26.1.4 内核源代码的取得方式 753
- 26.1.5 内核源代码的解压缩/安装/观察 754
- 26.2 内核编译的前处理与内核功能选择 755
- 26.2.1 硬件环境查看与内核功能要求 755
- 26.2.2 保持干净源代码:make mrproper 755
- 26.2.3 开始挑选内核功能:make XXconfig 756
- 26.2.4 内核功能细项选择 757
- 26.3 内核的编译与安装 768
- 26.3.1 编译内核与内核模块 768
- 26.3.2 实际安装模块 769
- 26.3.3 开始安装新内核与多重内核菜单(grub) 770
- 26.4 额外(单一)内核模块编译 771
- 26.4.1 编译前注意事项 771
- 26.4.2 单一模块编译 772
- 26.4.3 内核模块管理 773
- 26.5 重点回顾 773
- 26.6 本章习题 773
- 26.7 参考数据与扩展阅读 774
- 附录A 快速索引 775
评论(0)
发表评论