【北京迅为】i.MX6ULL终结者 Linux文件系统

操作系统的主要功能之一就是文件的管理。文件管理是由文件系统来实现的,Linux系统支持多种格式的文件系统,本届我们主要讲解下文件系统的类型,以及文件操作的一些常用命令。

1. Linux文件系统类型

我们在使用Windows系统的时候,有时会对硬盘,U盘等的存储设备进行格式化,在格式化的时候会要求我们选择文件系统的类型,比如:exFAT、FAT32、NTFS,同样Linux系统也支持各种不同类型的文件系统,比如:ext2、ext3、ext4、yaffs、FAT32、NTFS等。这里我们主要讲解下几种常用的文件系统。

FAT32文件系统:
FAT32指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表,命名由此得来。FAT32是从FAT和FAT16发展而来的,优点是稳定性和兼容性好,能充分兼容Win 9X及以前版本,且维护方便。缺点是安全性差,且最大只能支持32GB分区,单个文件也只能支持最大4GB。

ext3文件系统
EXT3是第三代扩展文件系统(英语:Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。它是很多Linux发行版的默认文件系统。Stephen Tweedie在1999年2月的内核邮件列表中,最早显示了他使用扩展的ext2,该文件系统从2.4.15版本的内核开始,合并到内核主线中。

ext4文件系统
EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。Ext4是由Ext3的维护者Theodore Tso领导的开发团队实现的,并引入到Linux2.6.19内核中。Ext4产生原因是开发人员在Ext3中加入了新的高级功能。
上面几种文件系统是我们在Linux下经常使用的,那么我们安装的Ubuntu系统下的文件系统使用的是哪种格式的呢?我们可以在终端输入“df -T”命令来查看下,如图 1.1所示:

在这里插入图片描述

图 1.1

从上图红色方框的文件就是我们安装Ubuntu的磁盘,在Linux下一切皆为文件,“/dev/sda1”就是我们的磁盘分区,可以看到他的类型是ext4。我们在Windows系统下有C、D、E盘这样的概念,但是通过上面的命令我们可以看到Linux下对磁盘的管理与Windows是不一样的,没有C、D、E盘这样的概念。Linux系统只有一个根目录“/”,我们可以在Ubuntu的桌面打开“文件”应用,我们可以看到打开的文件路径并不是在根目录下,这是因为Ubuntu是支持多用户的,会为每个用户分配一个根目录,比如我的Ubuntu登录的用户是topeet,那么默认进入的就是topeet用户的根目录“home”,如图 1.2所示:

在这里插入图片描述

图 1.2

我们在上图中点击左侧的“计算机”,如图 1.3所示:

在这里插入图片描述

图 1.3

上图就是UBuntu的根目录,那么前面我们的说的Ubuntu会为每一个用户创建一个根目录,那么这个根目录具体位置在哪里呢?我们在创建用户的时候,Ubuntu同时会在“/home”目录下创建与用户名同名的文件夹,这个文件夹就是用户的根目录,比如我这里登陆的用户名是topeet,那么topeet用户对应的用户根目录就是“/home/topeet”这个目录。用户可以对自己用户根目录下的文件进行任意的读写操作。我们可以打开终端使用“cd /”命令,进入到系统根目录下,然后在输入“ls”命令,查看下系统根目录下都有哪些文件,如图 1.4所示:

在这里插入图片描述

图 1.4

从上图可以看到系统根目录下都有哪些文件夹,我们来看下这些文件夹的具体功能:

/bin 存储一些二进制可执行命令文件
/boot 存放 Ubuntu 系统内核和系统启动文件
/dev 存放设备节点
/etc 存放系统管理所需的配置文件
/home 普通用户默认目录,每个用户在改目录下都有一个以本用户名命名的文件夹
/lib /lib64 存放系统程序运行所需的库文件
/media 存放 Ubuntu 系统自动挂载的设备文件
/mnt 用于挂载的文件系统的挂载点
/opt 可选文件和程序的存放目录
/proc 通常用来保存系统信息和进程信息
/root 超级用户 root 的根目录文件
/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息
/tmp 存储系统和用户的临时文件
/usr 包括与系统用户直接有关的文件和目录
/var 存储一些不断变化的文件,比如日志文件

2. 文件操作命令

创建文件命令touch
我们在前面学习vim的时候,可以通过vim来创建一个文本文件,“touch”不仅可以用来创建文本文件,还可以创建其它类型的文件,命令格式如下:
touch [参数] [文件名]
参数说明:

-a 只更改存取时间
-c 不建立任何文件
-d<日期> 使用指定的日期创建文件
-t<时间> 使用指定的时间创建文件

当我们使用“touch”命令创建文件的时候,如果创建的文件不存在,则会直接创建,如果创建的文件已经存在,则会修改下文件的最后修改日期(修改成运行该命令时候的系统日期)。现在我们使用命令“cd ~”进入到用户的根目录下,然后使用“touch”命令创建一个名为ceshi的文件,运行结果如图 2.1所示:

在这里插入图片描述

图 2.1

文件夹创建命令mkdir
mkdir是用来创建文件夹的命令,在使用该命令的时候,要求当前用户在当前的目录下具有写权限,并且创建的文件夹名称不能是当前目录中拥有的目录,命令格式如下:
mkdir [选项] 目录…
选项的说明如下:

-m		//设定权限<模式>(类似chmod)
-p		//可以是一个路径命令,如果路径中的目录不存在,则依次创建他们
-v		//每次创建新目录都显示信息
--help	//显示帮助信息
--version	//输出版本信息

我们可以使用mkdir创建一个名为“test”的文件夹,我们在终端运行命令“mkdir test”,运行结果如图 2.2所示:

在这里插入图片描述

图 2.2

文件删除命令rm
rm命令可以删除文件和文件夹,在使用该命令的时候,要求当前用户在当前的目录下具有写权限,命令格式如下:
rm [选项]… 目录…
选项的说明如下:

-d		//删除可能仍有数据的目录(只限超级用户root)
-f		//略过不存在的文件,不显示任何信息
-i		//进行任何删除操作前,必须先确认
-r		//同时删除该目录下的所有目录层
-v		//详细显示进行的步骤
--help	//显示帮助信息并退出
--version 	//显示版本信息并退出

我们使用“rm”命令删除前面创建的文件“ceshi”,我们在终端输入“rm ceshi”,然后回车就可以删掉文件“ceshi”了,运行结果如图 2.3所示:

在这里插入图片描述

图 2.3

“rm”命令也可以删除文件夹,我们删除前面创建的test目录,我们在终端执行“rm -rf test”,运行结果如图 2.4所示:

在这里插入图片描述

图 2.4

文件复制命令cp
Linux下文件复制的命令是“cp”,命令格式如下:
cp [参数] [源文件] [目标文件]
参数的说明如下:
-d //复制有符号连接的文件时,保留原始的连接
-f //强行复制文件,不管要复制的文件是否已经存在于目标目录
-r //递归处理,将指定目录下的文件及子目录一并处理

我们在用户根目录下使用mkdir命令创建两个文件夹:ceshi1、ceshi2,如图 2.5所示:

在这里插入图片描述

图 2.5

然后进入“ceshi1”文件夹,在ceshi1文件夹创建a文件,如图 2.6所示:

在这里插入图片描述

图 2.6

我们将文件a复制到用户根目录下的ceshi2文件夹,运行结果如图 2.7所示:

在这里插入图片描述

图 2.7

完成文件的复制,接下来我们来实现文件夹的复制,首先我们返回到用户根目录下,然后将ceshi1文件夹复制到ceshi2文件夹,运行结果如图 2.8所示:

在这里插入图片描述

图 2.8

移动文件命令mv
Linux下文件移动的命令是mv,命令格式如下:
mv [参数] [源文件] [目标文件]

参数说明:
-b //如果要覆盖文件的话覆盖前先进行备份
-f //若目标文件或目录与现在的文件重复,直接覆盖目标文件或目录
-i //若目标文件存在,则会询问是否覆盖
-u //若目标文件已经存在,且源文件比较新,则会更新

我们在前面创建了两个文件夹:ceshi1、ceshi2,在ceshi1文件夹创建了文件a,我们将文件a重命名成文件b,然后将文件b移动到ceshi2文件夹,运行结果如图 2.9所示:

在这里插入图片描述

图 2.9

文件接压缩命令tar
Linux下常用的压缩包格式有两种:.bz2和.gz。我们可以使用tar命令来解压或压缩这两种格式的压缩包,命令格式如下:
tar [必要参数] [选择参数] [文件]
必要参数说明如下:
-A //新增压缩文件到已存在的压缩
-B //设置区块大小
-c //建立新的压缩文件
-d //记录文件的差别
-r //添加文件到已经压缩的文件
-u //添加改变了和现有的文件到已经存在的压缩文件
-x //从压缩的文件中提取文件
-t //显示压缩文件的内容
-z //支持gzip解压文件
-J //支持bzip2解压文件
-Z //支持compress解压文件
-v //显示操作过程
-k //保留原有文件不覆盖
-m //保留文件不被覆盖
-W //确认压缩文件的正确性
可选参数如下:
-b //设置区块数目
-C //切换到指定目录
-f //指定压缩文件
–help //显示帮助信息
–version //显示版本信息

我们使用tar命令压缩生成.bz2和.gz压缩包,运行结果如图 2.10所示:

在这里插入图片描述

图 2.10

在上图中我们分别压缩了.bz2和.gz两个格式的压缩包,其中压缩.bz2格式的压缩包我们使用的参数是-jcvf,而.gz格式的压缩包使用的参数是-zcvf。下面在我们在来学习下tar解压文件,操作如图 2.11所示:

在这里插入图片描述

图 2.11

在上图中,我们分别解压了.tar.bz2和.gz两种格式的压缩包。其中.tar.bz2压缩包使用的-jxvf参数来解压的,而.gz格式的压缩包使用-zxvf参数来解压的。关于tar的命令我们就介绍到这里,更多详细的用法大家可以去网上找下相关的文档。

文件查找命令find
文件查找在我们的平常使用中也是很常见的,比如在Linux内核源码中,我们要查找某个文件的路径,这是就会用到文件查找find命令了,其格式如下:
find [路径][参数][关键字]
路径标识要从哪个目录下开始查找文件,如果不写默认从执行find的当前目录下开始查找。
参数说明如下:
-name 按照文件名称查找,查找与 filename 匹配的文件
-depth 从指定目录下的最深层的子目录开始查找
-size<文件大小> 查找符合指定文件大小的文件
-type<文件类型> 查找符合指定文件类型的文件
-user<拥有者> 查找符合指定的拥有者的文件或目录
-gid<群组识别码> 查找符合指定的群组识别码的文件或目录
-group<群组名称> 查找符合指定的群组名称的文件或目录
该命令的参数有很多,我们这里只是列举除了一些常用的。我们来使用find命令查找一下在目录“/etc”下以“host”开头的文件,我们在终端输入“find /etc -name host*”命令,运行结果如图 2.12所示:

在这里插入图片描述

图 2.12

从上图中我们可以看到在“/etc”目录下,以“host”关键字开头的文件全部查找出来了。
文本搜索命令grep
有时候我们需要搜索出包含特定关键字的文件有哪些,这样就会用到grep这个命令,命令格式如下:
grep [参数] 关键字 文件列表
参数说明如下:
-b //在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号
-a //不要忽略二进制的数据
-c //计算符合范本样式的列表
-i //忽略字符的大小写
-n //在显示符合样本范式的那一列前面,标出该列的列数编号
-r //在指定目录中递归查找
-v //反转查找,只显示不匹配的行
比如我们在“/etc”下递归查找包含字符“topeet”的文本,运行结果如图 2.13所示:

在这里插入图片描述

图 2.13 在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BeiJingXunWei/article/details/108164113