linux系统入门-Linux 文件系统

Linux 文件系统简介以及类型

硬盘上都是二进制数据,人类想看懂就需要将数据转化为文件形式。存储数据的物理设备有硬盘、 U 盘、 SD 卡、 NAND FLASH、 NOR FLASH、网络存储设备等,不同的存储设备其物理结构不同,不同的物理结构就需要不同的文件系统去管理,比如管理 NAND FLASH 的话使用 YAFFS 文件系统,管理硬盘、 SD 卡的话就是 ext 文件系统等等。

Windows 下有 FAT、 NTFS 和 exFAT 这样的文件系统,Linux 下的文件系统主要有 ext2、 ext3、 ext4 等文件系统。 Linux 还支持其他的 UNIX 文件系统,比如 XFS、 JFS、 UFS 等,也支持 Windows 的 FAT 文件系统和网络文件系统 NFS 等。

ext2 文件系统:ext2 是 Linux 早期的文件系统,但是随着技术的发展 ext2 文件系统已经不推荐使用了, ext2是一个非日志文件系统,大多数的 Linux 发行版都不支持 ext2 文件系统了。

ext3 文件系统:ext3 是一个日志文件系统, ext3 支持大文件。
具有以下特点:
高可靠性:断电重启后恢复速度快。
数据完整性: 避免意外死机或者关机对文件系统的伤害。
文件系统速度:对磁盘驱动器读写头进行了优化。
数据转换:可轻松的将 ext2 文件系统转换为 ext3 日志文件系统。 ext3 文件系统不需要经过任何修改,可以直接挂载成 ext2 文件系统。

ext4 文件系统:在ext3基础上提供了更佳的性能和可靠性,并且功能更丰富, ext4 向下兼容 ext3 和 ext2。

df -T –h     //查看当前文件系统版本

Linux 文件系统结构

在 Windows 下,分为C、D、E、F多个磁盘,每个磁盘下都有一个根目录。
在 Linux 下,只有一个根目录,用“/”来表示。Linux下一切皆文件

路径 /home/zxy 是用户zxy的路径,在home下可以创建多个用户,每个用户用一个文件夹。
根目录“/”中的一些重要的文件夹:
/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 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

文件操作命令

1、创建新文件命令—touch

touch [参数] [文件名]

-a 只更改存取时间。
-c 不建立任何文件。
-d<日期> 使用指定的日期,而并非现在日期。
-t<时间> 使用指定的时间,而并非现在时间。

一般的 touch test.txt	即可创建文件

2、文件夹创建命令—mkdir

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

-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。

mkdir test1 test2  //可同时创建两个目录

3、文件及目录删除命令—rm

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

-d 直接把要删除的目录的硬连接数据删成 0,删除该目录。
-f 强制删除文件和文件夹(目录)。
-i 删除文件或者文件夹(目录)之前先询问用户。
-r 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除掉。
-v 显示删除过程。

一般的 rm test.txt    //删除文件
 	   rm -rf testdir //强制递归删除目录

4、文件夹(目录)删除命令—rmdir

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

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

哈哈哈!加上-p可以将空文件一块儿带走,俗称连坐。

5、文件复制命令—cp

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

-a 此参数和同时指定“-dpR”参数相同
-d 在复制有符号连接的文件时,保留原始的连接。
-f 强行复制文件,不管要复制的文件是否已经存在于目标目录。
-I 覆盖现有文件之前询问用户。
-p 保留源文件或者目录的属性。
-r 或-R 递归处理,将指定目录下的文件及子目录一并处理

一般的
cp a.c b.c			//将a.c文件复制到当前目录并命名b.c
cp *.c ../test2 	//将本目录下*.c文件复制到上一目录的test2目录下,*为通配符
cp -rf test2/ test3/	//强制递归复制test2为test3

“ * ”为通配符,“ . ”表示当前目录,“. .”表示上一目录。

6、文件移动命令—mv

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

