一. 写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 一行中,如果包含"11111",则在"11111"前面插入"AAA",在"11111"后面插入"BBB",比如:将内容为0000111112222的一行改为:0000AAA11111BBB2222
1
2
|
(
1
)sed
'/^$/d'
/
tmp
/
input
.txt
(
2
)sed
's/\(11111\)/AAA\1BBB/g'
/
tmp
/
input
.txt
|
二. sed对文件进行多重编辑命令
1
2
3
4
5
6
7
8
9
10
11
|
(
1
) sed
+
选项e
格式为:sed
-
e
'sed命令'
-
e
'sed命令'
filename
sed
-
e
's/seugrid1/SEUGRID1/'
-
e
's/Certificate/CERTIFICATE/'
input
(
2
).sed
+
{}
格式为:sed
'sed命令/{};'
filename
sed
'/certificate/{s/certificate/INSTALL/;s/your/YOUR/;s/user/OTHER/;}'
input
(
3
).利用分号分隔多个编辑命令。
格式为:sed
'编辑命令1;编辑命令2;……'
输入文件
sed
's/seugrid1/SEUGRID1/ ; s/certificate/CERTIFICATE/'
input
|
三. 找到/tmp/目录下面的所有名称以"_s1.jpg"结尾的普通文件,如果其修改日期在一天内,则将其打包到/tmp/back.tar.gz文件中
有三种方法:
1
2
3
|
(
1
)find
/
tmp
-
name
'*_s1.jpg'
-
mtime
-
1
| xargs tar
-
zcvf
/
tmp
/
back.tar.gz
(
2
)tar
-
zcvf
/
tmp
/
back.tar.gz $(find
/
tmp
-
name
'*_s1.jpg'
-
mtime
-
1
)
(
3
)find
/
tmp
-
name
'*_s1.jpg'
-
mtime
-
1
| tar
-
zcvf
/
tmp
/
back.tar.gz
-
T
-
|
四. find查找两种后缀名的3种方法
1
2
3
4
|
(
1
) find .
-
name
"*.txt"
-
o
-
name
"*.log"
(
2
) find .
-
regex
".*\.Java\|.*\.xml"
上面这条命令会查找当前文件夹下面的所有java文件和xml文件,find默认采用emacs正则,会比较罗嗦,如果采用posix
-
extended正则会比较简单,如下:
(
3
) find .
-
regextype posix
-
extended
-
regex
".*\.(java|xml)"
|
五. 用netstat命令配合其他shell命令,按照来源IP统计下所有到80端口的ESTABLISHED状态链接的个数,输出结果类似(第一列为连接数,第二列为IP):
1
|
netstat
-
an | grep ESTABLISHED | grep
":8080"
| awk
'BEGIN{FS="[[:space:]:]+"}{print $8}'
| sort| uniq
-
c | sort
-
nr| head
-
n
10
|
六. 写一个shell命令,统计apache日志文件(access_log)中某一天中每个URL的访问次数,并按照次数由小到大的顺序排序输出:
1
|
cat access_log|awk
'{print $7}'
| sort | uniq
-
c | sort
-
n | head
-
10
|
七. 查看服务器tcp连接状态并汇总
1
|
netstat
-
an | awk
'/tcp/{++a[$NF]}END{for(b in a )print b,a[b]}'
|
八. 统计apace或者nginx日志文件访问次数最多的100IP及次数
1
|
awk
'{print $1}'
access_log| sort | uniq
-
c | sort
-
n
-
k
1
-
r | head
-
n
100
|
九. 每周一下午三点将/tmp/logs目录下面的后缀为*.log的所有文件rsync同步到备份服务器192.168.1.100中同样的目录下面,crontab配置项该如何写:
1
|
*
15
*
*
1
rsync –vazutopg
-
-
include
=
"*.log"
-
-
exclude
=
*
/
tmp
/
logs rsync@
192.168
.
1.100
:
/
tmp
/
logs
-
-
password
-
file
=
/
etc
/
rsyncd
/
password.secret >>
/
var
/
logs
/
rsync.log
2
>&
1
|
十. 请写出用tcpdump抓取符合如下条件包的命令:(1) 目标端口是 80;(2) 来源IP或者是1.1.1.1,或者是 2.2.2.2;(3) UDP包;
1
2
3
|
(
1
) tcpdump tcp
-
i eth0 dst port
80
(
2
) tcpdump src
1.1
.
1.1
or
2.2
.
2.2
(
3
) tcpdump udp
|
本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1844266,如需转载请自行联系原作者