自动化运维(二)

一、Shell特殊字符

1、反斜线“\”
1、转义特殊字符
2、换行输入多行命令
    [root@server ~]# find / \
> -name "test" \
> -type f
2、单引号

必须成对出现,能够屏蔽Shell元字符,表现为强引

3、双引号

类似于单引号,但不会屏蔽Shell元字符,表现为弱引

4、反引号

反引号里面只能放命令,输出的是命令的结果,等同于$()

二、正则表达式

1、基本正则表达式

在这里插入图片描述

2、扩展正则表达式

在这里插入图片描述

3、POSIX规范

在这里插入图片描述

三、sed

Stream Editor 流式编辑器,逐行处理

sed [选项] ‘条件指令’ 文件.....
    选项:-n  屏蔽输出  -i  直接修改文档    -r  支持扩展正则
    条件指令:p 显示  d  删除  s  替换   a 增加   i  插入  =  显示行号   c 整行替换 
            $c 最后一行替换  r 读取文件内容   w 写入内容
        3,6p 表示3到6行   3P;6P  3行和6行   1~2p  打印奇数行  3,+10p:第三行和后面的10行
    例子:
        sed -n '$d'  #删除最后一行   sed '1s/2017//2'   #将第一行的第二个2017替换为空
        sed 's/.//2;s/.$//'     #删除第二个字符和最后一个字符
        sed -r 's/^(.)(.*)(.)$/\3\2\1/'   #第1个字符与最后一个字符替换 ()有保留的意思
        sed 's/[0-9]//g'    #删除数字     sed -r 's/^ +//g'   #删除每行前面的空格

四、awk

1、简介

sed 查看修改文本
awk 查看文本内容,可以实现复杂的搜索功能
基于模式匹配检查输入文本,逐行处理并输出
单独用时,可以对文本数据做统计

2、语法格式
awk  [选项]  ‘[条件] {指令}’  文件
    默认以空格和Tab键隔开
    选项:-F  指定分隔符:-F[:/]  #以:和/作为分隔符,:和/之间也是单独一列,且为空
    指令:NR  文件当前行号  NF 文件当前行的列数
    例子:
        awk '{print $0,$2}'   #逗号代表空格       
        awk '{print $1"666"}'   #在后面添加666
        awk '/Failed/{print $11}'  /var/log/secure    #在系统安全日志文件中筛选出远程本机失败的IP地址
        awk '/root/'  /etc/passwd    #指令只有print可以省略 
        awk '$1~/root/'     #匹配第一列为root的行      
        seq 10 | awk '$1%3==0'      #显示10以内3的倍数
awk [选项]  'BEGIN{指令}{指令}END{指令}'   文件
    例子:awk  -F: 'BEGIN{print "User\tUID\tHome"}{print $1"\t"$3"\t"$6}END{print “总共”NR“行”}' b.txt       #\t代表Tab键
                User	    UID	    Home
                root	    0	        /root
                bin	    1	        /bin
                daemon	2	        /sbin
                adm	    3	        /var/adm
                lp	        4	        /var/spool/lpd
                总共5行

awk高级用法:

与if语句结合
        单分支:awk -F: '{if($3>1000){i++}}END{print i}' /etc/passwd    #统计UID大于1000的用户个数
        双分支: awk -F: '{if($7~/bash$/){i++}else{j++}}END{print x,j}'  #统计以bash结尾的个数和不以bash结尾的个数
    与数组结合
        awk 'BEGIN{a[0]=0;a[1]=11;a[2]=22;for(i in a){print i,a[i]}}'  #打印数组下标和值
        sort命令,选项为-r、-n、-k。其中-n表示按数字顺序升序排列,而-r表示反序,-k可以指定按第几个字段来排序。
        awk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' /var/log/httpd/access_log |sort -rn     #统计web访问排名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值