Shell理论学习(二)

30.tee:读取标准输入,然后由标准输出显示,并把这些数据存储在指定的文件中

执行本命令,test.txt若已经存在,会被清空,若不存在则会建立一个新文件,结束操作ctrl+D

[root@kaibin ~]# tee test.txt
hello my world!
hello my world!
[root@kaibin ~]# cat test.txt 
hello my world!

-a以文件追加的方式,把输入的数据接在test.txt的文件尾,并不会把test.txt清空

[root@kaibin ~]# tee -a test.txt 
This is a zhuijia!
This is a zhuijia!
[root@kaibin ~]# cat test.txt 
hello my world!
This is a zhuijia!

31.diff:比较两个文件的差异

[root@kaibin test]# diff file4.txt ../test.txt 
1,2c1,2
< haha
< hello myworld
---
> hello my world!
> This is a zhuijia!

32.xargs:由标准输入,安排要执行的命令和参数

寻找.txt的文件,然后给xargs处理,-n 2 表示执行命令的参数至多两个,也就是说:把找到的.txt文件,两个一组的方式交给diff去比较

[root@kaibin ~]# find /root/test/ -name "*.txt"  | xargs -n 2 diff
1,2d0
< haha
< hello myworld

33.可以把多个命令弄成一组,然后整组去执行

方法一:(命令1;命令2;命令3)

()会开启一个子shell环境,来执行此括号中的命令组

[root@kaibin ~]# (cat test.txt;find /root/test/ -name "*.txt";date +%F)
hello my world!
This is a zhuijia!
/root/test/file5.txt
/root/test/file2.txt
/root/test/file4.txt
/root/test/file3.txt
2015-01-09

方法二:{ 命令1;命令2;命令3; }

和第一种方法不同的是,此法是吧这些命令组在现行的shell中去执行,而非在子shell中执行

[root@kaibin ~]# { cat test.txt;find /root/test/ -name "*.txt";date +%F; }
hello my world!
This is a zhuijia!
/root/test/file5.txt
/root/test/file2.txt
/root/test/file4.txt
/root/test/file3.txt
2015-01-09

34.记录命令的执行过程

有时候,我们需要把执行命令所产生的信息记录,以作为排错参考,数据保存之用

script[日志文件]

如果不提供自定义的日志文件,默认会把数据存储到typescript这个文件

执行script指令后,就可以开始操作各种命令,script会忠实的记录下所有的输出信息.如果想要结束操作,执行exit,便可以离开script

root@kaibin ~]# script /tmp/test.txt
Script started, file is /tmp/test.txt
[root@kaibin ~]# ls /tmp/test.txt 
/tmp/test.txt
[root@kaibin ~]# { cat test.txt;find /root/test/ -name "*.txt";date +%F; }
hello my world!
This is a zhuijia!
/root/test/file5.txt
/root/test/file2.txt
/root/test/file4.txt
/root/test/file3.txt
2015-01-09
[root@kaibin ~]# find /root/test/ -name "*.txt"  | xargs -n 2 diff
1,2d0
< haha
< hello myworld
[root@kaibin ~]# exit
exit
Script done, file is /tmp/test.txt
#查看日志
root@kaibin ~]# head /tmp/test.txt 
Script started on 2015年01月09日 星期五 17时53分07秒
[root@kaibin ~]# { cat test.txt;find /root/test/ -name "*.txt";date +%F; }
hello my world!
This is a zhuijia!
/root/test/file5.txt
/root/test/file2.txt
/root/test/file4.txt
/root/test/file3.txt
2015-01-09
[root@kaibin ~]# find /root/test/ -name "*.txt"  | xargs -n 2 diff

35.unset:

unset -v 变量名称

选项-v表示要取消的是变量

unset -f 函数名称

选项-f表示要取消的是函数

36.常用环境变量

  • PS1:主要提示符

技术分享

技术分享

本文出自 “Linux革命” 博客,请务必保留此出处http://kaibinyuan.blog.51cto.com/7304008/1611304

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。