Linux 文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们通常使用以下两个命令来修改文件或目录所属用户与权限。
- chown (change ownerp) : 修改所属用户与组
- chmod (change mode) : 修改用户的权限
- 字符 1:文件的属性
- d : 目录
- - : 文件
- l : 链接稳定(link file)
- b : 表示为装置文件里面的可供存储的接口设备
- c : 表示为装置文件里面的串行端口设备,例如键盘鼠标
- 剩下字符三个一组:均为
rwx
的三个参数的组合,其中,r
代表可读,w
代表可写,x
代表可执行,无权限便会为-
号,顺序不会改变。
文件属主和属组
对于文件来说,都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在linux中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
对root用户来说,一般情况下,文件的权限对其不起作用。
更改文件属性
chgrp
:更改文件属组
chgrp [-R] 属组名 文件名
- R:递归更改文件权限
chown
:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
chmod
:更改文件9个属性
chmod [-R] xyz 文件或目录
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others
(拥有者/组/其他)三种身份有自己的read/write/execute
权限。
文件的权限字符为: -rwxrwxrwx
,这九个权限是三个一组的。其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
- r : 4
- w : 2
- x : 1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:-rwxrwx---
分数则是:
- owner = rwx = 4+2+1=7
- group = rwx = 4+2+1=7
- others = --- = 0
选项与参数:
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加
- -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
符号类型改变文件权限
还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:
- user:用户
- group:组
- others:其他
那么我们就可以使用 u, g, o 来代表三种身份的权限。
chmod | u,g,o,a | + (加入) - (除去) = (设定) | r,w,x | 文件或目录 |
---|
chmod u=rwx,g=rx,o=r file
Linux 文件与目录管理
Linux的目录结构为树状结构,最*的目录为根目录/。
其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
处理目录的常用命令
-
ls (list files):列出目录及文件名
- -a : 全部文件,连同隐藏文件
- -d : 仅列出目录本身,不列出目录内的文件数据
- -l : 长数据串列出,包含文件的属性与权限等等
-
cd (change directory):切换目录
# 绝对路径 cd /root/file/ # 相对路径 cd ./file/ # 回到家目录 cd ~
-
pwd (print work directory):显示目前的目录
# 显示出确实的路径,而非使用连接(link)路径 pwd [-P]
-
mkdir (make directory):创建一个新的目录
# -m : 配置文件的权限,直接配置 # -p : 帮助你直接将所需要的目录(包含上一级目录)递归创建起来 mkdir [-mp] 目录名称 mkdir -m 711 file
-
rmdir (remove directory):删除一个空的目录
rmdir [-p] 目录名称 # -p : 连同上一级空目录也一起删除
-
cp (copy file):复制文件或目录
cp [-adfilprsu] 来源档(source) 目标档(destination) cp [options] source1 source2 source3 .... directory
-
rm (remove):删除文件或目录
rm [-fir] 文件或目录 # -f : 就是force的意思,忽略不存在的文件 # -i : 互动模式,在删除前会询问使用者是否动作 # -r : 递归删除
-
mv (move file):移动文件或目录,或修改文件与目录的名称
mv [-fiu] source destination mv [options] source1 source2 source3 .... directory # -f : 如果目标文件已经存在,不会询问而直接覆盖 # -i : 若目标文件已经存在,询问是否覆盖 # -u : 若目标文件已经存在,且source比较新,才会升级(update)
可以使用 man [命令] 来查看各个命令的使用文档
文件内容查看
Linux系统中使用以下命令来查看文件的内容:
- cat : 由第一行开始显示文件内容
- tac : 从最后一行开始显示
- nl : 显示的时候,顺道输出行号
- more : 一页一页的显示文件内容
- less : 与more类似,比more更好的是,可以往前翻页
- head : 只看头几行
- tail : 只看后几行