正则
正则的定义
正则就是一串有规律的字符串,其中包括特殊字符。
掌握好正则对于编写shell脚本有很大的帮助。
各种编程语言中都有正则,原理是一样的
grep
格式: grep 【-cinvrABC】‘字符’ filename
-c 选项表示打印符合要求的行数
-n 选项表示输出符合要求的行以及行号
-i选项表示不区分大小写
-v 选项表示取反的意思,打印不符合要求的行
-r 表示遍历所有的子(及孙目录)目录
-A 选项后面跟数字,过滤出符合要求的行以及下面的n行
-B 选项后面跟数字,过滤出符合要求的行以及上面n行
-C 选项后面跟数字,同时过滤出符合要求的行以及上下各n行
‘[0-9]’ 列出包含所有数字的行
-v '^#' 列出过滤掉所有非#开头
-v '^$' 列出过滤掉所有非空行的行
??? grep ^[0-9]
/etc/passwd 以0-9开头的行
扩展
[]内外^是有区别的
[^字符]表示列出除[]内字符之外的字符
^[字符]表示以字符开头
.表示任意一个字符
*表示任意重复字符
.*表示零个或多个任意字符
{}内部为数字,表示前面的字符要重复的次数 字符后 数字后要加上转义字符\
{}还可以表示一个范围 x\{a,b\} 表示重复a到b次的字符 b还可为空 表示大于等于a次
+ 表示匹配一个或多个+前面的字符
?表示匹配零个或一个指定的字符
| 表示匹配字符串1或者字符串2
()表示()内为一个整体
扩展
egrep 后可不带转义符号 等于 grep -E
直播笔记
1.简易审计系统
http://www.68idc.cn/help/server/linux/2014042190951.html
堡垒机 跳板机 vpn 虚拟桌面环境
有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,,但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}”) #### KaTeX parse error: Expected '}', got 'EOF' at end of input: …d x cmd; echo "cmd”; })"; } >>$HISTORY_FILE’
2.red命令解释 http://blog.lishiming.net/?p=484
3.扩展正则 + ? () {} | grep -E 或者 egrep