1  案例一:取eth0的IP地址

方法一:通过cut方法过滤

[root@baiguin ~]# ifconfig eth0|grep "inet addr:"|cut -d ":" -f2|cut -d " " -f1

192.168.26.132

===============================================================

方法二:通过awk方法过滤

1)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F: '{print $2 }'|awk '{print $1}'

192.168.26.132

2)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F "[ :]" '{print $13}'

192.168.26.132

3)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F "[ :]+" '{print $4}'

192.168.26.132

4)[root@baiguin ~]# ifconfig eth0 |awk  -F '[ :]+' '{if(NR==2) print $4}'

192.168.26.132192.168.26.132

[root@baiguin ~]# ifconfig eth0|grep "inet addr:"|awk -F "[ :]*" '{print $4}'

192.168.26.132

注:此中的“+”和“*”号即正则表达式用法

===========================================================

方法三:通过sed方法过滤

1)[root@baiguin ~]# ifconfig eth0|sed -n "s/^.*addr:\(.*\)  Bcast.*$/\1/gp"

192.168.26.132

注:sed小括号()分组功能

   Sed ‘s/ / /g’

   部分可以用正则表达式, 的部分不能用正则表达式。

()是分组(group),再   部分使用()括起来的内容,再 的位置可以使用\1调用前面括号内的内容。

如果有多个的括号,那么依次是\2,\3调用 第二个第三个括号,以此类推。

eg:

[root@baiguin ~]# echo "aaa bbb" >a.txt

[root@baiguin ~]# cat a.txt

aaa bbb

[root@baiguin ~]# sed 's#\(aaa\) \(bbb\)#\1#g' a.txt

aaa

[root@baiguin ~]# sed 's#\(aaa\) \(bbb\)#\2#g' a.txt 

bbb

[root@baiguin ~]# sed 's#\(.*\) \(.*\)#\2#g' a.txt      

bbb

[root@baiguin ~]# sed 's#\(.*\) \(.*\)#\1#g' a.txt 

aaa

2) [root@baiguin ~]# ifconfig eth0|sed -n 2p|sed -n "s/^.*addr:\(.*\) Bcast.*$/\1/gp"

192.168.26.132

3)[root@baiguin ~]# ifconfig eth0 |sed -n 2p |sed 's#^.*addr:##g'|sed 's# Bcas.*$##g'

192.168.26.132

2  如何取得wang.txt的权限对应的数字内容(如-rw-r-r-为644,要求使用命令取得644或0644数字)

1)通过Sed正则进行截取

[root@baiguin ~]# stat wang.txt |sed -n 's#^.*(0\(.*\)/-.*$#\1#gp'

644

2)通过awk正则进行截取

[root@baiguin ~]# stat wang.txt |awk -F "[: (0]+" '{if (NR==4) print $2}'|cut -d"/" -f1

644

[root@baiguin ~]# stat wang.txt |awk -F "[(0/]" '{if (NR==4) print $3}'

644

3)通过命令直接取

[root@baiguin ~]# stat -c %a wang.txt

644

注:可“man stat”查看参数

4)另外思考方法

[root@baiguin ~]# ls -l wang.txt |cut -c 2-10|tr rwx- 4210|awk -F "" '{print $1+$2+$3,$4+$5+$6,$7+$8+$9}'|sed 's# ##g'

644

注:tr rwx- 4210的用法

3  一些文件被黑客植入一样的病毒,如何将这些文件相同的病毒代码删除。

步骤:

1)先模拟创建几个文件,并在文件中随意输入一些内容。

[root@baiguin ~]# touch wang/w.txt wang/bai/b.txt wang/bai/gui/g.txt

2)用find查找出wang目录下所有的文件,并通过xargs命令将需要添加的病毒依次添加进去。

[root@baiguin ~]# find wang -type f |xargs sed -i '1 i <11111111111111111111111111111>'

注:注意sed后-i命令的用法

3)在生产环境中,要替换文件时需先全部备份,以防二次破坏文件。在此编写一脚本进入对要替换的文件做备份。

