Linux 私房菜速读

第一章、Linux 是什么与如何学习
众所皆知的,Linux 的核心原型是 1991 年由托瓦兹(Linus Torvalds)写出来的,但是托瓦兹为何可以写出 Linux 这个操作系统? 为什么他要选择 386 的计算机来开发?为什么 Linux 的发展可以这么迅速?又为什么 Linux 是免费且可以自由学习的? 以及目前为何有这么多的 Linux 套件版本(distributions)呢?了解这些东西后,才能够知道为何 Linux 可以免除专利软件之争, 并且了解到 Linux 为何可以同时在个人计算机与大型主机上面大放异彩! 所以,在实际进入 Linux 的世界前,就让我们来谈一谈这些有趣的历史故事吧!

第二章、主机规划与磁盘分区
事实上,要安装好一部 Linux 主机并不是那么简单的事情,你必须要针对 distributions 的特性、服务器软件的能力、 未来的升级需求、硬件扩充性需求等等来考虑,还得要知道磁盘分区、文件系统、Linux 操作较频繁的目录等等, 都得要有一定程度的了解才行,所以,安装 Linux 并不是那么简单的工作喔! 不过,要学习 Linux 总得要有 Linux 系统存在吧?所以鸟哥在这里还是得要提前说明如何安装一部 Linux 练习机。 在这一章里面,鸟哥会介绍一下,在开始安装 Linux 之前,您应该要先思考哪些工作? 好让您后续的主机维护轻松愉快啊!此外,要了解这个章节的重要性,您至少需要了解到Linux 文件系统的基本概念, 这部份初学者是不可能具备的!所以初学者在这个章节里面可能会觉得很多部份都是莫名其妙!没关系! 在您完成了后面的相关章节之后,记得要再回来这里看看如何规划主机即可!

第三章、安装 CentOS7.x
Linux distributions 越作越成熟,所以在安装方面也越来越简单!虽然安装非常的简单, 但是刚刚前一章所谈到的基础认知还是需要了解的,包括 MBR/GPT, partition, boot loader, mount, software 的选择等等的数据。 这一章鸟哥的安装定义为『一部练习机』,所以安装的方式都是以最简单的方式来处理的。 另外,鸟哥选择的是 CentOS 7.x 的版本来安装的啦!在内文中,只要标题内含有(Option) 的,代表是鸟哥额外的说明,你应该看看就好,不需要实作喔!

第四章、首次登入与在线求助
终于可以开始使用 Linux 这个有趣的系统了!由于 Linux 系统使用了异步的磁盘/内存数据传输模式,同时又是个多人多任务的环境, 所以你不能随便的不正常关机,关机有一定的程序喔!错误的关机方法可能会造成磁盘数据的损毁呢! 此外,Linux 有多种不同的操作方式,图形接口与文字接口的操作有何不同? 我们能否在文字接口取得大量的指令说明,
而不需要硬背某些指令的选项与参数等等。这都是这一章要来介绍的呢!

第五章、Linux 的文件权限与目录配置
Linux 最优秀的地方之一就在于他的多人多任务环境。而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了。 Linux 一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有read/write/execute 等权限。若管理不当,你的 Linux 主机将会变的很『不苏湖!@_@』。另外,你如果首次接触 Linux 的话,那么, 在 Linux 底下这么多的目录/文件,到底每个目录/文件代表什么意义呢?底下我们就来一一介绍呢!

第六章、Linux 文件与目录管理
在前一章我们认识了 Linux 系统下的文件权限概念以及目录的配置说明。 在这个章节当中,我们就直接来进一步的操作与管理文件及目录吧!包括在不同的目录间变换、 建立与删除目录、建立与删除文件,还有寻找文件、查阅文件内容等等,都会在这个章节作个简单的介绍啊!

第七章、Linux 磁盘与文件系统管理
系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区槽不可太大也不能太小, 太大会造成磁盘容量的浪费,太小则会产生文件无法储存的困扰。此外,我们在前面几章谈到的文件权限与属性中, 这些权限与属性分别记录在文件系统的哪个区块内?这就得要谈到 filesystem 中的 inode 与 block 了。同时,为了虚拟化与大容量磁盘, 现在
的 CentOS 7 默认使用大容量效能较佳的 xfs 当预设文件系统了!这也得了解一下。 在本章我们的重点在于如何制作文件系统,包括分区、格式化与挂载等,是很重要的一个章节喔!

