Linux 文件系统
2022-04-05 15:15 jym蒟蒻 阅读(71) 评论(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只有一个根目录,用/来表示的。
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 [参数] [文件名]
参数:
-a只更改存取时间。
-c不建立任何文件。
-d<日期>使用指定的日期,而并非现在日期。
-t<时间>使用指定的时间,而并非现在时间。
文件夹创建。
mkdir [参数] [文件夹名目录名]
参数:
-p 如果。要创建的目录的上层目录还未创建,会一起创建上层目录。
文件及目录删除命令。
rm [参数] [目的文件或文件夹目录名]
参数:
-d 把要删除的目录的硬连接数据删成0,删除该目录。
-f 强制删除文件和文件夹(目录)。
-i 删除文件或者文件夹(目录)前,先询问用户。
-r 递归删除指定文件夹(目录)下,所有文件和子文件夹。
-v 显示删除过程。
删除文件可以直接用rm
删除文件夹 要用rm -rf
文件夹(目录)删除命令。
rmdir [参数] [文件夹(目录)]
参数:
-p 删除指定的文件夹(目录)后,若上层文件夹(目录)为空文件夹(目录),就将其一起删除。
文件复制命令。
cp [参数] [源地址] [目的地址]
-a 此参数和同时指定“-dpR”参数相同
-d 复制有符号连接的文件时,保留原始的连接。
-f 强行复制文件,即使要复制的文件已存在于目标目录。
-I 覆盖现有文件之前,询问用户。
-p 保留源文件或目录的属性。
-r或-R 递归处理,将指定目录下的文件及子目录一并处理。
文件复制例子:
在y1里面,复制m.c文件并重命名为y.c。
将y1里面的.c文件复制到y2里面。
文件夹复制:
复制y2文件夹里面所有文件到y3。
文件移动命令。
mv [参数] [源地址] [目的地址]
参数:
-b 如果要覆盖文件的话,覆盖前先进行备份。
-f 若目标文件或目录,与现在的文件重复,直接覆盖目的文件或目录。
-I 在覆盖之前询问用户。
mv重命名文件例子:
重命名j2.c为j1.c。
将y1中j1.c和j.c文件移动到y2文件夹里面。
将一个或者多个文件压缩成一个.zip 结尾的文件。
zip [参数] [压缩文件名.zip] [被压缩的文件]
参数:
-b<工作目录> 指定暂时存放文件的目录。
-d 从zip文件中删除一个文件。
-F 尝试修复已经损毁的压缩文件。
-g 将文件压缩入现有的压缩文件中,不需要新建压缩文件。
-h 帮助。
-j 只保存文件的名,不保存目录。
-m 压缩完成以后删除源文件。
-n<字尾符号> 不压缩特定扩展名的文件。
-q 不显示压缩命令执行过程。
-r 递归压缩,将指定目录下的所有文件和子目录一起压缩。
-v 显示指令执行过程。
-num 压缩率,为 1~9 的数值。
对文件夹y1进行压缩,命名为y1.zip
对.zip格式的压缩包进行解压。
unzip [参数] [压缩文件名.zip]
参数:
-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否损坏,但不解压。
-v 显示命令显示的执行过程。
-Z 只显示压缩文件的注解。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中的原有目录路径。
-L 将压缩文件中的全部文件名改为小写。
-n 解压缩时不要覆盖原有文件。
-P<密码> 解压密码。
-q 静默执行,不显示任何信息。
-x<文件列表> 指定不要处理.zip 中的哪些文件。
-d<目录> 把压缩文件解到指定目录下。
解压y1.zip
除了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 [路径] [参数] [关键字]
参数:
-name 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。
-depth 从指定目录下的最深层的子目录开始查找。
-gid<群组识别码>查找符合指定的群组识别码的文件或目录。
-group<群组名称> 查找符合指定的群组名称的文件或目录。
-size<文件大小> 查找符合指定文件大小的文件。
-type<文件类型> 查找符合指定文件类型的文件。
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。
查找/etc中以vim开头的文件。
如果发现某个文件的内容包含指定的关键字,grep命令就会把包含指定关键字的这一行标记出来。
grep [参数] 关键字 文件列表
参数:
-b 在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号。
-c 计算符合关键字的列数。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用此参数,否则grep指令将回报信息并停止搜索。
-i 忽略字符大小写。
-v 反转查找,只显示不匹配的行。
-r 在指定目录中递归查找。
目录/usr下递归查找包含字符“Ubuntu”的文件。
下面,文件详细信息,每行第一个字母标记了当前文件类型。
- 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。
d 目录文件。
c 字符设备文件,Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。
b 块设备文件,存储设备驱动,比如硬盘,U 盘等。
l 符号连接文件,相当于 Windwos 下的快捷方式。
s 套接字文件。
p 管道文件,主要指 FIFO 文件。