保障4-0409任务打卡

任务列表
9.1 正则介绍_grep上
9.2 grep中
9.3 grep下

9.1 正则介绍_grep上

9.1.1 什么是正则

  • 正则就是一串有规律的字符串
  • 掌握好正则对编写shell脚本有很大帮助
  • 各种编程语言都有正则,原理是一样的。

9.1.2 用法

grep [选项] ‘关键字’ 文件

9.1.3 grep的选项

  • -c 统计带有关键字内容的行数
  • -i 不区分大小字
  • -n 显示过滤出内容的行号
  • -v 取反(反向选择过滤的内容)
  • -r 对目录及其子目录进行操作,过滤复数个文件。
  • -A 后边跟数字,表示过滤符合条件的行和之后的n行。
  • -B 后边跟数字,表示过滤符合条件的行和之前的n行。
  • -C 后边跟数字,表示过滤符合条件的行和之前之后的n行。(也就是同时包含AB)

9.1.4 grep/egrep示例

  • grep ‘[0-9]’ /etc/passwd
    表示[]方括号内任意一个字符是数字就附合要求。
  • grep -v ‘[0-9]’ /etc/inittab
    选取不包含数字的行
  • grep ‘^#’ /etc/inittab
    选取以#号开头的行,^表示以什么什么开头。
  • grep '#KaTeX parse error: Expected 'EOF', got '#' at position 21: …c/inittab 选取以#̲号结尾的行。表示以什么什么结尾。
  • grep ‘^[^0-9]’ /etc/inittab
    方括号外面表示以什么什么开头,而在方括号里边表示取反。
  • grep ‘r.o’ passwd
    这里的点表示任意一个字符。(相当于通配里的问号)
  • grep ‘o*o’ passwd
    正则里的星号表示匹配星号左边的字符重复零次或多次。
  • grep ‘.*’ passwd
    这个组合表示所有的字符和组合。
  • grep ‘o\{2\}’ passwd
    花括号的内容可以是一个范围,比如{1,3}表示1-3.意思是左边的符号出现了1至3次。
  • 扩展正则符号:
    {} () ? + |
  • 使用egrep 或者grep -E使用扩展正则符号时可以不使用脱义符。
  • + 号表示左边的字符重复了一次或多次。
  • ? 号表示左边的字符重复了零次或一次。
  • | 表示或者,竖线左右取其一。
  • () 小括号的内容是被认为是一个整体。

直播笔记

1,简易的审计系统

http://www.68idc.cn/help/server/linux/2014042190951.html

  • 建立一个目录
    mkdir -p /usr/local/domob/records/
    chmod 777 /usr/local/domob/records/
    chmod +t /usr/local/domob/records/
  • 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'

2, 这个命令 history 1 | { read x cmd; echo “$cmd”; }的解释

http://blog.lishiming.net/?p=484

3, 正则表达式的几个核心关键词

. 任意一个或多个字符。和.*一起使用表示所有可能出现的字符。
* 不能单独存在,表示前边的字符重复了零次或多次。多个字符要用小括号括起来。
+ 前边的字符重复一次或多次。和星号的区别是个数。
? 前边的字符重复零次或一次。也是个数的问题。
() 表示里边的内容是一个整体
{} 表示一个范围,用{1,3}表示1-3.指定左边的字符重复的次数。
| 表示或者
[] 每次取其中的一个值,可以是一个范围[a-zA-Z]。多种范围之前没有间隔。
^ 在方括号外边是表示开头,方括号里边表示取反。
$ 以什么什么结尾的意思
\ 脱义符,使斜扛后边的字符变成字符串而不是运算符。

  • grep -E 和egrep可以使用扩展正则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值