第八章、文件与文件系统的压缩,打包与备份
在 Linux 底下有相当多的压缩指令可以运作喔!这些压缩指令可以让我们更方便从网络上面下载容量较大的文件呢! 此外,我们知道在 Linux 底下的扩展名是没有什么很特殊的意义的,不过,针对这些压缩指令所做出来的压缩文件, 为了方便记忆,还是会有一些特殊的命名方式啦!就让我们来看看吧!

第九章、vim 程序编辑器
系统管理员的重要工作就是得要修改与设定某些重要软件的配置文件,因此至少得要学会一种以上的文字接口的文书编辑器。 在所有的 Linux distributions 上头都会有的一套文书编辑器就是 vi ,而且很多软件默认也是使用 vi 做为他们编辑的接口, 因此鸟哥建议您务必要学会使用 vi 这个正规的文书编辑器。此外,vim 是进阶版的 vi , vim 不但可以用不同颜色显示文字内容,还能够进行诸如 shell script, C program 等程序编辑功能, 你可以将 vim 视为一种程序编辑器!鸟哥也是用 vim 编辑鸟站的网页文章呢!

第十章、认识与学习 BASH
在 Linux 的环境下,如果你不懂 bash 是什么,那么其他的东西就不用学了!因为前面几章我们使用终端机下达指令的方式, 就是透过 bash 的环境来处理的喔!所以说,他很重要吧!bash 的东西非常的多,包括变量的设定与使用、 bash 操作环境的建置、数据流重导向的功能,还有那好用的管线命令!好好清一清脑门,准备用功去啰~ _ 这个章节几乎是所有指令列模式 (command line) 与未来主机维护与管理的重要基础,一定要好好仔细的阅读喔!

第十一章、正规表示法与文件格式化处理
正规表示法 (Regular Expression, RE, 或称为常规表示法)是透过一些特殊字符的排列,用以『搜寻/取代/删除』一列或多列文字字符串, 简单的说,正规表示法就是用在字符串的处理上面的一项『表示式』。正规表示法并不是一个工具程序,而是一个字符串处理的标准依据,如果您想要以正规表示法的方式处理字符串,就得要使用支持正规表示法的工具程序才行, 这类的工具程序很多,例如 vi, sed, awk 等等。
正规表示法对于系统管理员来说实在是很重要!因为系统会产生很多的讯息,这些讯息有的重要有的仅是告知, 此时,管理员可以透过正规表示法的功能来将重要讯息撷取出来,并产生便于查阅的报表来简化管理流程。此外, 很多的软件包也都支持正规表示法的分析,例如邮件服务器的过滤机制(过滤垃圾信件)就是很重要的一个例子。 所以,您最好要了解正规表示法的相关技能,在未来管理主机时,才能够更精简处理您的日常事务!
注:本章节使用者需要多加练习,因为目前很多的套件都是使用正规表示法来达成其『过滤、分析』的目的, 为了未来主机管理的便利性,使用者至少要能看的懂正规表示法的意义!

第十二章、学习 Shell Scripts
如果你真的很想要走信息这条路,并且想要管理好属于你的主机,那么,别说鸟哥不告诉你, 可以自动管理系统的好工具: Shell scripts!这家伙真的是得要好好学习学习的! 基本上, shell script 有点像是早期的批处理文件,亦即是将一些指令汇整起来一次执行,但是 Shell script 拥有更强大的功能,那就是他可以进行类似程序 (program) 的撰写,并且不需要经过编译 (compile) 就能够执行, 真的很方便。加上我们可透过 shell script 来简化我们日常的工作管理, 而且,整个Linux 环境中,一些服务 (services) 的启动都是透过 shell script 的, 如果你对于 script 不了解,嘿嘿!发生问题时,可真是会求助无门喔!所以,好好的学一学他吧!

第十三章、Linux 账号管理与 ACL 权限设定
要登入 Linux 系统一定要有账号与密码才行,否则怎么登入,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以透过 user/group 的特殊权限设定, 来规范出不同的群组开发项目呢~在 Linux 的环境下,我们可以透过很多方式来限制用户能够使用的系统资源, 包括第十章、bash提到的ulimit限制、还有特殊权限限制,如umask等等。 透过这些举动,我们可以规范出不同使用者的使用资源。另外,还记得系统管理员的账号吗?对! 就是 root 。请问一下,除了 root 之外,是否可以有其他的系统管理员账号? 为什么大家都要尽量避免使用数字型态的账号?如何修改用户相关的信息呢?这些我们都得要了解了解的!

