首页 > 代码库 > 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几条常用命令