模块三文件管理及常用命令【学习要点】☆了解Linux的文件系统☆熟练掌握Linux的目录命令,如目录的新建、删除、改变当前目录等。☆熟练掌握Linux的文件命令,特别是过滤器、管道的使用。☆掌握编写shell脚本的方法,并能够独立编写脚本。☆掌握vi编辑器的使用方法,并利用vi编辑器编写脚本文件。项目一认识Linux的文件系统【情景链接】大家对于MicrosoftWindows都十分的熟悉,windows是按照树形结构的目录方式来管理文件资源的,那么Linux呢?这种流行的操作系统是如何做好一个管家角色的呢?带着这样的问题,让我们来认识一下以下的内容。任务了解Linux的文件系统【任务说明】通过对Linux文件系统的认识,了解Linux是如何管理它的文件资源的,为今后的学习打好铺垫。活动一认识文件系统的层次结构【活动目的】通过本次学习,了解Linux文件系统的层次结构以及文件的类型【活动要求】与windows文件系统的层次结构进行对比,发现两者的异同,从而熟悉Linux文件系统的结构。【活动步骤】步骤一:了解文件的层次结构和windows系统相同,Linux也是以倒置的树形目录结构来组织文件的。目录是一种特殊的文件,它可以被划分为不同的层次结构,位于第一层的称之为根目录,其他层次的称为子目录或下一级目录。目录和文件的关系就好像是树枝和树叶的关系,目录是树枝,文件是树叶,树枝(目录)上可以长小树枝(子目录)和树叶(文件),但树叶(文件)上不能再长其他东西,如下图所示:我就是文件其中/表示根目录,在Linux的根目录下共有7个子目录,它们的作用如下表所示:表3-1目录名用途/bin储存各种应用程序/dev储存所有与设备有关的文件/etc储存与操作系统有关的、操作需要涉及的数据文件/lib编译器所包含的数据库如:例程/home储存用户目录/usr存储引导过程所没有涉及到的操作系统文件/var储存有特定于Linux的不同实用程序的信息如图3-1所示,在/home目录下存储的文件bob和子目录text是某一个用户所建立的。特别说明:一般,当某个用户登陆后,所处的目录为home下该用户的目录,在linux中可以使用~来指出关于用户的home目录的路径如steve要访问bob文件,他可从任何地方指出路径:~bob步骤二:了解Linux文件的类型Linux中的文件可以分为三种类型:1)一般文件(Ordinaryfiles):用户创建的文件都属于一般文件。2)目录文件(Directoryfiles)目录文件是Linux在创建目录时自动创建的。3)特殊文件(Specialfiles):系统文件属于特殊文件。活动二了解Linux访问文件的方法/bindevetclibhomeusrvarbobText图3-1文件系统的层次结构图【活动目的】通过学习本活动的内容了解Linux是如何访问文件的。【活动要求】掌握文件的相对路径和绝对路径【活动步骤】步骤一:了解文件的路径Linux中如何来访问文件呢?对计算机来说,是按照文件的路径来访问文件的。文件的路径代表着文件在整个磁盘中的位置。一般将根目录用斜杠(/)表示,目录与目录之间用反斜杠(/)相隔,如:/home/text/jake,表示文件jake是根目录下的Home子目录中的text目录中的一个文件。文件路径可分为文件的相对路径和文件的绝对路径两种。文件的相对路径指的是从当前位置到达目标文件的路径。一般将当前所处的路径称为当前目录。文件的绝对路径指的是从根目录到达目标文件的路径。例:当前路径是/home/file/,问文件jake的相对路径和绝对路径是什么?分析:绝对路径:是从根目录开始直到文件所在的目录位置的路径:/home/text/jak相对路径:当前的目录是/home/file/,要访问文件jake必须先要返回file目录的上一级目录home目录,然后进入到text目录才能访问该文件,..表示返回上一级目录,所以相对路径为../text/jake。步骤二:掌握文件的命名规则文件必须要有名称,就像人必须要有姓名一样,在给文件命名的时候必须要遵循以下原则:1、文件名的长度不超过256个字符。2、除斜线(/)和空字符(ASCII字符\0)以外,文件名可以包含任意的ASCⅡ字符3、文件名可包含大写字母和小写字母,但是大小写字母是敏感的。如:file和FILE是两个不同的文件。4、在文件名中不能包含空白标记。例:判断以下文件名哪些是合法的/weWewewe@She/bindevetclibhomeusrvarFileText图3-2相对路径和绝对路径Jake分析:只有第三个是合法的,第一个含有非法字符斜线(/),第二个含有非法字符空格。补充说明:如果如果已经创建的文件包含空格,可用引号加文件名来指称:“programfile”为了能够同时对多个文件进行操作,Linux提供了通配符。常用的通配符有以下几种:1、星号(*)星号(*)能代表任意多个字符,如文件名file*,代表文件名以file开头的所有文件,又如文件名*就代表所有文件。2、问号(?)问号(?)能代表任意一个字符。如文件名file?,代表文件名以file开头,后面一个字符任意的所有文件。3、方括号([])方括号[]提供一个可选列表,如文件名file[123]或file[1-3]代表文件file1,file2,file3。【课外活动】项目二熟悉Linux的目录命令【情景链接】临近年末需要制作年终报表,作为销售主管的jake需要完成以下任务:1)要将年终销售报表存放在/hone/jake/xsb目录下,将年终总报表在/home/jake/zbb之下(xsb和zbb这两个目录都还未建立)2)主目录下有一个lsbb目录,该目录中存放了制作报表所需的数据,在报表制作完成后需要删除该目录。任务一能在Linux的各级目录中自由的转换【任务说明】对Linux的操作需要涉及多个目录,因此如何自如的游走于各级目录是一个十分重要的环节,通过本任务的学习我们能很好的掌握这种方法。活动一识别目录与改变目录【活动目的】我们发现要解决上述任务需要对目录进行一系列的操作,而识别目录与改变目录是更是操作的基础,通过本活动使我们掌握基本的操作方法,为下一步的学习做好铺垫。【活动要求】熟悉pwd命令、cd的使用方法,能够熟练的进行目录的切换。【活动步骤】步骤一:识别目录当用户登录系统后所处的当前目录是home子目录下与自己用户名同名的目录,但随着各项操作的进行,当前目录会不断的改变,而系统仅提示用户当前目录是什么而不会提示当前目录的完整路径,有的时候到底现在位于哪层目录下用户也会产生糊涂,所以需要有某种方法帮助用户识别当前目录。pwd命令——被用来显示当前目录的完整路径如:用户jake登录系统后,做如下操作系统会显示当前的完整路径名:[jake@localhostjake]$pwd/home/jake这样一来即使我们对自己的当前位置产生了糊涂,使用了该命令后就能立刻知道自己的位置了。步骤二:改变当前目录我们可以使用cd命令来改变当前目录,使当前目录为我们自己指定的目录。常见的操作主要如下:1、使用cd命令指称完整的路径名(即绝对路径)。如:$cd/jake/lsbb该命令能进入到lsbb目录中。2、在cd命令中指称相对路径名例:本来在/home/jake目录下,需要进入下一级目录xsb目录$cdxsb思考:如果当前目录为/home/jake/xsb,需要访问/home/jake/zbb,该怎么办?可以使用..(两个连续的小数点)。3、在cd命令中使用..两个连续的小数点表示当前目录的父目录,所以如果当前目录是/home/jake/xsb,从当前目录返回上一级目录可以采用以下一些方法:方法一:$cd/home方法二:$cd..(注意:cd与两个点之间用空格隔开,小数点之间不加空格)例:年终销售报表存放在/hone/jake/xsb目录下,而年终总报表在/home/bob/zbb之下,当处理完销售报表后想要修改总报表该如何修改目录?方法一:$cd..返回上一级目录jake$cd..返回上一级目录Home$cdbob/zbj进入目标目录方法二:$cd../..返回Home目录$cdbob/zbj进入目标目录方法三:$cd../../bob/zbj直接进入目标目录4、cd后面如果没有加任何东西,则直接返回/home目录。任务二能对目录做各种常见的操作【任务说明】通过本任务的学习我们能熟练的掌握各种目录的操作方法。活动一创建目录【活动目的】创建目录是目录的一种常见操作,通过本活动使我们掌握新建目录的方法。【活动要求】掌握mkdir命令的使用。【活动步骤】步骤:掌握创建目录命令mkdir语法:mkdir目录名称如:[jake@localhostjake]$mkdirxsb[jake@localhostjake]$mkdirzbb这样一来,用于存放报表的两个目录就建好了。如果想验证目录是否建立,可以使用ls命令,执行ls指令可列出目录的内容,包括文件和子目录的名称。如继续输入:[jake@localhostjake]$ls屏幕将显示/home/jake目录下所有的内容。又如:当前目录是/home/jake目录,在当前目录下创建目录file以及下一级目录text[jake@localhostjake]$mkdir/file/text系统将现在当前目录中建立新目录file,然后在file目录中建立目录text。注意:在同一级目录下不能出现两个相同的目录名。活动二删除目录【活动目的】在系统中经常有没有用的目录,如果不加以理会的话会占用大量的内存空间,因此,必须对不需要的目录进行删除,通过本活动的学习,使我们掌握删除目录的方法,为更好的使用Linux服务。【活动要求】掌握rmdir和rm命令的使用方法。【活动步骤】步骤一:了解删除空目录的命令rmdir如果我们想删除的目录是空目录,可以使用rmdir命令。该命令的语法为:rmdir目录名称例:[jake@localhostjake]$rmdirfile1从当前目录删除空目录file1[steve@localhoststeve]$rmdirfile2/text从当前目录删除目录file2及其下一级目录text注意:第二个语句必须确保text目录下没内容,file2目录下除了text以外也没有其他内容。步骤二:认识删除非空目录的命令rm如果待删除的目录是非空目录怎么办呢?Linux提供了rm命令用来删除文件或目录,如欲删除目录必须加上参数“-r”,否则计算机仅会删除文件。一般可以使用联合参数“-rf”,它可以强制删除目录。例:[jake@localhostjake]$rm-rflsbb从当前目录删除非空目录lsbb活动三查看目录中的内容【活动目的】当我们对某个目录完成了一系列的操作后往往需要查看一下该目录的实际内容,通过本活动我们能够掌握这种技能。【活动要求】了解ls命令和tree命令。【活动步骤】步骤一:认识ls命令ls命令能显示目录中的文件和子目录名如:[jake@localhostjake]$ls该命令将会显示/home/jake目录下所有的文件和子目录名称。步骤二:认识tree命令Tree命令能以树状图列出目录的内容【课后活动】项目三掌握Linux的文件命令【情景链接】文件是Linux操作的基本对象,Linux是通过文件来管理资源的。在Linux中通过命令能方便的对文件进行操作,如新建、删除等。现假定jake在做报表时需要完成以下任务:1)在/home/jake目录下建立一个文件,名为“newreport”,在其中输入内容“myreport”2)在/home/jake目录下建立一个目录,名为“copy”3)将文件newreport复制到copy目录下,并修改其名称为“oldreport”4)将/home/mike目录下所有以元音字母开头的文件移动到“copy”目录中。任务掌握各种文件操作的方法【任务说明】本项目是对文件进行的各种操作,通