首页 > 代码库 > 西部开源学习笔记BOOK2-《unit 6》

西部开源学习笔记BOOK2-《unit 6》

#############################

#### unit6.shell脚本命令 ####

#############################


###########1.diff###########

diff         file  file1            ##比较两个文件的不同

        -c                          ##显示周围的行

        -u                          ##按照统一格式输出生成补丁

        -r                          ##比较两个目录中文件的不同

patch         file  file.patch      ##打补丁

        -b                          ##备份原文件


#########2.grep##########

grep     关键字

grep     -i                         ##忽略大小写

         -n                         ##显示关键字在其文件所在的行号

         -c                         ##显示过滤结果的个数

         -v                         ##反向过滤(即显示不包含该关键字的行)

         -E "关键字1|关键字2"       ##过滤多个关键字

         -r 目录                    ##在目录中查找含有关键字的文件(递归式搜索,从命名目录开始)

注意:  ^关键字                     ##以关键字开头

        关键字$                     ##以关键字结尾


eg.grep root -r /etc/ -n ##递归式搜索/etc/下的含有root的目录和文件,并显示root在文件中的行号


#########3.cut##########

cut                               ##截取字符

cut -d 分隔符                     ##指定分隔符

cut -f 1,7                        ##显示指定的列

cut -c 1-4                        ##显示指定的字符


eg.只显示ifconfig中的ip地址信息

[root@localhost /]# ifconfig eth0 | grep inet |grep -v inet6| cut -d " " -f 10

inet 172.25.254.119

[root@localhost /]# ifconfig eth0 | grep inet |grep -v inet6| awk -F " " ‘{print $1,$2}‘

inet 172.25.254.119

        ##awk的-F表示指定分隔符


########4.sort排序########

sort             ##默认只按第一个字符排序

        -n       ##纯数字排序

        -u       ##去除冗余

        |uniq -c ##去除冗余并统计冗余的个数

        -t       ##指定分隔符

        -k       ##指定列

eg:

[root@localhost mnt]# sort -t ":" -k 2 -n file

a:1

a:2

a:2

a:3

a:4

a:5

a:5

a:6

a:6

a:7


########5.uniq#######

sort file |uniq -c ##去冗余并统计冗余次数

                -d ##显示冗余行

                -u ##显示唯一行


#######6.tr#######


#######7.sed######

sed ‘s/原字符/替换字符/g‘ file     ##替换文件中的字符

sed -e ‘策略1‘ -e ‘策略2‘ file     ##执行多个策略(这个策略就是‘s/原字符/替换字符/g‘)

sed -i file                        ##把转换后的内容输出到指定文件

sed ‘3,5s/原字符/替换字符/g‘ file  ##把3-5行替换

sed xd file                        ##屏蔽指定行(eg.sed 5d passwd)

sed xp file                        ##复制指定行(eg.sed 5p passwd)

sed -n xp file                     ##只显示指定行(eg.sed -n 5p passwd)


注意:当要执行显示多个指定行时,命令格式为sed -ne xp -ne xp

eg:sed -ne 5p -ne 7p file


#########8.awk##########


西部开源学习笔记BOOK2-《unit 6》