Linux操作系统基础与应用(CentOSStream9) 课件 张宏甫 项目3、4 管理文件与目录、管理文本文件_第1页
Linux操作系统基础与应用(CentOSStream9) 课件 张宏甫 项目3、4 管理文件与目录、管理文本文件_第2页
Linux操作系统基础与应用(CentOSStream9) 课件 张宏甫 项目3、4 管理文件与目录、管理文本文件_第3页
Linux操作系统基础与应用(CentOSStream9) 课件 张宏甫 项目3、4 管理文件与目录、管理文本文件_第4页
Linux操作系统基础与应用(CentOSStream9) 课件 张宏甫 项目3、4 管理文件与目录、管理文本文件_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目3管理文件与目录【项目情景】任务3-1了解文件类型与目录结构任务3-2文件和目录的基本操作任务3-3查找文件内容或文件位置任务3-4文件压缩归档01【学习目标】【知识目标】【能力目标】【素养目标】【知识目标】知道Linux系统的文件类型和目录结构熟悉文件和目录基本操作掌握查找文件和内容的方法了解文件压缩归档命令【能力目标】掌握Linux系统的文件类型掌握Linux系统的目录结构掌握Linux系统下文件的基本操作掌握Linux系统下的文件打包、压缩等操作【素养目标】提高沟通能力和表达能力,可以向他人清晰表达项目过程培养合作意识,做到与小组成员互相帮助,取长补短02【项目情景】【项目情景】小陈通过前期的学习,已经能够在字符界面下完成一些基本操作。然而,仅仅掌握目前学习的几个命令还不足以高效地完成对目录和文件的操作。因此,小陈决定继续学习Linux系统中的目录与文件管理命令。03任务3-1了解文件类型与目录结构【任务目标】任务3-1了解文件类型与目录结构【任务目标】3.1.1了解Linux文件类型3.1.2了解Linux目录结构【任务目标】在Linux系统的管理与使用过程中,文件和目录是系统管理员最常接触的对象。对文件和目录的管理是Linux系统运行和维护的基础工作。计算机系统中有大量的文件,为了方便管理和查找,Linux系统采用目录的方式将不同类型或功能的文件分类存储在不同的目录中。在本任务中,小陈需要熟悉Linux系统中不同类型的文件,并理解文件目录结构及其作用。因此,小陈制定了如下的任务目标:1.了解Linux系统的文件类型及系统目录结构2.掌握文件和目录的常用操作命令。3.会使用查找和打包压缩命令。3.1.1了解Linux文件类型磁盘上的文件系统是分层次的,由若干目录及其子目录组成,最上层的目录称为根目录,用“/”表示。1.文件与目录的定义2.文件结构3.文件类型1.文件与目录的定义表3.1文件与目录定义表名称定义文件系统它是磁盘上有特定格式的一片区域,操作系统通过文件系统可以方便地查寻和访问其中所包含的磁盘块。文件文件系统中存储数据的一个命名对象。一个文件可以是空文件,但仍可为操作系统提供其他信息。目录包含许多文件项目的一类特殊文件。目录支持文件系统的层次结构。文件系统中的每个文件都登记在一个(或多个)目录中。子目录包含在另一个目录中的目录。包含子目录的目录称为父目录。除了根目录以外,所有的目录都是子目录,并且有它们的父目录。根目录就作为自己的父目录。文件名用来标识文件的字符串,它保存在一个目录文件项中。路径名由斜线字符“/”结合在一起的一个或多个文件名的集合。路径名指定一个文件在分层的树形结构(即文件系统)中的位置。2.文件结构文件是Linux操作系统处理信息的基本单位。所有软件都组织成文件形式。(1)文件的成分无论文件是一个程序、一个文档、一个数据库,或者是一个目录,操作系统都会赋予文件相同的结构,具体信息如下:①索引节点:又称inode(元数据)。在文件系统结构中,包含有关相应文件信息的一个记录,这些信息包括文件类型、权限、硬链接数、所有者及所属组、文件大小、时间信息等。②数据:文件的具体内容存放地。2.文件结构(2)命名文件文件名保存在目录文件中。Linux的文件名几乎可以由ASCII字符的任意组合构成,文件名可长达255个字符。为方便管理文件,文件名应遵循以下规则:①文件名应尽量简单,并且应反映出文件内容。文件名没有必要超过14个字符。②除斜杠“/”和空字符以外,文件名可以包含任意的ASCII字符,因为这两个字符被内核当做表示路径名的特殊字符来解释。③习惯上允许使用下线符“_”和句点“.”来区别文件的类型,使文件名更易读。但是应避免使用以下字符,因为对系统的shell来说,它们有特殊的含义。这些字符是:;|<>`"'$!%&*?\()[],另外文件名应避免使用空格、制表符或其他控制字符。④同类文件应使用同样的后缀或扩展名。⑤Linux系统区分文件名的大小写,例如名为letter的文件与名为Letter的文件不是同一个文件。说明:以圆点“.”开头的文件名是隐含文件,默认方式下使用ls命令并不能将它们在屏幕上显示出来。同样,在默认情况下,shell通配符并不匹配这类文件名。2.文件结构(3)文件名扩展字符为了能一次处理多个文件,shell提供了几个特别字符,称为文件名扩展字符(也称通配符)。文件名扩展字符主要有以下几种:①星号“*”:与0个或多个任意的字符相匹配,可以匹配当前目录下的所有文件,但以点“.”开头的隐含文件除外。例如:file*可以代表file123、fileabc或②问号“?”:只与一个任意的字符匹配。可以使用多个问号。例如:file?可以与file1、file2、file3匹配,但不与file23、file10匹配。

③方括号“[]”:只与方括号中字符之一匹配,可以用短横代表一个范围内的字符,在方括号中如果以惊叹号开始,表示不与惊叹号后的字符匹配。例如,file[1234]只与文件file1、file2、file3或file4匹配;file[!1234]除了file1、file2、file3和file4这4个文件外,与其他任何一个以file起始的文件名匹配。3.文件类型Linux系统总共有7种类型的文件,分为三大类:普通文件、目录文件和特殊文件。特殊文件包含5种类型:链接文件、块设备文件、字符设备文件、套接字文件、管道文件。(1)普通文件普通文件也称为常规文件,包含各种长度的字符串。核心对这些文件没有进行结构化,只是作为有序的字符序列将它提交给应用程序。应用程序自己组织和解释这些数据。它包括文件,字符设备文件,命令文件,块设备文件,压缩文件,图片文件,视频文件等。第一个属性为[-]。(2)目录文件目录文件就是我们平常说的文件夹,在Linux中,使用cd命令可以进到目录中。第一个属性为[d]。(3)链接文件类似Windows下面的快捷方式,方便用户从不同的位置来访问原始文件。在Linux系统中有两种链接:硬链接和软连接。软连接又称为符号链接。第一个属性为[l]。3.文件类型(4)块设备文件以数据块为单位进行随机访问的设备最常见的块设备就是磁盘。例如一号硬盘的代码是/dev/hda1等文件。第一个属性为[b]。(5)字符设备文件用来描述以字符流方式进行操作的接口设备,例如键盘、鼠标等。第一个属性为[c]。(6)套接字文件通常用于网络数据连接。系统启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为[s]。(7)管道文件管道是Linux中的一种进程通讯机制。管道文件则是建立在内存中可以同时被两个进程访问的文件。通常,一个进程写一些数据到管道中,这些数据就可以被另一个进程从这个管道中读物出来。管道文件可以分为两种类型:无名管道文件和命名管道文件。第一个属性为[p]。3.1.2了解Linux目录结构Linux操作系统使用分层目录结构来组织所有的文件。这意味着所有的文件形成了一棵树形目录,类似于Windows系统中的文件夹,这个目录树包含文件和其他目录。文件系统中的第一级目录被称为根目录。根目录包含文件和子目录,子目录又包含更多的文件和子目录,以此类推。目录本身也是一种特殊类型的文件。Linux系统通过目录将系统中的所有文件系统进行层级和分组组织,形成了Linux文件系统的树形结构。从根目录开始,所有其他目录都是从根目录衍生出来的,用户可以浏览整个系统,并可以进入任何一个有访问权限的目录,并访问该目录下的文件。1.Linux系统的目录结构在Linux系统中并不存在C、D、E、F等盘符,Linux系统中的一切文件都是从“根(/)”目录开始的,是一种单一的根目录结构。根目录位于Linux文件系统的顶层,所有分区都挂载到根目录下某个目录中。Linux系统的目录结构如图3.1所示。Linux系统的根目录最为重要,其原因有两点。(1)所有目录都是由根目录衍生出来的。(2)根目录与系统的开机、修复、还原密切相关。因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件。Linux系统中的常见目录结构如表3-2所示。图3.1Linux系统的目录结构2.目录与路径(1)文件目录所谓文件目录,就是将所有文件的说明信息采用树型结构组织起来,即常说的目录。也就是说,整个文件系统有一个“根”(root),然后在根上分“杈”(directory),任何一个分杈上都可以再分杈,杈上也可以长出“叶子”。“根”和“杈”在Linux中被称为“目录”或“文件夹”,而“叶子”则是一个个文件。实践证明,此种结构的文件系统效率比较高。实际上,各个目录中都会有一些文件和子目录。并且,系统在建立每一个目录时,都会自动为它建立两个目录文件:一个是“.”,代表该目录自己;另一个是“..”,代表该目录的父目录。对于根目录,“.”和“..”都代表其自己。Linux目录提供了管理文件的一个方便途径。每个目录里都包含文件。用户可以为特定的文件创建特定的目录,也可以将一个目录下的文件移动或复制到另一个目录下。(2)当前工作目录用户当前所在的目录称为当前工作目录。2.目录与路径(3)用户主目录用户主目录是系统管理员创建用户时建立起来的,每个用户都有自己的主目录,不同用户的主目录一般互不相同。用户主目录一般在/home子目录下,与用户名相同。需要注意的是,用户登录系统时,其主目录为其工作目录。(4)路径顾名思义,路径是指从树型目录的某个目录层次到某个文件的一条道路。路径主要由目录名称构成,中间用“/”分隔。用户在对文件进行访问时,要给出文件所在的路径。路径又分为相对路径和绝对路径。绝对路径是指从“根”开始、到达相应文件的所有目录名连接而成,绝对路径是唯一的,也称为完全路径;相对路径是从用户当前工作目录开始、到达相应文件的路径。04任务3-2文件和目录的基本操作【任务目标】任务3-2文件和目录的基本操作【任务目标】3.2.1查找与定位文件3.2.2文本文件查看3.2.3文件目录常规操作3.2.4创建链接文件3.2.5显示文件或目录的磁盘占用量【任务目标】通过文件和目录结构的学习,小陈已经理解了Linux系统中的文件类型和目录结构,并希望通过命令来进行实际操作。他查阅了一些资料,了解到日常工作中文件和目录的基本操作包括查看、新建、复制、移动、删除、统计和压缩等。在本任务中,小陈需要学习与这些基本功能相对应的命令,以便能够快速有效地完成日常工作。因此,小陈制定了如下的任务目标:1.学习如何查找定位文件的命令。2.掌握文件目录日常操作所需要的基本命令。3.能够创建链接,会使用命令查看目录,文件的磁盘占用情况。3.2.1查找与定位文件1.pwd命令2.cd命令3.ls命令4.tree命令1.pwd命令pwd命令来自于英文词组“printworkingdirectory”的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径。在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,可以使用pwd命令快速查看当前所处的工作目录路径,方便开展后续工作。命令及运行结果如下。[root@server~]#pwd/root2.cd命令cd命令来自于英文词组“changedirectory”的缩写,其功能是用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前使用者的家目录。cd命令的格式如下:cd[选项][目录名]cd命令的选项及其含义如表3.3所示。3.ls命令ls是最常被使用到的Linux命令之一,来自于英文单词list的缩写,其功能是列举出指定目录下的文件名称及其属性。默认不加参数的情况下,ls命令会列出当前工作目录中的文件信息,经常与cd和pwd命令搭配使用,十分方便。ls命令的格式如下:ls[选项][文件]该命令的选项及其含义如表3.4所示:通配符是一种特殊语句,主要有星号(*)和问号(?),通配符及其含义详见表3.5。当不知道真正的字符或者不想输入多个字符时,常常使用通配符代替一个或多个真正的字符。熟练运用通配符可以提高工作效率并简化一些烦琐的处理步骤。4.tree命令tree命令的功能是用于以树状图形式列出目录内容,帮助运维人员快速了解到目录的层级关系。使用时直接输入该命令后按回车键即可。虽然ls命令可以很便捷地查看目录内有哪些文件,但无法直观地获取目录内文件的层次结构。假如目录a中有个b,b中又有个c,那么ls命令就只能看到最外面的a目录,显然有些时候这不太够用。tree命令则能够以树状图的形式列出目录内所有文件的结构。3.2.2文本文件查看1.cat命令2.more命令3.head命令4.tail命令1.cat命令cat命令来自于英文单词concatenate的缩写,其功能是用于查看文件内容。cat命令适合查看内容较少的、纯文本的文件。另外,还可以用来连接两个文件或多个文件,形成新的文件。cat命令的格式如下:cat[选项][文件]该命令的选项及其含义如表3.6所示:cat命令可以同时查看多个文件,文件的内容依次显示;如果将多个文件的内容输出重定向到指定的文件,则实现了文件内容的合并。2.more命令more命令的功能是用于分页显示文本文件内容。使用more命令进行分页查看,可以将文本内容一页一页地显示在终端界面上。用户每按一次回车键,就会显示下一行文本;每按一次空格键,就会显示下一页文本。用户可以通过按键来逐页或逐行浏览文本文件,直到查看完为止。more命令的格式如下:more[选项][文件]该命令的选项及其含义如表3.7所示:使用more命令显示文件时,会逐行或逐页显示,方便用户阅读,最基本的操作是按Enter键显示下一行,按空格键(Space)显示下一页,按b键显示上一页,按q键退出或文件结束自动退出。3.head命令head命令的功能是显示文件开头的内容,默认为前10行。可以通过选项“-n”设定显示的行数。head命令的格式如下:head[选项][文件]4.tail命令tail命令的功能是用于查看文件的尾部内容。默认情况下,它会在终端界面上显示指定文件的末尾10行内容。如果指定了多个文件,tail命令会在显示每个文件的内容前加上文件名,以区分它们。tail命令的高级用法中,-f选项的作用是持续显示文件的最新内容。这类似于机场候机厅的大屏幕,会不断展示最新的消息给用户,特别适用于查看日志文件,无需手动刷新页面,即可实时获取最新的日志信息。tail命令的格式如下:tail[选项][文件]3.2.3文件目录常规操作1.touch命令2.mkdir命令3.cp命令4.mv命令5.rm命令6.file命令1.touch命令touch命令的功能是用于创建文件或修改文件的时间戳。当指定的文件不存在时,touch命令会创建一个空的文本文件;而当文件已经存在时,touch命令会更新文件的访问时间(Atime)和修改时间(Mtime)。请注意,touch命令不会修改文件的创建时间(Ctime),而是将访问时间和修改时间设置为当前时间。touch命令的格式如下。touch[选项][文件]touch命令的选项及其含义如表3.8所示。2.mkdir命令mkdir命令来自于英文词组“makedirectories”的缩写,其功能是用来创建目录文件。若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。而目录不存在,但具有嵌套的依赖关系,例如a/b/c/d/e/f,要想一次性创建则需要加入-p选项,进行递归操作。mkdir命令的格式如下。mkdir[选项][文件]mkdir命令的选项及其含义如表3.9所示。3.cp命令cp命令来自于英文单词copy的缩写,用于将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r选项用于递归操作,复制目录时若忘记加则会直接报错,而-f选项则用于当目标文件已存在时会直接覆盖不再询问,这两个参数尤为常用。cp命令的格式如下:cp[选项]源文件目标文件该命令的选项及其含义如表3.10所示。3.cp命令在Linux系统中,cp操作有三种情况:(1)如果目标文件是目录,则会把源文件复制到该目录中。(2)如果目标文件也是普通文件,则会询问是否要覆盖它。(3)如果目标文件不存在,则执行正常的复制操作。需要注意的是,源文件可以有多个,但这种情况下,目标文件必须是目录才行。4.mv命令mv命令是move的缩写,其功能与英文含义相同,用于对文件进行剪切和重命名操作。mv命令是一个常用的文件管理命令,需要注意它与复制命令的区别。cp命令用于文件的复制操作,即在目标位置创建一个新的文件副本,而mv命令则是对文件进行移动或重命名操作。通过mv命令,文件的位置发生变化,但总文件数不增加或减少。在同一个目录内对文件进行剪切操作,实际上可以理解为对文件进行重命名操作。mv命令的格式如下:mv[选项]源文件目标文件该命令的选项及其含义如表3.11所示。5.rm命令rm命令是remove的缩写,其功能是用于删除文件或目录。可以一次性删除多个文件,也可以递归地删除目录及其内的所有子文件。注意:rm命令是一个非常危险的命令,在使用时必须特别小心,尤其对于新手而言更需要格外注意。例如,执行rm-rf/\*命令会清空系统中的所有文件,并且这些文件可能无法恢复。因此,在执行rm命令之前,务必仔细确认当前所在的目录以及要删除的文件或目录,并在确认无误后再敲击回车键。请时刻保持清醒的头脑,以避免意外删除重要文件或系统文件。rm命令的格式如下:rm[选项]文件或目标文件该命令的选项及其含义如表3.12所示。6.file命令file命令的功能是用于识别文件的类型,也可以用来辨别一些内容的编码格式。由于Linux系统并不是像Windows系统那样通过扩展名来定义文件类型,因此用户无法直接通过文件名来进行分辨。file命令则是为了解决此问题,通过分析文件头部信息中的标识来显示文件类型。file命令的格式如下:file[选项]文件该命令的选项及其含义如表3.13所示。3.2.4创建链接文件ln命令来自于英文单词link的缩写,中文译为“链接”,其功能是用于为某个文件在另外一个位置建立同步的链接。Linux系统中的链接文件有两种形式,一种是硬链接(hardlink),另一种是符号链接(symboliclink,也称为软链接)。软链接相当于Windows系统中的快捷方式文件,原始文件被移动或删除后,软链接文件也将无法使用,而硬链接则是通过复制文件的inode属性块来实现,因此即使原始文件被移动或删除,硬链接文件仍然可以使用。ln命令的格式如下:ln[选项]源文件或目录连接文件名ln命令的选项及其含义如表3.14所示。3.2.5显示文件或目录的磁盘占用量du命令来自于英文词组“DiskUsage”的缩写,其功能是用于查看文件或目录的大小。通常用于按照指定容量单位来查看文件或目录在磁盘中的占用情况。du命令的格式如下:du[选项]文件该命令的选项及其含义如表3.15所示。05任务3-3查找文件内容或文件位置【任务目标】任务3-3查找文件内容或文件位置【任务目标】3.3.1查找与条件匹配的文件或字符串3.3.2查找命令文件【任务目标】通过前面的学习,小陈掌握了Linux系统中文件和目录的日常操作命令,已经能够完成大部分的日常操作任务。但是,他发现有时候很难找到自己想要处理的文件或目录,这严重影响了工作效率。师傅告诉他可以学习一下Linux中的查找命令,这样效率就会大大提高。因此,小陈制定了如下的任务目标:1.掌握查找文件和目录的命令find和locate。2.掌握在命令输出结果中查找信息的命令grep。3.掌握定位命令的二进制程序的命令whereis和which。3.3.1查找与条件匹配的文件或字符串合理利用搜索功能可以提高检索的效率,Linux系统提供了多种搜索命令,包括文件内容查找命令和文件位置查找命令。需要掌握以下常用搜索命令。1.find命令2.Locat命令3.grep命令1.find命令find命令的功能是根据给定的路径和条件查找相关的文件或目录。它具有很多可用的参数,并且支持正则表达式。通过结合管道符号,还可以实现更复杂的功能。对于系统管理员和普通用户来说,find命令是日常工作中必须掌握的命令之一。find命令通常从根目录(/)开始进行全盘搜索。然而,对于服务器负载较高的情况,建议在高峰时段避免使用find命令进行模糊搜索,因为这可能会占用较多的系统资源。find命令的格式如下。find[路径][选项]该命令的选项及其含义如表3.16所示。2.Locat命令locate命令的功能是快速查找文件或目录。与find命令进行全盘搜索不同,locate命令是基于数据库文件(/var/lib/mlocate/mlocate.db)进行定位查找,因此速度更快。由于搜索范围被限定,locate命令能够更快地找到所需的文件或目录。在使用locate命令之前,建议先使用updatedb命令来更新数据库文件,然后再使用locate命令进行查找,这样能够保证结果的准确性。locate命令的格式如下。locate[选项]匹配条件locate命令的选项及其含义如表3.17所示。3.grep命令grep命令来自于英文词组"globalsearchregularexpressionandprintouttheline"的缩写,用于进行全局搜索并打印匹配行的功能。通常与正则表达式结合使用,grep命令可以根据指定的模式进行搜索,并输出匹配的结果。人们经常使用不同的参数来补充搜索过程或筛选输出结果,使得grep命令在使用时非常灵活。grep命令的格式如下。grep[选项]匹配条件grep命令的选项及其含义如表3.18所示。3.3.2查找命令文件1.whereis命令2.which命令1.whereis命令whereis命令用于查找命令的二进制程序、源代码文件和man手册页等相关文件的路径。whereis命令的查找速度非常快,因为它是在一个数据库中进行查询。该数据库是Linux系统自动创建的,包含了本地所有文件的信息,并且每天通过自动执行updatedb命令进行更新。然而,正因为如此,whereis命令的搜索结果有时可能不准确。例如,如果刚添加的文件尚未被更新到数据库中,那么该文件将无法被whereis命令找到。whereis命令的格式如下:whereis[选项]文件名whereis命令的选项及其含义如表3.19所示。2.which命令which命令的功能是用于查找命令文件,能够快速搜索二进制程序所对应的位置。例如查找grep命令可执行文件所在的绝对路径。[root@server~]#whichgrepaliasgrep='grep--color=auto'/usr/bin/grep06任务3-4文件压缩归档【任务目标】任务3-4文件压缩归档【任务目标】3.4.1认识tar包3.4.2使用和管理tar包3.4.3文件压缩与解压缩3.4.4tar包的特殊使用【任务目标】通过前面的学习,小陈已经能够高效地完成对文件和目录的操作和管理。然而,他发现在Linux中当需要通过网络将多个文件传输给同事时并不方便。于是,师傅告诉他可以先将这些文件进行归档、打包和压缩,然后再进行传输,这样可以提高效率。因此,小陈制定了如下的任务目标:1.掌握打包归档的常用方法。2.掌握Linux系统内压缩和解压缩的方法。3.4.1认识tar包在Windows系统中,最常见的压缩文件是.zip和.rar。Linux系统中,最常见的压缩文件是.gz、.tar.gz、.tgz、.bz2、.z和.tar等。在Linux中,很多压缩命令只能针对一个文件进行操作,当有大量文件需要压缩时,就需要进行归档打包,然后再用压缩命令进行压缩。所以我们要理解三个概念:1.打包是指将许多文件和目录集中存储在一个文件中。2.压缩是指利用算法对文件进行处理,从而达到减少磁盘空间占用的目的。3.解打包就是从归档文件中还原所需文件,也就是打包的反过程。3.4.2使用和管理tar包tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。对于RHEL7、CentOS7版本以后的系统,解压时可以不加压缩格式参数(如z或j),系统能自动进行分析并解压。tar命令的格式如下。tar[选项]文件名或目录tar命令的选项及其含义如表3.20所示。注意:关于tar命令有以下几点需要说明。(1)选项“-cvf”一般是习惯用法,记住打包时,需要指定打包之后的文件名,而且要用“.tar”作为扩展名。上例是打包单个文件和目录,tar命令也可以打包多个文件或目录,只要用空格分开即可。(2)解包和打包相比,只是把打包选项“-cvf“更换为“-xvf”。(3)使用“-xvf”选项,会把包中的文件释放到工作目录下。如果想要指定位置,则需要使用“-C(大写)”选项。3.4.3文件压缩与解压缩常用的压缩命令gzip,解压缩命令unzip。1.gzip命令2.unzip命令1.gzip命令gzip命令来自于英文单词gunzip的缩写,其功能是用于压缩和解压文件。gzip是一款使用广泛的压缩工具,文件经过压缩后一般会以.gz后缀结尾,与tar命令合用后即为.tar.gz后缀。据统计,gzip命令对文本文件的压缩比率通常能达到60%~70%,压缩后可以很好的提升存储空间的使用率,还能够在网络传输文件时减少等待时间。gzip命令的格式如下:gzip[选项]文件名或目录gzip命令的选项及其含义如表3.21所示。2.unzip命令unzip命令用于解压缩zip格式文件,虽然Linux系统中更多的使用tar命令进行对压缩包的管理工作,但有时也会收到同Windows系统常用的.zip和.rar格式的压缩包文件,unzip格式便派上了用场。直接使用unzip命令解压缩文件后,压缩包内原有的文件会被提取并输出保存到当前工作目录下。常见用法有三种:分别是将压缩包文件解压到当前工作目录中,将压缩文件解压到指定目录中,测试压缩包文件是否完整、有无损坏。具体用法如下:(1)将压缩包文件解压到当前工作目录中的[root@server~]#unziplatest.zipArchive:latest.zipcreating:wordpress/inflating:wordpress/xmlrpc.phpinflating:wordpress/wp-blog-header.phpinflating:wordpress/readme.html2.unzip命令(2)将压缩包文件解压到指定目录中[root@server~]#unziplatest.zip-d/homeArchive:latest.zipcreating:/home/wordpress/inflating:/home/wordpress/xmlrpc.phpinflating:/home/wordpress/wp-blog-header.phpinflating:/home/wordpress/readme.html(3)测试压缩包文件是否完整、有无损坏[root@server~]#unzip-tlatest.zipArchive:latest.ziptesting:wordpress/OKtesting:wordpress/xmlrpc.phpOKtesting:wordpress/wp-blog-header.phpOKtesting:wordpress/readme.htmlOK3.4.4tar包的特殊使用在实际应用中,为了使操作简便高效,通常可以使用tar命令结合gzip命令来进行文件或目录的压缩和解压缩。以下是tar调用gzip的示例:tar中使用-z这个参数来调用gzip。07【拓展知识】【拓展知识】通过前面三个项目的学习,我相信大部分读者对Linux系统都有了一定的了解,有人觉得Linux系统与以往的windows系统有很大的差别,挑战性极大,反而引发了很大的兴趣。还有一部分读者对Linux系统产生了畏难情绪,开始打退堂鼓了。笔者结合自己的教学经验,向读者提供几点学习建议。(1)如何学习Linux系统对事物的认识一般都是由浅入深、由表及里的过程,循序才能渐进。学习Linux系统也需要有一定的顺序和方法,这也是你学习本教程的意义所在。如果你是初学者,我建议按照本教程的顺序进行阅读,不要跳跃阅读。急于求成往往难以达到预期效果,而且揠苗也不见得能让它们更好地生长。此外,强烈建议你记好读书笔记,在阅读过程中做记录、练习和思考。正如古语所说:“学而不思则罔,思而不学则殆”。比起勤奋,思考能力更加重要,不要盲目学习,要有思考的能力。养成良好的阅读习惯,一本书,单纯地读一遍可能无法深入学习,多次阅读、反复实践,才能让知识深深地印在脑海中。【拓展知识】(2)忘记Windows,改变思维模式思想的转变比暂时性的技术提高更重要,因为它能帮助你加快学习速度。很多人在使用Linux系统时仍然抱着Windows系统的思维方式,比如有读者问:“是把Linux装在C盘吗?”可见,大多数初学者已经习惯了使用Windows系统的图形界面来完成操作。然而,在学习和日后使用Linux系统时,我们基本上是在命令行模式下进行操作。如果你想深入了解Linux系统,就必须学习命令行操作。因此,在开始学习Linux系统之前,我们需要摆脱对Windows系统思维的束缚。这实际上是一个使用习惯的问题。如果我们最初接触的操作系统是Linux系统,那么当我们学习Windows系统时,可能会对其必须启动图形界面才能操作感到困惑。【拓展知识】(3)多记忆Linux命令当你经过一段时间的学习后,应该扩充自己的知识,多学习Linux命令。但是,在初学阶段不需要系统地学习所有Linux命令,只需将教材上介绍的命令熟练掌握即可。学习Linux命令的最佳方法是学习Shell脚本编程。Shell脚本比其他语言更简单,但功能却十分强大。通过学习Shell脚本编程,你能够掌握许多Linux命令。此外,购买一本命令参考手册是必要的,当遇到不熟悉的命令时可以随时查询,这比查阅man文档更快捷。在Linux中,命令可分为系统基本命令和应用程序命令,系统基本命令是所有Unix类系统都支持的命令。【拓展知识】(4)深究Linux系统结构以及Linux系统的管理等你对Linux系统有了一定的认识后,了解了/etc目录下的配置文件的作用,接下来可以开始学习系统结构。了解系统结构并不是要你去查看哪个文件夹放置了什么内容,而是要学习一些原理性的知识。例如,了解系统是如何引导的,引导后启动了哪些组件,以及系统中哪些是最基本的库文件,它们有什么作用等等。【拓展知识】(5)遇到问题要想办法解决学习和使用Linux系统时,我们会或多或少地遇到问题。在面对问题时,首先尝试自己解决,然后再向有经验的人寻求帮助。在解决问题的过程中,虽然可能会花费很多时间,也可能会遇到挫折,但是通过这个过程,我们可以学到很多与Linux系统相关的知识,也会积累更丰富的经验。Linux系统的一个重要优势是,当命令执行错误或系统设置错误时,通常会清楚地显示错误信息,告诉你具体出错的地方。只要认真观察错误信息,我们大概就能知道问题出现在哪里,以及如何解决。有时候,操作步骤比较复杂,当出现问题时,我们应该回顾之前的步骤,检查是否有命令敲错或配置文件设置错误的情况。此外,Linux系统的帮助文档是一个很好的工具,我们可以从中找到命令选项、配置文件设置等方面的答案。08【项目实训】【项目实训】Linux传统用户界面是基于文本的命令行界面,即shell,它既可以联机使用,又可存在文件上脱机使用。Shell具有强大的编程能力,用户可以方便地使用它编写程序,从而为用户提供更高级的方式来扩展系统功能。因此,所有的Linux用户都必须熟练掌握基本的Linux命令,以便能够快速高效地完成各种操作。对于初学者小陈来说更是如此,因此安排了以下训练内容。此部分内容请参考本书配套的活页工单《Linux操作系统实用技术(微课版活页式)》中的“工单3.

使用Linux命令完成日常操作”。09【项目小结】【项目小结】(扫码获取本章思维导图)通过学习本项目,我们了解了Linux系统中的文件类型和目录结构,学会了文件和目录的基本操作命令,掌握了查找文件内容、文件位置以及打包和压缩文件的方法。当然,随着Linux系统的发展,会有越来越多、越来越好的图形界面可供选择。但是一旦我们熟练掌握了各种Linux命令,我们是否会继续认为图形界面操作更方便、更优秀,效率更高呢?这个问题留给读者们自己去探索吧!THEENDTHANKS项目4管理文本文件西安航空职业技术学院linux操作系统教材编写组2023-06-06【项目情景】任务4-1了解Vim编辑器任务4-2使用Nano编辑器任务4-3重定向01【学习目标】【知识目标】【能力目标】【素养目标】【知识目标】了解Vim编辑器的工作模式了解Nano编辑器的安装方法和使用方法掌握输入输出重定向【能力目标】能熟练掌握编辑器的操作方式熟记各种快捷命令能使用Vim等文本编辑器编写配置文件能熟练使用重定向命令,提高工作效率【素养目标】培养探索意识,走出图形操作的舒适区02【项目情景】【项目情景】经过一段时间的学习,小陈已经能够在Linux系统中进行一些基本的操作。最近,师傅告诉小陈,在Linux系统中,“一切皆文件”,各种系统配置都可以通过修改配置文件的方式来完成。但是,具体应该如何进行修改呢?小陈对此问题产生了兴趣,并开始学习如何管理文本文件。03任务4-1了解Vim编辑器【任务目标】【任务目标】Vim是从vi发展出来的一个文本编辑器。从诞生至今经历数十年的发展,已经是Linux系统用户主要使用的一种基于文本界面的编辑工具。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。作为一名Linux用户,小陈必须掌握Vim这一工具的使用。因此,小陈制定了如下的任务目标:了解Vim编辑器的工作模式。会使用Vim编辑器编辑文件。任务4-1了解Vim编辑器【任务目标】4.1.1Vim编辑器的工作模式概述4.1.2Vim编辑器的基本操作4.1.3.Vim编辑器的环境变更【任务目标】Vim是从vi发展出来的一个文本编辑器。从诞生至今经历数十年的发展,已经是Linux系统用户主要使用的一种基于文本界面的编辑工具。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。作为一名Linux用户,小陈必须掌握Vim这一工具的使用。因此,小陈制定了如下的任务目标:1.了解Vim编辑器的工作模式。2.会使用Vim编辑器编辑文件。4.1.1Vim编辑器的工作模式概述Vim是VimsualinterfaceIMproved的简称。可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以跟进需求自定制。这是其他编辑程序所没有的。Vim不是一个排版程序,它不像MSWord或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。Vim是全屏幕文本编辑器,它没有菜单,只有命令。启动与退出Vim编辑器在命令提示符中,输入“vim文件名”命令后,如果指定文件存在,则打开该文件,否则将新建该文件;如果仅输入“vim"命令,则自动新建一个未命名的文本文件,退出并保存时要命名文件名。在终端提示符中,输入“vim”命令,按Enter键,即可打开图4.1所示的Vim编辑器欢迎界面。图4.1Vim编辑器欢迎界面Vim编辑器的工作模式Vim是一个全屏幕编辑器,使用Vim编辑器编辑文件时,为了区别按键的作用,实现各项功能,Vim的工作模式被划分为3种,分别是命令模式、插入模式和末行模式。命令模式使用Vim编辑器编辑文件时,默认Vim处于命令模式。在此模式下,按键将作为命令直接执行,可使用方向键(上键、下键、左键、右键)或k键、j键、h键、l键移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。插入模式按键将作为输入内容或相应操作对文件执行写操作,文件编辑完成后,按下Esc键可返回命令模式。末行模式末行模式用于对文件中的指定内容执行保存、查找和替换等操作。在命令模式下按“:”键,Vim编辑器窗口的左下方出现一个“:”符号,即进入末行模式,在此模式下输入的命令,按Enter键后执行,执行完自动返回命令模式。三种工作模式之间的切换关系注意:当不知道编辑器处于何种模式时,可以多按几次Esc键返回命令模式,再从命令模式进入其他模式。图4.2Vim编辑器的3种工作模式的切换方法4.1.2Vim编辑器的基本操作1.使用Vim打开、退出和保存文件2.一般模式下移动光标3.一般模式下复制粘贴删除4.查找与替换1.使用Vim打开、退出和保存文件使用Vim编辑器打开文件很简单,在命令提示符后面输入“vim文件名”即可打开文件。退出和保存等多数文件管理命令都是在末行模式下执行的。此模式下常用的按键操作如表4.1所示。2.一般模式下移动光标Vim作为字符界面全屏编辑器,光标的移动与定位需要用键盘按键实现。在命令模式下,Vim编辑器提供了许多高效的移动光标的方法,具体操作方法如表4.2所示。3.一般模式下复制粘贴删除常用的编辑操作如复制、粘贴、删除等命令的具体介绍如表4.3所示。4.查找与替换Vim编辑器在命令模式和末行模式下都有文本查找与替换功能,命令模式下的命令如表4.4所示,末行模式下的命令如表4.5所示。4.1.3.Vim编辑器的环境变更在Linux上几乎所有的服务都有对应的配置文件,Vim编辑器也不例外。可以在配置文件中配置启动项来打造更好用的Vim编辑器,配置文件一般位于用户目录下的~/.vimrc文件,通过在配置文件中添加配置命令并保存退出,再次启动Vim编辑器即可生效。Vim编辑器的常用配置选项如表4.6所示。04任务4-2使用Nano编辑器【任务目标】任务4-2使用Nano编辑器【任务目标】4.2.1Nano编辑器简介及安装4.2.2启动与退出Nano编辑器4.2.3Nano编辑器的基本操作【任务目标】小陈通过任务4.1的学习,已经掌握了使用Vim编辑器进行文本编辑的技巧。然而,小陈发现对于初学者来说,Vim仍然有一定的难度。因此,他向师傅询问是否有更简单易用的文本编辑器。师傅向他介绍了Nano编辑器,建议他可以尝试使用它。因此,小陈制定如下的任务目标。1.熟悉Nano编辑器的功能和特点。2.掌握Nano编辑器的使用。4.2.1Nano编辑器简介及安装Nano是Unix和类Unix系统中的一个文本编辑器,是Pico的复制品(clone)。Nano的目标是具有类似Pico的全功能但又易于使用的编辑器。Nano是遵守GNU通用公共许可证的自由软件,自从2.0.7版发布,许可证从GPLv2升级到GPLv3。Nano编辑器界面包括四个主要部分如图4.3所示。1.顶行显示程序版本、当前被编辑的文件名以及该文件是否已被修改。2.接着是主要编辑区,显示正在编辑的文件。3.状态行位于倒数第三行,用来显示重要的信息。4.底部的两行显示了编辑器中最常用的快捷键。4.2.1Nano编辑器简介及安装CentOSStream9中默认已经安装Nano,如果其他版本默认没有安装的话可以使用以下命令进行安装。[root@server~]#dnfinstallnanoNano,面向键盘的,它的所有操作都可以使用快捷键来完成。使用Nano时,【CTRL】由【^】表示。例如,如果要剪切一行文本,可以使用【CTRL+K】键,在Nano中就相当于【^k】。有一些命令需要按【Alt】键才有用,由字母【M】表示。【M-R】表示按【Alt+R】键来执行。需要注意的是,MacOS用户需要使用【Esc】键,而不是【Alt】键来执行这些命令。图4.3Nano编辑器工作面4.2.2启动与退出Nano编辑器在命令提示符下,输入“nano文件名”命令或“nano”命令。如果指定的文件存在,则打开该文件,否则新建该文件;如果不指定文件名,则新建一个未命名的文本文件,保存时再指定文件名。在终端中输入“nano”命令,按【Enter】键打开如图4.4所示。退出Nano编辑器时,使用【CTRL+x】键即可。注意:使用Nano编辑用于配置应用程序或系统实用程序的文件时,请使用-w标志启动Nano,如“nano-w/etc/mysql/f”。原因是有些文件中有长度很长的行,-w标志可以防止这些长行因为长度过长而无法在屏幕中显示。图4.4nano编辑器的欢迎界面4.2.3Nano编辑器的基本操作与Vim不同,Nano编辑器在输入文本之前无需进入编辑模式,用户可以在窗口打开后立即开始输入,使用箭头键移动光标。可用命令的部分菜单显示在终端窗口的底部,用户可以根据需要随时调用。光标控制Nano编辑器中移动光标最常用的方法就是使用键盘上的上下左右方向键进行移动。也可以输入【Alt+M】,启用鼠标的支持,用鼠标来移动光标。如果需要选择文字,可以按住鼠标左键拖动。整体操作习惯与记事本非常相似。复制、粘贴、搜索1.复制一整行:【Alt+6】键实现。2.剪贴一整行:【Ctrl+K】键实现。3.粘贴:【Ctrl+U】键实现。如果需要复制/剪贴多行或者一行中的一部分,先将光标移动到需要复制/剪贴的文本的开头,按【Ctrl+6】键(或者【Alt+A】键)进行标记,然后移动光标到待复制/剪贴的文本末尾。这时选定的文本会反白,用【Alt+6】复制,【Ctrl+K】来剪贴。若在选择文本过程中要取消,只需要再按一次【Ctrl+6】。4.精确剪切:移动光标到需要剪切文本的开头,按下【Ctrl+6】(或者【Alt+A】)。然后移动光标到待剪切文本的末尾。撤消文本标记,只需再按一次。再按照上面的步骤来剪切和粘贴。5.搜索:按【Ctrl+W】,然后输入你要搜索的关键字,按【Enter】键确定。这将会定位到第一个匹配的文本,接着可以用【Alt+W】来定位到下一个匹配的文本。翻页、保存、退出1.翻页按下【Ctrl+Y】键翻页到上一页,按下【Ctrl+V】键翻页到下一页。2.保存按下【Ctrl+O】键保存所做的修改,输入文件名后按下【Enter】键即可。3.退出按下【Ctrl+X】键可以退出编辑。若对文件进行了修改,会询问是否需要保存修改。输入Y确认保存,输入N不保存,按【Ctrl+C】键取消返回。05任务4-3重定向【任务目标】任务4-3重定向【任务目标】4.3.1标准输入/输出与重定向4.3.2输出重定向4.3.3输入重定向4.3.4错误重定向4.3.5同时实现标准输出重定向和标准错误重定向【任务目标】小陈在工作中注意到许多老员工喜欢将多个Linux命令组合在一起进行操作。这种操作看起来很酷,同时也可以提高工作效率。受到启发,小陈决定学习这种技巧。因此,小陈制定如下的任务目标。1.熟悉输入/输出重定向的用法。2.能够合理使用重定向技术。4.3.1标准输入/输出与重定向1.标准输入/输出文件2.重定向1.标准输入/输出文件在Linux系统中,执行一个Shell命令时,通常会自动打开3个标准文件:标准输入(stdin)文件,通常对应终端的键盘;标准输出(stdout)文件和标准错误(stderr)输出文件,这两个文件都对应终端的屏幕。由父进程创建子进程时,子进程就继承了父进程打开的这3个文件,因而可以利用键盘输入数据,从屏幕上显示计算结果及各种信息。在Shell中,这三个文件都可以通过重定向符进行重新定向。标准输入/输出等文件表述如表4.7所示。“文件描述符”可以理解为Linux系统为文件分配的一个数字,范围是0-2。通常0表示标准输入(stdin),1是标准输出(stdout),2是标准错误(stderr)。“符号表示”代表实现方式。“>”表示覆盖原文件中的内容,如果文件不存在,就创建文件;如果文件存在,就将其清空。“>>”表示追加到原文件中的内容之后,如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到该文件的末尾,该文件中的原有内容不受影响。2.重定向在Linux系统中,默认的输入、输出设备分别是键盘和屏幕,利用重定向操作符可以重新定义命令涉及的默认输入和输出设备对象,即重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。重定向操作符本身不是一条命令,而是命令中附加的可以改变命令的输入和输出对象的特殊符号,其中“>”“>>”称为输出重定向操作符,“<”“<<”称为输入重定向操作符。4.3.2输出重定向1.输出重定向符2.输出附加重定向符1.输出重定向符输出重定向符“>”的作用是将命令(或可执行程序)的标准输出重新定向到指定文件。这样,该命令的输出就不在屏幕上显示,而是写入到指定文件中。输出重定向的一般格式如下。命令>文件名其中,文件名可以是普通文件名,也可以是对应于I/O设备的特别文件名,如打印机。举例如下。[root@server~]#who>outfile命令who的输出重新定向到outfile文件中,在屏幕上看不到who的执行结果。查看outfile文件的内容,就可以得到who命令的输出信息。[root@server~]#catoutfilerootpts/02022-08-1610:23()chentty22022-08-1421:08(tty2)2.输出附加重定向符输出附加重定向符“>>”的作用是将命令(或可执行程序)的输出附加到指定文件的后面,而该文件原有的内容不被破坏。输出附加重定向的一般格式如下。命令>>文件名举例如下。[root@server~]#ps-a>>outfile[root@server~]#catoutfilerootpts/02022-08-1610:23()chentty22022-08-1421:08(tty2)PIDTTYTIMECMD2426tty200:00:00gnome-session-b5130pts/000:00:00ps将ps命令的输出附加到文件outfile的结尾处。利用cat命令就可以看到文件outfile的全部信息,包括原有内容和新添的三行内容。4.3.3输入重定向1.输入重定向符2.即时文件定向符1.输入重定向符输入重定向符“<”的作用是将命令(或可执行程序)的标准输入重新定向到指定文件。输入重定向的一般格式如下。命令<文件名例如,使用输入重定向把outfile文件导入给wc-l命令,统计一下文件中的内容行数:\[root@server~\]#wc-l<outfile5前面我们使用wc命令统计outfile文件行数的运行结果:\[root@server~\]#wc-loutfile5outfile由以上结果可知,采用输入重定向运行wc命令的结果中没有文件名。这是因为此前使用的“wc-loutfile”是一种非常标准的“命令+参数+对象”的执行格式,而这次的“wc-l<outfile”则是将outfile文件中的内容通过操作符导入到命令中,没有被当作命令对象进行执行,因此wc命令只能读到信息流数据,而没有文件名称的信息。2.即时文件定向符即时文件是由重新定向符“<<”、一对标记符及其中的若干输入符组成,它允许将Shell程序的输入行重新定向到一个命令中。即时文件的格式如下。命令\[参数\]<<标记符……输入行标记符注意:1.结尾的标记符一定要顶格写,之前和之后都不能有任何字符,包括空格和缩进。2.开头处标记符的前后空格会被忽略。举例如下。[root@server~]#wc-l<<EOF>小陈很努力!>小陈会学好Linux的!>小陈会成为网络管理员的!>EOF3[root@server~]#大家可以看到,这里将两个标记符“EOF”之间的内容作为输入传递给wc命令,统计出了输入的内容的行数是3。4.3.4错误重定向错误重定向是指将命令返回的错误信息,输出到某个指定的文件中。错误重定向有两种用法,语法格式如下。命令2>文件或命令2>>文件4.3.5同时实现标准输出重定向和标准错误重定向需要同时重定向标准错

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论