Linux C/C++编程之(四)常用命令之链接命令和权限命令

一、链接文件命令:ln

  • 英文原意:link
  • 命令所在路径:/bin/link
    在这里插入图片描述
  • 执行权限:所有用户
  • 功能描述:生成链接文件
  • 语法:
    • ln 源文件 目标文件
    • -s 创建软链接
    • 不加 -s 创建硬链接

例子:

  • 创建文件hello的软链接hello.soft:ln -s hello hello.soft
  • 创建文件hello的硬链接hello.hard:ln hello hello.hard
    在这里插入图片描述
  • 软链接 前面是 l 开头的(link),而硬链接是 - 开头,表示文件
    在这里插入图片描述
  • 软链接所有者和所属组具有全部操作的权限,rwxrwxrwx;而硬链接不是。在这里插入图片描述
  • 软链接类似与 Windows 的快捷方式,有一个明显的箭头指向,而指向的是源文件;硬链接文件除了文件名与源文件不一样,其余所有信息都是一样的。类似于 cp 复制操作。但是又和复制不一样,硬链接可以同步更新。
    在这里插入图片描述
  • 查看硬链接计数,可以看到硬链接和源文件一样,都是2,软链接则是1
    在这里插入图片描述
  • 通过 ls -i 操作,来查看 文件的 i 节点。发现硬链接和源文件的 i 节点是相同的,而软链接与源文件的 i 节点是不同的
    在这里插入图片描述

二、更改文件或目录权限命令:chmod

  • 英文原意:change the permissions mode of a file
  • 命令所在路径:/bin/chmod
    在这里插入图片描述
  • 执行权限:所有用户
  • 功能描述:改变文件或目录权限
  • 语法:
    • chmod {ugoa}{±=}{rwx} 文件或目录
    • mode=421 文件或目录
    • -R 递归修改

注意:不是每一个Linux用户都有权限更改某个文件或目录权限,能更改文件或目录权限的只有两种用户:
①、文件的所有者。
②、root用户(root用户是linux系统权限最大的用户)。

  • u:表示所有者,g:表示所属组,o:表示其他人,a:表示所有人;
  • r:读权限,w:写权限,x:执行权限;权限可以用数字表示,其中 r 表示4,w表示2,x表示1,分别是2的0次方,1次方,2次方(二进制数)。

rwx 权限的数字就是 7,具有 rw- 权限的数字是 6,具有 r-- 权限的数字是 4

例子:

  • txt目录下的hello,赋予所属用户/所属组/其他人 x 权限。
chmod u+x,g+x,o+x hello

在这里插入图片描述

  • 用数字操作的话,也就是说775
chmod 775 hello

在这里插入图片描述

三、改变文件或目录所有者/所属组的命令:chown/chgrp

  • 英文原意:change file ownership
  • 命令所在路径:/bin/chown
    在这里插入图片描述
  • 执行权限:所有用户
  • 功能描述:改变文件或目录的所有者
  • 语法:
    • chmod 用户 文件或目录

注意:能更改文件或目录的所有者用户是 root


  • 英文原意:change file group ownership
  • 命令所在路径:/bin/chown
    在这里插入图片描述
  • 执行权限:所有用户
  • 功能描述:改变文件或目录的所属组
  • 语法:
    • chgrp 用户组 文件或目录

注意:能更改文件或目录的所有者用户是 root

四、缺省权限命令:umask

  • 英文原意:the user file-creation mask

  • 命令所在路径:shell 内置命令

  • 执行权限:所有用户

  • 功能描述:显示、设置文件的缺省权限

  • 语法: umask -S

    • -S 以rwx形式显示新建文件的缺省权限
      在这里插入图片描述

注意:以目录txt为例,其中umask执行显示结果是 0002,第一个0表示特殊权限,后面的 022 表示权限的掩码值,
计算方式是用 777 减去 002 得到 775(是每一位相减),即 rwxrwxr-x,这个值的数字表示就是755。
在这里插入图片描述

也就是说创建一个新文件默认权限为 rwxrwxr-x,下面创建一个文件来验证一下:
在这里插入图片描述

原文地址:https://www.cnblogs.com/hzcya1995/p/13302546.html