您的位置:首页 > 运维架构 > Linux

鸟哥的Linux私房菜 基础学习篇(第三版)

2013-05-20 21:52 204 查看


查看书籍详细信息:

鸟哥的Linux私房菜 基础学习篇(第三版)


编辑推荐

台湾知名Linux网站站长鸟哥新作

畅销不衰的Linux经典入门图书

适用于各种常见版本的Linux

Linux管理人员必备的参考手册


内容简介

  本书是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。
  本书内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。本书是初学者学习Linux不可多得的一本入门好书。


作者简介

鸟哥,台湾成功大学环境工程系博士,就学期间由于研究需要接触到Linux操作系统,又因实验室交接需求而建立“鸟哥的Linux私房菜”网站。因个人喜好“絮叨”,网站文章风格就此成形。
曾任台湾多家知名Linux教育中心讲师,目前于昆山科技大学资讯传播系教授Linux相关课程。专长是Linux操作系统、网站规划与维护、网络安全,兴趣是写作与阅读,研究方向是网络应用整合。吴军博士在国内外发表过数十篇论文,并获得和申请了十余项美国和国际专利。他于2005年起,当选为约翰霍普金斯大学计算机系董事会董事。2007起担任风险投资基金中国世纪基金的董事。


目录

目 录

第一部分 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/Display Manager 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


在线试读部分章节

第一部分 Linux的规则与安装

  第1章 Linux是什么

  1.1.2 Linux之前UNIX的历史

 早在Linux出现之前的20年(大约在20世纪70年代),就有一个相当稳定而成熟的操作系统存在了。那就是Linux的老大哥“UNIX”。怎么这么说呢?这两个操作系统有什么关系呀?这里就介绍一下。

众所皆知,Linux的内核是由LinusTorvalds在1991年的时候给开发出来的,并且放到网络上提供大家下载,后来大家觉得它(Linux
Kernel)相当小而精巧,所以慢慢就有相当多的朋友投入其研究瓴域里面!但是为什么它这么棒呢?又为什么大家都可以免费下载它呢?下面说明其中的缘由。

  1969年以前:一个伟大的梦想——BeIl,MlT与GE的“Multics”系统

  早期的计算机并不像现在的个人计算机一样普遍,它可不是一般人碰得起的,除非是军事或者是高科技用途,或者是学术院校的学术研究,否则真的很难接触到。非但如此,早期的计算机架构还很难使用,除了指令周期并不快之外,操作接口也很麻烦。因为那个时候的输入设备只有卡片阅读机,输出设备只有打印机,用户也无法与操作系统互动(多道批处理操作系统)。

·在那个时候,编写程序是件非常麻烦的事情,因为程序员必须将程序相关的信息在读卡纸上面打洞,然后再将读卡纸插入卡片阅读机来将信息读入主机中运算。光是这样就很麻烦了,如果程序有个小地方写错,光是重新打卡就很惨,加上主机少,用户众多,仅等待就耗去很多的时间。

·在那之后,由于硬件与操作系统的改良,使得后来可以使用键盘来进行信息的输入。 

  ……


书摘与插图




去天猫旗舰店查看商品详情:

鸟哥的Linux私房菜 基础学习篇(第三版)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