首页 > 代码库 > linux几条常用命令

linux几条常用命令

一. 写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 一行中,如果包含"11111",则在"11111"前面插入"AAA",在"11111"后面插入"BBB",比如:将内容为0000111112222的一行改为:0000AAA11111BBB2222

(1)sed  ‘/^$/d‘ /tmp/input.txt
(2)sed  ‘s/\(11111\)/AAA\1BBB/g‘ /tmp/input.txt

 

二. sed对文件进行多重编辑命令

(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)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) 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):

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的访问次数,并按照次数由小到大的顺序排序输出:

cat access_log|awk ‘{print $7}‘| sort | uniq -c | sort -n | head -10

 

 

七. 查看服务器tcp连接状态并汇总

netstat -an | awk ‘/tcp/{++a[$NF]}END{for(b in a )print b,a[b]}‘

 

八. 统计apace或者nginx日志文件访问次数最多的100IP及次数

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配置项该如何写:

* 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) tcpdump tcp -i eth0 dst port 80
(2) tcpdump src 1.1.1.1 or 2.2.2.2
(3) tcpdump udp

本文出自 “技术成就梦想” 博客,请务必保留此出处http://pizibaidu.blog.51cto.com/1361909/1844266

linux几条常用命令