目录
一、Linux文件与目录概述
1.Linux目录树
-目录树特征-
- 目录树的起始点为根目录(/)。
- 每一个目录不仅能使用本地分区的文件系统,也可以使用网络上的文件系统。
- 每一个文件在目录树中的文件名(包含完整路径)独一无二 。
-Linux的特殊目录-
-命名规范-
- 目录或文件名长度可以达到255个字符。
- 包含完整路径名称及目录(/)的完整文件名为4096个字符。
- 严格区分大小写。 可以包含空格等特殊字符,但必须使用引号;不可以包含“/”字符。
- 还应避免特殊字符:* ? > < ; & ! [ ] | \ ' " ` ( ) { }。
- 同类文件应使用同样的后缀或扩展名。
-配置标准-
- FHS规范在根目录(/)下面各个主要目录应该放什么样的文件
- 第1层是根目录下面的各个目录应该放什么文件
- 第2层针对/usr及/var这两个目录的子目录来定义
2.常用目录
3.文件类型
-Linux文件结构-
- 索引节点:又称I节点,包含有关相应文件信息的一个记录。
- 数据:文件的实际内容,可以是空的,也可以非常大,并且有自己的结构。
-普通文件-
- 包括文本文件、数据文件和可执行的二进制程序等。
-目录文件-
- 目录文件是一种特殊文件,利用它可以构成文件系统的分层树形结构。
- 每个目录文件中至少包括两个条目:“..”表示上一级目录,“.”表示该目录本身。
-设备文件-
- 设备文件是一种特殊文件,用于存放在文件索引节点中的信息。
- 设备文件又可分为两种类型:字符设备文件和块设备文件。
-链接文件-
- 一种特殊文件,提供对其他文件的参照。它们存放的数据是文件系统中通向文件的路径。
- 链接文件有两种,分别是符号链接(Symbolic Link)和硬链接(Hard Link)。
使用ls -l命令以长格式列出目录时,每一行第1个字符代表文件类型。其中-表示普通文件,d表示目录文件,c表示字符设备文件,b表示块设备文件,l表示符号链接文件。
二、文件和目录操作
1.文件操作
-创建文件-
touch命令可以创建文件
touch [选项]... 文件...
touch命令示例
touch myfile01.txt myfile02.txt # 同时创建两个空文件
ls -l my* # 查看这两个文件的详细信息
-文件内容显示-
cat命令连接文件并打印到标准输出设备上,常用来显示文件内容
cat [选项] ... [文件]...
-b:对输出内容中的非空行标注行号。
-n:对输出内容中的所有行标注行号。
cat myfile01.txt
在使用cat命令时,如果文件太长,用户只能看到文件的最后一部分。这时可以使用more命令,一页一页地分屏显示文件的内容
more [选项] <文件>...
more myfile01.txt
(注:more命令只能向下翻页)
less命令用来分页显示文件内容,但功能比more更强大
less [选项] <文件>...
less myfile01.txt
按“Enter”回车键可以向下移动一行,按“Space”空格键可以向下移动一页,按“B”键可以向上移动一页,也可以用光标键向前、后、左、右移动,按“Q”键可以退出less命令。
head命令用于显示文件的开头部分,默认情况下只显示文件的前10行内容
head [选项]... [文件]...
-n num:显示指定文件的前num行。
-c num:显示指定文件的前num个字符。
head -n 20 myfile01.txt
tail命令在屏幕上显示指定文件的末尾若干行或若干字节
tail [选项]... [文件]...
-n num:显示指定文件的末尾num行。
-c num:显示指定文件的末尾num个字符。
+num:从第num行开始显示指定文件的内容。
tail -n 20 myfile01.txt
-文件(目录)复制、删除和移动-
cp命令将源文件或目录复制到目标文件或目录中
cp [选项] 源文件或目录 目标文件或目录
-a:尽可能将文件状态、权限等属性照原状予以复制。
-f:如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户。
-i:如果目标文件或目录存在,提示是否覆盖已有的文件。
-R:递归复制目录,即包含目录下的各级子目录。
cp myfile01.txt ./test.txt
rm命令可以删除一个目录中的一个或多个文件和目录,也可以将某个目录及其下属的所有文件和子目录删除。
rm [选项] 文件列表
-i:删除文件或目录时提示用户。
-f:删除文件或目录时不提示用户。
-R:递归删除目录,即包含目录下的文件和各级子目录。
rm -i test.txt
mv命令用来移动文件或目录,还可在移动的同时修改文件或目录名。
mv [选项] 源文件或目录 目标文件或目录
-i:如果目标文件或目录存在,则提示是否覆盖目标文件或目录。
-f:无论目标文件或目录是否存在,直接覆盖目标文件或目录,不提示。
mv myfile01.txt ./file.txt
-压缩文件与解压缩-
gzip命令用于对文件进行压缩和解压缩
gzip [选项] 压缩文件名/解压缩文件名
unzip命令用于对WinZip格式的压缩文件进行解压缩
unzip [选项] 压缩文件名
tar命令用于对文件和目录打压缩包,或者对压缩包解压缩
tar [选项] 文件或目录名
tar命令的常用参数选项如下:
● -c:生成档案文件。
● -v:列出归档解档的详细过程。
● -f:指定档案文件名称。
● -r:将文件追加到档案文件末尾。
● -z:以gzip格式压缩或解压缩文件。
● -j:以bzip2格式压缩或解压缩文件。
● -d:比较档案与当前目录中的文件。
● -x:解开档案文件。
rpm命令主要用于对RPM软件包进行管理。
rpm[参数]软件包名
-查找文件所在位置-
whereis命令用来寻找命令的可执行文件所在的位置。
whereis[参数]命令名称
whereis rpm
whereis命令的常用参数选项如下:
● -b:只查找二进制文件。
● -m:只查找命令的联机帮助手册部分。
● -s:只查找源代码文件。
2.目录操作
-创建目录-
mkdir命令用于创建一个目录。该命令的语法为:
mkdir [参数] 目录名
上述目录名可以为相对路径,也可以为绝对路径
-删除目录-
rmdir命令用于删除空目录。该命令的语法为:
rmdir [参数] 目录名
上述目录名可以为相对路径,也可以为绝对路径。但所删除的目录必须为空目录。
-改变工作目录-
cd命令用来改变工作目录
cd [目录名]
pwd命令用于显示当前工作目录的绝对路径
pwd
-显示目录内容-
ls命令列出指定目录的内容
ls [选项] [目录或文件]
三、管理文件和目录
1.文件权限组合
文件访问者身份
- 所有者(属主)
- 所属组(属组)
- 其他用户
文件访问权限
- 读(r):读取文件内容或者查看目录。
- 写(w):修改文件内容或者创建、删除文件。
- 执行(x):执行文件或者允许使用cd命令进入目录。
文件权限组合
查看文件属性
-rw-r--r-- 1 zxp zxp 8980 7月 14 21:11 examples.desktop
[文件权限] [链接][所有者][所属组] [容量] [ 修改日期 ] [ 文件名 ]
2.文件访问
变更所有者
使用chown命令变更文件所有者,使其他用户对文件具有所有权
chown [选项] [新所有者] 文件列表
变更所属组
使用chgrp命令可以变更文件的所属组
chgrp [选项] [新的所属组] 文件列表
使用chown命令同时变更文件所有者和所属组
chown [选项] [新所有者]: [新的所属组] 文件列表
chmod命令设置文件访问权限用法
chmod [选项]... 模式[,模式]... 文件
设置文件访问权限(文件权限用字符表示)
- +表示增加某种权限,−表示撤销某种权限,=表示指定某种权限
- 所有者、所属组和其他用户分别用字符u、g、o表示,全部用户用a表示
- 权限类型用r、w和x表示
设置文件访问权限(文件权限用数字表示)
- 将权限读(r)、写(w)和执行(x)分别用数字4、2和1表示,没有任何权限则表示为0
- 权限用其各项权限的和表示(结果为0~7之间的数字),依次为所有者(u)、所属组(g)和其他用户(o)的权限
默认管理员新创建的普通文件的权限被设置为:rw-r--r--,用数字表示为644。
新创建的目录权限为:rwx-xr-x,用数字表示为755
可设置的文件夹访问权限
- 无:没有任何访问权限(不能对所有者设置此权限)。
- 只能列出文件:可列出文件清单。
- 访问文件:可以查看文件,但是不能做任何更改。
- 创建和删除文件:这是最高权限。
可设置的文件访问权限
- 无:没有任何访问权限(不能对所有者设置此权限)。
- 只读:可打开文件查看内容,但是不能做任何更改。
- 读写:打开和保存文件。
- 执行:允许以程序方式运行文件
总结
Linux最优秀的地方之一,是它的多人多任务环境。而为了让每个使用者的文件数据得到保护,就必须对文件的权限进行有效管理,因此文件系统的权限管理非常重要。Linux一般将文件可存取的身份分为三个类别,分别是 owner、group、others,且三种身份各有 read、write、execute等权限。