了解shell中的通配符
熟悉grep、cut、sort等小工具和shell中的通配符的使用
#一、文本处理工具
##1. grep工具
grep是**行**过滤工具;用于根据关键字进行行过滤
语法和选项
语法:
#grep [选项] '关键字'文件名
常见选项:
OPTIONS: -i: 不区分大小写-v: 查找不包含指定内容的行,反向选择-w: 按单词搜索-o: 打印匹配关键字-c: 统计匹配到的行数-n: 显示行号-r: 逐层遍历目录查找-A: 显示匹配行及后面多少行-B: 显示匹配行及前面多少行-C: 显示匹配行前后多少行-l:只列出匹配的文件名-L:列出不匹配的文件名-e: 使用正则匹配-E:使用扩展正则匹配^key:以关键字开头key$:以关键字结尾^$:匹配空行--color=auto:可以将找到的关键词部分加上颜色的显示
颜色显示(别名设置):
临时设置:#aliasgrep='grep --color=auto'//只针对当前终端和当前用户生效永久设置:1)全局(针对所有用户生效)vim/etc/bashrcaliasgrep='grep --color=auto'source/etc/bashrc2)局部(针对具体的某个用户)vim~/.bashrcaliasgrep='grep --color=auto'source~/.bashrc
举例说明:
说明:不要直接使用/etc/passwd文件,将其拷贝到/tmp下做实验!
#grep-irootpasswd忽略大小写匹配包含root的行#grep-wftppasswd精确匹配ftp单词#grep-whellopasswd精确匹配hello单词;自己添加包含hello的行到文件#grep-woftppasswd打印匹配到的关键字ftp#grep-nrootpasswd打印匹配到root关键字的行好#grep-nirootpasswd忽略大小写匹配统计包含关键字root的行#grep-nicrootpasswd忽略大小写匹配统计包含关键字root的行数#grep-i^rootpasswd忽略大小写匹配以root开头的行#grepbash$passwd匹配以bash结尾的行#grep-n^$passwd匹配空行并打印行号#grep^#/etc/vsftpd/vsftpd.conf匹配以#号开头的行#grep-v^#/etc/vsftpd/vsftpd.conf匹配不以#号开头的行#grep-A5mailpasswd匹配包含mail关键字及其后5行#grep-B5mailpasswd匹配包含mail关键字及其前5行#grep-C5mailpasswd匹配包含mail关键字及其前后5行
##2. cut工具
cut是**列**截取工具,用于列的截取
语法和选项
语法:
#cut选项文件名
常见选项:
-c: 以字符为单位进行分割,截取-d: 自定义分隔符,默认为制表符\t-f: 与-d一起使用,指定截取哪个区域
举例说明:
#cut-d: -f11.txt以:冒号分割,截取第1列内容#cut-d: -f1,6,71.txt以:冒号分割,截取第1,6,7列内容#cut-c41.txt截取文件中每行第4个字符#cut-c1-41.txt截取文件中每行的1-4个字符#cut-c4-101.txt截取文件中每行的4-10个字符#cut-c5-1.txt从第5个字符开始截取后面所有字符
课堂练习:
用小工具列出你当系统的运行级别。5/3
如何查看系统运行级别
命令runlevel
文件/etc/inittab
如何过滤运行级别
runlevel|cut-c3runlevel|cut-d' '-f2grep-v'^#'/etc/inittab|cut-d: -f2grep'^id'/etc/inittab|cut-d: -f2grep"initdefault:$"/etc/inittab|cut-c4grep-v^#/etc/inittab|cut-c4grep'id:'/etc/inittab|cut-d: -f2cut-d':'-f2/etc/inittab|grep-v^#cut-c4/etc/inittab|tail-1cut-d: -f2/etc/inittab|tail-1