文件权限

每个文件和目录都具有以下访问权限,三种权限之间相互独立:

  • 读取权限:浏览文件/目录中内容的权限
  • 写入权限:对文件而言是修改文件内容的权限,对目录而言是删除、添加和重命名目录内文件的权限
  • 执行权限:对可执行文件而言是允许执行的权限,对目录而言是进入目录的权限。

 

与文件权限相关的用户分类

  • 文件所有者(Owner):建立文件或目录的用户
  • 同组用户(Group):文件所属组群中的所有用户。
  • 其他用户(Other):既不是文件所有者,又不是同组用户的其他所有用户。

 

访问权限的表示法

(1)字母表示法

Linux中每个文件的访问权限可用9个字母表示,利用“ls -l”命令可列出每个文件的权限,其表示形式和含义如图:

P145图

(2)数字表示法

字母表示形式

十进制数表示形式

权限含义

字母表示形式

十进制数表示形式

权限含义

---

0

无任何权限

r--

4

可读

--x

1

可执行

r-x

5

可读和可执行

-w-

2

可写

rw-

6

可读和可写

-wx

3

可写和可执行

rwx

7

可读、可写和可执行

 

修改文件权限的Shell命令

1. chmod命令

chmod 数字模式 文件        或            chmod 功能模式 文件        修改文件的访问权限

  • 数字模式为一组三位数字
  • 功能模式可由以下三部分组成

对象:   u (user):文件所有者;g (group):同组用户;o (other):其他用户

操作符:+:增加权限;-:删除权限;=:赋予给定权限

权限: r (read):读取选项;w (write):写入权限;x (execute):执行权限

 

2. chgrp命令

chgrp 组群 文件                  改变文件的所属组群

 

3. chown命令

chown 文件所有者 [:组群] 文件      改变文件的所有者,并可一并修改文件的所属组群

 

管理目录和文件的Shell命令

1. mkdir命令

mkdir [选项] 目录                创建目录

-m 访问权限 (mode):创建目录的同时设置目录的访问权限

-p (parents):一次性创建多级目录

 

2. mv命令

mv [选项] 源文件或源目录 目的文件或目的目录       移动或重命名文件或目录

-b (backup):若存在同名文件,则覆盖前备份原来的文件

-f (force):强制覆盖同名文件

 

3. cp命令

cp [选项] 源文件或源目录 目的文件或目的目录        复制文件或目录

-b (backup):若存在同名文件,则覆盖前备份原来的文件

-f (force):强制覆盖同名文件

-r 或 –R (recursive):按递归方式,保留源目录结构复制文件

 

4. rm命令

rm [选项] 文件或目录        删除文件或目录

-f (force):强制删除,不出现确认信息

-r 或 –R (recursive):按递归方式删除目录,默认只删除文件

 

5. ln命令

ln [选项] 目标文件 链接文件            建立链接文件,默认建立硬链接文件

-b (backup):若存在同名文件,则覆盖前备份原来的文件

-s (symbolic):建立符号链接文件

 

6. find命令

find [路径] 表达式               从指定路径开始向下搜索满足表达式的文件和目录。不指定路径时查找当前目录。当查找到用户不具有执行权限的目录时,屏幕将显示“权限不够”等提示信息。

-name 文件:按文件名查找,可使用通配符

-g 组群名:查找文件的所属组群为指定组群的文件

-user 用户名:查找文件所有者为指定用户的文件

-type 文件类型:按照文件类型查找,其中d为目录文件,l为符号链接文件

-size [+|-] 文件大小:查找指定大小的文件

 

7. grep命令

grep [选项] 字符串 文件列表           从指定文本文件或标准输出中查找符合条件的字符串,默认显示其所在行的内容。

-n (number):显示行号

-v (invert):显示不包含指定字符串的行

-I (ignore):查找时不区分大小写

 

8. du命令

du [选项] [目录或文件] 显示目录或文件大小,默认以KB为单位。参数为目录时,默认递归显示指定目录及其所有子目录的大小。

-a (all):显示指定目录及其所有子目录和文件的大小。默认只显示目录的大小。

-h (human):以易读方式显示目录或文件的大小。

-s (summarize):只显示指定目录的大小,而不显示其子目录的大小。

 

归档与压缩文件

tar.gz:用gzip压缩的tar文件

tar.bz2:用bz2压缩的tar文件

tar:未压缩的tar文件

zip:zip压缩文件

gz:gz压缩文件

bz2:bz2压缩r文件

ear、jar、war:Java环境下常用的压缩文件

 

归档与压缩文件的Shell命令

1. tar命令

tar 选项 归档/压缩文件 [文件或目录列表]                   将多个文件或目录归档为tar文件,如果使用相关选项还可压缩归档文件。

-c (create):创建归档/压缩文件

-r:向归档/压缩文件追加文件和目录

-t (list):显示归档/压缩文件的内容

-u (update):更新归档/压缩文件

-x (extract):还原归档/压缩文件中的文件和目录

-v (verbose):显示命令的执行过程

-z (gzip):采用gzip方式压缩/解压缩归档文件

-j:采用bzip2方式压缩/解压缩归档文件

-f:tar命令的必须选项

 

2. gzip命令

gzip [选项] 文件|目录        压缩/解压缩文件。无选项参数时执行压缩操作。压缩后产生扩展名为.gz的压缩文件,并删除源文件。

-d (decompress):解压缩文件,相当于使用gunzip命令

-r (recursive):参数为目录时,按目录结构递归压缩目录中的所有文件

-v (verbose):显示文件的压缩比例

 

3. bzip2命令

bzip2 [选项] 文件|目录                      压缩/解压缩文件。无选项参数时执行压缩操作。压缩后产生扩展名为.bz2的压缩文件,并删除源文件。bzip2命令也没有归档功能。

-d (decompress):解压缩文件,相当于使用bunzip2命令

-v (verbose):显示文件的压缩比例等信息

 

4. zip命令

zip [选项] 压缩文件 文件列表          可将多个文件归档后压缩

-m:压缩完成后删除源文件

-r (recursive):按目录结构递归压缩目录中的所有文件

 

5. unzip命令

unzip [选项] 压缩文件        解压缩扩展名为.zip的压缩文件

-l (list):查看压缩文件所包含的文件

-t (test):测试压缩文件是否已经损坏

-d 目录 (directory):指定压缩文件的目标目录

-n (no):不覆盖同名文件

-o:强制覆盖同名文件