linux学习之旅(3)----文件的基本属性

在Linux中,有三种基本文件类型:(1)普通文件、(2)目录、(3)设备文件

一、普通文件

普通文件是以字节为单位的数据流,包括文本文件、源码文件、可执行文件等。文本和二进制文件对Linux来说并无区别,对普通文件的解释由处理该文件的应用程序进行。

二、目录

目录可以包括普通文件和特殊文件、目录相当于Windows和MAC中的文件夹。

三、设备文件

设备文件也被称为特殊文件,设备文件和普通文件不同的是,设备文件中并不包含任何数据。Linux与外部设备(例如光驱、打印机、终端、modern等)是通过一种被称为设备文件的的文件来进行通信。Linux输入输出到外部设备的方式和输入输出到一个文件的方式是相同的。Linux和一个外部设备通讯之前,这个设备必须首先要有一个设备文件在。

设备文件由两种:字符设备文件和块设备文件。

(1)字符设备文件:以字母“c”开头。字符设备文件向设备传输数据时,一次传送一个字符。典型的通过字符传送数据的设备由终端,打印机、绘图机、moderm等。字符设备文件又是也被称为“raw”设备文件。

(2)块设备文件:以字符“b”开头。块设备文件向设备传送数据时,先从内存中的buffer中读或写数据,而不是直接传送数据到物理磁盘。磁盘和CD-ROMS既可以使用字符设备文件也可以使用块设备文件。

Linux文件基本属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在Linux系统中可以利用ls -l命令来显示文件的属性以及文件所属的用户和组

每一行分位7列:

第一列:文件类型

第二列:表示文件个数。如果是文件,那么就是1;如果是目录,那么就是该目录中文件的数目。

第三列:文件的所有者,即文件的创建者。

第四列:文件所有者所在的用户组。在Linux中,每个用户都隶属于一个用户组。

第五列:文件大小(以字节计)。

第六列:文件被创建或者上次被修改的时间。

第七列:文件名或目录名。

(*每个目录都有一个指向它本身的子目录“.”和指向它上级目录的子目录“..”,所以对于一个空目录来说它的文件个数应该位2。)

第一列是由前10个字符组成的,如上面图片中的drwxrwxr-x。这10为字符的意义为:

0位:标识文件类型

-:普通文件。如文本文件、而进制可指向文件、源代码等。

b:块设备文件。

c:字符设备文件。

d:目录文件。

l:符号链接(软连接)。可以来链接任何普通文件,类似于Windows中的快捷方式。

p:具名管道。管道是进程间的一种通信机制。

s:用于进行间通信的套接字。

1-3位:标识该文件的所有者对文件的权限。owner

4-6位:标识所有者的同组用户拥有该文件的权限。group

7-9位:标识其他用户拥有该文件的权限。others

r:可读(read)

w:可写(write)

x:可执行(execute)

-:没有权限

rwx的顺序不会发生变化,如何某个用户没有用于这项权限这项会使用“-”来替代。

Linux文件的属主和属组

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件的所有者以外的用户又可以分为文件所有者和其他用户。所以,Linux系统按文件所有者、文件所有者同组和其他用户规定了不同文件的访问权限。文件的权限无法限制root用户。

更改文件属性

1、chgrp:更改文件属组

chgrp [-R] 属组名 文件名

参数选项:

-R:递归更文件属性,就是在更改某个文件属组时,如果加上-R的参数,那么该目录下所有的文件的属组都会被修改。

chown:更改文件属主,也可以同时更改文件属组。

chown :更改文件属主,也可以同时更改文件属组

chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

 

3、chmod:更改文件9个属性

Linux文件属性有两种设置方法(1)数字(2)符号。

一、数字:

Linux文件的基本权限就要9个,分别为owner/group/others三种身份各有自己的read/write/exceute权限。

其中每种权限都是由对应的分值的,read对应的分数为4,write对应的分数为2,exceute对应的分数为1,“-”对应的分数为0。

比如HelloWorld.cpp对应身份的权限为:rw-、rw-、r--,对应的分数为6,6,4。下面我们将该文件每个身份对应的权限都打开,那数字对应的就是777。

chmod [-R] xyz 文件或目录

选项与参数:

xyz:表示各个身份对应的分数。

-R:递归地更改文件和目录。

二、符号:

Linux的三种身份为:

(1)user(owner)

  (2)   group

  (3)   others

那么就可以使用u、g、o来表示三种身份的权限。此外,a表示all,即全部身份。读写权限可以写成r,w,x,-。

chomd u=xyz,g=xyz,o=xyz
chmod a +/- [x,y,z]

当不赋予某个身份某个权限时,就直接不用写,不需要写-。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值