当前位置: 首页 > 科技观察

Linux入门,一定要学会文件处理命令_0

时间:2023-03-17 00:04:25 科技观察

Linux系统信息是以文件形式存储的,类似于普通的官方文档。每个文件都有自己的名称、内容、存储地址和其他管理信息,如文件的用户、文件的大小等。文件可以是一封信,可以是通讯录,也可以是程序的源语句、程序的数据,甚至可以是可执行程序等非文本内容。Linux文件系统结构良好,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。文件1。文件的作用是通过检测文件内容来判断文件类型,使用权限为所有用户。2.格式化文件[options]文件名3.[options]主要参数-v:标准输出退出后显示版本信息。-z:检测压缩文件类型。-L:允许一致性连接。-fname:从文件名file中读取要分析的文件名列表。4.使用file命令简要说明文件是二进制(ELF格式)可执行文件、ShellScript文件还是其他格式。file识别的文件类型包括目录、shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件和DOS可执行文件。5.应用示例如果我们看到一个没有后缀的文件grap,我们可以使用如下命令:$filegrapgrap:Englishtext此时,系统显示这是一个英文文本文件。需要注意的是,文件命令不能检测包括图形、音频和视频在内的多媒体文件类型。mkdir1.功能mkdir命令的作用是创建一个名为dirname的子目录,类似于MSDOS下的md命令,其使用权限是对所有用户的。2.格式化mkdir[options]目录名3.[options]主要参数-m,--mode=mode:设置权限;,类似于chmod。-p,--parents:必要时创建父目录;如果目录已经存在,则不认为是错误。-v,--verbose:每次创建新目录时显示信息。--version:显示版本信息后离开。4、应用实例可以在创建目录的时候设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名为“tsk”,让所有用户都有rwx(即读、写、执行权限),那么可以使用如下命令:$mkdir-m777tskgrep1。功能grep命令可以指定一个文件来搜索特定的内容,并将包含这些行的行输出到标准输出。grep的全称是GlobalRegularExpressionPrint,意思是全局正则表达式版本,它的使用权限是对所有用户开放的。2.格式grep[options]3.主要参数[options]主要参数:-c:只输出匹配行数。-I:不区分大小写(仅适用于单个字符)。-h:查询多个文件时不显示文件名。-l:查询多个文件时,只输出包含匹配字符的文件名。-n:显示匹配的行和行号。-s:不显示不存在或不匹配文本的错误消息。-v:显示所有不包含匹配文本的行。模式正则表达式的主要参数:\:忽略正则表达式中特殊字符的本义。^:匹配正则表达式的起始行。$:匹配正则表达式行的结尾。\<:从匹配正则表达式的行开始。\>;:到匹配正则表达式的行尾。[]:单个字符,如[A],即A满足要求。[-]:范围,如[A-Z],即A、B、C、Z都满足要求。.:所有单个字符。*:有字符,长度可以为0。正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一种可以描述一类字符串的模式。如果一个字符串可以用正则表达式来描述,我们就说这个字符与正则表达式匹配(Match)。这类似于DOS,用户可以使用通配符“*”来表示任何字符。在Linux系统上,正则表达式常用于查找文本中的模式,以及对文本执行“搜索-替换”操作等功能。4.应用实例查询DNS服务是日常工作之一,这意味着要维护大量覆盖不同网络的IP地址。有时有超过2000个IP地址。如果你想查找nnn.nnn网络地址,但是忘记了第二部分的其余部分,你只知道有两个句点,比如nnnnn...要提取其中所有的nnn.nnnIP地址,使用[0-9]\{3\}\.[0-0\{3\}\.意思是任何数字出现3次后跟一个句点,然后任何数字出现3次后跟一个句点。$grep'[0-9]\{3\}\.[0-0\{3\}\'ipfile添加了grep家族还包括fgrep和egrep。fgrep是修复grep,它允许搜索字符串而不是模式;egrep是一个扩展的grep,它支持基本的和扩展的正则表达式,但不支持应用\q模式范围和与之对应的一些更规范的模式。dd1。功能dd命令用于复制文件,并根据参数对数据进行转换和格式化。2.格式化dd[options]3.[options]主要参数bs=byte:forceibs=;和obs=<字节>;。cbs=bytes:为每次转换指定;。conv=keywords:根据逗号分隔的关键字转换文件。count=块号:只复制指定的<块号>;输入数据。ibs=byte:每次读取指定的;。如果=文件:读取<文件>;内容而不是标准输入数据。obs=byte:每次写入指定的;。of=file:写入数据到;而不是在标准输出上显示它。seek=numberofblocks:先跳过obs中指定的输出数据。skip=numberofblocks:先跳过ibs中指定的;输入数据。4.应用实例dd命令常用于制作Linux启动盘。首先找到一个可引导内核,使其根设备指向正确的根分区,然后使用dd命令将其写入软盘:$rdevvmlinuz/dev/hda$ddif=vmlinuzof=/dev/fd0以上代码说明,使用rdev命令将可启动内核vmlinuz中的根设备指向/dev/hda,请将“hda”替换为你自己的根分区,然后使用dd命令将内核写入软盘。找到1。功能find命令的作用是在目录中查找文件,使用权限为所有用户。2.find[path][options][expression]path格式指定目录路径,系统从这里开始在目录树下查找文件。它是由空格分隔的路径列表。如果不写路径,则默认为当前目录。3、主要参数【options】参数:-depth:采用深度层次搜索处理方式,先在某一层的指定目录中搜??索文件内容。-maxdepthlevels:表示最多可以找到起始目录的第一级子目录。level是一个非负数,level为0表示只在当前目录下搜索。-mindepthlevels:表示至少已经找到起始目录的第一级子目录。-mount:不在其他文件系统(如Msdos、Vfat等)的目录和文件中搜索。-版本:打印版本。[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数很多,这里只介绍一些常用的参数。--name:通配符*和?得到支持。-atimen:搜索过去n天读过的文件。-ctimen:搜索过去n天修改过的文件。-groupgrpoupname:搜索组grpoupname的所有文件。-user用户名:搜索所有者为用户名(ID或名称)的所有文件。-sizen:搜索文件大小为n块的文件。-print:输出搜索结果并打印出来。4、使用find命令查找文件的几种方法:(1)按文件名查找例如我们要查找文件名为lilo.conf的文件,可以使用如下命令:find/-nameafterlilo.conffind命令“/”表示搜索整个硬盘。(2)快速查找文件根据文件名查找文件会遇到一个实际问题,就是查找时间较长,尤其是大型Linux文件系统和大容量硬盘文件都放在很深的子目录中。如果我们知道这个文件存放在某个目录下,我们只需要往下看这个目录就可以节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断它是一个配置文件,所以它应该在/etc目录下。这时可以使用如下命令:find/etc-namesmb.conf这样,使用“快速查找文件”的方式可以缩短时间。(3)根据部分文件名查找方法,有时我们知道只有某个文件包含abvd这4个字符,那么要查找系统中所有包含这4个字符的文件,可以输入如下命令:find/-name'*abvd*'输入此命令后,Linux系统会在/目录下搜索所有包含4个字符abvd的文件(其中*为通配符),如abvdrmyz等符合条件的文件即可显示。(4)使用混合搜索的方式查找文件。find命令可以使用混合搜索的方式。比如我们要在/etc目录下查找一个大于500000字节,并且在24小时内修改过的文件,我们可以使用-and(和)将两个查找参数组合成一个混合查找。找到/etc-size+500000c-and-mtime+1mv1。功能mv命令用于重命名文件或目录,或将文件从一个目录移动到另一个目录,其使用权限对所有用户开放。这个命令就像DOS命令中ren和move的组合。2.格式化mv[options]源文件或目录目标文件或目录3.[options]主要参数-i:交互方式运行。如果mv操作会导致覆盖已有的目标文件,系统会询问是否重写,并要求用户回答“y”或“n”,以免误覆盖文件。-f:禁用交互操作。当mv操作要覆盖现有的目标文件时,没有给出任何指令。指定此参数后,i参数将不再起作用。4.应用实例(1)将/usr/cbu中的所有文件移动到当前目录(用“.”表示):$mv/usr/cbu/*.(2)将文件cjh.txt重命名为wjz.txt:$mvcjh.txtwjz.txtls1。作用ls命令用于显示目录的内容,类似于DOS下的dir命令,其使用权限对所有用户。2.格式ls[options][filename]3.options主要参数-a,--all:不隐藏任何以“.”开头的项目人物。-A,--almost-all:列出除“.”之外的所有项目。和”..”。--author:打印出每个文件的作者。-b,--escape:表示八进制溢出序列中的不可打印字符。--block-size=Size:块以字节为单位指定;-B,--ignore-backups不要列出任何以~字符结尾的项目。-f:不排序,-aU参数有效,-lst参数无效。-F,--classify:添加文件类型指示器(*/=@|之一)。-g:类似于-l,但不列出所有者。-G,--no-group:禁止显示组信息。-i,--inode:列出每个文件的inode号。-I,--ignore=style:不打印任何与shell通配符