Linux系列文件属性查看和修改,以及软硬连接

Posted 一宿君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系列文件属性查看和修改,以及软硬连接相关的知识,希望对你有一定的参考价值。

1、文件目录基本属性

可以使用 man [命令] 来查看各个命令的使用文档。
如 :man cp

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

在Linux中我们可以使用ll或者ls -l命令来查看显示一个文件的属性以及文件所属的用户和组:

在上述实例中,文件的属性的第一个字母是d表示该文件是一个目录文件,字母是l表示是一个链接文件,字母是-表示是一个文件。

  • d:表示目录
  • -:表示文
  • l:表示链接文件(link file)
  • b:表示为装置文件找那个可供存储的接口存储设备(可随机存储的装置)
  • c:表示为装置文件中的串行端口设备,例如:键盘、鼠标(一次性读取装置)

上述实例中的第一列属性为10个字母组成,第一位已经清楚,后9位字母,三个字母为一组,分为三组,且均为rwx三个参数的组合。

  • r:代表可读read
  • w:代表可写write
  • x:代表可执行execute

注意:这三个字符分别代表各自的权限,位置不会改变,如果没有相应的权限,就会相应位置就会以-代替。

如下图所示:

再次强调这10位字符代表的作用(从左至右用0-9这些数字来表示):

  • 第0位确定文件类型,
  • 第1-3位确定属主(该文件的所有者)拥有该文件的权限。
  • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限。
  • 第7-9位确定其他用户拥有该文件的权限。

其中:

  • 第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

  • 第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;

  • 第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。

  • 对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

  • 同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

  • 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

  • 因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

  • 在以上实例中,boot 文件是一个目录文件,属主和属组都为 root。

2、修改文件属性

  • chown:更改文件属主,也可以同时更改文件属组
    chown [–R] 属主名 文件名
    chown [-R] 属主名:属组名 文件名
    
  • chgrp:更改文件属组
    chgrp [-R] 属组名 文件名
    
  • chmod:更改文件9个属性(很重要)
    chmod [-R] xyz 文件或目录(xyz分别代表数值,下面讲解)
    
  • Linux修改文件属性有两种方式:一种是数字(推荐),另一种是符号
  • Linux文件的基本权限就有9个,分别对应owner:group:others三种身份各有自己的read:write:execute权限。
  • 文件的权限字符:-rwxrwxrwx,第一个字符代表文件类型,后九个字符是三个一组,我们可以用数字分别代表每个字符对应的权限,各个权限分数对照表如下:
    r:4  w:2  x:1
    
    总共有7种情况:
    --x = 1
    -w- = 2
    -wx = 3
    r-- = 4
    r-x = 5
    rw- = 6
    rwx = 7
    
  • 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的
  • 例如:当权限为:[-r-x-wx–x] 分数则是:
    owner = r-x = 4+0+1 = 5
    
    group = -wx = 0+2+1 = 3
    
    others = --x = 0+0+1 = 1
    
  • 修改权限

3、查看文件内容

演示实例操作:

[root@iZuf6el9zfn76jfyw0aoi9Z sysconfig]# cd /etc/sysconfig/


