0409正则之grep
一、正则介绍

正则是一串有规律的字符串,它使用单个字符串来描述或匹配一系列符合某个语法规则的字符串。
二、grep工具
1、基本格式
用来过滤指定的关键词,格式为grep 【-cinvABC】‘word’ filename

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

查找出/e tc/passwd文件中带有nologin字符的文件并列出行数
(2)-n表示输出符合要求的行及其行号

(3)-i不区分大小写

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

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

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

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

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

2、grep、egrep示例

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

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

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

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

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

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

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

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

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

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

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

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命令的用法
1661

被折叠的 条评论
为什么被折叠?



