七:Linux 文本查找命令

linux 第七节 文本查找命令

 

 作用命令使用格式
1

按照指定条件查找文件

find

find 查找路径 查找条件 操作

2

显示PATH环境变量中的命令的执行路径

which

which 命令

3

按照关键字检索文本文件中的内容

grep

grep -参数 查找条件 文件名

4

进行字符替换

tr

tr 原字符 结果字符

5

对文件目录打包压缩解压缩

tar

tar -参数 文件名

find

作用:按照指定条件查找文件

格式:find 查找路径 查找条件 操作

查找条件

-name : 匹配名称查找

-user :匹配所有者(root 或 普通用户)

-type b/d/c/p/l/f :匹配文件类型(块设备、目录、字符设备、管道、链接文件、文本文件)

-size : 匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件)

-mtime -n +n :匹配修改内容的时间(-n指n天以内,+n指n天以前)

-atime -n +n :匹配访问文件的时间

-ctime -n +n: 匹配修改权限的时间

通配符

* :任意内容,任意个数

? :任意内容,1个字符

例如:查找/的passwd文件

find / -name “passwd”

find / -name “a*” 检索以a开头的文件

find /etc -name "*.cfg">temp.txt 定向输出到

find /etc -name ".txt" | wc -l (统计以txt结尾的文件个数)

find /etc -name "d*" -user root (并且) 同时查找多种条件

find /etc -name "e*" -o -name "f*" (或者)

find / -user 普通账户名

find /dev -type b 检索设备 (b代表块设备)

find /dev -type c -size -10k (在dev下检索 c类型 小于10k的文件)

find / -size +100M (根目录下查找大于100M的)

find /etc -not -mtime +7 (查找七天内没有更改的文件)

find / -size -50k -size +10k (查找区间)

find / -mtime -10 -empty (10天以内的空文件)

 

 

标准输入输出重定向:

标准输入重定向:STDIN,文件描述符为0,默认从键盘输入,也可以从其他文件或命令中输入

输入重定向:将文件

 

重定向符号:

输入重定向:

命令<文件 :将文件作为命令的标准输入

命令<<分界符:从标准输入中读取,直到遇到“分节符”才停止

输出重定向:

命令>文件:将标准输出重定向到一个文件中(清空源文件内容)

命令>>文件:将结果追加到文件中(保留源文件)

命令2>>文件:将错误信息输出重定向到一个文件中(追加)

管道符:

格式:命令A | 命令B |命令C ……

作用:将前一个原命令的输出到屏幕的信息作为下一个命令的标准输入

常用于管道符的命令:wc ,more ,less ,grep(管道过滤),

 

重要的环境变量:

环境变量的作用:系统运行环境的相关参数

一般使用大写

PATH环境变量

存储Linux系统命令解释器bash的程序路径

例如:echo $PATH

PATH是命令解释器bash的“助手”,用于给出调用命令的程序存储路径

常用的环境变量:

HOME:用户的家目录

SHELL:SHELL命令解释器路径

HISTSIZE:记录history命令的历史命令个数

LANG:语系

PATH:记录执行文件的路径

MAIL:邮箱文件

RANDOM:随机数

命令执行过程:

第一步:判断是否已绝对/相对路径书写的命令,是则立即执行

第二步:判断是否为别名(alias(设置别名))

第三步:由bash判断输入命令是“内部命令”还是“外部命令”

内部命令:隶属命令解释器的默认命令,直接执行

外部命令:为外部文件的命令

第四步:通过$PASH查询路径,执行命令程序

查看变量的运算符:$,格式

 

局部变量定义:NICDIR=/etc/sysconfig/network-scripts

(定义NICDIR变量(其他账户不可用),存储网卡位置)

cd $NICDIR

 

全局变量定义:export NICDIR1 (其他账户可用)

NICDIR1=/etc/sysconfig/network-scripts

su 普通账户名

cd $NICDIR1

 

which命令:

作用:显示PATH环境变量中的命令的执行路径

格式:which 命令

例如:which cat 显示/bin/cat

注意:命令程序路径默认在/bin路径下

 

常见文件类型:

普通文件:

标志:-

分类:

纯文本文件(ASCII)

二进制文件(binary)

c.注意:ls -l 显示内容左列第一个字符为-表示普通文件

目录文件:

标志:d

颜色:蓝色

注意:ll命令显示左列第一个字母为d的表示目录文件

设备文件:

字符设备:标志为c,一般为慢速设备,如:终端(tty),键盘,打印机

块设备:标志为b,一般为快速设备,如:硬盘等

链接设备:标志为l,相当于windows的快捷方式

其他:空文件(emp)

 

文件类型:

文件类型通过扩展名来表示,表示文件的类型及打开方式

格式:*.扩展名

 

例如:*.txt 文本文件 *.cfg 配置文件 *.tar.gz 压缩文件 *.sh 脚本文件 *.conf 配置文件 *.repo yum配置文件

 

8.文件内容查找文件:

(1)作用:按照关键字检索文本文件中的内容

 (2)格式:grep -参数 查找条件 文件名

 (3)参数

a.-n:显示检索内容行的行号

b.-i:忽略字母大小写

c.-v:根据检索关键字进行反向显示

d.-c:统计符合条件的行数

e.-A数字:如:-A3,显示符合条件的当前行及下3行

f.-B数字:如:-B5,显示符合条件的当前行及以上5行

g.-C数字:如:-C2,显示符合条件的当前行及上下两行

 

passwd文件意义介绍

a.路径:/etc/passwd

