一、Linux简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用 程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
二、文件系统
1.文件系统的简介
定义:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软 件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
作用:负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等
组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性
2.Linux系统的文件组织结构:树状图
a.文件的构成:目录项+inode+数据块
a1.目录项:存储的是文件名和inode的标识符(整数)inode:存储的是文件的属性信息及其数据块的指针
a2.数据块:就是文件的真实数据。
b.软连接:软链接是一个新文件,有自己的inode,数据块里存储是源文件的引用,可以对目录进行创建软连接。删除源文件,软连接失效。
c.硬链接:硬链接不会创建新文件,只是源文件的别名,源文件的链接数会增长,文件只要有一个别名存在数据库就可以找到,除非inode的指针被删除,目录不能创建 硬链接。
d.目录介绍:
/:根目录, 树状图的顶端。对应一个分区,操作系统在开机时需要挂载的一个分区,内核文件,引导程序,系统修复工具都在此分区内,其他分区都是在开机之后逐 步挂载到根目录下的。根目录就像windows系统的c盘一样。因此/etc,/bin,/sbin,/lib,/dev这样的目录应该和根目录在同一个分区。
/bin:二进制文件目录,用于存储系统管理员和普通用户使用的命令
/boot:操作系统启动时所需要的引导程序所在处,最好单独一个分区,100M足够
/dev:设备文件存储位置。比如一些设备(光驱,磁盘,打印机等等)都会以目录的形式挂载到dev目录下
/etc:系统的配置文件及其子目录的所在处。
/home:用户的主目录所在处。当系统管理员在创建用户时,会在此处自动创建用户的主目录,~表示用户的主目录,建议单独分区,越大越好
/lib:使用系统使用的函数库所在处
/media /mnt 都是用于挂载其他设备对应的目录的。
/opt 主要用来给用户存储安装程序的地方
/root 系统管理员root的主目录
/sbin 系统管理员使用的命令所在处
/usr 用户安装程序时的存储路径,
/tmp 用于存储临时文件
/var 用于存储可变文件,比如log日志文件
/swap: 内存交互区,也建议单独分区。
3.绝对路径和相对路径
绝对路径:绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。
相对路径:相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。
. :指代的是当前目录(当前位置)
..:指代的是上一级目录(父目录)
4.文件类型
-:普通文件
d: 目录
l: 链接文件
s: 套接字文件
b: 块文件,设备文件
c: 字符文件,二进制
p:管道文件,在做io操作,由于错误产生的文件
5.文件属性
查看方式:ls -l
文件的属性 有七列信息
第一列:由10个字符组成,
第一个字符:表示文件类型
第2~10字符,每三个一组来表示权限,
1组:表示文件所有者的权限(u)
2组: 表示用户组的权限(g)
3组: 表示其他人的权限(o)
第二列: 硬链接的数量
第三列: 所有者的名称
第四列: 用户组名
第五列:文件或目录的大小
第六列:文件或目录最后一次属性被修改的时间
第七列: 文件或目录名称
三、用户权限管理
Linux系统的用户划分
(1)文件的所有者
(2)用户组
(3)其他人
四、Linux系统的文件权限
1、文件属性
ls -l下分七列显示文件属性
第一列:10个字符组成一列(第一个字符是文件类型),后九个字符代表的权限。每三个一组
owner--->u
group--->g
other--->o
2、权限分类及其符号和意义
权限分三类:
读 r
写 w
执行 x
文件:读权限,浏览查看文件的内容
写权限,可以修改文件的内容 (严格意义上来说,拥有写权限不一定要有读权限,通常设置时,拥有写就应该设置读)
执行权限,表示文件有执行操作(命令,脚本)
目录:读权限,查看目录里的文件或子目录列表
写权限,在目录里可以创建和删除操作
执行权限,可以有进入目录的行为
5、权限数字:通过数字来表示对应的权限,对应关系如下
二进制 十进制
r: 0100 ----> 4
w: 0010 ----> 2
x: 0001 ----> 1
例:命令“chmod 007 file1”表示将file1权限设置为“--- --- rwx”
ps:表示权限的三位数组成了一个八进制数
6、umask命令
umask命令通过设置文件系统的"权限补码"来设置文件/目录默认权限的(也可以理解为新建文件或目录默认权限中禁止哪些权限,例如系统默认为002,就可以理解为 新建文件夹或目录的o用户禁止拥有写权限)
ps:由于linux上的文件在创建时不能拥有执行权限,所以文件的最高权限的值为666,而目录没有任何限制,因此目录的最高权限为777。
文件的权限:666-002=664
目录的权限:777-002=775
五、Linux系统的用户账号管理
Linux系统的登录工作流程:
a.当输入用户名和密码后,Linux系统于文件/etc/passwd 中查找是否有此用户名
b1.如果没有,直接跳出。
b2.如果有,获取对应UID和GID(/etc/group),同时还会获取一些其他信息(主目录,用户对应的shell)
c1.再通过UID查找/etc/shadow里对应的密码,如果密码校验成功,登录
c2.密码不对,跳出。
文件/etc/passwd 权限:644
每一行对应一个账号信息,共七列,通过:分割
第一列:用户名
第二列:密码,由x来占位,已经移至/etc/shadow
第三列:uid
第四列:gid
第五列:描述信息
第六列:主目录
第七列:用户shell
/etc/shadow: 权限:000
第一列:用户名
第二列:加密的密码
第三列:最后一次更改密码的时间(单位:天,距离纪元的天数)
第四列:密码不可被更改的天数(0表示可以随时更改,如果是其他正整数n,则表示n天内不可再次修改)
第五列:密码过期的天数。(密码可使用天数。99999(273年)则表示无过期天数限制)
第六列:密码过期前的警告天数(7表示失效期的前七天开始发送警告信息)
第七列:密码过期后的宽限天数(在这个天数内,可以使用过期密码进行登录,登录后强制修改密码,如果期限内没有登录,则密码失效,无法使用此密码登陆)
第八列:账户失效日期。意义同第七列,表示方式同第三列,使用距离纪元时间点的天数来计数,通常用于"收费服务"中
第九列:保留字段。
/etc/group 权限:644
第一列:用户组名
第二列:组密码,通常没意义
第三列:组ID
第四列:组成员列表
ps:uid或gid中,0~499是系统预留的号码,0是root的uid,普通用户和普通用户组使用500之后的数字
补充知识:
挂载:操作系统盘符和硬盘分区建立联系的过程。
挂载点:与硬盘分区建立联系的系统盘符称为挂载点。如:C、D、E、G、H、I、J等盘符
ps:分区是操作系统的逻辑概念,硬盘本身没有分区。
磁盘占用情况:各自盘符下的文件占据其对应盘符的空间
挂载类型:自动、手动
windows:
自动:如:你插入一个U盘,系统自动进行挂载(将你的U盘和操作系统盘符联系起来),给你分配一个挂载点H盘,让你可以进行操作,这就是自动挂载。(Windows系统的挂载都是自动的)
根目录:Windows系统有多个根目录,所有的挂载点都是。
分区:在windows中用磁盘0,磁盘1,磁盘2,磁盘3来表示多块硬盘,比如磁盘0表示第一块硬盘,磁盘2表示第二块硬盘,以此类推...
Linux:
自动:系统安装的时候创建的分区以后都自动挂载
手动:系统运行中临时添加的光盘、U盘、移动硬盘等需要手动挂载
根目录:Linux只有一个根目录:/,其他目录都是/目录的子级目录
分区:如果是IDE类型的硬盘,那么是用hd来表示,hda,hdb,hdc...来表示多块IDE硬盘。hda1表示IDE类型硬盘的第一块硬盘的第一分区,hdc3表示IDE类型硬盘的第三块 硬盘的第三个分区;如果是SATA或者SCSI类型的硬盘,那么是用sd来表示,sda,sdb,sdc...来表示多块SATA或者SCSI类型的硬盘,sda1表示SATA或者SCSI类型硬 盘的第一块硬盘的第一分区,sdc6表示SATA或者SCSI类型硬盘的第三块硬盘的第六分区;
在Windows系统中,我们要想给它分区的话,必须给分区分配盘符才行(也就是说未分配盘符的分区我们无法使用)。即当分配完26字母的盘符名时,后面未被分配的分区由于没有多余的字母去给它们分配盘符,所以都不能被识别,那么Windows是如何来处理这一种情形的呢?
概括得讲,那些无法被分配的分区可以通过在其它已被分配盘符的分区中新建一个空文件夹来进行访问,举个形象的例子,在“Z”后的这个分区是无法被分配的,那么我 可以在C盘下新建一个文件夹,然后对那个未被分配的分区进行以上的设置,通过访问C盘下的那个文件夹来访问那个“Z”分区后的那个分区,C盘的这个文件夹不占用C盘 本身分区的大小。其实,在Linux系统中,就是这么做的。只不过在Linux系统中,只有这个“/”才能当盘符(所以说,在安装linux系统时,这个“/”目录必须划分), 其它任何字母都不能当盘符。其他的分区,只能通过在根分区新建各种不同的文件夹来进行访问。在Linux系统中,每个设备都被当成一个文件来对待。
主分区(引导分区):Windows系统一般需要安装在这个主分区中,这样才能保证开机自动进入系统。简单来说,主分区就是可以引导电脑开机读取文件的一个磁盘分区,一块硬盘,最多可以同时创建4个主分区,当创建完四个主分区后,就无法再创建扩展分区和逻辑分区了。此外,主分区是独立的,对应磁盘上的第一个分区,目前绝大多数电脑,在分区的时候,一般都是将C盘分成主分区。
扩展分区:扩展分区是一个概念,实际在硬盘中是看不到的,也无法直接使用扩展分区。除了主分区外,剩余的磁盘空间就是扩展分区了。当一块硬盘将所有容量都分给了主分区,那就没有扩展分区了,仅当主分区容量小于硬盘容量,剩下的空间就属于扩展分区了,扩展分区可以继续进行扩展切割分为多个逻辑分区。
逻辑分区:在扩展分区上面,可以创建多个逻辑分区。逻辑分区相当于一块存储截止,和操作系统还有别的逻辑分区、主分区没有什么关系,是“独立的”。
为什么win10可以创建多个主分区?
因为现在的磁盘都是GPT格式的,GPT是GUID磁碟分割表(GUID Partition Table)的缩写,含义“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准
GPT磁盘模式,自纠错能力强,一块磁盘上主分区数量不受(4个的)限制,支持大于2T的总容量及大于2T的分区(几乎没有上限,最大支持到128个分区,分区大小支持到256TB)。XP系统无法识别GPT磁盘,Win7、Win8可以任意读写,但无法安装操作系统。GPT磁盘只有(也必须是)在使用支持FEI的主板后才可以安装Win8。GPT磁盘的保留分区(隐藏分区)又称为FEI保留分区,可以防止将该磁盘挂接到XP系统中被误认为是未格式化的磁盘而格式化,导致数据丢失。该保留分区在将硬盘初始化(或转化)为GPT模式时自动创建,大小随硬盘总容量而定。