首页 > 代码库 > linux下正则表达式

linux下正则表达式

正则表达式

1.du -sh /* 查看根下所有目录占用的内存是多少

2.lsof -i :22 查看22端口

3.清空文件,cat /dev/null>access_log清空一个文件

4.如果在oldboy/ett目录下在创建一个目录,那么/oldbot/ett的硬链接数是多少,为什么?

2个,因为子目录下的..是父目录的硬链接

5检测一个命令是否是内置命令:type 命令名称

Linux的多用户多任务介绍:

1.用户的身份是用UIDuseridentify)和GID(groupidentify)来识别的.

2.超级用户的UID=0GID=0,再生产环境中一般禁止用root用户直接ssh连接服务器。其他的用户都是虚拟用户,特点是不可以登录

  1. 0代表超级用户,1-499代表虚拟用户,500-65535代表普通用户

4.服务运行时需要用户角色的,可以不用登陆,因此,工作中我们要运行mysql数据库,可以创建如下用户

group -g 49

useradd  -u  49  -s  /sbin/nologin  -g  49

-s解释器命令改为不需要用户登录,直接可以进入

id mysql

tail -1 /etc/passwd

su - mysql

chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow 添加一个锁

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow 解锁

linux中有3中类型的时间  stat 文件名

正则表达式

1.正则表达式就是一套处理字符串规则和方法,以行为为单位对字符串进行处理,通过特殊符号辅助,快速的过滤,替换某些字符串。

2.运维中,大量的访问错误日志,如何快速的过滤出我们想要的内容,就需要正则表达式

3.Linux中的正则表达式基于awk/sed/grep的正则表达式

^word:表示是以word开头

word$: 表示以word结尾的

grep “M” oldboy.txt 过滤出文件中的有M的句子

grep -i “M” oldboy.txt 不区分大小写

grep “m$” oldboy.txt 过滤出以m结尾的

4 .表示任意一个字符

grep “bl.og” olboy.txt 匹配出有blog的句子

gerp “bo.g” oldboy.txt匹配出有bog的句子     

5 \转义字符,让有着特殊身份意义的字符还原原型

6. grep -n . oldboy.txt 这里的点代表所有,-n是将所有行都加上行号

grep “\.” oldboy.txt 将所有的点都过滤出来

*:重复0个或多个前面一个字符,例如0*

grep “.*” oldboy 匹配所有

grep “^.*” oldboy.txt 匹配以任意字符开头的

7.[]字符集合的重复特殊字符的符号

 grep “b[lo]og” oldboy.txt 匹配以l或者o组成的单位blog或者boog;

8.[^]表示非以什么内容开头的

grep “[^0-9]” oldboy.txt 匹配不包含数字的句子

9.\{n,m\}重复nm次,前一个重复字符如a\{n,m\}

a\{n,\} 重复至少n次,前一个重复字符;

\{n\}重复n次,前一个字符

grep “64\{2,3\}448” oldboy.txt

扩展正则表达式:ERE

1+表示重复一个或一个以上前面的字符

grep -E “64+581” oldboy.txt       

egrep “64+581” oldboy.txt

2)?表示0个或者1个字符

grep -E “464?581” oldboy.txt

egrep “464?581” oldboy.txt

3)用竖线表示查找多个符合的字符串

egrep “33041|1521” /etc/services

4)找出“用户组”字符串,grep -E “b(lo|oo)g” oldboy.txt 找出blogboog;

题目:取出eth0IP地址

第一种办法

 ifconfig eth0|grep “inet addr” |awk -F “:” ‘{print $1}’|awk -F “ ” ‘{print $1}’

 第二种办法

ifconfig  eth0|sed -n “2p” |awk -F “【: 】+”‘{print  $1}

 以冒号空格为分隔符,+号代表把多个连续的分隔符变为1个。

第三种方法

ifconfig eth0 |sed -n ’inet addr/p’|sed ‘s#^.*addr:##g’|sed ‘s#  Bc.*$##g’ 

第四种方法

ifconfig eyh0|sed -n ‘s#^.*addr:\(.*\)  Bc.*$#\1#gp’

在括号中的内容就是代表了IP,后面的\1取代别的内容

echo “ddd kkk”>b.txt

sed ‘s#\(ddd\) \(kkk\)#\1 \2#g’ b.txt

ifconfig |sed -n ‘^.#addr:\([0-9].*\)  Bcast:\([0-9].*\):*$#\|\2#gp’

一个空格都不可以错,要非常精确

如何取得/etiantian的权限?

stat -c %a /etiantian直接把644的权限过滤出来

如果在/oldboy/ett下在创建一个目录test,ett的硬链接数是多少

3个,test下的..代表上一级目录的硬链接

Eth0网卡路径:/etc/sysconfig/network-scripts/ifcfg-eth0

客户端路径:/etc/resolve.conf

一个lamp服务器被植入了广告,网站打开时就会调用这个地址造成恶劣的影响。

思路:遍历所有的目录文件,把以上被植入的内容删掉

  模拟cd /root/oldboy 植入内容

find /root/oldboy -type f|xargs sed -i ‘1 i <script language=javascripts src=http://www.mamicode.com/www.baidu.com></script>’

所有的文件和包都被植入了广告

1.和运维人员确认问题

2.制定方案,备份数据,然后批量修改

3.写解决方案,给他们的运维

4.询问结果,并告知写详细查看日志,寻找问题来源

5.提供亡羊补牢的方案(站点目录的解决方案)

把黑客发的内容删除

find /root/oldboy -type f|xargs sed -i ‘1 i /<script language=javascripts src=http://www.mamicode.com/www.baidu.com></script>/d’

不要忘了寻找问题的来源并且修补漏洞,网站的目录权限降低,上传附件的入口没有详细过滤。

 

 

 

echo -n “oldboy”;echo “oldboy”不换行输出

echo -n 123

123[root@~]#

echo -e “oldboy\noldboy” 换行

请给出如下的格式date命令,11-02-26,再给出实现按周输出,如输出周六;

date +%y-%m-%d

date -s 修改时间

date +%w显示周几

要用echo打印出来要用反引号

echo `date +%F`  或者$(date %F)

企业案例打包

1.tar zcvf oldboy.tar.gz ./oldboy

2.tar tf oldboy.tar.gz查看包的内容

3.每天打个包的日期 tar zcvf oldboy-$(date +%F).tar.gz ./oldboy 每天打个包,显示日期

4.保留最近7天的内容 find /log -type f -name “*.log” -mtime +7|xargs rm -f

当用普通用户时,执行ifconfig,提示没有命令什么原因

   因为ifconfig是系统命令,可以用全路径执行,可以放在家目录下的.bash_profile下;

        

 

 

linux下正则表达式