目录及概述
这本书的所有内容是学习Linux的基础,这些内容是基础中的基础,如果您能将其中的文字都看完并且消化过,那么未来在管理 Linux主机以及架设网站方面,就能够达到“事半功倍”的成效,请不要忽略这些内容了!否则,再怎么讨论都是枉然的啦!^_^。 Linux的资料非常的多,每份资料彼此的相关性都很强,要单独的一项一项讲解并不容易, 那么这本书件该怎么看呢?建议先按照顺序将内容大致浏览过一次,看不懂的地方也可以先略过不要紧。 全部看完之后,再从头开始“仔细”的实际操作过一遍,那应该就能够进入Linux的世界啰~
另外,每个章节下面的日期,指的是重大改版日期而非最新日期,最新日期请以该章节结束部分的工作日志为主的喔!
第一部份 Linux 的规划与安装
常常听到Linux具有非常优良的血统,所以具有相当良好的多用户多任务环境,可以方便程序设计师来开发软件。 此外,Linux本身是不用钱的“自由软件”,使用上面并没有所谓的“盗版”问题。但是,为什么Linux不用钱? 随便修改或发布Linux为什么不会被罚?为什么Linux有这么多的版本?包括Fedora, SuSE, CentOS, Debian等等? 这个都是我们必须要来了解的部分!了解这些部分,你才会对Linux有一个正确的理解,才能够跟你的同事、同学、 上司说明,为什么使用Linux具有很多优点与好处! ^_^
Linux并不好学习,鸟哥也是“重伤”过好几次才能对Linux有一些基础的认知。那么到底应该如何学习Linux呢?关键在实作。 既然要实作就得要实际的安装一部Linux,那么Linux要安装前需要熟悉哪些基础观念?计算机概论是非常重要的一环! 因为Linux与硬件的关系还不小~此外,打造一台Windows/Linux共存的主机也是很有用的, 至少对于需要多平台但又缺乏空间与金钱的朋友来说,这样的处理是非常有用的!
在第一篇里面,我们会由计算机概论谈起,再讲到Linux的历史渊源与自由软件的关系,然后重点在于如何规划硬件与Linux安装, 最后谈到如何登陆与使用Linux图形/命令行的环境。本篇数据较多,第一次接触Linux的新朋友, 很多数据若看不懂可以先略过,等到后续文章都读完了再回来看,才会有帮助喔! ^_^
第零章 计算机概论
鸟哥在大专院校的教学经验中发现到,由于对 Linux 有兴趣的朋友很多可能并非信息相关专业出身, 因此对于计算机硬件及计算机方面的概念不熟。然而操作系统这种咚咚跟硬件…..2015/04/16
- 2.1. 0.1 电脑:辅助人脑的好工具
- 2.2. 0.2 个人电脑架构与相关设备元件
- 2.3. 0.3 数据表示方式
- 2.4. 0.4 软件程序运行
- 2.5. 0.5 重点回顾
- 2.6. 0.6 本章习题
- 2.7. 0.7 参考资料与延伸阅读
第一章 Linux是什么/如何学习
众所皆知的,Linux的核心原型是1991年由托瓦兹(Linus Torvalds)写出来的,但是托瓦兹为何可以写出Linux这个操作系统? 为什么他要选择386的计算机来开发?为什么Linux的发展可以这么迅速?又为什么Linux是免费的?…..2015/04/23
- 3.1. 1.1 Linux是什么
- 3.2. 1.2 Torvalds的Linux发展
- 3.3. 1.3 Linux当前应用的角色
- 3.4. 1.4 Linux 该如何学习
- 3.5. 1.5 重点回顾
- 3.6. 1.6 本章习题
- 3.7. 1.7 参考资料与延伸阅读
第二章 主机规划与磁盘分区
事实上,要安装好一部Linux主机并不是那么简单的事情,你必须要针对distributions的特性、服务器的软件能力、 未来的升级需求、硬件扩充性需求等等来考虑,还得要知道磁盘分区、文件系统…..2015/04/28
- 4.1. 2.1 Linux与硬件的搭配
- 4.2. 2.2 磁盘分区
- 4.3. 2.3 安装Linux前的规划
- 4.4. 2.4 重点回顾
- 4.5. 2.5 本章习题
- 4.6. 2.6 参考资料与延伸阅读
第三章 安装CentOS 7.x与多重开机技巧
Linux distributions越作越成熟,所以在安装方面也越来越简单!虽然安装非常的简单, 但是刚刚前一章所谈到的基础认知还是需要了解的,包括MBR, partition, boot loader, mount, software的…..2015/05/06
- 5.1. 3.1 本练习机的规划—尤其是分区参数
- 5.2. 3.2 开始安装CentOS 7
- 5.3. 3.3 多重开机安装流程与管理(Option)
- 5.4. 3.4 重点回顾
- 5.5. 3.5 本章习题
- 5.6. 3.6 参考资料与延伸阅读
第四章 首次登陆与线上求助 man page
终于可以开始使用Linux这个有趣的系统了!由于Linux系统使用了非同步的磁盘/内存数据传输模式, 同时又是个多用户多任务的环境,所以你不能随便的不正常关机,关机有一定的程序喔!错误的关机方法…..2015/06/02
- 6.1. 4.1 首次登陆系统
- 6.2. 4.2 文字模式下指令的下达
- 6.3. 4.3 Linux系统的线上求助man page与info page
- 6.4. 4.4 超简单文书编辑器: nano
- 6.5. 4.5 正确的关机方法
- 6.6. 4.6 重点回顾
- 6.7. 4.7 本章习题
- 6.8. 4.8 参考资料与延伸阅读
第二部分 Linux 文件、目录与磁盘格式
安装完了 Linux 之后,接着下来自然就是要使用他了!我们在 开机与关机及简易指令操作 稍微说明了指令下达的方法,以及指令线上查询的方式, 因此您可以轻易的使用命令行界面来进行诸多的动作与工作。那么接着下来呢?当然就是想要知道 Linux 里面有什么东西啰,所以,在这一个部分当中,我们将介绍 Linux 最基本的文件权限概念, 与每个文件目录所带有的意涵。
当然啰,要了解权限的概念,那么对于不同的“身份”就需要了解一下才行, 不同的身份的人,所创建的或拥有的文件是否会相同呢?例如系统管理员与一般身份使用者的文件? 当然不太一样!除此之外,如果您的硬盘空间不足,需要增加硬盘时,应该要如何新增呢? 还有,内存不足的情况下,有没有增进虚拟内存容量的方法?在接下来的几个章节之中,我们将介绍 Linux 主要的文件架构、以及磁盘在 Linux 当中该如何使用及挂载等问题。
第五章 Linux文件权限与目录配置
Linux最优秀的地方之一,就在于他的多用户多任务的环境。而为了让各个使用者具有较保密的文件数据, 因此文件的权限管理就变的很重要了。 Linux一般将文件可存取的身份分为三个类别,分别是 owner/group/other, 且三种身份各有read/write/execute…..2015/06/03
第六章 Linux文件与目录管理
在第五章我们认识了Linux系统下的文件权限概念以及目录的配置说明。 在这个章节当中, 我们就直接来进一步的操作与管理文件与目录吧!包括在不同的目录间变换、 创建与删除目录、创建与删除文件, 还有寻找文件、查阅文件内容…..2015/06/16
- 8.1. 6.1 目录与路径
- 8.2. 6.2 文件与目录管理
- 8.3. 6.3 文件内容查阅
- 8.4. 6.4 文件与目录的默认权限与隐藏权限
- 8.5. 6.5 指令与文件的搜寻
- 8.6. 6.6 极重要的复习!权限与指令间的关系
- 8.7. 6.7 重点回顾
- 8.8. 6.8 本章习题:
- 8.9. 6.9 参考资料与延伸阅读
第七章 Linux 磁盘与文件系统管理
系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不能太小,太大会造成磁盘容量的浪费, 太小则会产生文件无法储存的困扰。此外,我们在前面几章谈到的文件权限与属性中, 这些权限与属性分别记录在…..2015/06/26
- 9.1. 7.1 认识 Linux 文件系统
- 9.2. 7.2 文件系统的简单操作
- 9.3. 7.3 磁盘的分区、格式化、检验与挂载
- 9.4. 7.4 设置开机挂载
- 9.5. 7.5 内存交换空间(swap)之创建
- 9.6. 7.6 文件系统的特殊观察与操作
- 9.7. 7.7 重点回顾
- 9.8. 7.8 本章习题 - 第一题一定要做
- 9.9. 7.9 参考资料与延伸阅读
第八章 文件的压缩与打包
在 Linux 下面有相当多的压缩指令可以运行喔!这些压缩指令可以让我们更方便从网络上面下载大型的文件呢! 此外,我们知道在 Linux 下面的扩展名是没有什么很特殊的意义的,不过,针对这些压缩指令所做出来的压缩文件, 为了方便记忆…..2015/07/16
- 10.1. 8.1 压缩文件的用途与技术
- 10.2. 8.2 Linux 系统常见的压缩指令
- 10.3. 8.3 打包指令: tar
- 10.4. 8.4 XFS 文件系统的备份与还原
- 10.5. 8.5 光盘写入工具
- 10.6. 8.6 其他常见的压缩与备份工具
- 10.7. 8.7 重点回顾
- 10.8. 8.8 本章习题
- 10.9. 8.9 参考资料与延伸阅读
第三部分:学习 Shell 与 Shell scripts
了解了基本的 Linux 文件属性与目录的配置之后,在进入更深入的 Linux 世界之前,有几个课题还是一定要知道的,那就是我们所使用的这个文字模式接口,也就是所谓的“Shell”这个咚咚。在 Linux 的世界中,使用的是 GNU 发展出来的强化的第二代 shell ,称为 BASH Shell ,他有什么特异功能呢?简单的说,我们之前下达的几个指令都是 bash 管理的,除此之外, 他还可以记录指令、文件或命令的补全功能、环境变量的使用等等,还有很多功能等着你去发掘呢!
在知道了部分的 bash 功能后,在接着下来,我们还得了解一下什么是数据流重导向?还有常规表达式等等的问题, 这都是未来我们系统管理员在管理主机上面,一个不可缺乏的利器!当然啰,要将这些功能整合起来运用的话, 就不能不学习一下所谓的脚本“ shell scripts ”,他具有基础的程序能力( Program ),当真是个管理系统的好帮手呢!
再来,在未来的建站设置当中,常会使用到文字编辑器来编辑参数配置文件,这个时候, 系统管理员至少务必要熟悉一套命令行下的文书编辑软件,当然不限制哪一套软件啦,但是 vi 是最标准的 Unix-Like 的命令行之文书处理软件,所以,我们几乎一定可以在每部 Unix-Like 上面发现他的踪迹,所以,就来了解他一下吧,这也是挺重要的工作呢!
第九章 vim程序编辑器
系统管理员的重要工作就是得要修改与设置某些重要软件的配置文件, 因此至少得要学会一种以上的命令行的文书编辑器。 在所有版本的 Linux 上头都会有的一套文书编辑器就是 vi ,而且很多软件…..2015/07/07
- 11.1. 9.1 vi 与 vim
- 11.2. 9.2 vi 的使用
- 11.3. 9.3 vim 的额外功能
- 11.4. 9.4 其他 vim 使用注意事项
- 11.5. 9.5 重点回顾
- 11.6. 9.6 本章练习
- 11.7. 9.7 参考资料与延伸阅读
第十章 认识与学习 BASH
在 Linux 的环境下,如果你不懂 bash 是什么,那么其他的东西就不用学了! 因为前面几章我们使用终端机下达指令的方式, 就是通过 bash 的环境来处理的喔! 所以说,他很重要吧!bash 的东西非常的多,包括变量…..2015/07/09
- 12.1. 10.1 认识 BASH 这个 Shell
- 12.2. 10.2 Shell 的变量功能
- 12.3. 10.3 命令别名与历史命令
- 12.4. 10.4 Bash Shell 的操作环境:
- 12.5. 10.5 数据流重导向
- 12.6. 10.6 管线命令 (pipe)
- 12.7. 10.7 重点回顾
- 12.8. 10.8 本章习题
- 12.9. 10.9 参考资料与延伸阅读
第十一章 正则表达式与文件格式化处理
正则表达式 (Regular Expression, RE, 或称为常规表达式)是通过一些特殊字符的排列, 用以“搜寻/取代/删除”一列或多列文字字串, 简单的说, 正则表达式就是用在字串的处理上面的一项“表示式”。正则表达式并…..2015/07/14
- 13.1. 11.1 开始之前:什么是正则表达式
- 13.2. 11.2 基础正则表达式
- 13.3. 11.3 延伸正则表达式
- 13.4. 11.4 文件的格式化与相关处理
- 13.5. 11.5 重点回顾
- 13.6. 11.6 本章习题
- 13.7. 11.7 参考资料与延伸阅读
第十二章 学习 shell scripts
如果你真的很想要走信息这条路,并且想要好好的管理好属于你的主机,那么,别说鸟哥不告诉你, 可以自动管理你的系统的好工具: Shell scripts 真的是得要好好学习学习的! 基本上, shell script 有点像是早期的批处理文件,亦即是…..2015/07/17
- 14.1. 12.1 什么是 Shell scripts
- 14.2. 12.2 简单的 shell script 练习
- 14.3. 12.3 善用判断式
- 14.4. 12.4 条件判断式
- 14.5. 12.5 循环 (loop)
- 14.6. 12.6 shell script 的追踪与 debug
- 14.7. 12.7 重点回顾
- 14.8. 12.8 本章习题
第四部分:Linux 使用者管理
好了!终于要到了管理 Linux 帐号的时刻了!对于 Linux 有一定的熟悉度之后,再来就是要管理连上 Linux 的帐号问题了!这个帐号的问题可大可小啦!大到可以限制他使用 Linux 主机的各项资源,小到甚至一般帐号的密码订定规则都可以进行规定!端看您对于安全的需求啦! 此外,如果站在资源平均分配的角度上,那么 Linux 主机上面有限的资源当然是平均分配给大家比较好!这个时候就得来规定一下“谁可以使用多少的硬盘空间?”那就是 Quota 喔!呵呵!厉害吧!
在订定完了一些帐号的规则之后,那么我们就继续来管理一下主机的系统与程序的管理吧! 这个包括了观察每个程序 (Process) 与工作调度及工作管理 ( jobs control ),这些也都是很重要的工作呢!
第十三章 Linux 帐号管理与 ACL 权限控制
要登陆 Linux 系统一定要有帐号与密码才行,否则怎么登陆,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以通过 user/group 的特殊权限设置,来规范出不同的群组开发专案呢…..2015/07/22
- 15.1. 13.1 Linux 的帐号与群组
- 15.2. 13.2 帐号管理
- 15.3. 13.3 主机的细部权限规划:ACL 的使用
- 15.4. 13.4 使用者身份切换
- 15.5. 13.5 使用者的特殊 shell 与 PAM 模块
- 15.6. 13.6 Linux 主机上的使用者讯息传递
- 15.7. 13.7 CentOS 7 环境下大量创建帐号的方法
- 15.8. 13.8 重点回顾
- 15.9. 13.9 本章习题
- 15.10. 13.10 参考资料与延伸阅读
第十四章 磁盘配额(Quota)与进阶文件系统管理
如果您的 Linux 服务器有多个用户经常存取数据时,为了维护所有使用者在硬盘容量的公平使用,磁盘配额 (Quota) 就是一项非常有用的工具!另外,如果你的用户常常抱怨磁盘容量不够用,那么更进阶的文件系统就得要学习学习…..2015/07/28
- 16.1. 14.1 磁盘配额 (Quota) 的应用与实作
- 16.2. 14.2 软件磁盘阵列 (Software RAID)
- 16.3. 14.3 逻辑卷轴管理员 (Logical Volume Manager)
- 16.4. 14.4 重点回顾
- 16.5. 14.5 本章习题
- 16.6. 14.6 参考资料与延伸阅读
第十五章 例行性工作调度 (crontab)
学习了基础篇也一阵子了,你会发现到为什么系统常常会主动的进行一些任务? 这些任务到底是谁在设置工作的? 如果你想要让自己设计的备份程序可以自动的在系统下面执行,…..2015/07/31
- 17.1. 15.1 什么是例行性工作调度
- 17.2. 15.2 仅执行一次的工作调度
- 17.3. 15.3 循环执行的例行性工作调度
- 17.4. 15.4 可唤醒停机期间的工作任务
- 17.5. 15.5 重点回顾
- 17.6. 15.6 本章习题
第十六章 程序管理与 SELinux 初探
一个程序被载入到内存当中运行,那么在内存内的那个数据就被称为程序(process)。程序是操作系统上非常重要的概念, 所有系统上面跑的数据都会以程序的型态存在。那么系统的程序有哪些状态…..2015/08/08
- 18.1. 16.1 什么是程序 (process)
- 18.2. 16.2 工作管理 (job control)
- 18.3. 16.3 程序管理
- 18.4. 16.4 特殊文件与程序
- 18.5. 16.5 SELinux 初探
- 18.6. 16.6 重点回顾
- 18.7. 16.7 本章习题
- 18.8. 16.8 参考资料与延伸阅读
第五部分:Linux 系统管理员
嗯!终于来到系统管理员 ( root ) 要注意的工作事项之篇幅了!各位准系统管理员心理准备好了吗? 我们要管理机器啰,呵呵!那么管理员的工作是什么?看报喝茶?!没错!管理员最大的享受就是看报喝茶了。 一个好的系统管理员,平时不会希望挂载网站上面一再不断的查询、检查漏洞等等的, 因为果真如此的话,那么就表示“机器一定有问题了!”。为了让我们的 Linux 机器跑得更稳更顺畅,好让我这个管理员有更多的时间去看报喝茶,哈哈! 更深入的了解系统是需要的!所以,这一篇我们由开机关机的整体流程谈起,好了解一下 Linux 在开机的过程中到底做了哪些事情,这样才能知道我们在什么时候应该做什么事情呐!
此外,由于“没有一个套件是永远安全的!”,所以套件管理是相当重要的一部份,这里我们以 RPM 与 Tarball 来介绍一下如何管理你系统上面的套件。再来,你知道你的系统上面跑了多少数据吗? 虽然知道什么是 ps 来查询程序,但是总是得知道我的系统有哪些服务吧!嘿嘿! 来看看先?不但如此,还得针对登录文件进行解析,以及对于系统进行备份。呵呵! 管理员的工作还真多那。不止不止,还要进行核心的管理呢!哇!果然是忙毙了!无论如何, 还是得要了解呐!
第十七章 认识系统服务(daemon)
在 Unix-Like 的系统中,你常常听到 daemon 这个字眼!那么什么是传说中的 daemon 呢?这些 daemon 放在什么地方?他的功能是什么?该如何启动这些 daemon ?又如何有效的将这些 daemon 管理妥当…..2015/08/14
- 19.1. 17.1 什么是 daemon 与服务 (service)
- 19.2. 17.2 通过 systemctl 管理服务
- 19.3. 17.3 systemctl 针对 service 类型的配置文件
- 19.4. 17.4 systemctl 针对 timer 的配置文件
- 19.5. 17.5 CentOS 7.x 默认启动的服务简易说明
- 19.6. 17.6 重点回顾
- 19.7. 17.7 本章习题
- 19.8. 17.8 参考资料与延伸阅读
第十八章 认识与分析登录文件
当你的 Linux 系统出现不明原因的问题时,很多人都告诉你,你要查阅一下登录文件才能够知道系统出了什么问题了, 所以说,了解登录文件是很重要的事情呢。登录文件可以记录系统在什么时间、哪个主机、哪个服务…..2015/08/20
- 20.1. 18.1 什么是登录文件
- 20.2. 18.2 rsyslog.service :记录登录文件的服务
- 20.3. 18.3 登录文件的轮替(logrotate)
- 20.4. 18.4 systemd-journald.service 简介
- 20.5. 18.5 分析登录文件
- 20.6. 18.6 重点回顾
- 20.7. 18.7 本章习题
- 20.8. 18.8 参考资料与延伸阅读
第十九章 开机流程、模块管理与 loader
系统开机其实是一项非常复杂的程序,因为核心得要侦测硬件并载入适当的驱动程序后, 接下来则必须要调用程序来准备好系统运行的环境,以让使用者能够顺利的操作整部主机系统。 如果你能够理解开机的原理…..2015/08/31
- 21.1. 19.1 Linux 的开机流程分析
- 21.2. 19.2 核心与核心模块
- 21.3. 19.3 Boot Loader: Grub2
- 21.4. 19.4 开机过程的问题解决
- 21.5. 19.5 重点回顾
- 21.6. 19.6 本章习题
- 21.7. 19.7 参考资料与延伸阅读
第二十章 网络设置与备份策略
新的 CentOS 7 有针对不同的服务提供了相当大量的命令行设置模式,因此过去那个 setup 似乎没有什么用了! 取而代之的是许多加入了 bash-complete 提供了不少参数补全的设置工具!甚至包括网络设置也是通过这个机制哩! 我们这个小章…..2015/09/03
- 22.1. 20.1 系统基本设置
- 22.2. 20.2 服务器硬件数据的收集
- 22.3. 20.3 备份要点
- 22.4. 20.4 备份的种类、频率与工具的选择
- 22.5. 20.5 鸟哥的备份策略
- 22.6. 20.6 灾难复原的考虑
- 22.7. 20.7 重点回顾
- 22.8. 20.8 本章习题
- 22.9. 20.9 参考资料与延伸阅读
第二十一章 软件安装:源代码与 Tarball
我们在第一章、Linux是什么当中提到了 GNU 计划与 GPL 授权所产生的自由软件与开放源码等咚咚。 不过,前面的章节都还没有提到真正的开放源码是什么的讯息!在这一章当中,我们将借由 Linux 操作系统里面的可执行文件…..2015/09/06
- 23.1. 20.1 开放源码的软件安装与升级简介
- 23.2. 21.2 使用传统程序语言进行编译的简单范例
- 23.3. 21.3 用 make 进行宏编译
- 23.4. 21.4 Tarball 的管理与建议
- 23.5. 21.5 函数库管理
- 23.6. 21.6 检验软件正确性
- 23.7. 21.7 重点回顾
- 23.8. 21.8 本章习题
- 23.9. 21.9 参考资料与延伸阅读
第二十二章 软件安装:RPM, SRPM 与 YUM 功能
虽然使用源代码进行编译可以进行客制化的设置,但对于 Linux distribution 的原本发布商来说, 则有软件管理不易的问题, 毕竟不是每个人都会进行源代码编译的。 如果能够将软件预先在相同的硬件与操作系统上面编译好才发布的话…..2015/09/09
- 24.1. 22.1 软件管理员简介
- 24.2. 22.2 RPM 软件管理程序: rpm
- 24.3. 22.3 YUM 线上升级机制
- 24.4. 22.4 SRPM 的使用 : rpmbuild (Optional)
- 24.5. 22.5 重点回顾
- 24.6. 22.6 本章习题
- 24.7. 22.7 参考资料与延伸阅读
第二十三章 X Window 设置介绍
在 Linux 上头的图形接口我们称之为 X Window System,简称为 X 或 X11 啰!为何称之为系统呢?这是因为 X 窗口系统又分为 X server 与 X client ,既然是 Server/Client (主从架构) 这就表示其实 X 窗口系统是可以跨网络且跨平台的…..2015/09/19
- 25.1. 23.1 什么是 X Window System
- 25.2. 23.2 X Server 配置文件解析与设置
- 25.3. 23.3 显卡驱动程序安装范例
- 25.4. 23.4 重点回顾
- 25.5. 23.5 本章习题
- 25.6. 23.6 参考资料与延伸阅读
第二十四章 核心编译
我们说的 Linux 其实指的就是核心 (kernel) 而已。这个核心控制你主机的所有硬件并提供系统所有的功能, 所以说,他重不重要啊!我们开机的时候其实就是利用开机管理程序载入这个核心文件来侦测硬件, 在核心载入适当的驱动程序后…..2015/10/20