第十四章、磁盘配额(Quota)与进阶文件系统管理
如果您的 Linux 服务器有多个用户经常存取数据时,为了维护所有用户在硬盘容量的公平使用,磁盘配额 (Quota) 就是一项非常有用的工具!另外,如果你的用户常常抱怨磁盘容量不够用,那么更进阶的文件系统就得要学习学习。 本章我们会介绍磁盘阵列 (RAID) 及逻辑滚动条文件系统 (LVM),这些工具都可以帮助你管理与维护用户可用的磁盘容量喔!

第十五章、例行性工作排程(crontab)
学习了基础篇也一阵子了,你会发现到为什么系统常常会主动的进行一些任务?这些任务到底是谁在设定工作的? 如果你想要让自己设计的备份程序可以自动的在系统底下执行,而不需要手动来启动他,又该如何处置? 这些例行的工作可能又分为『单一』工作与『循环』工作,在系统内又是哪些服务在负责? 还有还有,如果你想要每年在老婆的生日前一
天就发出一封信件提醒自己不要忘记,可以办的到吗? 嘿嘿!这些种种要如何处理,就看看这一章先!

第十六章、进程管理与 SELinux 初探
一个程序被加载到内存当中运作,那么在内存内的那个数据就被称为进程(process)。进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的型态存在。那么系统的进程有哪些状态?不同的状态会如何影响系统的运作? 进程之间是否可以互相控管等等的,这些都是我们所必须要知道的项目。 另外与进程有关的还有 SELinux 这个加强文件存取安全性的咚咚,也必须要做个了解呢!

第十七章、认识系统服务 (daemons)
在 Unix-Like 的系统中,你会常常听到 daemon 这个字眼!那么什么是传说中的 daemon 呢?这些 daemon 放在什么地方?他的功能是什么?该如何启动这些 daemon ?又如何有效的将这些 daemon 管理妥当?此外,要如何视察这些daemon 开了多少个 ports ?又这些 ports 要如何关闭?还有还有,晓得你系统的这些 port 各代表的是什么服务吗? 这
些都是最基础需要注意的呢!尤其是在架设网站之前,这里的观念就显的更重要了。
从 CentOS 7.x 这一版之后,传统的 init 已经被舍弃,取而代之的是 systemd 这个家伙~这家伙跟之前的 init 有什么差异? 优缺点为何?如何管理不同种类的服务类型?以及如何取代原本的『执行等级』等等,很重要的改变喔!

第十八章、认识与分析登录档
当你的 Linux 系统出现不明原因的问题时,很多人都告诉你,你要查阅一下登录文件才能够知道系统出了什么问题了,所以说, 了解登录档是很重要的事情呢。登录文件可以记录系统在什么时间、哪个主机、哪个服务、出现了什么讯息等信息, 这些信息也包括用户识别数据、系统故障排除须知等信息。如果你能够善用这些登录文件信息的话,你的系统出
现错误时, 你将可以在第一时间发现,而且也能够从中找到解决的方案,而不是昏头转向的乱问人呢。 此外,登录文件所记录的信息量是非常大的,要人眼分析实在很困难。此时利用 shell script 或者是其他软件提供的分析工具来处理复杂的登录档,可以帮助你很多很多喔!

第十九章、开机流程、模块管理与 Loader
系统开机其实是一项非常复杂的程序,因为核心得要侦测硬件并加载适当的驱动程序后, 接下来则必须要呼叫程序来准备好系统运作的环境,以让使用者能够顺利的操作整部主机系统。 如果你能够理解开机的原理,那么将有助于你在系统出问题时能够很快速的修复系统喔! 而且还能够顺利的配置多重操作系统的多重引导问题。为了多重引导的问题,你就
不能不学学 grub2 这个 Linux 底下优秀的开机管理程序 (boot loader)。 而在系统运作期间,你也得要学会管理核心模块呢!

