0409 正则之grep

0409正则之grep

一、正则介绍

a10bc999207369dc94387debd05bd59bc2b.jpg

正则是一串有规律的字符串,它使用单个字符串来描述或匹配一系列符合某个语法规则的字符串。

二、grep工具

1、基本格式

用来过滤指定的关键词,格式为grep 【-cinvABC】‘word’ filename

b741c8e9f9624b476bb0acd616eeae1d022.jpg

(1)-c 打印符合要求的行数

012104bd84d94c4478bf51581a2491dab89.jpg

查找出/e tc/passwd文件中带有nologin字符的文件并列出行数

(2)-n表示输出符合要求的行及其行号

6e23181990572fe501b000697c9e3ff0d10.jpg

(3)-i不区分大小写

b0580073c763afccd08629f9e282affa57d.jpg

(4)-v 表示打印不符合要求的行

613916e0e7131ad42cfe3d9e5f5543412e9.jpg

(5)-r 把子目录或者子子目录中的文件遍历一遍查找关键词

94147f89a7dcdb56861cef79399187ee985.jpg

(6)-A 后跟数字表示过滤出符合要求的行以及下面的n行

165e2e4762bb390667eb486c60ada5c5ccf.jpg

(7)-B 后跟数字例如B2表示打印符合要求的行及其以上两行

77022b5fdefb9903109f55a7aae2d83fee0.jpg

(8)-C 后跟数字表示打印符合要求的上下各两行

44f6c051a861b1acd9151ffb5fea909760c.jpg

2、grep、egrep示例

c73269a5ebe8cbe33d8895e366a436bdc97.jpg

(1)grep‘【0-9】’ passwd 文件中只要带数字的行都能过滤出来

ead577562e46f72a4e296289b1ae6cce4d0.jpg

(2)grep  -v ‘【0-9】’ passwd文件中只要带数字的都不列出

cfb8f7e4cc6bc6035fdd6f93d061b1fb9d2.jpg

(3)grep -v ‘^#’ /etc/inittab  把不是以#开头的行打印出来

a21167093244abf5a68c7cffa164a98b420.jpg

(4)grep  ‘^[^0-9]’ passwd 列出非0-9开头的行

094e4d1b447e4576e75252e3db5d2b882c6.jpg

(5)grep ‘r.o’ passwd 打印出同一字符串中r、o中间有任意个字符的行

404a113feb63f688d033119791ef26b26c7.jpg

(6)grep ‘o*o’ passwd 打印出*号左边与o开头相关的行

836ff7a61acd562ebcd3793ed3c8da02539.jpg

(7)grep ‘.*’ passwd 打印出任意个任意字符

4d55989d37a29a5563d265b8c89ff0c08b3.jpg

(8)grep ‘o\{2\}’ passwd 打印出现两次o或者两对oo组合的行

或者使用扩展egrep‘o{2}’passwd

63154afccf6676258480aad9a0bf5a0ca48.jpg

(9)egrep ‘o+o’ passwd 打印+号左边字符1次或多次出现的行

6e26ad9128bc5eb31bff5fe798cdff950be.jpg

(10)egrep ‘o?t’ passwd 打印?左边字符重复次数为0或1的行

ccc71969af81f361aabad174f34904da72e.jpg

(11)egrep ‘root|nologin’ passwd 匹配root或者nologin的行

8e364dadc10c19a9b615c2b9aa87225ece4.jpg

 

0409 课堂笔记

1、简易审计系统

有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?

1.mkdir -p /usr/local/domob/records/
  chmod 777 /usr/local/domob/records/
  chmod +t /usr/local/domob/records/
 
2.vi /etc/profile
在最后添加下面的代码 

if [ ! -d  /usr/local/domob/records/${LOGNAME} ]
then
mkdir -p /usr/local/domob/records/${LOGNAME}
chmod 300 /usr/local/domob/records/${LOGNAME}
fi
export HISTORY_FILE="/usr/local/domob/records/${LOGNAME}/bash_history"
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

http://blog.lishiming.net/?p=484 read命令的用法

 

转载于:https://my.oschina.net/u/4095803/blog/3034560

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值