(1)创建新文件命令—touch
touch不仅仅可以用用来创建文本文档,其它类型的文档也可以创建,命令格式如下:
touch [参数] [文件名]
使用touch创建文件的时候,如果[文件名]的文件不存在,那就直接创建一个以[文件名]命名的文件,如果[文件名]文件存在的话就仅仅修改一下此文件的最后修改日期,常用的命令参数如下:
-a 只更改存取时间。
-c 不建立任何文件。
-d<日期> 使用指定的日期,而并非现在日期。
-t<时间> 使用指定的时间,而并非现在时间。
进入到用户根目录下,直接使用命令“cd ~”即可快速进入用户根目录,进入用户根目录以后使用touch命令创建一个名为test的文件,创建过程如图所示:
(2)文件夹创建命令—mkdir
既然可以创建文件,那么肯定也可以创建文件夹,创建文件夹使用命令“mkdir”,命令格式如下:
mkdir [参数] [文件夹名目录名]
主要参数如下:
-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。
我们在用户根目录下创建两个分别名为“testdir1”和“testdir2”的文件夹,操作如图所示:
在图中,我们使用命令“mkdir”创建了“testdir1”和“testdir2”这两个文件夹。
(3)文件及目录删除命令—rm
既然有创建文件的命令,那肯定有删除文件的命令,要删除一个文件或者文件夹可以使用命令“rm”,此命令可以完成删除一个文件或者多个文件及文件夹,它可以实现递归删除。对于链接文件,只删除链接,原文件保持不变,所谓的链接文件,其实就是Windows下的快捷方式文件,此命令格式如下:
rm [参数] [目的文件或文件夹目录名]
命令主要参数如下:
-d 直接把要删除的目录的硬连接数据删成0,删除该目录。
-f 强制删除文件和文件夹(目录)。
-i 删除文件或者文件夹(目录)之前先询问用户。
-r 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除掉。
-v 显示删除过程。
我们使用rm命令来删除前面使用命令“touch”创建的test文件,操作过程如图所示:
命令“rm”也可以直接删除文件夹,我们可以试一下删除前面创建的testdir1文件夹,先直接使用命令“rm testdir1”测试一下是否可以删除,结果如图所示: 
在图中可以看出,直接使用命令“rm”是无法删除文件夹(目录)的,我们需要加上参数“-rf”,也就是强制递归删除文件夹(目录),操作结果如图所示: 
从图中可以看出,当在命令“rm”中加入参数“-rf”以后就可以删除掉文件夹“testdir1”了。
(4)文件夹(目录)删除命令—rmdir
上面我们讲解了如何使用命令“rm”删除文件夹,那就是要加上参数“-rf”,其实Linux提供了直接删除文件夹(目录)的命令—rmdir,它可以不加任何参数的删除掉指定的文件夹(目录),命令格式如下:
rmdir [参数] [文件夹(目录)]
命令主要参数如下:
-p 删除指定的文件夹(目录)以后,若上层文件夹(目录)为空文件夹(目录)的话就将其一起删除。
我们使用命令“rmdir”删除掉前面创建的“testdir2”文件夹,操作过程如图所示:
(5)文件复制命令—cp
在Windows下我们可以通过在文件上点击鼠标右键来进行文件的复制和粘贴,在Ubuntu下我们也可以通过点击文件右键进行文件的复制和粘贴。但是本节我们来讲解如何在终端下使用命令来进行文件的复制,Linux下的复制命令为“cp”,命令描述如下: <br /> cp [参数] [源地址] [目的地址] <br />主要参数描述如下: <br />**-a** 此参数和同时指定“-dpR”参数相同 <br />**-d** 在复制有符号连接的文件时,保留原始的连接。 <br />**-f** 强行复制文件,不管要复制的文件是否已经存在于目标目录。 <br />**-I** 覆盖现有文件之前询问用户。 <br />**-p** 保留源文件或者目录的属性。 <br />**-r或-R** 递归处理,将指定目录下的文件及子目录一并处理 <br />我们在用户根目录下,使用前面讲解的命令“mkdir”创建两个文件夹:test1和test2,过程如图所示:<br /><br />进入上面创建的test1文件夹,然后在test1文件夹里面创建一个a.c 文件,操作过程如图所示:<br /><br />我们先将图中的a.c这个文件做个备份,也就是复制到同文件夹test1 里面,新的文件命名为b.c。然后在将test1文件夹中的a.c和b.c这两个文件都复制到文件夹test2中,操作如图所示:<br /><br />在图中,我们添加了一些高级使用技巧,首先是拷贝a.c和b.c文件到 test2文件夹中,我们使用了通配符“*”,“*.c”就表示 test1下的所有以“.c”结尾的文件,也就是 a.c 和 b.c。“../test2”中的“../”表示上级目录,因此“../test2”就是上级目录下的 test2文件夹。
(6)文件移动命令—mv
有时候我们需要将一个文件或者文件夹移动到另外一个地方去,或者给一个文件或者文件夹进行重命名,这个时候我们就可以使用命令“mv”了,此命令格式如下:
mv [参数] [源地址] [目的地址]
主要参数描述如下:
-b 如果要覆盖文件的话覆盖前先进行备份。
-f 若目标文件或目录与现在的文件重复,直接覆盖目的文件或目录。
-I 在覆盖之前询问用户。
使用上面讲解“cp”命令的时候创建了三个文件夹,在上面创建的test1文件夹里面创建一个c.c文件,然后将c.c这个文件重命名为d.c。最后将d.c这个文件移动到test2文件夹里面,操作如图所示:
我们再将test1中的d.c文件移动到test2文件夹里面,操作如图所示:
(7) 图形化压缩和解压缩
图形化压缩和解压缩和Windows下基本一样,在要压缩或者解压的文件上点击鼠标右键,然后选择要进行的操作,我们先讲解一下如何进行文件的压缩。首先找到要压缩的文件,然后在要压缩的文件上点击鼠标右键,选择“压缩”选项,如图所示:
我们要对test1这个文件夹进行压缩,点击“压缩”以后会弹出图所示界面让选择压缩后的文件名和压缩格式。 
可以选择的压缩格式还是有很多的,挑选一个格式进行压缩,比如我选择的“.zip”这个格式,压缩完成以后如图所示:
上面就是使用图形化进行文件压缩的过程,我们接下来对刚刚压缩的test1.zip进行解压缩,鼠标放到test1.zip上然后点击鼠标右键,选择“提取到此处”,如图所示:
点击图中的“提取到此处”以后,系统就会自动进行解压缩,上面就是在 Ubuntu中使用图形化工具进行文件的压缩和解压缩。
(8)命令行进行文件的压缩和解压缩
上面我们学习了如何使用图形化工具在Ubuntu下进行文件的压缩和解压缩,本节我们学学如何使用命令行进行压缩和解压缩,我们后面的开发中所有涉及到压缩和解压缩的操作都是在命令行下完成的。命令行下进行压缩和解压缩常用的命令有三个:zip、unzip和tar,我们依次来学习:
命令 zip
zip命令看名字就知道是针对.zip文件的,用于将一个或者多个文件压缩成一个.zip结尾的文件,命令格式如下:
zip [参数] [压缩文件名.zip] [被压缩的文件]
主要参数函数如下:
-b<工作目录> 指定暂时存放文件的目录。
-d 从 zip 文件中删除一个文件。
-F 尝试修复已经损毁的压缩文件。
-g 将文件压缩入现有的压缩文件中,不需要新建压缩文件。
-h 帮助。
-j 只保存文件的名,不保存目录。
-m 压缩完成以后删除源文件。
-n<字尾符号> 不压缩特定扩展名的文件。
-q 不显示压缩命令执行过程。
-r 递归压缩,将指定目录下的所有文件和子目录一起压缩。
-v 显示指令执行过程。
-num 压缩率,为 1~9 的数值。
上面讲解了如何使用图形化压缩工具对文件夹test2进行压缩,这里我们使用命令“zip”对test2文件夹进行压缩,操作如图所示:
上图就是使用zip命令进行test2文件夹的压缩,我们使用的命令如下:
zip -rv test2.zip test2
上述命令中,-rv表示递归压缩并且显示压缩命令执行过程。
命令 unzip
unzip命令用于对.zip格式的压缩包进行解压,命令格式如下:
unzip [参数] [压缩文件名.zip]
主要参数如下:
-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否损坏,但不解压。
-v 显示命令显示的执行过程。
-Z 只显示压缩文件的注解。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中的原有目录路径。
-L 将压缩文件中的全部文件名改为小写。
-n 解压缩时不要覆盖原有文件。
-P<密码> 解压密码。
-q 静默执行,不显示任何信息。
-x<文件列表> 指定不要处理.zip 中的哪些文件。
-d<目录> 把压缩文件解到指定目录下。
对上面压缩的 test2.zip 文件使用unzip命令进行解压缩,操作如图所示:
命令 tar
我们前面讲的zip和unzip这两个是命令只适用于.zip格式的压缩和解压,其它压缩格式就用不了了,比如Linux下最常用的.bz2和.gz这两种压缩格式。其它格式的压缩和解压使用命令 tar,tar将压缩和解压缩集合在一起,使用不同的参数即可,命令格式如下: <br /> Tar [参数] [压缩文件名] [被压缩文件名] <br />常用参数如下: <br />**-c** 创建新的压缩文件。 <br />**-C<目的目录>** 切换到指定的目录。 <br />**-f<备份文件>** 指定压缩文件。 <br />**-j **用 tar 生成压缩文件,然后用 bzip2 进行压缩。 <br />**-k** 解开备份文件时,不覆盖已有的文件。 <br />**-m** 还原文件时,不变更文件的更改时间。 <br />**-r** 新增文件到已存在的备份文件的结尾部分。 <br />**-t** 列出备份文件内容。 <br />**-v ** 显示指令执行过程。 <br />**-w** 遭遇问题时先询问用户。 <br />**-x** 从备份文件中释放文件,也就是解压缩文件。 <br />**-z **用 tar 生成压缩文件,用gzip压缩。 <br />**-Z** 用 tar 生成压缩文件,用compress压缩。 <br />使用tar命令来进行.zip和.gz格式的文件压缩,操作如图所示:<br /><br /> 在上图中,我们使用如下两个命令将test1文件夹压缩为.bz2和.gz这两个格式:<br /> tar -vcjf test1.tar.bz2 test1 <br /> tar -vczf test1.tar.gz test1 <br /> 在上面两行命令中,-vcjf表示创建bz2格式的压缩文件,-vczf表示创建.gz格式的压缩文件。学习了如何使用tar命令来完成压缩,我们再来学习使用tar命令完成文件的解压,操作如图所示:<br /><br />在图中我们使用如下所示两行命令完成.bz2和.gz格式文件的解压缩: <br /> tar -vxjf test1.tar.bz2 <br /> tar -vxzf test2.tar.gz <br /> 上述两行命令中,-vxjf用来完成.bz2格式压缩文件的解压,-vxzf用来完成.gz格式压缩文件的解压。关于Ubuntu下的命令行压缩和解压缩就讲解到这里,重点是tar命令,要熟练掌握使用tar命令来完成.bz2和.gz格式的文件压缩和解压缩。
(9)文件查询和搜索
文件的查询和搜索也是最常用的操作,在嵌入式Linux开发中常常需要在Linux源码文件中查询某个文件是否存在,或者搜索哪些文件都调用了某个函数等等。本节我们就讲解两个最常用的文件查询和搜索命令:find和grep。
命令 find
find命令用于在目录结构中查找文件,其命令格式如下:
find [路径] [参数] [关键字]
路径是要查找的目录路径,如果不写的话表示在当前目录下查找,关键字是文件名的一部分,主要参数如下:
-name
-depth 从指定目录下的最深层的子目录开始查找。
-gid<群组识别码> 查找符合指定的群组识别码的文件或目录。
-group<群组名称> 查找符合指定的群组名称的文件或目录。
-size<文件大小> 查找符合指定文件大小的文件。
-type<文件类型> 查找符合指定文件类型的文件。
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。
find命令的参数有很多,常用的就这些,关于其它的参数大家可以自行上网查找,我们来看一下如何使用find命令进行文件搜索,我们搜索目录/etc中以“vim”开头的文件为例,操作如图所示:
从上图中可以看出,在目录/etc下,包含以“vim*”开头的文件有/etc/vim、/etc/vim/vimrc等等,就不一一列出了。
命令 grep
find命令用于在目录中搜索文件,我们有时候需要在文件中搜索一串关键字,grep就是完成这个功能的,grep命令用于查找包含指定关键字的文件,如果发现某个文件的内容包含所指定的关键字,grep命令就会把包含指定关键字的这一行标记出来,grep命令格式如下:
grep [参数] 关键字 文件列表
grep 命令一次只能查一个关键字,主要参数如下:
-b 在显示符合关键字的那一列前,标记处该列第1个字符的位编号。
-c 计算符合关键字的列数。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用此参数!否则grep指令将回报信息并停止搜索。
-i 忽略字符大小写。
-v 反转查找,只显示不匹配的行。
-r 在指定目录中递归查找。
比如我们在目录/usr下递归查找包含字符“Ubuntu”的文件,操作如图所示:
(10)文件类型
这里的文件类型不是说这个文件是音乐文件还是文本文件,在用户根目录下使用命令“ls -l”来查看用户根目录下所有文件的详细信息,如图所示: 
在上图中,每个文件的详细信息占一行,每行最前面都是一个符号就标记了当前文件类型,比如test1的第一个字符是“d”,test1.tar.bz2文件第一个字符是“-”。这些字符表示的文件类型如下:
- 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。
d 目录文件。
c 字符设备文件,Linux驱动里面的字符设备驱动,比如串口设备,音频设备等。
b 块设备文件,存储设备驱动,比如硬盘,U盘等。
l 符号连接文件,相当于Windwos下的快捷方式。
s 套接字文件。
p 管道文件,主要指FIFO文件。
我们后面学习Linux驱动开发的时候基本是在和字符设备文件和块设备文件打交道。