[root@baiguin ~]# cat test.sh

file=`find /root/wang -type f >1.txt`

filename=`cat 1.txt`

for i in $filename;do

        cp $i /bak

done

[root@baiguin ~]# sh test.sh

[root@baiguin ~]# ls /bak/

b.txt  g.txt  w.txt

4)通过sed将相同的命令全部替换成空删除

查看到每个文件都有相同的字符

[root@baiguin ~]# cat wang/w.txt

<1111111111111111111111111111111111111111111111111111111>

<dsfaasdfasdfsadffdfsdafddsfasd>

dfajdf

[root@baiguin ~]# cat wang/bai/b.txt

<1111111111111111111111111111111111111111111111111111111>

sdfdfsdf

sdf

解决办法:通过sed命令删除

[root@baiguin ~]# find wang -type f |xargs sed -i '/<1111111111111111111111111111111111111111111111111111111>/d'

[root@baiguin ~]# find wang -type f |xargs sed -i '/^.*1111111111>/d'

再次查看,看替换结果。

[root@baiguin ~]# cat wang/w.txt

<dsfaasdfasdfsadffdfsdafddsfasd>

dfajdf

[root@baiguin ~]# cat wang/bai/b.txt

sdfdfsdf

sdf

结果成功!

4  通过tar打包,并以时间date格式打包包名。

[root@baiguin ~]# tar zcvf wang-$(date +%F).bak wang

[root@baiguin ~]# ls wang-2014-09-26.bak

wang-2014-09-26.bak

案例:

如果只希望保存一周的包,按常规方法需要通过手动删除一周前的包。但可通过datew参数,来只保存7天,之后循环覆盖即可

[root@baiguin ~]# tar zcvf wang-$(date +%w).bak wang

[root@baiguin ~]# ls wang-5.bak

5  下列快捷键含义

Ctrl + a                 ; 光标到行的开头

Ctrl + e                 ; 光标到行的结尾

Ctrl + d                  ; 退出当前窗口,或当前用户

Ctrl + l                 ; 清屏或clear命令

Ctrl + u                 ; 删除光标前面行的内容

Ctrl + k                 ; 删除光标后面行的内容

Ctrl + s                  ; 锁住屏幕

Ctrl + q                 ; 解锁屏幕

最新文章

  1. apache服务器安装以及使用passenger插件部署rails应用
  2. 第五篇T语言实例开发,数组空间使用
  3. JAVA中AJAX的使用
  4. AspectFill VS. AspectFit
  5. Ubuntu,QT5连接MySQL
  6. $_SERVER 相关变量
  7. UVA 725
  8. 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
  9. C++学习笔记25,析构函数总是会宣布virtual
  10. 比ORA-24777: 我不使用不可移植数据库链接更郁闷的事情达成一致
  11. 3_yum rpm tar 命令及参数
  12. JavaList列表的一些方法
  13. vue项目锚点的使用
  14. webpack的版本进化史
  15. java中使用队列:java.util.Queue(转)
  16. 如何在wiced平台上编译,运行智能彩灯 实时控制彩灯的色调和开关
  17. Tutorial: Implementation of Siamese Network on Caffe, Torch, Tensorflow
  18. C语言常用数据类型说明
  19. 【Java】Java-ShutDownHook-优雅关闭系统资源
  20. 二叉查找树(BST)的性质

热门文章

  1. javascript 关于cookie的操作
  2. POJ 2251 Dungeon Master (BFS最短路)
  3. HIbernate学习笔记(一) 了解hibernate并搭建环境建立第一个hello world程序
  4. javascript函数的4种调用方式
  5. Harris角点算法
  6. C# ip hash算法实现ip分流
  7. nginx 安装手记 分类: Nginx 服务器搭建 2015-07-14 14:28 15人阅读 评论(0) 收藏
  8. SQLite的SQL语法
  9. mydumper工作原理, seconds_behind_master的陷阱和pt-heartbeat (102)
  10. 打造强大的BaseModel(2):让Model实现自动映射,将字典转化成Model