Liunx学习笔记之文件权限与I/O重定向
一、文件权限
1. 文件权限
在 Linux 中有四种访问权限,列举如下
- 可读取:r,Readable
- 可写入:w,Writable
- 可执行:x,Execute
- 无权限:-
我们可以使用 ls -l 文件名
命令查看一个文件的权限,其中显示内容的第一个字段就是对文件权限的描述,一个例子如下:
2. 修改文件权限
(1)权限类型的表示方法
- 数字表示法:将所有者、所属组和其他人的访问权限分别转化为八进制数字,再根据八进制数字转化为十进制数字。例如:rwxrwxr-x -> (111)(111)(101) -> (7)(7)(5) -> 775
- 文字表示法:所有者使用 u 表示(User)、所属组使用 g 表示(Group)、其他人使用 o 表示(Other);读取权限使用 r 表示(Read)、写入权限使用 w 表示(Write)、执行权限使用 x 表示(Execute)
(2)权限类型修改命令
在 Linux 中修改文件权限可以使用 chmod 权限,具体使用方法如下:
- 数字表示法:chmod 权限的数字表示法 文件名,例如:
chmod 664 file.txt
- 文字表示法:直接以例子来说明
增加所有者的执行权限:chmod u+x file.txt
减少所属组的写入权限:chmod g-w file.txt
重新指定其他人的访问权限:chmod o=rw file.txt
(3)目录权限
修改目录权限所使用的语法和上面是完全一致的,不同的是符号的含义有所不同
r:可以使用 ls 命令列出目录中的内容
w:可在目录中新建、删除、修改文件
x:可以只用 cd 命令切换到目录
-:无任何权限
注意:若修改目录权限时发现该目录含有子目录并需要一同修改权限,则需要使用 -R 参数
3. 指定文件默认权限掩码
权限掩码由4个八进制数字组成,一般是用来指定文件的默认权限使用,一般而言,新建文件的默认权限为 664,新建目录的默认权限为 775,我们可以使用 umask
命令检查和修改文件权限
一个常用的公式如下:现有权限 - 权限掩码 = 默认权限
三、I/O重定向
1. I/O类型
- 标准输入(Standard Input,stdin)
- 标准输出(Standard Output,stdout)
- 标准错误输出(Standard Error Output, Error stderr)
2. I/O重定向
(1)输出定向 >
一般在 Linux 中执行命令或程序默认是将结果输出到屏幕,但有时候会希望将结果保存到文件便于保存、分析和处理数据,这时候就需要用到输出定向了
例如:ls -al /etc
默认是将 etc 目录下的所有文件信息输出到屏幕,而使用输出定向后 ls -al /etc > ./file.txt
,则是将结果直接输出到 file.txt 文件
技巧:可以使用命令 cat > ./file.txt
创建一个简单的文本编辑器向文件写入数据
(2)附加输出定向 >>
附加输出定向和输出定向十分相似,区别仅仅在于输出定向会将旧数据覆盖,而附加输出定向会将新数据添加到原数据后,相当于追加数据
(3)输入定向 <
输入定向用于将键盘或文件提供给命令执行,例如命令 wc < file.txt
可以统计 file.txt 文件中的行数、字数等
(4)附加输入定向 <<
附加输入定向可以让你自定义一个字符串,系统在收到此字符串前,会持续将数据输入到文件,此功能常用于电子邮件系统中