学习《鸟哥私房菜》,做一点学习记录。
一: 计算机硬件相关知识
1. 计算机硬件的五个组成
输入单元:键盘,鼠标,读卡机,扫描仪,手写板,触控屏幕等等。
输出单元:包括屏幕,打印机等。
主机部分:包括CPU(控制单元与算数逻辑单元),内存。
外部存储:硬盘等

2.CPU的种类
①精简指令集(SISC: reduced instruction set computer): 微指令集较为精简,每个指令执行时间都很短,指令的执行效率较好。但是要做复杂的事情,就需要多个指令集来完成。常用与特殊用于某一功能的机器,比如导航系统,网络设备(交换机和路由器)等,他们功能比较单一,不像PC功能复杂。
②复杂指令集(CISC: complex instruction set computer): 指令数目多而且复杂,每条指令长度不相同。因为指令执行较为复杂所以每条指令花费的时间较长, 但每条个别指令可以处理的工作较为丰富。常用与功能复杂的机器,比如我们的PC机。
3. 操作系统在计算机中的角色和功能

①组成:操作系统包括操作系统核心(Kernel)和系统调用(System Call)两部分:操作系统核心功能是管理计算机所有活动以及驱动所有硬件。系统调用是为了保护核心不被改动,而提供的一组开发界面。
②核心功能:主要负责计算机的资源分配与管理,包括文件管理,内存管理,进程控制,硬件管理等等。
③角色:操作系统处于硬件之上,应用程序之下,连接硬件和应用程序。
二: linux磁盘分区
linux系统是安装在计算机组件的那个位置呢?那就是磁盘啦。所以我们先来认识一下磁盘。

1. 磁盘组成
磁盘有扇区(sector)和磁柱(Cylinder)两种单位。其中扇区是512bytes。
是否每个扇区都一样重要呢?其实每个磁盘的第一个扇区是很重要的,因为第一个扇区记录了两个重要信息:
①主引导扇区(Master boot record :MBR):安装启动管理程序的地方,有446bytes
②分割表(partition table):记录整个硬盘分割状态,有64bytes
另外2bytes是结束标志 446+64+2=512bytes
2. 磁盘组成之分割表
一个分割槽就是一个文件系统。前面的图片中有“开始磁柱”和“结束磁柱”,从开始磁柱到结束磁柱就组成一个分割槽,也就是一个文件系统。在分割表的64个字节中,最多有4组记录区,每组记录区记录了这个分割槽的起始磁柱和结束磁柱号码。

有于分割表就只有64 bytes而已,最多只能容纳四笔分割的记录, 这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽。 根据上面的图示与说明,我们可以得到几个重点资讯:
- 其实所谓的『分割』只是针对那个64 bytes的分割表进行配置而已!
- 硬盘默认的分割表仅能写入四组分割资讯
- 这四组分割资讯我们称为主要(Primary)或延伸(Extended)分割槽
- 分割槽的最小单位为磁柱(cylinder)
- 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分割槽进行数据的处理
磁盘分割的好处:
① 数据安全性:一个分割槽的数据损坏不会影响另一个分割槽
②读写磁盘更高效:如果不分割,那么每次都是从第一个磁柱开始搜索或读写,性能很低。
虽然分割表只有记录4组数据的空间,但是不代表我们的硬盘只能分割出4个分割槽,因为我们可以利用拓展分配进行逻辑分割:扩展分配的想法是: 既然第一个磁区所在的分割表只能记录四笔数据, 那我可否利用额外的磁区来记录更多的分割资讯?实际上图示有点像底下这样:

3. 启动流程与主要启动扇区(MBR)
既然操作系统也是软件,那么我的计算机又是如何认识这个操作系统软件并且运行他的? 明明启动时我的计算机还没有任何软件系统,那他要如何读取硬盘内的操作系统文件啊?嘿嘿!这就得要牵涉到计算机的启动程序了! 底下就让我们来谈一谈这个启动程序吧!
首先主板上有一个存储器CMOS,上面有一个软件程序BIOS,在计算机系统启动的时候,会主动启动这个BIOS,注意BIOS是主板上的一个程序,每个主板都有的,不需要我们去载入他。
BIOS会去分析计算机里面有哪些存储设备,BIOS会根据使用者的配置去读取能够启动的硬盘,并且回去该硬盘上读取第一个磁区的MBR位置, MBR这个仅有446 bytes的硬盘容量里面会放置最基本的启动管理程序。此时BIOS就功成圆满,而接下来就是MBR内的启动管理程序的工作了。
(注意MBR只是硬盘上的一个位置,是一个扇区,就是最前面的446个字节的地方;而这个地方所存放的基本启动程序才是用于启动系统的软件)
这个启动程序的任务是加载核心文件,然后接下来就是核心文件的工作,启动管理程序也功成圆满,之后就是大家所知道的操作系统的任务啦!
总结一下过程:CMOS上的BIOS —》MBR上的启动程序 —》核心文件开始操作系统的功能
4. MBR上的启动管理程序
由於MBR仅有446 bytes而已,因此这个启动管理程序是非常小而美的。 这个boot loader的主要任务有底下这些项目:
提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!
加载核心文件:直接指向可启动的程序区段来开始操作系统;
转交其他loader:将启动管理功能转交给其他loader负责。
上面前两点还容易理解,但是第三点很有趣喔!那表示你的计算机系统里面可能具有两个以上的启动管理程序呢! 有可能吗?我们的硬盘不是只有一个MBR而已?是没错啦!但是启动管理程序除了可以安装在MBR之外, 还可以安装在每个分割槽的启动磁区(boot sector)喔!瞎密?分割槽还有各别的启动磁区喔? 没错啊!这个特色才能造就『多重启动』的功能啊!
我们举一个例子来说,假设你的个人计算机只有一个硬盘,里面切成四个分割槽,其中第一、二分割槽分别安装了Windows及Linux, 你要如何在启动的时候选择用Windows还是Linux启动呢?假设MBR内安装的是可同时认识Windows/Linux操作系统的启动管理程序, 那么整个流程可以图示如下

