万万没想到,身为一名大学生,我还会有“寒假作业”吧!在我高中的时候就已经没有所谓的寒假作业了,要是有都是我们自己上网或者去书店买的资料,然而在准备放寒假的时候,我们的软件工程的老师给我们布置了一点小任务;就是要我们在假期期间阅读《操作系统》课程参考书(《操作系统真相还原》、《一个64位操作系统的设计与实现》、《Linux内核设计的艺术》、《鸟哥的Linux私房菜》),挑最少一本以上阅读,然后就有了这一次的5000字以上的阅读报告了。那时候刚刚布置的时候,有点难接受,想着还没开始放假就有作业了;但是老师这样布置作业,肯定有他的原因,我想到的就是这本书应该不简单甚至比较难学,不然老师为什么会让我们提前学习一下呢,而且这本书肯定很重要,对于我们这个专业来说。然后我就开始查阅了一下这几本操作系统的简介,选了比较有意思的《鸟哥的Linux私房菜》;这本书很久之前就已经听说过了;之前无聊找学习资料的时候就在QQ班群里面看过(当然没怎么懂,感觉像看天书一样!)。还看了一本《一个64位操作系统的设计与实现》,这一本我就没有像看鸟哥那本那么认真了。
首先我简单介绍一下书本的作者和书籍的内容概要吧!
鸟哥(蔡德明)台湾知名 Linux 网站站长,台湾成功大学环境工程系博士,就学期间建立“鸟哥的 Linux 私房菜”网站,其著作《鸟哥的 Linux 私房菜 》是两岸三地最畅销的经典 Linux 入门书,曾任台湾多家知名 Linux 教育中心讲师,现在还在大学任教,专长是 Linux 操作系统、网站规划与维护、网络安全,研究方向是网络应用整合。
《鸟哥的Linux私房菜》——本书是很具度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的很新版,全面而详细地介绍了Linux操作系统。全书分为4个部分:靠前部分着重说明计算机的组成及其作用,让我们这些计算机专业的学生可以回顾一下计算机组成原理的知识,更重要的是为了让更多非计算机专业但是对Linux感兴趣的朋友们了解清楚,以便后面的学习;第一部分介绍Linux的文件系统、文件、目录与磁盘的管理;第二部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第三部分介绍了对于系统安全很好重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第四部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。本书内容丰富全面,基本概念的讲解很好细致,深入浅出。各种功能和命令......
鸟哥的这本书是本入门的好书,毋庸置疑而且还是基础版的,很适合像我们这种操作系统的初学者;因为鸟哥是台湾人所以他写的这本书属于典型的台湾式话痨。当你读他这本书的时候,你会发现所谓的话痨都是为了让我们大家更加容易懂,更加了解其中的知识点;它是中国人写的,是一个中国人真正了解了这个系统,然后按照中国人的思维习惯写出来的书,所以容易理解。不像什么几天入门那种直接翻译出来的书,很多是自己都没理解,就光干了翻译这件事,而且还不一定能把原作者的意思翻译出来,而且那些所谓的快速入门到精通,要么是针对一些有基础的朋友,要么就是直接教你如何写代码,完全没有给你讲解为什么会这样,为什么要这样;我们都知道欲速则不达~这本还有比较特别的地方就是鸟哥会在讲知识点或者一些比较重要的难点的时候,因为他考虑到我们可能很难理解,所以他就会通过一些通俗易懂的例子和结合我们生活上的一些东西来给我们讲解一番,当例子还是很难讲清楚,他还会结合图像和一些结构图来再“话痨”一番;从这里我们就可以看出他的用心良苦,他做到了完完全全把自己学到的用易懂的方式来教我们。
这本书让我深刻难忘的部分是:第三部分介绍了对于系统安全很好重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理。这里是从第4章Linux账号管理与ACL权限设置5章 磁盘配额(Quota)与不错文件系统管理6章 例行性工作(crontab)7章 程序管理与SELinux初探8章 认识系统服务(daemons)到第9章 认识与分析日志文件。这也是我最为喜欢的一部分,因为我对这一部分比较感兴趣,鸟哥在这里介绍和传递的讯息我认为比较重要,当然其他的章节也很重要;只是我觉得这一部分需要花多点时间去理解。在这一部分简单来说就是:要登陆 Linux 系统一定要有账号与口令才行,否则怎么登陆,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以透过 user/group 的特殊权限配置, 来规范出不同的群组开发项目呢~在 Linux 的环境下,我们可以透过很多方式来限制用户能够使用的系统资源, 包括 十一章、bash 提到的 ulimit 限制、还有特殊权限限制,如 umask 等等。 透过这些举动,我们可以规范出不同使用者的使用资源。另外,还记得系统管理员的账号吗?对! 就是 root 。请问一下,除了 root 之外,是否可以有其他的系统管理员账号? 为什么大家都要尽量避免使用数字型态的账号?如何修改用户相关的信息呢?这些我们都得要了解了解的! 还有管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的, 并且所有一般用户的账号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务器主机的账号啦! 在管理 Linux 主机的账号时,我们必须先来了解一下 Linux 到底是如何辨别每一个使用者的等等,还有我在看的时候,我看到文件加密和暴力破解,我就在想;要是这样的话,岂不是所有的东西都不安全,加密都会被暴力破解;然后我就开始阅读了文件的结构才开始了解到:/etc/shadow 文件结构,我们知道很多程序的运行都与权限有关,而权限与 UID/GID 有关!因此各程序当然需要读取 /etc/passwd 来了解不同账号的权限。 因此 /etc/passwd 的权限需配置为 -rw-r--r-- 这样的情况, 虽然早期的口令也有加密过,但却放置到 /etc/passwd 的第二个字段上!这样一来很容易被有心人士所窃取的, 加密过的口令也能够透过暴力破解法去 try and error (试误) 找出来!因为这样的关系,所以后来发展出将口令移动到 /etc/shadow 这个文件分隔开来的技术, 而且还加入很多的口令限制参数在 /etc/shadow 里头呢!这只是书本的冰山一角,我就不一一说明了,反正里面有你感兴趣和想不明白的东西,这正是操作系统的魅力之处。
我只是粗略得读了一下这本书,就是速读,因为我不可能一个个知识点和疑问去搞个清楚,还有就是这本书本来就很厚;我大概了解一下,老师让我们提前阅读这本书也是为了让我对操作系统有一定了了解;为了避免到时候很多同学听课特别大,这样会导致效率低下而且还很可能导致我们自己对知识点掌握不好。还有就是这本书是很值得各位朋友阅读的,无论你是计算机小白还是大牛都很有意义;首先这本书本来就是针对一些感兴趣的朋友们的,可以让我们很好的了解操作系统,对我们有很大的帮助。然而对于一些大牛来说,这本书可以让他们温故而知新,当作一份资料来查阅;在需要的时候可以很好的帮助。这本书在世界上也是一大畅销书,广大的网友们评论也很高,还有不少大佬们推荐;说这是一本入门必选的书籍,操作系统中经典中的经典。书本虽然很厚,但是会让你有不一样的收获,而且没有其他版本那么枯燥,感兴趣的朋友们可以抽时间来阅读一下。
我一开始读这本书的时候觉得很累,很难读下去,因为我是一个读书就要搞清楚和理解其中的疑问,所以我读得很慢,而且读得一脸懵逼;随后我就改变了阅读的方式,就是标出一些疑点,然后继续阅读下去,你会发现之前的一些疑点会慢慢就不攻自破了。越是前面越是多疑问,而且后面又和之前有关联,这才是难的地方。我就随便写一下我最感兴趣那一部分遇到的一些问题和一些疑惑吧!
好比如在Linux的账号与群组中:虽然我们登陆 Linux 主机的时候,输入的是我们的账号,但是其实 Linux 主机并不会直接认识你的『账号名称』的,他仅认识 ID 啊 (ID 就是一组号码啦)。 由于计算机仅认识 0 与 1,所以主机对于数字比较有概念的;至于账号只是为了让人们容易记忆而已。 而你的 ID 与账号的对应就在 /etc/passwd 当中哩。在这里要注意一下:如果你曾经在网络上下载过 tarball 类型的文件, 那么应该不难发现,在解压缩之后的文件中,文件拥有者的字段竟然显示『不明的数字』?奇怪吧?这没什么好奇怪的,因为 Linux 说实在话,他真的只认识代表你身份的号码而已! 那么到底有几种 ID 呢?还记得我们在第六章内有提到过, 每一个文件都具有『拥有人与拥有群组』的属性吗?没错啦~每个登陆的使用者至少都会取得两个 ID ,一个是使用者 ID (User ID ,简称 UID)、一个是群组 ID (Group ID ,简称 GID)。那么文件如何判别他的拥有者与群组呢?其实就是利用 UID 与 GID 啦!每一个文件都会有所谓的拥有者 ID 与拥有群组 ID ,当我们有要显示文件属性的需求时,系统会依据 /etc/passwd 与 /etc/group 的内容, 找到 UID / GID 对应的账号与组名再显示出来!我们可以作个小实验,你可以用 root 的身份 vi /etc/passwd ,然后将你的一般身份的使用者的 ID 随便改一个号码,然后再到你的一般身份的目录下看看原先该账号拥有的文件,你会发现该文件的拥有人变成了 『数字了』呵呵!这样可以理解了吗?书中有对应的例子,我就不列出来了,再说了这些都是一大堆代码,让你看也是很枯燥无味的。还有要注意的是:你一定要了解的是,上面的例子仅是在说明 UID 与账号的对应性,在一部正常运行的 Linux 主机环境下,上面的动作不可随便进行, 这是因为系统上已经有很多的数据被创建存在了,随意修改系统上某些账号的 UID 很可能会导致某些程序无法进行,这将导致系统无法顺利运行的结果。 因为权限的问题啊!所以,了解了之后,请赶快回到 /etc/passwd 里面,将数字改回来喔!千万别粗心大意——举例来说,如果上面的测试最后一个步骤没有将 2000 改回原本的 UID,那么当 dmtsai 下次登陆时将没有办法进入自己的家目录! 因为他的 UID 已经改为 2000 ,但是他的家目录 (/home/dmtsai) 却记录的是 503 ,由于权限是 700 , 因此他将无法进入原本的家目录!是否非常严重啊?
本书开始就是一堆各种各样的标识符和一大堆口令,我们无法记忆,在之前写代码也是如此,一大堆的函数和标识符;要是让我们强硬去记忆的话;我们得花上不少的功夫才可能有点收益,但是更多的是无用功。然后我就上网搜索了一下一些大佬整理出来的一些技巧,这样总比毫无技巧得背诵有效多了;俗话说好记忆不如烂笔头,还是要通过多写多练多尝试。还有就是让我更加深刻知道了,写代码的过程中不是一味的为了得出结果,更重要的是在写的过程中出现的各种各样的情况,让我们去思考为什么会出现这种情况,到底是什么导致的呢?换一个口令或者标识符又会出现什么样的情况,这种情况又会导致什么的错误呢?举个简单的例子:如果我以 dmtsai 这个使用者的身份登陆后,该如何知道我所有支持的群组呢? 很简单啊,直接输入 groups 就可以了!注意喔,是 groups 有加 s 呢!结果像这样:
[dmtsai@www ~]$ groups
dmtsai users
在这个输出的信息中,可知道 dmtsai 这个用户同时属于 dmtsai 及 users 这个两个群组,而且, 第一个输出的群组即为有效群组 (effective group) 了。 也就是说,我的有效群组为 dmtsai 啦~此时,如果我以 touch 去创建一个新档,例如: 『 touch test 』,那么这个文件的拥有者为 dmtsai ,而且群组也是 dmtsai 的了。这些都是我们需要考虑的,也是我们要注意的点,从错误中去理解和记忆,才可以更好的去吃透知识点。这些就是我从书中体会到的一部分!
从鸟哥的这一本书中让我的思想从之前的是为了得出结果为目的转变到从各方面去考虑,尽可能的去考虑是否有其他的情况和一些我还没想过的情况出现,正如上一段所描述的样子~还有就是我刚开始看这本书的时候是没抱着什么期待看的,但是当我静下心去慢慢看的时候;我就联想到了我们的手机和电脑的一些系统,就开始带这一点好奇心去阅读;尽可能的去搞清楚,然后又在想现在有很多不一样的操作系统,它们之间的区别是什么,为什么有一些操作系统会优于其他操作系统呢?我又去查了一下华为上一年推出的鸿蒙操作系统。虽然现在还是只是了解了一点皮毛,不过问题不大,我们的老师还是会讲得很详细的,我也相信我会从中学得更加透彻,我也希望自己可以把这门课程学好,为了以后更加好的找工作。我也会把鸟哥的这本私房菜当作自己的资料书来看待,慢慢去品味其中的奥妙!
最后我就说一下我从鸟哥的这本书里面的收获吧!首先这本书的开头篇计算机的介绍,给了很好和很详细的一次对计算机的复习机会。之前最开始了解计算机是从计算机导论里面,再到上学期的计算机组成原理深入了解。知识要是没学了,就会很快忘记的,特别是一些理论知识,所以鸟哥的这本书最前部分给我们再次介绍了一遍。不仅仅是一次简单的复习,还让我明白了一些之前没搞清楚的计算机关系,让我更好的了解计算机的各硬件和软件之间的一些关联。然后进入到第一部分的学习,我了解到Linux的文件系统、文件、目录与磁盘的管理及其关系。第二部分的学习是对于系统安全很好重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理。第三部分的学习是系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。
最后我也知道自己的不足之处,在学习的过程中我也没有很好的做到实践,没有很及时的对对应的知识点做到巩固和代码的编写。在往后的学习中我会改掉自己的这些坏习惯,争取做到学以致用。以上就是我对鸟哥Linux私房菜这本书的一些心得与体会,仅供参考~
> 我来回应