目录: 一、关于grep的总结 二、关于egrep的总结 三、关于tr的总结 四、关于sort的总结 五、关于uniq的总结 六、关于cut的总结 七、关于tee的总结 八、关于split的总结 九、关于type的使用 十、关于find的使用 十一、关于xargs的使用 关于grep的总结 找出所需字符串的时候可用引号也能够不用引号。 一、grep bc test 二、grep "bc" test 三、grep 'bc' test 注:以上3中形式都能找出test文件中相对应含有字符串bc的行并打印出来。 比较经常使用的参数有; -i, --ignore-case 忽略大小写 -n, --line-number print line number with output lines -v, --invert-match select non-matching lines 显示不匹配的行 -h, --no-filename suppress the prefixing filename on output查询多文件时不显示文件名 -l, --files-with-matches print only names of FILEs containing matches查询多文件时只显示文件名 grep select * ,列出当前目录下全部包含select 字样的文件名及含有select字样的行。 grep -h select * ,和上一条类似,但不显示文件名称。 grep -l select * ,和第一条类似,但只显示文件名。 二、关于egrep的总结 egrep 是扩充功能的grep egrep ‘2|5’ 1.txt ,列出含有2或者5的行 egrep '12(@|3)' test 列出含有12且后面紧跟@或3的行 三、关于tr的总结 从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。 -s, --squeeze-repeats 若是匹配于SET1 的字符在输入序列中存在连续的 重复,在替换时会被统一缩为一个字符的长度 tr test '12' '45' 将文件中的12替换为45 cat test |tr '[a-z]' '[A-Z]' 将文件中的小写所有替换为大写 tr ' ' '\n' <test 把test文件中的全部空格替换为换行 tr -s ' ' ' ' <test 把test文件中每行中连续出现的空格替换为一个空格 四、关于sort的总结 sort [选项]... --files0-from=F 串联排序全部指定文件并将结果写到标准输出。 -c, --check, --check=diagnose-first 检查输入是否已排序,若已有序则不进行操做 -r, --reverse 逆序输出排序结果 -n, --numeric-sort 根据字符串数值比较 -k, --key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾) -u, --unique 配合-c,严格校验排序;不配合-c,则只输出一次排序结果 五、关于uniq的总结 uniq对重复的行只保留一行。 【注意】对于处理字符长的时候通常先sort而后再uniq。 -c, --count 在每行前加上表示相应行目出现次数的前缀编号 -d, --repeated 只输出重复的行 六、关于cut的总结 cut 主要的用途在于将一行里面的数据进行分解,最常使用在分析一些数据或文字数据的时候! 这是由于有时候咱们会以某些字符看成分割的参数,而后来将数据加以切割,以取得咱们所须要的 数据。 cut -d" " -f1 test 以空格为分割符,并输出第一列 last | cut -c1-20 //将 last 以后的数据,每一行的 1-20 个字符取出来 七、关于tee的总结 将数据输出重定向到文件的时候,屏幕上就不会出现任何的数据!那么若是咱们须要将数据同时 显示在屏幕上跟档案中呢?这个时候就须要 tee 这个指令。 last |tail |tee last.list | cut -d " " -f1 将last的最后10行写进last。last文件 并接着处理并输出在屏幕。 八、关于split的总结 将大的文件分割成小的文件。 -l, --lines=数值 指定每一个输出文件有多少行 -C, --line-bytes=大小 指定每一个输出文件里最大行字节大小 九、关于type的使用 type打印一个命令的绝对路径 [guo@guo ~]$ type vim vim is hashed (/usr/bin/vim) [guo@guo ~]$ type perl perl is /usr/bin/perl 十、关于find的使用 find /home/guo/ -name test找出文件夹guo中的test文件 find / -name “*apple* -print find /home –name “[!abc]” find /home –name “?[1-9]” find / -type d(f b c l p) find / -mtime -5 查找最后修改小于5天的文件 -mtime文件修改时间//vi、echo修改文件会改变此文件时间 -atime文件访问时间//用cat、vi查看会改变此文件时间 -ctime文件改变时间// vi 、echo修改文件、chmod、chown会改变 此文件时间 stat fileanme查看以上3个时间 十一、关于xargs的使用 xargs从标准输入中接受单词列表的命令,并把这些单词做为参数传递给指定的命令 ls |xargs rm//把ls列出的内容再经过rm删除 能够每次删除一部分文件 ls |xargs –n 2 rm ls | xargs –n 2 echo “==>” 有时目录里文件太多了不能使用rm *删除这时 ls | grep ‘^abc’ |xargs –n 20 rm 十二、关于bc的使用 bc命令:进行算术运算,但不限于整数运算 scale=4 //表示计算结果保留4位小数 bc还能够用在shell变量赋值中 ABC=`echo “scale=4;8/3” | bc` echo $ABC 脚本编程 1.1.1.1 www.baidu.com 2.2.2.2 www.baidu.com 3.3.3.3. www.sina.com.cn 2.2.2.2 www.chinauxin.net 2.2.2.2 www.51cto.com 1.1.1.1 www.linuxtone.org 输出 2.2.2.2 www.baidu.com,www.chinauxin.net,www.51cto.com 1.1.1.1 www.baidu.com,www.linuxtone.org 3.3.3.3. www.sina.com.cn awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a[i]}' file 建立html文件 ::cat 运维必备.html |sed -e '/^$/d'|sed -n '2,$ s/^/\<br\>/p' |sed 's/$/\<\/br\>/' >a.html 内核、Shell、文件系统这三个部分构成了linux系统 合并两个文件 paste 1 2|awk '{if($1 ~$2) print $1 ;else print $0}' a=`date +"%Y-%m-%d %H : %M : %S" -d "5 min ago"`