第二十章、基础系统设定与备份策略
新的 CentOS 7 有针对不同的服务提供了相当大量的指令列设定模式,因此过去那个 setup 似乎没有什么用了! 取而代之的是许多加入了 bash-complete 提供了不少参数补全的设定工具!甚至包括网络设定也是透过这个机制哩! 我们这个小章节主要就是在介绍如何透过这些基本的指令来设定系统就是了。另外, 万一不幸你的 Linux 被黑客入侵了、或是你的 Linux 系统由于硬件关系 (不论是天灾还是人祸) 而挂掉了!这个时候,请问如何快速的回复你的系统呢?呵呵!当然啰,如果有备份数据的话, 那么回复系统所花费的时间与成本将降低相当的多!平时最好就养成备份的习惯, 以免突然间的系统损毁造成手足无措!此外,哪些文件最需要备份呢?又,备份是需要完整的备份还是仅备份重要数据即可?嗯!确实需要考虑看看呦!

第二十一章、软件安装:原始码与 Tarball
我们在第一章、Linux 是什么当中提到了 GNU 计划与 GPL 授权所产生的自由软件与开放源码等咚咚。不过,前面的章节都还没有提到真正的开放源码是什么的讯息!在这一章当中,我们将藉由 Linux 操作系统里面的执行文件,来理解什么是可执行的程序,以及了解什么是编译程序。另外,与程序息息相关的函式库 (library) 的信息也需要了解一番!不过,在这个章节当中,鸟哥并不是要你成为一个开放源码的程序设计师, 而是希望你可以了解如何将开放源码的程序设计、加入函式库的原理、透过编译而成为可以执行 的 binary program,最后该执行档可被我们所使用的一连串过程!了解上面的咚咚有什么好处呢?因为在 Linux 的世界里面,由于客制化的关系,有时候我们需要自行安装软件在自己的
Linux 系统上面,所以如果你有简单的程序编译概念,那么将很容易进行软件的安装。 甚至在发生软件编译过程中的错误时,你也可以自行作一些简易的修订呢!而最传统的软件安装过程, 自然就是由原始码编译而来的啰!所以,在这里我们将介绍最原始的软件管理方式:使用 Tarball 来安装与升级管理我们的软件喔!

第二十二章、软件安装 RPM, SRPM 与 YUM
虽然使用原始码进行软件编译可以具有客制化的设定,但对于 Linux distribution 的发布商来说,则有软件管理不易的问题, 毕竟不是每个人都会进行原始码编译的。如果能够将软件预先在相同的硬件与操作系统上面编译好才发布的话, 不就能够让相同的 distribution 具有完全一致的软件版本吗?如果再加上简易的安装/移除/管理等机制的话, 对于软件控管就会简易的多。有这种东西吗?有的,那就是 RPM 与 YUM 这两个好用的咚咚。 既然这么好用,我们当然不能错过学习机会啰!赶紧来参详参详!

第二十三章、X Window 设定介绍
在 Linux 上头的图形接口我们称之为 X Window System,简称为 X 或 X11 啰! 为何称之为系统呢?这是因为 X 窗口系统又分为 X server 与 X client ,既然是 Server/Client (主从架构) 这就表示其实 X 窗口系统是可以跨网络且跨平台的!
X 窗口系统对于 Linux 来说仅是一个软件, 只是这个软件日趋重要喔!因为 Linux 是否能够在桌面计算机上面流行,与这个 X 窗口系统有关啦! 好在,目前的 X 窗口系统整合到 Linux 已经非常优秀了,而且也能够具有 3D 加速的功能, 只是,我们还是得要了解一下 X 窗口系统才好,这样如果出问题,我们才有办法处理啊!

第二十四章、Linux 核心编译与管理
我们说的 Linux 其实指的就是核心 (kernel) 而已。这个核心控制你主机的所有硬件并提供系统所有的功能, 所以说,他重不重要啊!我们开机的时候其实就是利用开机管理程序加载这个核心文件来侦测硬件, 在核心加载适当的驱动程序后,你的系统才能够顺利的运作。现今的系统由于强调在线升级机制,因此非常不建议自定义核心编译! 但是,如果你想要将你的 Linux 安装到 USB 随身碟、想要将你的 Eee PC 小笔电安装自己的 Linux , 想让你的 Linux 可以驱动你的小家电,此时,核心编译就是相当重要的一个任务了! 这一篇比较进阶,如果你对系统移植没有兴趣的话,这一篇可以先略过喔!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值