具体描述
本书是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口 shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。
本书内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。本书是初学者学习Linux不可多得的一本入门好书。
作者简介
鸟哥 台湾成功大学环境工程系博士,就学期间由于研究需要接触到Linux操作系统,又因实验室交接需求而建立“鸟哥的Linux私房菜”网站。因个人喜好“絮叨”,网站文章风格就此成形。
曾任台湾多家知名Linux教育中心讲师,目前于昆山科技大学资讯传播系教授Linux相关课程。专长是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 命令执行的判断依据:
· · · · · · (收起)
读后感
第一次接触这本书是看到某个师兄写的参考文献,里面赫然写着《鸟哥的linux私房菜》。看到这个雷人的标题,导师和我们众师弟都傻了。一个计算机硕士看这么牛B的书?后来那个师兄解释道,他也觉得这个名字不够严肃,本来不想加入到参考文献中去,但是这本书对他的帮助很大...
如果想要入门,这本就是最好的选择了。 讲得非常细致,这位来自台湾的帅锅在写书方面确实很有一套,依我看,维护世界和平的重任就交给他了。
学习LINUX的入门级读物,非常适合刚开始学的人,讲的很有针对性,实用性强. http://linux.vbird.org
鸟哥的linux私房菜还是要去简体版的网站去看,不要看这个第三版 或者看第二版也成,第三版坑爹的很,各种翻译错误,鸟哥用的是台湾的IT术语,比如文件应该是档案,内核是核心,但是简体版有的地方转化过来了,有的地方没有,还有一些排版错误.... 书的内容倒是很不错,适合新手阅读,如果...
《鸟哥的Linux私房菜基础篇第三版》阅读报告 1. 作者简介: 鸟哥(蔡德明),台湾知名 Linux 网站站长,台湾成功大学环境工程系博士,就学期间建立“鸟哥的 Linux 私房菜”网站,其著作《鸟哥的 Linux 私房菜 》是两岸三地最畅销的经典 Linux 入门书,曾任台湾多家知名 Linux 教...
用户评价
这本书的厚度让人望而生畏,但真正开始阅读后,你会发现时间都去哪儿了——因为它包含了太多实战中遇到的“陷阱”和“坑”。很多教程只教你“Happy Path”,即一切顺利的情况下的操作流程,但实际的Linux运维世界里,错误和异常才是常态。我特别欣赏作者在处理常见问题时所展现出的那种细致入微的排错思路。比如,当你遇到一个服务启动失败却没有任何明显错误日志的情况时,这本书会引导你去检查内核日志、检查依赖库版本、甚至分析系统调用级别的潜在阻塞,这些都是在初级教程中绝对看不到的“经验之谈”。有一次,我们部署的一个应用在高并发下会随机性地出现资源耗尽的现象,网上搜了一圈都说内存泄漏,但用工具检测又看不出明显问题。最后翻到书里关于系统资源限制(ulimit)和文件描述符(file descriptors)管理的章节,才意识到是某个服务的文件句柄被耗尽了。这种针对具体场景的、基于深入理解的排错指南,简直是救命的智慧结晶。
如果要用一个词来形容这套书的整体风格,那可能就是“务实”到了骨子里。它不是那种浮在表面的介绍性读物,它更像是一本陪伴你度过数年运维生涯的“工具箱”和“字典”。我发现,随着我项目复杂度的提升,我翻阅这本书的频率和深度也在不断变化。刚开始是查阅基础命令的参数,中期是研究系统启动流程和内核参数调优,而现在,我更多地是在回顾和对比不同服务(如Web服务器、数据库)在Linux环境下进行深度性能调优的异同点,以及系统层面如何应对大规模分布式部署中的挑战。这本书的价值在于其广度和深度都能跟得上读者的成长曲线,它不强迫你一步到位成为专家,而是为你提供了成为专家的所有必要基石和攀登的路线图。每一次重新阅读,都能从不同的技术深度上挖掘出新的价值点,这种经久不衰的实用性,是很多新出版的技术书籍难以比拟的。
我是一个偏向于自动化和脚本编程的工程师,起初我以为这本书对我来说可能有些偏“基础”了,毕竟我对shell脚本已经比较熟悉。然而,我很快就发现,我对shell的理解可能还停留在“能用”的阶段,而不是“精通”的阶段。作者在讲解脚本编程的部分,不仅涵盖了常用的流程控制和函数,更重要的是,他强调了脚本的健壮性和可维护性。他会告诉你,哪些变量应该被引用,什么时候应该使用`awk`而不是复杂的`sed`组合,以及如何优雅地处理输入参数和错误退出码。这些细节上的打磨,让我的自动化脚本从“能跑起来”的粗糙代码,蜕变成了“健壮可靠”的生产力工具。比如,书中对于如何编写幂等性脚本的讨论,以及如何利用系统内置工具(如`mktemp`)来安全地处理临时文件,这些都是我过去为了图省事而经常忽略的关键点。它不是简单地教你写脚本,而是教你写“好”的、工业级的脚本。
这套书简直是技术学习路上的“救命稻草”,我本来对着命令行是一窍不通的,感觉那些密密麻麻的字符就是天书,每次想自己捣鼓点什么服务器配置,光是查资料就能把自己绕晕好几圈。翻开这本书,那种感觉一下子就不一样了。它不像那些官方文档,上来就是一堆术语让你望而生畏,这本书的叙述方式非常贴近初学者的思维,就像一位经验老到的师傅,耐心地,一步一步地,把那些看似复杂晦涩的概念给你掰开了揉碎了讲。我记得特别清楚,当初我为了配置一个网络服务,光是理解TCP/IP协议栈在Linux下的具体映射就头疼不已,但书中对网络基础的讲解,穿插着大量的实际操作示例,让你在敲击键盘的过程中,自然而然地就吸收了知识,而不是死记硬背。它那种循序渐进的讲解节奏把握得非常好,确保你在掌握了基础命令和文件系统操作之后,再进入更深层次的服务管理,读起来完全没有那种“喘不过气”的压力感。每次解决一个实际问题后,回头看看书里对应的章节,那种豁然开朗的感觉,真的让人对这本书充满了敬意。
说实话,我手里堆了好几摞技术书,很多都是那种“速成”或者“秘籍”类的,读完感觉好像什么都懂了,但一到实际项目里就露馅了,根本经不起推敲。这本书给我的最大不同感受是,它不仅仅是在教你怎么“使用”某个命令,它更深入地挖掘了“为什么”要这么做,背后的原理是什么。比如讲到权限管理那一部分,它没有停留在`chmod`和`chown`这两个命令上,而是花了大量的篇幅去解释UID、GID、粘滞位、SUID/SGID这些底层机制是如何协同工作的,这对于建立一个健壮且安全的系统至关重要。我当时正在负责一个需要多人协作开发的测试环境,权限控制混乱得一塌糊涂,光靠网上零散的教程根本无法系统性地解决问题。直到我深入研究了书里关于进程间通信和SELinux安全增强机制的章节,才真正理解了如何用更精细的控制来隔离不同用户的操作,极大地提升了系统的安全性基线。这种对原理的深度挖掘,让这本书的价值远超出了普通工具书的范畴,它培养的是一种系统思维能力。
深入浅出
封面没有上一版好。书是好书,通俗易懂,深入浅出。可是这也太过详细了吧??读的时候该略就略掉,实际解决问题的时候再查,我觉得效率是最高。
出于教学原因,把这本书看了一遍,现在的第三版非常详细,相比较于国外的同类书籍也不差。尽管现在还是叫做“基础学习篇”,不过已经不太适合初学者了。shell scripting一章的内容编排问题尤为严重。不过从过来人的角度而言,写得还是非常好的。如果是推荐给初学者的话,我是不建议推荐这本的。
内容翔实,深入浅出,覆盖面广。实在是居家旅行必备良品
再看一遍。