b.作用:记录用户账户信息:分为7段,使用冒号分割

c.文件内容意义:

帐户名:密码代号X:UID:GUI:注释:家目录:SHELL

第二列X:密码加密后的代号

第七列:/sbin/nologin 不允许登陆

 

 

grep查询实例

在passwd中检索包含root的行信息

grep -n "root" /etc/passwd

在passwd检索不能登陆的信息

grep -n "/sbin/nologin" /etc/passwd

在passwd检索可以登陆的信息

grep -nv "/sbin/nologin" /etc/passwd (反向)

检索包含“halt”的行及下三行信息

grep -nA3 “halt” /etc/passwd

检索包含“sshd”的行及上五行

grep -nB5 “sshd” /etc/passwd

检索包含“ftp”的上下两行

grep -nC2 “ftp” /etc/passwd

检索不能登陆的账户个数

grep -c “/sbin/nologin” /etc/passwd

(等同) grep -n “/sbin/nologin” /etc/passwd | wc -l

检索包含大小写d的行信息

grep -ni “d” /etc/passwd

 

 

 

正则表达式:

概念:正则表达式是为了处理大量文本或字符串而定义的一套规则和方法

特点:

通过定义特殊符号,系统管理员就可以快速过滤,替换,输出需要的字符串

Linux正则表达式一般以行为处理单位

分类:基础正则表达式,扩展正则表达式

用途:在Linux中用于过滤大量日志文件内容

注意:使用正则表达式时注意语系,默认为C语系

使用[] 字符集表示

[ab]:

含义:搜索包含a或b的行信息,[]内只能表示一个内容

例如:

检索包含“d”或“D”的行信息

grep -n [Dd] /etc/passwd

检索包含“o”字母的信息

grep -n [oo] /etc/passwd

[^ ]:

含义:根据关键字进行反向显示(反向着色)

例如:

检索不包含字母o的信息

grep -n [^o] /etc/passwd

注意与 -v的区别 :grep -nv “o” /etc/passwd

检索不以r开头的且包含00t的信息

grep -n [^r]oot /etc/passwd

[- ]:

[0~9]:表示检索包含0~9数字

[a~z]或[A~Z]:表示小写,大写字母

[a~zA~Z]:表示字母

例如:

检索包含[7-9]的信息

grep -n [7-9] /etc/passwd

检索包含大写[A-Z]的信息

grep -n [A-Z] /etc/passwd

 

使用行首^和行尾$检测

行首^

检索以root开头的信息:

grep -n "^root" /etc/passwd

检索以大写字母开头的信息:

grep -n ^[A-Z] /etc/passwd

检索以#开头的信息

grep -n ^# /etc/sos.conf

检索以[开头的信息

grep -n ^"[" /etc/sos.conf (转义字符)

行尾$

显示空白行:

grep -n ^$ /etc/sos.conf

检索数字结尾的信息:

grep -n [0-9]$ /etc/sos.conf

检索以]结尾的信息

grep -n ]$ /etc/sos.conf (非转义字符)

注意:[^]和^[]的区别

正则通配符:

点(.):代表一个任意字符

星号(*):重复前面一个字符多次或0次的任意字符

例如:

检索以r开头,t结尾,中间2为信息

grep -n "r..t" /etc/passwd

grep -n "o*" /etc/passwd (显示整篇)

grep -n "oo*" /etc/passwd (至少包含1个o)

grep -n ".*" /etc/passwd (整篇文章)

 

转义字符和区间字符:

转义字符:由于某些字符有特殊作用,若使用原本功能,需使用\进行去掉特殊功能,只保留字符本身功能,称为转义

例如:

touch ttt.txt

echo "hello" > ttt.txt

echo "word." >> ttt.txt

echo "123." >>ttt.txt

cat ttt.txt

grep -n "\."$ ttt.txt

将.进行转义,使用双引号进行定界

 

区间字符:

格式:\{n1,n2\}

由于{}有特殊作用,必须使用\{\}进行转义

注意:n1<=n2 相等时,简写为\{n1\},表示执行n1 次

grep -n o"\{2\}" /etc/passwd (检索包含2个o的信息)

 

 

tr命令

作用:进行字符替换

格式:tr 原字符 结果字符

例如:

查看passwd中的小写改为大写

cat /etc/passwd | tr [a-z] [A-Z]

cat /etc/passwd | tr [0-9] "\ " (因空格为转义字符,需转义)

注意:tr命令常与grep命令进行配合使用

如:grep -n "root" /etc/passwd | tr [a-z] [A-Z]

 

 

打包压缩命令:

作用:对文件目录打包压缩解压缩

tar命令:

*.gz:由gzip进行压缩解压缩(常用)

*.bz2:由bzip2进行压缩解压缩

*.tar:只进行打包

*.tar.gz:使用tar进行打包后,进行gzip压缩

*tar.bz2:使用tar打包后进行bz2压缩

*tar.xz:使用tar打包后进行xz压缩

格式:tar -参数 文件名

参数:

常用:

-c :创建压缩文件

-x:解压缩文件

-v:显示压缩及解压缩的时间进度

-f:目标文件名

一般:

-t:查看压缩包中有哪些文件

-p:保留原始文件属性及权限

-P:使用绝对路径进行压缩

常用参数组合:

压缩:-cvf

解压缩:-xvf

例如:

将/etc下的全部内容压缩到/root中并命名为

tar -cvf taretc.tar.gz /etc (压缩)

tar -xvf taretc.tar.gz /etc (解压缩)

注意:-c和-x不能同时使用

 

 

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值