在上图中我们可以发现,MBR的启动管理程序提供两个菜单,菜单一(M1)可以直接加载Windows的核心文件来启动; 菜单二(M2)则是将启动管理工作交给第二个分割槽的启动磁区(boot sector)。当使用者在启动的时候选择菜单二时, 那么整个启动管理工作就会交给第二分割槽的启动管理程序了。 当第二个启动管理程序启动后,该启动管理程序内(上图中)仅有一个启动菜单,因此就能够使用Linux的核心文件来启动罗。 这就是多重启动的工作情况啦!我们将上图作个总结:
- 每个分割槽都拥有自己的启动磁区(boot sector)
- 图中的系统槽为第一及第二分割槽,
- 实际可启动的核心文件是放置到各分割槽内的!
- loader只会认识自己的系统槽内的可启动核心文件,以及其他loader而已;
- loader可直接指向或者是间接将管理权转交给另一个管理程序。
三. linux 文件系统
1. linux文件权限与目录配置
- 介绍文件权限与属性

上图每一列所代表的意义如下:

这部分知识比较简单,这里不做过多解释,需要注意的点如下:
①第一栏代表这个文件的类型与权限,其中第一个代表这个文件是『目录、文件或链接文件等等』
- 当为[ d ]则是目录
- 当为[ - ]则是文件
- 若是[ l ]则表示为连结档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
②图中倒数第二列代表的是文件最后修改的时间,如果想看最后一次显示的时间和第一次创建的时间,可以根据给ls 不同的参数来实现(比如mac上是-u和-U,linux上是 -u和-c),具体查看man ls 命令的输出结果
- 修改文件权限
①改变文件所属群组 :chgrp
1 | chgrp users install.js |
把install.js的文件所属群组改成users组
②改变文件拥有者 :chown
1 | chown bin install.log |
把install.js的文件所属用户组改成yang
③改变文件的权限,SUID, SGID, SBIT等等的特性 :chmod
不同权限对应的数值 r:4 w:2 x:1
1 | chmod 754 .bashrc |
上面的命令代表:改变.bashrc文件拥有者可以读写执行,同组的人可以读和执行,其他人可以读
同时还有下面的方式来改变权限:
u是user,g是group,o是other,a是all(所有人)
1 | chmod u=rwx,go=rx .bashrc |
文件默认权限
umask 可以得到 『目前使用者在创建文件或目录时候的权限默认值』
查阅的方式有两种,一种可以直接输入 umask ,就可以看到数字型态的权限配置分数, 一种则是加入 -S (Symbolic) 这个选项,就会以符号类型的方式来显示出权限了! 奇怪的是,怎么 umask 会有四组数字啊?不是只有三组吗?是没错啦。 第一组是特殊权限用的,我们先不要理他,所以先看后面三组即可。
1
2
3
4[root@www ~]# umask
0022 <==与一般权限有关的是后面三个数字!
[root@www ~]# umask -S
u=rwx,g=rx,o=rxumask 的分数指的是『该默认值需要减掉的权限!』
一下是创建文件和目录时的(最高权限)-(被剥夺的权限)=还剩下的权限
创建文件时:(-rw-rw-rw-) - (—–w–w-) ==> -rw-r–r–
创建目录时:(drwxrwxrwx) - (d—-w–w-) ==> drwxr-xr-x
注意目录一定要有x执行权限,否则无法进入该目录。
可以修改文件和目录的默认权限:
1
umask 002
文件隐藏属性lsattr chattr和特殊权限 SUID/SGID/SBIT
权限和命令间的关系: 执行不同命令需要不同权限
目录配置
linux下不同目录里面放置不同的内容,可自行上网查阅。
另外区分两个命令 ll -d mydirecorty :显示mydirecorty这个目录文件本身的信息
ll mydirecorty:显示mydirecorty这个目录里面所含文件的文件信息