代码改变世界

Linux 文件系统

2022-04-05 15:15  jym蒟蒻  阅读(64)  评论(0编辑  收藏  举报

文件系统

文件系统:

操作系统具有文件管理功能。文件由文件系统管理。实现数据的查询和存储。可存储数据的设备有很多,比如硬盘、U盘、SD卡,不同设备,物理结构不同。不同物理结构,用不同文件系统管理。Linux有多种文件系统。

磁盘分割:

windows下有c盘d盘,创建新的盘,要进行格式化。格式化时候,要选择文件系统。windows下,文件系统如FAT、NTFS、exFAT。

Linux使用fdisk磁盘分割工具创建分区,然后在分区里面创建文件系统(格式化)。Linux没有C盘D盘,创建一个分区,格式化后,将其挂载到一个目录下(挂载点),才能访问分区。Linux下,文件系统如ext2、ext3、ext4等。

ext2:非日志文件系统

ext3:日志文件系统,兼容ext2。

ext4:向下兼容ext3和ext2。

查询当前磁盘挂载的文件系统:df -T –h

在这里插入图片描述

Linux 文件系统结构

Linux只有一个根目录,用/来表示的。

在这里插入图片描述

Ubuntu支持多用户,为每个用户创建了一个根目录。

位置在/home/jym。

用户,可以对用户根目录下文件,进行随意读写操作。但是,修改根目录/就没有权限。

在这里插入图片描述

打开终端,默认进入当前用户根目录。

在这里插入图片描述

根目录/中,一些文件夹:

/bin 存储二进制可执行命令文件,/usr/bin 也存放基于用户的命令文件。

/sbin 存储系统命令,/usr/sbin 也存储系统命令。

/root 超级用户root根目录文件。

/home 普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。

/boot 存放Ubuntu系统内核和系统启动文件。

/mnt 包括系统引导后,被挂载的文件系统的挂载点。

/dev 存放设备文件,Linux驱动主要操作这个文件夹。

/etc 保存系统管理所需的配置文件和目录。

/lib 保存系统程序运行所需的库文件,/usr/lib下存放普通用户的库文件。

/lost+found 一般为空,系统非正常关机后,这里会保存一些文件。

/var 存储一些不断变化的文件,如日志文件。

/usr 包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。

/media 存放Ubuntu系统自动挂载的设备文件。

/proc 虚拟目录,不实际存储在磁盘上,用来保存系统信息和进程信息。

/tmp 存储系统和用户的临时文件,该文件夹,对所有的用户都提供读写权限。

/opt 可选文件和程序的存放目录。

/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

文件操作命令

终端进行文件操作常用命令:

touch

创建新文件。

touch [参数] [文件名]

参数:

-a只更改存取时间。

-c不建立任何文件。

-d<日期>使用指定的日期,而并非现在日期。

-t<时间>使用指定的时间,而并非现在时间。

在这里插入图片描述

mkdir

文件夹创建。

mkdir [参数] [文件夹名目录名]

参数:

-p 如果。要创建的目录的上层目录还未创建,会一起创建上层目录。

在这里插入图片描述

rm

文件及目录删除命令。

rm [参数] [目的文件或文件夹目录名]

参数:

-d 把要删除的目录的硬连接数据删成0,删除该目录。

-f 强制删除文件和文件夹(目录)。

-i 删除文件或者文件夹(目录)前,先询问用户。

-r 递归删除指定文件夹(目录)下,所有文件和子文件夹。

-v 显示删除过程。

删除文件可以直接用rm

删除文件夹 要用rm -rf

在这里插入图片描述

rmdir

文件夹(目录)删除命令。

rmdir [参数] [文件夹(目录)]

参数:

-p 删除指定的文件夹(目录)后,若上层文件夹(目录)为空文件夹(目录),就将其一起删除。

在这里插入图片描述

cp

文件复制命令。

cp [参数] [源地址] [目的地址]

-a 此参数和同时指定“-dpR”参数相同

-d 复制有符号连接的文件时,保留原始的连接。

-f 强行复制文件,即使要复制的文件已存在于目标目录。

-I 覆盖现有文件之前,询问用户。

-p 保留源文件或目录的属性。

-r或-R 递归处理,将指定目录下的文件及子目录一并处理。

文件复制例子:

在y1里面,复制m.c文件并重命名为y.c。

将y1里面的.c文件复制到y2里面。

在这里插入图片描述

文件夹复制:

复制y2文件夹里面所有文件到y3。

在这里插入图片描述

mv

文件移动命令。

mv [参数] [源地址] [目的地址]

参数:

-b 如果要覆盖文件的话,覆盖前先进行备份。

-f 若目标文件或目录,与现在的文件重复,直接覆盖目的文件或目录。

-I 在覆盖之前询问用户。

mv重命名文件例子:

重命名j2.c为j1.c。

在这里插入图片描述

将y1中j1.c和j.c文件移动到y2文件夹里面。

在这里插入图片描述

文件压缩与解压命令

zip

将一个或者多个文件压缩成一个.zip 结尾的文件。

zip [参数] [压缩文件名.zip] [被压缩的文件]

参数:

-b<工作目录> 指定暂时存放文件的目录。

-d 从zip文件中删除一个文件。

-F 尝试修复已经损毁的压缩文件。

-g 将文件压缩入现有的压缩文件中,不需要新建压缩文件。

-h 帮助。

-j 只保存文件的名,不保存目录。

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

-n<字尾符号> 不压缩特定扩展名的文件。

-q 不显示压缩命令执行过程。

-r 递归压缩,将指定目录下的所有文件和子目录一起压缩。

-v 显示指令执行过程。

-num 压缩率,为 1~9 的数值。

对文件夹y1进行压缩,命名为y1.zip

在这里插入图片描述

unzip

对.zip格式的压缩包进行解压。

unzip [参数] [压缩文件名.zip]

参数:

-l 显示压缩文件内所包含的文件。

-t 检查压缩文件是否损坏,但不解压。

-v 显示命令显示的执行过程。

-Z 只显示压缩文件的注解。

-C 压缩文件中的文件名称区分大小写。

-j 不处理压缩文件中的原有目录路径。

-L 将压缩文件中的全部文件名改为小写。

-n 解压缩时不要覆盖原有文件。

-P<密码> 解压密码。

-q 静默执行,不显示任何信息。

-x<文件列表> 指定不要处理.zip 中的哪些文件。

-d<目录> 把压缩文件解到指定目录下。

解压y1.zip

在这里插入图片描述

tar

除了zip格式,其它格式的压缩和解压使用命令tar。

Linux下常用.bz2和.gz这两种压缩格式。

tar [参数] [压缩文件名] [被压缩文件名]

-c 创建新的压缩文件。

-C<目的目录> 切换到指定的目录。

-f<备份文件> 指定压缩文件。

-j 用 tar 生成压缩文件,然后用 bzip2 进行压缩。

-k 解开备份文件时,不覆盖已有的文件。

-m 还原文件时,不变更文件的更改时间。

-r 新增文件到已存在的备份文件的结尾部分。

-t 列出备份文件内容。

-v 显示指令执行过程。

-w 遭遇问题时先询问用户。

-x 从备份文件中释放文件,也就是解压缩文件。

-z 用 tar 生成压缩文件,用 gzip 压缩。

-Z 用 tar 生成压缩文件,用 compress 压缩。

将y1压缩为bz2和gz格式。

在这里插入图片描述

解压缩gz文件。

在这里插入图片描述

解压缩bz2文件。

在这里插入图片描述

文件查询与搜索命令

find

在目录结构中查找文件。

find [路径] [参数] [关键字]

参数:

-name 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。

-depth 从指定目录下的最深层的子目录开始查找。

-gid<群组识别码>查找符合指定的群组识别码的文件或目录。

-group<群组名称> 查找符合指定的群组名称的文件或目录。

-size<文件大小> 查找符合指定文件大小的文件。

-type<文件类型> 查找符合指定文件类型的文件。

-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。

查找/etc中以vim开头的文件。

在这里插入图片描述

grep

如果发现某个文件的内容包含指定的关键字,grep命令就会把包含指定关键字的这一行标记出来。

grep [参数] 关键字 文件列表

参数:

-b 在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号。

-c 计算符合关键字的列数。

-d<进行动作> 当指定要查找的是目录而非文件时,必须使用此参数,否则grep指令将回报信息并停止搜索。

-i 忽略字符大小写。

-v 反转查找,只显示不匹配的行。

-r 在指定目录中递归查找。

目录/usr下递归查找包含字符“Ubuntu”的文件。

在这里插入图片描述

文件类型

下面,文件详细信息,每行第一个字母标记了当前文件类型。

在这里插入图片描述

- 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。

d 目录文件。

c 字符设备文件,Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。

b 块设备文件,存储设备驱动,比如硬盘,U 盘等。

l 符号连接文件,相当于 Windwos 下的快捷方式。

s 套接字文件。

p 管道文件,主要指 FIFO 文件。