tar命令

在Linux系统的维护、管理中,tar命令是一个使用频率很高的命令,tar命令的功能主要是将众多文件打包成一个tar文件并压缩,并且能保持文件的权限属性。语法格式为:

  1. tar [选项] 源文件或目录

常用选项:

● -c:建立压缩文件。

● -x:解压文件。

● -t:列出文件内容。

● -u:更新原压缩包中的文件。

● -r:向压缩文件末尾追加文件。

在压缩解压时必定要用到而且只能用到上面这五个选项中的其中一个,可以和别的可选项连用,可选的选项如下:

● -v:显示打包文件过程

● -z:有gzip属性的,压缩和解压“.tar.gz”格式。

● -j:有bz2属性的,压缩和解压“.tar.bz2”格式。

● -O:将文件解压到标准输出。

● -Z:有compress属性的,压缩和解压“.tar.Z”格式。

还有下面一个选项-f是必需的:

● -f <包文件名>:指定打包的文件名,-f后面只能接包文件名。

例如,将所有.png文件打包成一个名为test.tar的包:

  1. [root@localhost ~]# tar -cf test.tar *.png

更新原来tar包test.tar中的logo.png文件:

[root@localhost ~]# tar -uf test.tar logo.png

解压出test.tar包文件中的所有文件:

[root@localhost ~]# tar -xf test.tar

例如,将/temp/目录直接打包压缩为tmp.tar.gz:

[root@localhost ~]# tar -czvf tmp.tar.gz /tmp/

例如,解压tmp.tar.gz:

[root@localhost ~]# tar -xzvf tmp.tar.gz

grep命令

Linux系统中grep命令是一种强大的文本搜索工具,其功能是从文本文件或管道数据流中筛选匹配的行及数据,它的使用权限是所有用户。语法格式:

grep [选项] 字符串/正则表达式 [查找的文件]

常用选项:

● -c:只输出匹配行的计数。

● -i:不区分大小写,只适用于单字符。

● -h:查询多文件时不显示文件名。

● -l:查询多文件时只输出包含匹配字符的文件名。

● -n:显示匹配行及行号。

● -v:显示不包含匹配文本的所有行。

● -s:不显示不存在或无匹配文本的错误信息。

● -w,—word-regexp:仅仅显示全字符合的列。

● -E:扩展grep,即egrep,可以使用扩展正则表达式。

● -F,—fixed-regexp:将范本样式视为固定字符串的列表。

● -G ,—basic-regexp:将范本样式视为普通的表示法来使用。

● —color=auto:可以将找到的关键词部分加上颜色的显示。

● —help:在线帮助。

注意:grep命令中输入字符串参数时,一般用双引号” “括起来;在调用模式匹配正则表达式时,应使用单引号括起来。

正则表达式中特殊符号:

● ^ :锚定行的开始,如’^grep’匹配所有以grep开头的行。

Linux的打包压缩与搜索 - 图1‘匹配所有以grep结尾的行。

● . :匹配一个非换行符的字符,如’gr.p’匹配gr后接一个任意字符,然后是p。

● _ :匹配零个或多个先前字符,如’a_grep’匹配所有一个或多个字符a后紧跟grep的行。

● .*:一起用代表任意字符。

● []:匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。

● [^]:匹配一个不在指定范围内的字符,如’A-FH-Zrep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

● (..):标记匹配字符 如’(love)’,love被标记为1。

● <:锚定单词的开始,如’<grep’匹配包含以grep开头的单词的行 。

● >:锚定单词的结束,如’grep>’匹配包含以grep结尾的单词的行。

● \b:单词锁定符,如’\bgrep\b’只匹配grep。

● *:所有字符,长度可以为0。

例如,使用grep命令对多文件查询:

grep 'pattern' file1 file2

例如,对关系是OR的多文本进行查询:

egrep  'pattern1|pattern2' *.py
grep  -e pattern1 -e pattern2 *.py
grep –E  'pattern1|pattern2' *.doc

例如,对关系是AND的多文本进行查询:

grep  -e pattern1 *.py | grep  -e pattern2

find命令

find命令是Linux系统查找文件的命令,最大的作用是帮助用户在使用Linux 系统时候能快速的找出自己所需要的文件,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode号等来搜索文件,执行权限是所有用户。语法格式:

find 搜索路径 [选项] 搜索内容

find命令搜索的目录路径有两种情况:

● . :表示当前目录。

● / :表示根目录。

find命令常用的选项:

● -name:按照文件名查找文件。

● -iname:按照文件名查找文件,不区分文件名大小写。

● -inum:按照inode号搜索。

● -perm:按照文件权限来查找文件。-perm 权限模式:査找文件权限刚好等于“权限模式”的文件;-perm -权限模式:査找文件权限全部包含“权限模式”的文件;-perm +权限模式:査找文件权限包含“权限模式”的任意一个权限的文件。

● -prune:使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

● -user:按照文件属主来查找文件。

● -mtine -n(+n):根据文件的更改时间来查找,其中-n代表n天之内的文件,+n代表n天之前的文件。

● -type:查找某一类型的文件,后带一些参数(-d为目录;-p为管道文件;-f为普通文件;-i为符号链接文件)。

● -size [+-]n:按照指定大小n搜索文件,“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文件。

搜索内容输出的方式:

● -print:find命令将匹配的文件输出到标准输出。

● -exec:对于find命令找到的文件执行该参数所给出的Shell命令,相应命令的形式为\'command\' {} ;,注意{}和;之间的空格。

● -ok和-exec:二者作用相同,以一种更为安全的模式来执行该参数所给出的Shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

管道符与重定向操作

(1)管道符“|”

管道命令是用来连接多条指令的,前一条指令的输出流向会作为后一条指令的操作对象。管道命令的操作符是“|”,它只能处理由前一条指令传出的正确输出信息,对错误信息是没有直接处理能力的。语法格式为:

指令1 | 指令2 | …

指令1正确输出,作为指令2的输入,然后指令2的正确输出作为指令3的输入,如果指令3有输出,则直接显示在屏幕上,指令1和指令2的正确输出不会显示在屏幕上。

(2)重定向命令

重定向是指将原来从标准输入读取数据的文件操作重新定向为从其他文件读取数据;将原来要输出到标准输出的内容重新定向输出到指定的其他文件中。

Linux中重定向命令有以下几个。

● <:标准输入重定向。

● >:标准输出重定向,清空原来内容后添加新的内容。

● >>:标准输出重定向,在原来内容的后面添加新的内容。