切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
windows
Linux
Unix
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
操作系统
Linux 基础命令说明之一(目录文件权限)
[TOC] ## 1. 文件权限概述 使用`ls -l`命令查看目录文件详细  上图中每条信息第一个空格前面的字符串就是描述文件或文件夹的权限,例如`-rw-r--r--`和`drwx------`,字符串第一个字符描述文件还是文件夹,文件为`-`,文件夹为`d`,其余字符串用来描述文件权限,详细的文件权限如下 ## 1.1. 文件的权限类型 + `r` 读权限:具有读取文件内容的权限 + `w` 写权限:具有新增,修改,删除文件内容的权限 + `x` 执行权限:具有执行文件的权限 + `- `无权限 ## 1.2. 权限的分组 + 用户权限(user):rwx + 租权限(group):r-x + 其它权限(other):--- >** 说明:**文件和文件夹的权限由9个字符组成,正好前三个字符描述的是用户权限,中间三个描述的是组权限,后面三个则描述的是其它权限,一次文件/文件夹的最高权限应该是:rwxrwxrwx,最低权限是:------ ## 2. 文件权限命令 ### 2.1. chmod 命令 + **作用:**用来修改文件权限 + **格式:**chmod 权限 文件名/文件夹名 + **权限:** + `u`:用户权限(user) + `g`:同组权限(group) + `o`:其它权限(other) + `a`:所有权限(all) + `+`:添加权限 + `-`:删除权限 + **示例:** ```shell # 给1.txt这个文件的用户权限添加一个可读的权限 chmod u+r 1.txt # 将1.txt这个文件的用户权限,组权限、其它权限的写权限全部删除 chmod a-w 1.txt # 如果abc这个文件是一个可执行文件,那么它是拥有x权限的,将abc这个文件的用户权限,组权限、其它权限的可执行权限全部删除,那么再在终端执行这个文件是会提示权限不足的 chmod a-x abc ``` ## 3. 扩展 ### 3.1. 批命令执行 当我们要执行一系列命令时,在终端逐条输入是非常繁琐的事,而且复用性不高。这时我们可以将这些命令放在一个后缀为.sh的文件中,然后给这个文件可执行的权限,接着就可以在终端将这个文件当作命令执行,执行的结果就是写在文件里面的命令,它会逐一执行 ```shell # 假设当前终端打开的目录为家目录下的一个text文件夹下,然后将下面的命令放在一个myshell.sh文件中, mkdir ~/text/a ~/text/b ~/text/c touch ~/text/a/1.txt ~/text/b/2.txt ~/text/c/3.txt tree . ``` 将上面的命令放在一个myshell.sh文件中,然后在终端下执行 ```shell # 执行不成功,提示权限不足,说明还没有给myshell.sh文件可执行权限 chmod -u+x myshell.sh # 给完权限就可以在终端中执行此文件了,先进入到myshell.sh目录下,然后执行文件这样文件中的所有命令就执行了 myshell.sh # 此时执行的其实 bash myshell.sh,终端其实就是bash程序 ``` ### 3.2. 输出重定向 在终端中执行命令时会输出正确的信息和异常的信息(例如权限不足提示类信息),正确的输出可以称为标准输出,错误提示类的称为标准错误输出,如果执行的一个命令是一个长期使用的命令,我们需要记录这个命令每次使用输出的信息,那么我们就希望将这个输出的信息保存到一个文件中去,也就是输出的时候将信息由终端显示重定向到一个文件中,这时需要借助两个符号`>`和`>>` + `>`:将一个命令的标准输出重定向到指定文件 + 示例 ```shell find ~/text -name "a" > output.txt # 上面命令执行完成后所有标准输出都存放到output.txt中了,不会在终端中显示了,终端这时只会显示标准错误输出 ``` + `>>`:将一个命令的标准输出追加到指定文件末尾 + 示例 ```shell find ~/text -name "a" >> output.txt # 上面命令执行完成后所有标准输出追加到output.txt中了,如果不使用>>符号,还是使用>符号,那么output.txt文件会被覆盖掉 ``` + `2>`:将一个命令的标准错误输出重定向到指定文件 + 示例 ```shell find ~/text -name "a" 2> error.txt # 上面命令执行完成后所有标准错误输出都存放到error.txt中了,不会在终端中显示了,终端这时只会显示标准输出 ``` + `2>>`:将一个命令的标准错误输出追加到指定文件末尾 + 示例 ```shell find ~/text -name "a" 2>> error.txt # 上面命令执行完成后所有标准错误输出追加到error.txt中了,如果不使用>>符号,还是使用>符号,那么error.txt文件会被覆盖掉 ``` + `&>`:将所有输出重定向到一个文件中 + 示例 ```shell find ~/text -name "a" &> all.txt # 上面命令执行完成后所有输出都存放到all.txt中了,不会在终端中显示了 ``` + `&>>`:将所有输出重定向到一个文件末尾 + 示例 ```shell find ~/text -name "a" &>> all.txt # 上面命令执行完成后所有输出追加到all.txt中了,如果不使用>>符号,还是使用>符号,那么all.txt文件会被覆盖掉 ``` > 注:标准输出和标准错误输出重定向使用的符号区别在,标准错误输出符号前面有个`2`,例如:标准输出使用的是`>`,标准错误输出使用的是`2>` #### 3.2.1. /dev/null 文件 在linux中有一个黑洞文件`/dev/null`,不管在这个文件中写任何东西都会被丢掉,也就是说写入到这个文件的内容都会被自动删除掉,那么这个文件有什么作用呢? **作用:**可以将不需要的信息重定向到这个文件中,这样也避免了生产垃圾文件的清理 ```shell # 例如在根目录下查找文件,会产生很多标准错误输出信息,影响正确信息阅读,但又不想将这些信息写到一个文件中,这样会产生一个需要清理的文件。这时我们就可以利用到这个/dev/null文件了,将标准错误信息写到这个文件里 find / -name "myshell.sh" 2> /dev/null ```
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号