一、linux常见文件系统
对硬盘进行格式化,只是清除了硬盘中的数据?
格式化过程中还向硬盘中写入了文件系统。因为不同的操作系统,管理系统中文件的方式也不尽相同(给文件设定的属性和权限也不完全一样),因此,为了使硬盘有效存放当前系统中的文件数据,就需要将硬盘进行格式化,令其使用和操作系统一样(或接近)的文件系统格式。
格式化的真实目的是为了写入文件系统。
早期的 Linux 使用 Ext2 文件系统格式,CentOS 5.x 默认使用 Ext3, CentOS 6.x 默认使用 Ext4,而目前最新的 CentOS 7.x 默认使用 xfs 格式
Ext4 是 Ext3(Ext2) 文件系统的升级版,在性能、伸缩性和可靠性方面进行了大量改进,变化可以说是翻天覆地的,比如:
向下兼容 Ext3;
最大 1EB 文件系统和 16TB 文件;
无限数量子目录;
二、绝对路径与相对路径
绝对路径:由根目录(/)开始写起的文件名或目录名称。
如:/home/sgd、/etc/yum.repos.d/
相对路径:允许用户指定一个基于当前位置的目标文件路径。
技巧:开头不是以“/”的就属于相对路径的写法。
三、文件和文件权限
- 文件通过文件名来唯一标识。
- linux中,没有“扩展名”的概念,即文件的名称和该文件的种类并没有直接的关联。
- linux中,如果文件以“.”开始,表示该文件为隐藏文件。
- 在linux中的每一个文件或目录都包含访问权限,这些访问权限决定了谁能访问和如何访问这些文件或目录。
- 通过设定权限可以按三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。
- 每一个用户针对系统中的所有文件都有它自身的读、写和执行权限。
四、文件名
在linux中,每一个文件都需要一个名称,称为文件名。通过文件名来区别不同的文件。
在linux中,给文件取名注意:
- 文件名长度最多为256个字符;
- 文件名可用的字符包括字母、数字、“.”、“_”、和“-”(连字符);
- 文件名对英文字符大小写敏感(要区分大小写);
- 在linux中,有些转义字符,如/、?、*、$、空格、+、-等具有特殊意义,这些字符尽量不要用在文件名中;
- 若文件名中第1个字符为“.”,表示该文件为隐藏文件;
- 对于目录文件,“.”表示当前目录,“…”表示父目录。
五、扩展名
为了方便管理,可以为文件设置扩展名。大部分文件都具有标准的扩展名。
- c : 表示C语言源文件;
- cpp :表示c++语言的源文件;
- h :表示C语言的头文件;
- gz :表示使用gzip程序生成的压缩文
- conf :表示系统配置文件。
注意:在linux中,可执行的二进制代码文件可以不要扩展名。
六、文件权限
只有文件的所有者和超级用户才能修改文件权限,使用chmod修改文件权限。
6.1、权限位含义
一般可以使用ll
命令查看文件相关信息,前方的10位展示的就是文件的权限
(1)、第一位代表文件类型。
Linux不像windows使用扩展名表示文件类型,而是使用全新纤维的第一位表示文件类型。虽然Linux文件的种类不像windows中那么多,但是分类也不少,详细情况可以使用info ls
命令查看。
-
:普通文件b
:块设备文件。社是一种特殊设备文件,存储设备都是这种文件,如分区/dev/sda1就是这种文件c
:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘d
:目录文件。linux中一切皆文件,所以目录也是文件的一种。l
:软链接文件。p
:管道符文件。这是一种非常少见的特殊设备文件。s
:套接字文件。
(2)、第2~4位代表文件所有者的权限
r
:代表read,是读取权限w
:代表write,是写权限x
:代表execute,是执行权限
如果是字母,则代表拥有对应的权限;如果是-
则代表没有相应的权限。
(3)、第5-7位代表文件所属组的权限
(4)、第8-10位代表其他用户的权限
6.2、基本权限命令:chmod
修改权限命令:chmod [选项] 权限模式 文件名
英文原意:change file mode bits
选项:-R 递归设置权限,也就是给子目录中的所有文件设定权限
例:
chmod g+w bcd
chmod u+x,o+w bcd
chmod u-x,g-w,o-w bcd
2.1 权限模式
chmod命令的权限模式的格式是[ugoa][[+-=][perms]
,也就是[用户身份][[赋予方式][权限]]
- 用户身份
u
:代表所有者(user)g
:代表所属组(group)o
:代表其他人(other)a
:代表全部身份(all)
- 赋予方式
+
:加入权限-
:减去权限=
:设置权限
- 权限
r
:代表read,是读取权限w
:代表write,是写权限x
:代表execute,是执行权限
2.2 数字权限
数字权限的赋予方式更加简单,但是需要用户对这个数字更加熟悉。以下是几个常用权限
- 644:这是文件的基本权权限,代表所有者拥有读、写权限,而所属组合其他人拥有只读权限
- 755:是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
- 777:这是最大权限。
例:
chmod 644 bcd
chmod 777 1
6.3、基本权限的作用
3.1 权限含义的解释
首先,读、写、执行权限对文件和目录的作用是不同的
- 权限对文件的作用:
r
读:对文件有读权限,代表恶意读取文件中的数据,如果把权限对应到命令上,那么一旦对文件有读权限,就可以对文件执行cat、more、less、head、tail
等文件查询命令w
写:对文件有写权限,代表可以修改文件中的数据。如果把权限对于到命令上,那么一旦对文件有写权限,就可以对文件执行vim、echo
等修改文件数据的命令。注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录用于写权限。x
执行:对文件有执行权限,代表文件拥有了执行权限,可以运行。在linux中,只要文件有执行权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要执行权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行权限是最高权限。
- 权限对目录的作用
r
:对木有有读权限,代表课可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读权限,就可以在目录下执行ls
命令,查看目录下的内容。w
:对目录有写全秀贤,代表可以修改目录下的数据,也就是可以在目录中新建、删除、赋值、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写权限,就可以在目录下执行touch、tm、cp、mv
命令。对目录来说,写是最高的权限。x
:目录是不能运行的,那么对目录拥有执行权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行权限,就可以对目录执行cd命令,进入目录。
3.2 目录的可用权限
目录的可用权限其实只有一下几个。
- 0:任何权限都不赋予
- 5:基本的目录浏览和进入权限
- 7:完全权限
6.4、所有者和所属组的命令
4.1 修改所有者命令:chown
英文原意:change file owner and group
命令格式:chown [选项] 所有者:所属组 文件或目录
选项:-R :递归设置权限,也就是给子目录中的所有文件设置权限
普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。普通用户可以修改所有者是自己的文件权限
例:
chown user1 bcd
chown user1:user1 bcd
4.2 修改所属组命令:chgrp
例:
chgrp root bcd
6.5 unmask默认权限
5.1 查看系统的umsak权限
umask
0022
#用八进制数值显示umask权限
umask -S
u=rwx,g=rx,o=rx
#用字母表示文件和目录的初始权限
5.2 umask权限的计算方法
我们需要先了解一下新建文件和目录的默认最大权限
- 对文件来讲,新建文件的默认最大权限就是666,没有执行权限。这是因为执行权限对文件来讲比较危险,不能再新建文件的时候默认赋予,二必须通过用户手工赋予。
- 对目录来说,新建目录的默认最大权限是777.这是因为对目录而言,执行权限代表进入目录,所以机制建立新文件时直接默认赋予,也没有什么危险。
按照官方的标准算法,umask默认权限需要使用二进制进行了逻辑与和逻辑非联合运算才可以的到正确的新建文件和目录的默认权限。这种方法极不好计算,也不好理解。
这里可以按照权限字母来讲解umask权限的计算方法。下面按照022来分别计算新建文件和目录的默认权限
- 默认文件的权限最大只能是666,而umask的值是022
"-rw-rw-rw"减去"-----w--w-"等于"-rw-r--r--"
- 目录的默认权限最大可以是777,而nmask的值是022
"drwxrwxrwx"减去"d----w--w-"等于"drwx-r-xr-x"
注意:umask默认权限的计算绝不是数字直接相减。例如umask是033的情况。
- 文件的默认权限最大只能是666,二unmask的值是033
"-rw-rw-rw-"减去"-----wx-wx"等于"-rw-r--r--"
6.6 修改文件隐藏属性:chattr
chattr指令可改变linux文件系统的文件属性。
通用格式为:+-=[aAcCdDeijsStTu]
语法格式:chattr [-RV] [-v<版本编号>] [+-=<属性>] [文件或目录]
基本命令:chattr [参数] [文件或目录]
参数:
- a:让文件或目录仅供附加用途
- A:当一个具有“A”属性的文件被访问时,它的atime记录不会被修改
- c:将文件或目录压缩存放
- d:将文件或目录排除在倾倒操作之外
- i:不得任意动更文件或目录
- j:如果文件系统安装有“data=order”或者“data=writeback”选项,则具有“j”属性的文件在写入文件包本身之前将其所有数据写入ext3日志
- s:当删除具有“s“属性即的文件是,其将被归零并写回磁盘
- S:当修改具有“S”属性集的文件时,更改将同步写入磁盘;这相当于应用于文件自己的“同步”挂在选项
- u:当删除具有“u”属性集的文件时,它的内将被保存
使用chattr设定文件的属性后,可以利用lsattr命令来查阅隐藏的属性
例:
touch 1
ll
>>>-rw-r--r--. 1 root root 0 4月 16 18:43 1
chattr +i 1
ll
>>-rw-r--r--. 1 root root 0 4月 16 18:43 1
rm 1
该指令尤其在系统的数据安全方面很重要,+i和+a两个属性。
+a:可以增加但是不能修改与删除旧数据的参数。
- ··