-b 如果要覆盖文件的话覆盖前先进行备份。
-f 若目标文件或目录与现在的文件重复,直接覆盖目的文件或目录。
-I 在覆盖之前询问用户。

和cp命令使用类似。

文件压缩和解压缩

图形化压缩和解压缩用鼠标点点就行。

命令行压缩和解压缩常用的命令有三个: zip、 unzip 和 tar。
1.命令 zip,压缩

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

-b<工作目录> 指定暂时存放文件的目录。
-d 从 zip 文件中删除一个文件。
-F 尝试修复已经损毁的压缩文件。
-g 将文件压缩入现有的压缩文件中,不需要新建压缩文件。
-h 帮助。
-j 只保存文件的名,不保存目录。
-m 压缩完成以后删除源文件。
-n<字尾符号> 不压缩特定扩展名的文件。
-q 不显示压缩命令执行过程。
-r 递归压缩,将指定目录下的所有文件和子目录一起压缩。
-v 显示指令执行过程。
-num 压缩率,为 1~9 的数值。

一般的 zip -rv test2.zip test2

2.命令 unzip,解压缩

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

-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否损坏,但不解压。
-v 显示命令显示的执行过程。
-Z 只显示压缩文件的注解。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中的原有目录路径。
-L 将压缩文件中的全部文件名改为小写。
-n 解压缩时不要覆盖原有文件。
-P<密码> 解压密码。
-q 静默执行,不显示任何信息。
-x<文件列表> 指定不要处理.zip 中的哪些文件。
-d<目录> 把压缩文件解到指定目录下。

一般的 unzip test2.zip

3.命令 tar
Linux 下最常用的.bz2 和.gz 这两种压缩格式,可使用tar命令完成。

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

-c 创建新的压缩文件。
-C<目的目录> 切换到指定的目录。
-f<备份文件> 指定压缩文件。
-j 用 tar 生成压缩文件,然后用 bzip2 进行压缩。
-k 解开备份文件时,不覆盖已有的文件。
-m 还原文件时,不变更文件的更改时间。
-r 新增文件到已存在的备份文件的结尾部分。
-t 列出备份文件内容。
-v 显示指令执行过程。
-w 遭遇问题时先询问用户。
-x 从备份文件中释放文件,也就是解压缩文件。
-z 用 tar 生成压缩文件,用 gzip 压缩。
-Z 用 tar 生成压缩文件,用 compress 压缩。

一般的压缩和解压缩

tar -vcjf test1.tar.bz2 test1	//	压缩为bz2格式
tar -vczf test2.tar.gz test1	//	压缩为gz格式

tar -vxjf test1.tar.bz2		//	解压test1
tar -vxzf test2.tar.gz		//	解压test2

文件查询和搜索

1、命令 find,用于在目录结构中查找文件

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

-name<filename> 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。
-depth 从指定目录下的最深层的子目录开始查找。
-gid<群组识别码>查找符合指定的群组识别码的文件或目录。
-group<群组名称> 查找符合指定的群组名称的文件或目录。
-size<文件大小> 查找符合指定文件大小的文件。
-type<文件类型> 查找符合指定文件类型的文件。
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。

比如 find /etc/ -name vim*

2、命令 grep,用于查找包含指定关键字的文件

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

-b 在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号。
-c 计算符合关键字的列数。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用此参数!否则 grep 指令将回报信息并停止搜索。
-i 忽略字符大小写。
-v 反转查找,只显示不匹配的行。
-r 在指定目录中递归查找。

比如 grep -ir "Ubuntu" /usr/

文件类型

每个文件都有其文件类型,使用 ls -l 命令可查看详细信息。
第一个字符表示不同的文件类型

- 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。
d 目录文件。
c 字符设备文件, Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。
b 块设备文件,存储设备驱动,比如硬盘, U 盘等。
l 符号连接文件,相当于 Windwos 下的快捷方式。
s 套接字文件。
p 管道文件,主要指 FIFO 文件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值