Linux系统中使用以下命令来查看文件的内容:

  • cat:由第一行开始显示文件内容!

    cat [-AbEnTv] 文件
    
  • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

  • -E :将结尾的断行字节 $ 显示出来;

  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;

  • -T :将 [tab] 按键以 ^I 显示出来;

  • -v :列出一些看不出来的特殊字符

  • tac:从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

  • nl :显示的时候,可以输出行号!

    nl [-bnw] 文件
    
    • -b :指定行号指定的方式,主要有两种:
      • -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
      • -b t :如果有空行,空的那一行不要列出行号(默认值);
    • -n :列出行号表示的方法,主要有三种:
      • -n ln :行号在荧幕的最左方显示;
      • -n rn :行号在自己栏位的最右方显示,且不加 0 ;
      • -n rz :行号在自己栏位的最右方显示,且加 0 ;
    • -w :行号栏位的占用的位数。
  • more:一页一页的显示文件内容!

    • 空格键可以向下翻页
    • Enter键可以一行一行的向下查看
    • :f 可以显示当前)
    • /要查找的字符串:向下查找
    • ?要查找的字符串:向上查找
    • n和N分别代表向下和向上,当查找到之后继续查找下一处
  • less 与 more 类似:但是比 more 更好的是,他可以向上一行一行的走!

    • 空格键可以向下翻页
    • 上下键可以一行一行的向上下查看(Enter键仍然可以向下一行一行的看)
    • :f 可以显示当前)
    • q命令退出当前文件
    • /要查找的字符串:向下查找
    • ?要查找的字符串:向上查找
    • n和N分别代表向下和向上,当查找到之后继续查找下一处
  • head:只看头几行!

    head [-n number] 文件
    

    选项与参数:-n 后面接数字,代表显示几行的意思!
    默认的情况中,显示前面 10 行!若要显示前 20 行,就指定number为20

  • tail:只看尾巴几行!

4、Linux 链接概念

Linux的链接分为两种:硬链接、软连接

4.1、硬链接

假设有两个文件A和B,B指向A是A的硬链接,那么他们A和B指向同一个文件!!!也就是允许一个源文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要的文件上,防止误删。

ln 文件1 文件2  #建立硬链接 文件2 -> 文件1

硬链接指通过索引节点来进行链接。在Linux文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。

在Linux中,多个文件名指向同一个索引节点的情况是存在的。
比如:B是A的硬链接(A和B都是文件名),则B的目录项中的Inode节点号与A的目录项中的Inode节点号相同,即一个Inode节点对应两个不同的文件名两个文件名指向同一个文件,A和B对于文件系统来说是完全平等的。删除其中任意一个都不会影响另外一个的访问。

硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件上,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的链接,只删除其中一个链接并不会影响索引姐弟啊本身和其他的链接,只有当最后一个链接被删除后,这个源文件的数据块以及目录的链接才会被完全释放,也就是说一个文件真正被删除的条件是与之相关的所有链接文件均被删除完。

4.2、软连接

类似于Windows下桌面上的跨界方式,删除源文件后,快捷方式就无法访问了。

ln -s 文件1 文件3  #建立软链接 文件3 -> 文件1

软链接也称为符号链接(Symbolic Link)。软链接有类似于Windows的快捷方式。它实际上是一个特殊的文件,在符号链接中,文件实际上是一个文本文件,其中包含的有另一个文件的位置信息。

比如:B是A的软链接(A和B都是文件名),A的目录项中的Inode节点号与B的目录项中的Inode节点号不相同,A和B指向的是两个不同的Inode,继而指向两块不同的数据块。但是B的数据块中存放的是A的路径名(可以根据这个找到A的目录项)。A和B之间是“助兴关系”,如果B被删除了,源文件A依然正常存在;但是如果源文件A被删除了,B文件依然存在,但是指向的链接将会失效。

4.3、测试

touch 文件名  #创建一个文件
echo “内容” >>文件名  #向文件内写入内容


删除源文件f1之后,访问f2和f3查看区别:

4.4、结论

有三个文件:源文件是f1,f2是f1的硬链接,f3是f1的软链接

  • 删除软链接f3,对f1和f2无影响;
  • 删除硬链接f2,对f1和f3无影响;
  • 删除源文件f1,对硬链接f2无影响,但是软链接f3会失效;
  • 删除源文件f1和硬链接f2,整个文件会被真正的删除,f3自然也会失效。

以上是关于Linux系列文件属性查看和修改,以及软硬连接的主要内容,如果未能解决你的问题,请参考以下文章

linux 文件属性

LINUX文件属性详述

理解inode以及软硬连接,和inode磁盘爆满的解决方案以及文件权限

Linux 中文件属性以及文件权限

linux命令总结

Linux下如何查看进程打开的文件以及修改进程打开文件数上限