Linux文件权限信息和Linux文件与文件夹的管理

目录

  • 前言
  • 一、系统环境
  • 二、Linux文件权限信息
    • [2.1 查看Linux文件权限信息](#2.1 查看Linux文件权限信息)
    • [2.2 修改Linux文件权限信息](#2.2 修改Linux文件权限信息)
      • [2.2.1 chmod命令](#2.2.1 chmod命令)
      • [2.2.2 chown命令](#2.2.2 chown命令)
  • 三、Linux文件与目录的管理
    • [3.1 查看文件或文件夹](#3.1 查看文件或文件夹)
      • [3.1.1 查看文件内容](#3.1.1 查看文件内容)
      • [3.1.2 查看文件夹内容](#3.1.2 查看文件夹内容)
    • [3.2 新增文件或文件夹](#3.2 新增文件或文件夹)
      • [3.2.1 新增文件](#3.2.1 新增文件)
      • [3.2.2 新增文件夹](#3.2.2 新增文件夹)
    • [3.3 删除文件或文件夹](#3.3 删除文件或文件夹)
    • [3.4 修改文件或文件夹](#3.4 修改文件或文件夹)
    • [3.5 查找文件或文件夹](#3.5 查找文件或文件夹)
    • [3.6 有关文件或文件夹的其他命令](#3.6 有关文件或文件夹的其他命令)
    • [3.7 特殊符号](#3.7 特殊符号)
  • 总结

前言

本篇文件介绍Linux系统的文件权限信息,包括查看文件权限信息和修改文件权限信息;并介绍Linux系统实现文件和文件夹管理的各种命令;最后介绍常用的特殊符号,包括管道符、重定向符。

一、系统环境

  • 虚拟机版本:VMware® Workstation 15 Pro
  • Linux镜像文件:CentOS-7-x86_64-Minimal-1804.iso
  • 主机系统:Windows 11 家庭中文版
  • 主机系统类型:64 位操作系统, 基于 x64 的处理器
  • 远程连接工具:MobaXterm中文版本

二、Linux文件权限信息

2.1 查看Linux文件权限信息

Linux是一个多用户多任务的操作系统,为了提高系统的安全性,Linux系统中的不同的用户对一个同文件(包括目录文件)可能拥有不同的操作权限。不同的用户组对同一个文件也可能拥有不同的操作权限。

bash 复制代码
语法格式:ls -l /
以列表的形式展现根目录下的文件信息

以上信息,在这里只关注第一列、第三列和第四列的信息。

  • 第一列信息
    第一列的信息由十个字符组成,即十个位置。十个位置又可分为四类信息。
    第一个位置表示文件类型(file type)
    第二、三、四位置表示第三列用户所拥有的操作权限(user permissions)
    第五、六、七位置表示第四列用户组所拥有的操作权限(group permissions)
    第八、九、十位置表示其他用户或其他用户组所拥有的操作权限(other permissions)
    对于权限信息的描述,以rwx的顺序描述,如果没有对应的权限,则为-

  1. 文件类型(file type)

    | 字符 | 文件类型 |
    | d | 文件夹 |
    | - | 文件 |

    l 链接文档(其指向一个文件,例如上图的bin文件,其指向/usr/bin)
  2. 操作权限(operator permission)

    | 字符 | 操作权限 |
    | r | readable,读权限(对于文件,可以查看文件内容;对于文件夹,可以查看文件夹的文件) |
    | w | writeable,写权限(对于文件,可以修改文件内容;对于文件夹,文件夹内创建、删除文件) |
    | x | excuteable,执行权限(对于文件,可将文件作为程序执行;对于文件夹,可以cd到此文件夹) |

    - 无权限
  • 第三列信息
    文件的所属用户(文件属主),对应于用户权限字段(user permissions)
  • 第四列信息
    文件的所属用户组(文件属组),对应于用户组权限字段(group permissions)

根据以上描述,以/home目录为例,

其文件类型为d,文件夹;

用户名root拥有的权限为rwx,说明拥有这个文件夹的所有权限;

用户组root拥有的权限为r-x,说明用户组root拥有这个文件夹读权限和执行权限,而没有写权限。

其他用户或用户组拥有的权限为r-x,说明其他用户和其他用户组拥有这个文件夹的读权限和执行权限,而没有写权限。

2.2 修改Linux文件权限信息

2.2.1 chmod命令

文件的所属用户可以修改对应文件的权限信息;root用户可以修改所有文件的权限信息。

通过chmod命令,可以修改文件的权限信息。

bash 复制代码
语法格式:chmod [-R] 权限 文件或文件夹
-R 表示当修改的对象为文件夹时,将文件夹内的文件权限一起修改

对于参数权限,分两种方式说明
方式一:以字符描述方式修改
格式的顺序:操作对象 操作 权限
操作对象有:u(表示所属用户)、g(表示所属用户组)、o(表示其他用户或用户组)、a(表示所有用户)
操作有:=(表示设定)、+(表示添加)、-(表示删除)
权限有:r(表示读权限)、w(表示写权限)、x(表示执行权限)、没有对应的权限则省略不写
注意:不同的对象使用逗号隔开

例子1,
chmod u=rwx,g=rx,o=rx test.txt
表示将test.txt文件的权限信息修改为 所属用户权限:rwx,所属用户组权限:rx,其他用户:rx

例子2,
chmod -R u=rwx,g=x,o=r test
表示将文件夹以及文件夹内的文件权限信息修改为 所属用户:rwx,所属用户组:x,其他用户:r

例子3,
chmod a+x test.txt
表示向文件test.txt的所有用户添加x权限,包含了所属用户,所属用户组。


方式二:以数字描述方式修改
原理:把rwx看做3个二进制位,对于每个二进制位,1表示对应权限有效,0表示对应权限无效。


二进制  十进制	权限
100		4		r
010		2		w
001		1		x
000     0       -

假设要修改所属用户的权限为rwx,则对应的二进制位111,二进制111对应的十进制数为7	
那么,在修改所属用户权限时,数字7表示其要修改的权限。

假设要修改所属用户组的权限为r-x,则对应的二进制位101,二进制101对应的十进制数为5
那么,在修改所属用户组权限时,数字5表示其要修改的权限

例子1,
chmod 755 test.txt
表示将test.txt文件的权限信息修改为 所属用户权限:rwx,所属用户组权限:rx,其他用户:rx

例子2,
chmod -R 714 test
表示将文件夹以及文件夹内的文件权限信息修改为 所属用户:rwx,所属用户组:x,其他用户:r

2.2.2 chown命令

只有root用户可以修改文件的所属用户和所属用户组

通过chown命令,可以修改文件的所属用户和所属用户组。

bash 复制代码
语法格式:chown [-R] [所属用户][:][所属用户组] 文件或文件夹
-R 表示对文件夹的内容应用相同的规则

例子1,
chown pyc test.txt
将test.txt文件所属用户修改为pyc

例子2,
chown :pyspring test.txt
将test.txt文件所属用户组修改为pyspring

例子3,
chown pyc:pyspring test.txt
将test.txt文件所属用户修改为pyc,同时将所属用户组修改为pyspring

三、Linux文件与目录的管理

3.1 查看文件或文件夹

3.1.1 查看文件内容

  • cat命令
    从第一行开始显示文件内容
bash 复制代码
语法格式:cat 文件
  • more命令
    一页一页的显示文件内容
bash 复制代码
语法格式:more 文件
  • tail命令
    显示文件末尾的内容
bash 复制代码
语法格式:tail [-f -num] 文件
-f 		表示持续监听文件的内容
-num 	num表示要查看文件尾部几行内容,默认10行
  • vi命令
    vi文本编辑器打开文件后可查看文件内容
bash 复制代码
语法格式:vi 文件
  • grep命令
    从文件中通过关键字过滤文件行
bash 复制代码
语法格式:grep [-n] 关键字 文件
-n 			表示在结果中显示匹配行的行号
关键字		表示要过滤的关键字,带有空格或其他特殊符号,使用""
文件  		表示要过滤内容的文件,可作为内容输入端口(通常配合管道符使用)
  • wc命令
    统计文件内容的行数、单词数量等
bash 复制代码
语法格式:wc [-c -m -l -w] 文件
-c			表示统计bytes数量
-m			表示统计字符数量
-l			表示统计行数
-w			表示统计单词数量
文件  		被统计的文件,可作为内容输入端口(通常配合管道符使用)

3.1.2 查看文件夹内容

  • ls命令
    查看某个文件夹下的文件
bash 复制代码
语法格式:ls [选项] [文件夹]
选项说明如下
-l 以列表形式展示文件夹的文件
-a 展示文件夹的全部文件,默认不展示隐藏文件
-h 以易于阅读的形式展示,需要与-l一起使用
以上命令可以组合使用
不写查看文件夹参数,则查看当前工作目录下的文件

例子1,
ls -l
表示以列表的形式展示当前目录下的文件

例子2,
ls -lh /home/pyc/test
表示以列表的形式展示test文件夹下的文件

3.2 新增文件或文件夹

3.2.1 新增文件

  • touch命令
bash 复制代码
语法格式:touch 文件名

3.2.2 新增文件夹

  • mkdir命令
bash 复制代码
语法格式:mkdir [-p] 文件夹名
-p		表示自动创建不存在的父目录,适用于创建连续多层级目录

3.3 删除文件或文件夹

  • rm命令
bash 复制代码
语法格式:rm [-f -r] 参数1 参数2 ... 参数N
-f 	force,表示强制删除
-r	表示递归删除,用于删除文件夹
参数1 参数2 ... 参数N 表示要删除的文件或文件夹

例子1,
rm test.txt
表示删除当前工作目录下的test.txt文件

例子2,
rm -rf /test
表示强制删除根目录下的test文件夹
注意:删除文件时,需要对应权限才可以删除,根目录下的文件或文件夹需要root权限

例子3,
关于通配符*的使用
通配符*可以进行模糊匹配
rm test*.txt
表示删除以test开头的.txt文件

注意:非必要情况,请不要在root用户下执行以下两个命令
rm -rf /
rm -rf /*
效果等同于在windows上对c盘进行格式化

3.4 修改文件或文件夹

  • cp命令
    cp命令可以用于复制文件或文件夹
bash 复制代码
语法格式:cp [-r] source dest
-r 表示递归复制,用于文件夹的复制
source  表示被复制的源文件或源文件夹
dest	表示复制的目的地
  • mv命令
    mv命令可以用于移动文件或文件夹
bash 复制代码
语法格式:mv source dest
source 	表示被移动的源文件或源文件夹
dest	表示移动的目的地,如果目的地不存在,则相当于进行改名

3.5 查找文件或文件夹

  • pwd命令
    显示当前的工作目录
bash 复制代码
语法格式:pwd
  • which命令
    查找某个命令的文件路径
bash 复制代码
语法格式:which 命令
  • find命令
    按照文件名或文件大小查找文件
bash 复制代码
按文件名查找
语法格式:find 起始路径 -name "被查找文件名"

例子1,
find / -name "test"
表示查找的起始路径为根目录,被查找的文件名为test

例子2,
find / -name "test*"
表示查找的起始路径为根目录,使用通配符*,查找以test开头的文件

按文件大小查找
语法格式:find 起始路径 -size [+ -]num[k M G]
+ 		表示大于
- 		表示小于
num 	文件大小
k		文件大小单位:KB
M		文件大小单位:MB
G		文件大小单位:GB

例子1,
find / -size +100k
表示查找的起始路径为根目录,被查找的文件大小大于100KB

3.6 有关文件或文件夹的其他命令

  • cd命令
    切换到某个文件夹(目录)
bash 复制代码
语法格式:cd 文件夹

3.7 特殊符号

  • 管道符
    管道符的作用是将符号左边命令的结果作为符号右边命令的输入
bash 复制代码
|(管道符)
例子1,
grep "pyspring" test.txt | wc -l
表示使用grep对test.txt进行过滤,查找带有pyspring的文件行,wc命令将对grep的结果进行行数统计
  • 反引号
    被反引号包起来的命令,可以得到命令的结果,而不是命令本身
bash 复制代码
``(反引号)
例子1,
echo `pwd`
echo是输出内容到屏幕的命令,这里输出的是pwd命令运行的结果
  • 重定向符
bash 复制代码
>	将符号左侧命令的结果,覆盖写入到文件中
>>	将符号左侧命令的结果,追加写入到文件中

例子1,
echo "Hello world" > test.txt
表示将echo执行的命令结果覆盖写入到文件test.txt中

例子2,
echo "Hello world" >> test.txt
表示将echo执行的命令结果追加写入到文件test.txt中
  • 通配符
    通配符可以实现文件的模糊匹配
bash 复制代码
*(通配符)
例子1,
find /home/pyc -name "test*"
表示查找的起始路径为/home/pyc,查找以test开头的文件

总结

相关推荐
2035去旅行11 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希12312 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡13 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.16 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道17 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.20 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落21 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨21 小时前
WSL2的安装与使用
linux·wsl
微小的鱼21 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng1 天前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器