当前位置: 首页 > news >正文

昆明网站制作响应式 网站建设

昆明网站制作,响应式 网站建设,土建设计网站,wordpress获取当前页面链接正则表达式匹配的是文本内容#xff0c;文本三剑客都是针对文本内容。 grep#xff1a;过滤文本内容 sed#xff1a;针对文本内容进行增删改查 awk#xff1a;按行取列 一、grep grep的作用使用正则表达式来匹配文本内容 1、grep选项 -m#xff1a;匹配几次之后停止…正则表达式匹配的是文本内容文本三剑客都是针对文本内容。 grep过滤文本内容 sed针对文本内容进行增删改查 awk按行取列 一、grep grep的作用使用正则表达式来匹配文本内容 1、grep选项 -m匹配几次之后停止 #查找所有包含root的文本内容 [rootlocalhost opt]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin #使用-m选项匹配1次之后就停止 [rootlocalhost opt]# grep -m 1 root /etc/passwd root:x:0:0:root:/root:/bin/bash-v 取反 除了所要查的其他全部显示 #除了root其他都打印 [rootlocalhost opt]# grep -v root /etc/passwd -n显示匹配的行号 -c 只统计匹配的行数   [rootlocalhost opt]# grep -c root /etc/passwd 2 -o 仅限显示匹配到的结果 #显示所有的root [rootlocalhost opt]# grep -o root /etc/passwd root root root root -q 静默模式不输出任何信息 -A after 数字后几行 #匹配到当前内容并附带3行 [rootlocalhost opt]# grep -A 3 root /etc/passwd #定位 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin -- #定位 operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin -B before数字前几行 #匹配到前面3行 [rootlocalhost opt]# grep -B 3 dn /etc/passwd postfix:x:89:89::/var/spool/postfix:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin test2:x:1000:1000:test2:/home/test2:/bin/bash #定位 dn:x:1001:1001::/home/dn:/bin/bash -C 数字 前后各几行 显示zlm前后各3行 [rootlocalhost opt]# grep -C 3 zlm /etc/passwd tcpdump:x:72:72::/:/sbin/nologin test2:x:1000:1000:test2:/home/test2:/bin/bash dn:x:1001:1001::/home/dn:/bin/bash #定位 zlm:x:1002:1002::/home/zlm:/bin/bash #定位 zdm:x:1003:1003::/home/zdm:/bin/bash zxc:x:1010:1010::/home/zxc:/bin/bash nginx:x:1012:1012::/home/nginx:/sbin/nologin -e 多个条件 逻辑或 -E匹配扩展正则表达式 -f 匹配两个文件相同的内容按顺序以第一个文件为准 [rootlocalhost opt]# cat 111.txt qq 112 123 [rootlocalhost opt]# cat 222.txt 123 #匹配两个文件相同的内容按顺序以第一个文件为准 [rootlocalhost opt]# grep -f 111.txt 222.txt 123 -r 递归目录 目录下的文件内容软连接不包含在内   #在opt目录下查找关于123123是内容 [rootlocalhost opt]# grep -r 123 /opt/ /opt/xy102.txt:123 /opt/222.txt:123 /opt/test.txt:123 /opt/dec/test.txt:123 /opt/dec/xy102.txt:123 /opt/111.txt:123 -R递归目录 目录下的文件内容软连接包含在内   二、sort sort以行为单位对文件的内容进行排序 格式 sort 选项 参数 或者使用cat file | sort 选项 -f 忽略大小写先排数字字母按顺序默认就会把大写字母排在最前面 [rootlocalhost opt]# cat 111.txt qq 112 BBB 122 AAA bbb 忽略大小写先排数字字母按顺序 [rootlocalhost opt]# sort -f /opt/111.txt 112 122 AAA BBB bbb qq -b 忽略每行之前的空格先排数字字母按顺序不是把空格删除只是依然按照数字和字母的顺序排列 [rootlocalhost opt]# cat /opt/111.txt qq 112 123 122123 bbb #忽略空格先排数字字母按顺序 [rootlocalhost opt]# sort -b /opt/111.txt 112 122 123123 bbb qq -n 按照数字进行排序 字母在前数字往后排 [rootlocalhost opt]# sort -n /opt/111.txt bbb qq 112 122 123 123 -r 反向排序 [rootlocalhost opt]# cat -n /opt/111.txt 1 qq2 1123 1234 1225 1236 bbb7 #反向输出文本内容 [rootlocalhost opt]# cat -n /opt/111.txt | sort -r7 6 bbb5 1234 1223 1232 1121 qq -u 表示相同的数据只显示1行 [rootlocalhost opt]# cat 111.txt qq 112 123 122 123 qq[rootlocalhost opt]# sort -u 111.txt 112 122 123 qq -o 把排序后的结果转存到指定的文件 [rootlocalhost opt]# cat -n /etc/passwd | sort -rno /opt/cp.txt 三、uniq uniq去重 去除连续的重复的行只显示一行 选项 -c 统计连续重复的行的次数合并连续重复的行 [rootlocalhost opt]# cat 111.txt qq 112 BBB 122 122 122 AAA BBB BBB bbb [rootlocalhost opt]# uniq -c 111.txt 1 qq1 1121 BBB3 1221 AAA2 BBB1 bbb -u显示仅出现一次的行包括不是连续出现的重复行 [rootlocalhost opt]# cat 111.txt qq 112 BBB 122 122 122 AAA BBB BBB bbb [rootlocalhost opt]# uniq -u 111.txt qq 112 BBB AAA bbb -d 仅显示连续重复的行不包括非连续出现的内容 [rootlocalhost opt]# cat 111.txt qq 112 BBB 122 122 122 AAA BBB BBB bbb [rootlocalhost opt]# uniq -d 111.txt 122 BBB 4、tr tr用来对标准输出的字符进行替换压缩和删除 格式tr 选项 参数 -c 保留字符集1的字符其他的字符用字符集2进行替换 echo abc | tr -c ab a输出结果 abaa -d删除字符集中的一部分 [rootlocalhost ~]# echo abc | tr -d ab c -s替换 把字符集1的部分替换成字符集2的部分连续重复出现的字符压缩成一个字符串 [rootlocalhost ~]# echo aaabc | tr -s a abc [rootlocalhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [rootlocalhost ~]# echo $PATH | tr -s : ; /usr/local/sbin;/usr/local/bin;/usr/sbin;/usr/bin;/root/bin 四、cut cut快速裁剪 对字段进行采取和裁剪 -d 指定分隔符默认的分隔符是tab键 不需要使用-d -f 对字段进行截取指定输出段的内容 裁剪etc/passwd以分割符的1-3行 1,3截取1行和3行 [rootlocalhost ~]# head -n 1 /etc/passwd | cut -d : -f 1-3 root:x:0 [rootlocalhost ~]# head -n 1 /etc/passwd | cut -d : -f 1,3 root:0 [rootlocalhost ~]# head -n 1 /etc/passwd root:x:0:0:root:/root:/bin/bash -b以字节为单位进行截取 -c 以字符为单位进行截取 -complement 输出的时候排除指定的字段 -output-delimiter更改输出内容的分隔符 输出的时候以分割符的不显示第2个 [rootlocalhost ~]# head -n 1 /etc/passwd | cut -d : --complement -f 1 x:0:0:root:/root:/bin/bash [rootlocalhost ~]# head -n 1 /etc/passwd | cut -d : --output-delimiter -f 1-5 rootx00root 五、split split 大文件拆分成若干小的文件 -l 按行来进行分割 [rootlocalhost opt]# split -l 20 test1.txt 123 将test1.txt文件 按20进行分割 -b 按照大小来进行分割   1、cat合并和paste合并有什么区别 cat合并是上下 paste是左右合并 [rootlocalhost opt]# cat 3.txt 11111111111111 aaaaa [rootlocalhost opt]# paste 1.txt 2.txt 4.txt [rootlocalhost opt]# cat 4.txt 11111111111111 aaaaa 2、 统计当前主机的连接状态 [rootlocalhost opt]# ss -antp | grep -v ^State | cut -d -f 1 | sort | uniq -c2 ESTAB15 LISTEN #grep -v ^State取反除了以State开头的其他所有 #cut -d -f 1 以空格为分割符裁剪第一行 # sort 排序 #uniq -c 将连续重复的去重并显示数量 六、正则表达式 正则表达式由一类特殊字符以及字符所编写的一个模式模式又来匹配文件当中的内容字符 校验我们输入的内容是否满足规定格式长度等等要求 主要用来匹配文本内容命令的结果 通配符只能用于匹配文件名和目录名不能匹配文件的内容和命令结果 正则表达式基本正则表达式 1、元字符字符匹配 . 任意单个字符也可以是一个汉字每个字符都看一遍 \ 转义符恢复其本意使用单引号或者双引号 引起来   []匹配指定范围内的任意单个字符或者数字 [] 中可以匹配多个 例如空格 大小写字母放在一起每个条件不需要使用空格隔开 在正则表达式中更精确 [^]取反 ^# 匹配以#为开头 ^a以a为开头 ^$表示空行 grep ^$ test1.txt 匹配空行 2、次数匹配 次数匹配匹配字符出现的次数 *匹配前面的字符任意次0次也可以。贪婪模式尽可能的匹配 .*匹配前面的任意字符至少要有1次匹配所有。 \? 匹配前面的字符0次或者1次可有可无 \ 匹配前面的字符至少出现一次 \ {n\}匹配前面的字符n次 可以小于n但不能大于n而且前面的字符必须连续出现。a \{2\} \{m,n\}匹配前面的字符至少m次至多n次且字符要连续出现超出的不在匹配范围 \{,n\}匹配前面的字符最多n次 \{n,\}匹配前面的字符最少n次 3、位置锚定 ^:以什么开头 行首 ^1以1为开头 $:以什么结尾 行尾 4$以4为结尾 ^root$这一行只能有root ^$ 空行 \或者\b 词首锚定匹配单词的左侧连续的数字字母下划线都算单词内部 \或者\b 词尾锚定用于匹配单词的右侧 hello-123 词首hello\b 或者 hello-\b 词尾\b123 或者\b-123 \broot\b 匹配整个单词root。空格隔开的也算整个单词 与^root$区别整个一行只有这个单词 4、分组和逻辑关系 分组:()表示分组 或者\| 逻辑或的意思   七、 扩展正则表达式 扩展正则表达式基本正则表达式的选项前的 \ 全部不用 特殊\b需要加\  grep -E 扩展正则或者egrep不需要E 实例:打印2.txt文件中的电话号码 [rootlocalhost test1]# cat 2.txt | grep -E (\([0-9]\)|[0-9])[ -]?[0-9]-[0-9] 小练习 1、显示/etc/passwd中以sh结尾的行; [rootlocalhost test1]# cat /etc/passwd | grep -E sh$ 2、查找/etc/inittab中含有“以s开头并以d结尾的单词”模式的行 [rootlocalhost test1]# cat /etc/inittab | grep -E (\bs[a-z]*d\b) 3、查找ifconfig命令结果中的1-255之间的整数 [rootlocalhost /]# ifconfig | grep -E \b([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b 4、在/etc/passwd中取出默认shell为bash的行 [rootlocalhost test1]# cat /etc/passwd | grep -E bash$ 5、高亮显示passwd文件中冒号及其两侧的字符 [rootlocalhost test1]# cat /etc/passwd | grep -E .?:*:. 八、 sed 1、sed文件三剑客之二 sed 是有一种流编辑器一次处理一行内容 处理方式如果只是展示会放在缓冲区模式空间展示结束之后会从模式空间把操作结果删除 处理模式一行一行处理处理完当前行才会处理下一行直到文件的末尾 sed的命令格式以及操作选项 sed -e 操作选项 -e 操作选项 文件1 文件2 -e 表示可以跟多个操作符只有一个操作-e可以省略 sed -e 操作符1操作符2 文件1 文件2 2、选项 -e用于执行多个操作命令 -f 在脚本中定义好了操作符然后根据脚本内容的操作符对文件进行操作 -i直接修改目标文件慎用 -n仅显示scrip处理后的结果不加-n sed会有俩个输出结果加了-n之后就会把默认的输出屏蔽只显示一个结果 3、操作符 p打印结果 r使用扩展正则表达式 s替换替换字符串 c替换替换行 y替换替换单个字符多个字符替换必须和替换内容的长度保存一致 d删除删除行 a增加在指定行的下一行插入内容 i增加在指定行的上一行插入内容 r在行后增加文件内容读取其他文件 $a在最后一行插入内容 $i在倒数第二行插入新的内容 $r读取其他文件的内容然后插入到对象文件的最后一行 4、打印功能 打印内容 [rootlocalhost opt]# sed -n p test1.txt one two three four five six seven eight nine ten 寻址打印 显示行号 [rootlocalhost opt]# sed -n test1.txt 1 2 3 4 5 6 7 8 9即显示行号又显示内容 [rootlocalhost opt]# sed -n ;p test1.txt 1 one 2 two 3 three 4 four 5 five 6 six 7 seven 8 eight 9 nine 10 ten 指定地址查找 只显示第4行 [rootlocalhost opt]# sed -n 4p test1.txt four 打印最后一行 $p [rootlocalhost opt]# sed -n $p test1.txt ten 行号范围打印   从2行打印到末尾 [rootlocalhost opt]# sed -n 2,$p test1.txt two three four five six seven eight nine ten 打印第二行和第五行[rootlocalhost opt]# sed -n 2p;5p test1.txt two five 打印奇数行和偶数行 奇数 [rootlocalhost opt]# sed -n p;n test1.txt one three five seven nine 偶数 [rootlocalhost opt]# sed -n n;p test1.txt two four six eight ten #n的作用跳过一行打印下一行 5、文本内容进行过滤 过滤并打印包含o 的行 /所要查找的内容/ [rootlocalhost opt]# sed -n /o/p test1.txt one two four 过滤并打印包含th的行 [rootlocalhost opt]# sed -n /th/p test1.txt three 使用正则表达式对文本内容进行过滤 [rootlocalhost opt]# sed -n /^root/p /etc/passwd root:x:0:0:root:/root:/bin/bash 从指定行开始打印到第一个以bash为结尾的行 从第8行打印到第一个以bash为结尾的行 [rootlocalhost opt]# sed -n 8,/bash$/p /etc/passwd sed可使用的正则表达式 * .* {n,m} {n,}{,m} ? | ()   要么以root为开头要么以bash为结尾 [rootlocalhost opt]# sed -rn /^root|bash$/p /etc/passwd root:x:0:0:root:/root:/bin/bash test2:x:1000:1000:test2:/home/test2:/bin/bash dn:x:1001:1001::/home/dn:/bin/bash zlm:x:1002:1002::/home/zlm:/bin/bash zdm:x:1003:1003::/home/zdm:/bin/bash zxc:x:1010:1010::/home/zxc:/bin/bash qwe:x:1013:1013::/home/qwe:/bin/bash gfw:x:1014:1014::/home/gfw:/bin/bash xy102:x:1015:1015::/home/xy102:/bin/bash zkm:x:1016:1016::/home/zkm:/bin/bash 6、小练习 如何免交互删除文本内容 sed方式 #-i 进入文本操作 #d删除 [rootlocalhost opt]# sed -i d test1.txt cat方式 cat /dev/null test1.txt 7、 sed 的删除操作 删除指定行 删除第三行并打印剩下的行 [rootlocalhost opt]# sed -n 3d;p test1.txt one two four five six sevend eight nine ten 除了第三行其他都删除 [rootlocalhost opt]# sed -n 3!d;p test1.txt three 除了第3行到第6行其他都删除 [rootlocalhost opt]# sed -n 3,6!d;p test1.txt three four five six 匹配字符串的方式删除行 删除包含o的行 [rootlocalhost opt]# sed /o/d test1.txt three five six seven eight nine ten 删除从one到six的行 [rootlocalhost opt]# sed /one/,/six/d test1.txt seven eight nine ten 如何免交互的方式删除空行 [rootlocalhost opt]# cat test1.txt one two three fourfive six seven eight nine ten[rootlocalhost opt]# grep -v ^$ test1.txt one two three four five six seven eight nine ten[rootlocalhost opt]# cat test1.txt | tr -s \n one two three four five six seven eight nine ten[rootlocalhost opt]# sed /^$/d test1.txt one two three four five six seven eight nine ten8、主要功能s替换字符串   替换每行第一个root [rootlocalhost opt]# sed -n s/root/test/p /etc/passwd test:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/test:/sbin/nologin 替换每行第二个root [rootlocalhost opt]# sed -n s/root/test/2p /etc/passwd root:x:0:0:test:/root:/bin/bash 替换每行所有root [rootlocalhost opt]# sed -n s/root/test/gp /etc/passwd test:x:0:0:test:/test:/bin/bash operator:x:11:0:operator:/test:/sbin/nologin 添加#实现注释功能 注释所有行 [rootlocalhost opt]# sed -n s/^/#/p test1.txt #one #two #three #four # # #five #six #seven #eight #nine #ten 注释4到5 [rootlocalhost opt]# sed -n 4,5 s/^/#/p test1.txt #four # 注释4和7行 [rootlocalhost opt]# sed -n 5 s/^/#/p;7 s/^/#/p test1.txt # #five 首字母变大写   u 转换首字母大写的特殊符合\转义符 将首字母改为小写 [rootlocalhost opt]# sed s/[a-z]/\u/ test1.txt One Two Three FourFive Six Seven Eight Nine Ten将所有的字母都替换成大写s/[a-z]/\u/g [rootlocalhost opt]# sed s/[a-z]/\u/g test1.txt ONE TWO THREE FOURFIVE SIX SEVEN EIGHT NINE TEN l把大写转换成小写的特殊字符\转义符 [rootlocalhost opt]# sed s/[A-Z]/\l/ test2.txt aAAA bB cC 所有替换 s/[A-Z]/\l/g [rootlocalhost opt]# sed s/[A-Z]/\l/g test2.txt aaaa bb cc 整行替换 [rootlocalhost opt]# sed /one/c 1 test1.txt 1 two three four five six seven eight nine ten 9、单个替换 将/etc/sysconfig/network-scripts/ifcfg-ens33 的ip地址修改为192.168.10.100 [rootlocalhost opt]# sed /^IP/c IPADDR192.168.10.100 /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet DEVICEens33 ONBOOTyes BOOTPROTOstatic #替换结果 IPADDR192.168.10.100 NETMASK255.255.255.0 GATEWAY192.168.10.2 DNS1218.2.135.1 y单字符替换   将所有的t替换成1 w替换成2 o 替换成3 [rootlocalhost opt]# sed y/two/123/ test1.txt i 3ne 123 1hree f3ur five six seven eigh1 nine 1en 10、 增加功能 #使用a在第3行的下一行插入一个zai [rootlocalhost opt]# sed 3a zai test1.txt i one two three #新增显示内容 zai four five six seven eight nine ten #使用i在第5行的上一行插入一个ba [rootlocalhost opt]# sed 5i ba test1.txt i one two three four #新增显示内容 ba five six seven eight nine ten #使用r将test2.txt的内容插入到test1.txt文件中two的下方 [rootlocalhost opt]# sed /two/r test2.txt test1.txt i one two #新增显示内容 AAAA BB CCthree four five six seven eight nine ten 使用$a将内容插入在文本内容的最后一行 [rootlocalhost opt]# sed $a zai test1.txt i one two three four five six seven eight nine ten #新增显示内容 zai 使用$i将内容插入在文本内容的倒数第二行 [rootlocalhost opt]# sed $i zai test1.txt i one two three four five six seven eight nine#新增显示内容 zai ten 使用$r将test2.txt的内容插入到test1.txt文件中最后一行 [rootlocalhost opt]# sed $r test2.txt test1.txt i one two three four five six seven eight nine ten AAAA BB CC 11、 sed进阶部分 使用sed对字符串和字符的位置进行互换 #字符串先进行分组分组之后进行位置排序 [rootlocalhost opt]# echo ABC | sed -r s/(A)(B)(C)/\1\3\2/ ACB [rootlocalhost opt]# echo ABC | sed -r s/(A)(B)(C)/\3\1\2/ CAB [rootlocalhost opt]# echo ABC | sed -r s/(A)(B)(C)/\2\1\3/ BAC [rootlocalhost opt]# echo zhangxiaoming | sed -r s/(zhang)(xiao)(ming)/\3\1\2/ mingzhangxiao对字符位置进行互换先分组使用.代替字符也可以直接使用原字符然后再进行排序 [rootlocalhost opt]# echo 猪小明 | sed -r s/(.)(.)(.)/\3\2\1/ 明小猪 取出.jar之前的版本号  [rootlocalhost opt]# cat test3.txt ant-1.9.7.jar ant-launcher-1.9.7.jar antlr-2.7.7.jar antlr-runtime-3.4.jar aopalliance-1.0.jar archaius-core-0.7.6.jar asm-5.0.4.jar aspectjweaver-1.9.5.jar bcpkix-jdk15on-1.64.jar bcprov-jdk15-1.46.jar bcprov-jdk15on-1.64.jar checker-compat-qual-2.5.5.jar[rootlocalhost opt]# cat test3.txt | grep -E [0-9]\. 使用grep命令  使用sed命令 #先进行分组分成3个组 .*代表任意长度的字符串 版本号位于第二组 取出第2组即可 [rootlocalhost opt]# cat test1.txt | sed -r s/(.*)-(.*)(.jar)/\2/ test3.txt 1.9.7 1.9.7 2.7.7 3.4 1.0 0.7.6 5.0.4 1.9.5 1.64 1.46 1.64 2.5.5 12、 打印指定时间内的日志 [rootlocalhost opt]# sed -n /Jun 21 13:50:01/,/Jun 21 14:01:01/p /var/log/messages 13、使用脚本的形式结合sed命令把pxe自动装机做一个shell脚本 #关闭防火墙以及安全机制 systemctl stop firewalld setenforce 0 #安装TFTP,xinetd服务并将服务启动 yum -y install tftp-server xinetd systemctl start tftp systemctl enable tftp systemctl start xinetd.service systemctl enable xinetd.service #vim /etc/xinetd.d/tftp管理tftp服务配置 sed -i s/yes/no/g /etc/xinetd.d/tftp #编辑文本内容 #wait no #修改成 no 可以并行安装多台客户机 #disable no #修改成 no 后台启动tftp重启两个服务 systemctl restart tftp systemctl restart xinetd 配置DHCP 先安装dhcp服务 yum -y install dhcp 对dhcp服务进行配置复制dhcp样板配置文件覆盖dhcp实际的配置文件 yes | cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf sed -i s/#ddns-update-style none;/ddns-update-style none;/ /etc/dhcp/dhcpd.conf sed -i 15a next-server 192.168.10.20; /etc/dhcp/dhcpd.conf sed -i 16a filename pxelinux.0; /etc/dhcp/dhcpd.confsed -i s/subnet 10.254.239.0 netmask 255.255.255.224 {/ subnet 192.168.10.0 netmask 255.255.255.0 {/ /etc/dhcp/dhcpd.conf sed -i s/range 10.254.239.10 10.254.239.20;/range 192.168.10.100 192.168.10.110;/ /etc/dhcp/dhcpd.conf sed -i s/rtr-239-0-1.example.org, rtr-239-0-2.example.org;/192.168.10.20;/ /etc/dhcp/dhcpd.confsystemctl restart dhcpd #挂载光盘 mount /dev/cdrom /mnt/ cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/ cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ yum -y install syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ yum -y install vsftpd mkdir /var/ftp/centos7 cp -rf /mnt/* /var/ftp/centos7 systemctl restart vsftpdmkdir /var/lib/tftpboot/pxelinux.cfg cat /var/lib/tftpboot/pxelinux.cfg/default EOF default auto prompt 0label auto kernel vmlinuz append initrdinitrd.img methodftp://192.168.10.20/centos7 ksftp://192.168.10.20/ks.cfglabel linux text kernel vmlinuz append initrdinitrd.img methodftp://192.168.10.20/centos7 label linux rescue kernel vmlinuz append initrdinitrd.img methodftp://192.168.10.20/centos7 EOF#无人值守部分 yum -y install system-config-kickstart cat /var/ftp/ks.cfg EOF #platformx86, AMD64, or Intel EM64T #versionDEVEL install keyboard us url --urlftp://192.168.10.20/centos7 lang zh_CN auth --useshadow --passalgosha512 graphical firstboot --disable selinux --disabled firewall --disabled network --bootprotodhcp --deviceens33 reboot timezone Asia/Shanghai bootloader --locationmbr zerombr clearpart --all --initlabel part /boot --fstypexfs --size512 part /home --fstypexfs --size4096 part swap --fstypeswap --size4096 part / --fstypexfs --grow --size1 %packages base core desktop-debugging dial-up directory-client fonts gnome-desktop guest-desktop-agents input-methods internet-browser java-platform multimedia network-file-system-client print-client x11 binutils chrony ftp gcc kernel-devel kexec-tools make open-vm-tools patch python %end EOF 九、awk 文件三剑客最后一个awk wk 按行取列 awk默认分割符空格tab键多个空格自动压缩成一个。 awk的工作原理根据指令信息逐行的读取文本内容然后按照条件进行格式化输出。 1、awk的选项 -F 指定分隔符默认就是空格 -v 变量赋值 2、内置变量 $#:(#表示数字) 按行需要取出的第几个字段 $0打印所有展示所有的文本内容默认 NR需要处理的行号 NF处理行的字段个数特殊的$NF表示当前行的最后一个字段几个字段 FSFS和F是一样的都是指定分隔符-FFS: OFS指定输出内容的分隔符 RS行分割符可以根据RS的设置把文件内容切割成多个记录也可以改变行的分隔符默认是\n回车换行。 格式 awk -F ‘操作符动作’处理对象 -F指定分隔符如果是空格可以不加 动作默认就是打印 [rootlocalhost opt]# awk {print} awk.txt #print后没加东西默认$0 one two three four five six eight nine ten [rootlocalhost opt]# awk {print NR} awk.txt #仅打印行号 1 2 3 4 [rootlocalhost opt]# awk {print NR,$0} awk.txt #不仅打印行号也显示内容 1 one two three 2 four five six 3 eight nine ten 4 打印指定行 [rootlocalhost opt]# awk NR2{print} awk.txt #打印指定的第2行 four five six [rootlocalhost opt]# awk NR2,NR5{print} awk.txt #打印2到5行 four five six eight nine ten a b c d e f [rootlocalhost opt]# awk NR2;NR5{print} awk.txt #打印第2和第5行 four five six d e f [rootlocalhost opt]# awk NR%20{print} awk.txt #打印偶数行 four five six a b c g h i m i n [rootlocalhost opt]# awk NR%21{print} awk.txt #打印奇数行 one two three eight nine ten d e f j k l 指定分隔符 -F要分割符   #以为分割符查找1到3行的第3列 [rootlocalhost opt]# awk -F: NR1,NR3{print $3} /etc/passwd 0 1 2 #打印第2行和第3行的第1列 [rootlocalhost opt]# awk -F: NR2{print $1};NR3{print $1} /etc/passwd bin daemon 3、awk怎么使用文本过滤 #过滤root也可以使用正则表达式 [rootlocalhost opt]# awk /root/{print} /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin#正则表达式 [rootlocalhost opt]# awk /bash$/{print} /etc/passwd root:x:0:0:root:/root:/bin/bash test2:x:1000:1000:test2:/home/test2:/bin/bash dn:x:1001:1001::/home/dn:/bin/bash zlm:x:1002:1002::/home/zlm:/bin/bash zdm:x:1003:1003::/home/zdm:/bin/bash xy102:x:1004:1004::/home/xy102:/bin/bash zzz:x:1006:1005::/home/zzz:/bin/bash zxc:x:1010:1010::/home/zxc:/bin/bash qqq:x:1011:1011::/home/qqq:/bin/bash 4、BEGIN模式进行打印 格式awk BEGIN{...};{...};END{...} 文件 BEGIN{...}表示预先的条件执行awk命令前的初始化操作 第二个{...}处理条件如何对初始值进行操作 END{...}处理完之后的操作一般都是打印 #BEGIN与END连用 有初始条件 [rootlocalhost opt]# awk BEGIN{x1};{x};END{print x} awk.txt 9 #统计行数 [rootlocalhost opt]# awk BEGIN{x0};{x};END{print x} awk.txt 8 #单独使用BEGIN一次性执行不需要处理条件 #乘法 [rootlocalhost opt]# awk BEGIN{print 10*2} awk.txt 20 #幂运算 [rootlocalhost opt]# awk BEGIN{print 2**3} awk.txt 8 #次方 [rootlocalhost opt]# awk BEGIN{print 2^3} awk.txt 8 5、变量赋值 将外面的a的值传到awk里面进行赋值加一个 -v read -p 输入第一个数 num1 read -p 输入第二个数 num2 sum$(awk -v num1$num1 -v num2$num2 BEGIN{print num1^num2}) echo $sum 结果   [rootlocalhost opt]# sh awk.sh 输入第一个数2 输入第二个数3 8 6、不常用选项了解   使用OFSS将换成 [rootlocalhost opt]# awk -v FS: -v OFS {print $1,$3} /etc/passwd root0 bin1 daemon2 adm3 7、 使用awk 进行条件判断打印 打印第三列大于999打印所有 [rootlocalhost opt]# awk -F: $3999{print $0} /etc/passwd nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin test2:x:1000:1000:test2:/home/test2:/bin/bash dn:x:1001:1001::/home/dn:/bin/bash zlm:x:1002:1002::/home/zlm:/bin/bash zdm:x:1003:1003::/home/zdm:/bin/bash xy102:x:1004:1004::/home/xy102:/bin/bash zzz:x:1006:1005::/home/zzz:/bin/bash zxc:x:1010:1010::/home/zxc:/bin/bash qqq:x:1011:1011::/home/qqq:/bin/bash nginx:x:1012:1012::/home/nginx:/sbin/nologin 条件判断第三列等于1000并打印所有 [rootlocalhost opt]# awk -F: ($31000){print $0} /etc/passwd test2:x:1000:1000:test2:/home/test2:/bin/bash 8、awk的三元表达式 if else 语句   格式awk -F: num$3$4? $3:$4; 转换成if语句ifelsefiif$3$4thenecho $3elseecho $4fi 9、 awk的精确筛选 $n()用于比较数值 $n~字符串 表示该字段包含某个字符串 $n!~字符串 该字段不包含某个字符串 $n字符串 该字段等于这个字符串 $n!字符串 该字段不等于这个字符串 $NF 代表最后一个字段 #打印第7列包含bash这个字段的行取得是行的第一列和最后一列以作为分隔符 [rootlocalhost opt]# awk -F: $7~bash {print $1,$NF} /etc/passwd #取出第1列第2列和第3列没有范围表示的只有什么和什么 [rootlocalhost opt]# awk -F: $7~bash {print $1,$2,$3} /etc/passwd root x 0 test2 x 1000 dn x 1001 zlm x 1002 zdm x 1003 xy102 x 1004 zzz x 1006 zxc x 1010 qqq x 1011 #精确匹配带有/bin/bash的字符串后面跟着的必须是完整的字符串错一个字符也不能匹配到 [rootlocalhost opt]# awk -F: $7/bin/bash {print $1,$2,$3} /etc/passwd root x 0 test2 x 1000 dn x 1001 zlm x 1002 zdm x 1003 xy102 x 1004 zzz x 1006 zxc x 1010 qqq x 1011 10、逻辑关系   且和或 第一列等于dn且第七列等于/bin/bash 逻辑且 $1dn可以使用括起来 [rootlocalhost opt]# awk -F: $1dn $7/bin/bash {print $1,$7} /etc/passwd dn /bin/bash 逻辑或 [rootlocalhost opt]# awk -F: $1dn || $7/bin/bash {print $1,$7} /etc/passwd root /bin/bash test2 /bin/bash dn /bin/bash zlm /bin/bash zdm /bin/bash xy102 /bin/bash zzz /bin/bash zxc /bin/bash qqq /bin/bash 11、curl curl是一个功能强大的命令 获取和发送数据 curl 域名/ip地址 获取网页的内容并且输出 curl www.baidu.com curl 192.168.10.20 -O 下载文件到本地 -o 将文件下载到指定的路径 -x 发生post请求 -i 可以获取web软件的版本服务端没有隐藏 按行取列盘不包含那个行的处理 12、小练习 awk取小数点几位以及小数运算怎么取整数   num$(awk BEGIN{printf %.2f,1.222*1.222}) 取小数点后两位但是会四舍五入 [rootlocalhost nginx]# echo $num 1.49 只取整数部分 [rootlocalhost nginx]# num$(awk BEGIN{printf %.F,1.2221.222}) [rootlocalhost nginx]# echo $num 2 连续取出test1.txt文件中的域名部分 [rootlocalhost opt]# cat test1.txt 1 www.kgc.com 2 mail.kgc.com 3 ftp.kgc.com 4 linux.kgc.com 5 blog.kgc.co主机名取出来 [rootlocalhost opt]# cat test1.txt | awk -F [ .] {print $2} www mail ftp linux blog
http://www.w-s-a.com/news/445648/

相关文章:

  • 网站开发进修网站做301将重定向到新域名
  • 公司网站开发费用账务处理ucenter wordpress
  • 六站合一的优势少儿编程机构
  • 软件开发与网站开发学做美食网站哪个好
  • 网站搜索 收录优化百度推广页面投放
  • 响应式网站的优点浙江省网站域名备案
  • 网站安全 扫描深圳被点名批评
  • 在哪个网站可以一对一做汉教网站优化策略
  • 龙岩做网站的顺企网宁波网站建设
  • 昆山网站建设河北连锁餐厅vi设计公司
  • 新蔡县住房和城乡建设局网站南昌租房网地宝网
  • 南宁做网站费用iis编辑网站绑定
  • 家用宽带做网站服务器建网站费用明细
  • 电商 网站 降低 跳出率 措施 效果书画院网站模板
  • 兰州移动官网网站建设上海工商网上公示系统
  • 在招聘网站里做电话销售免费空间可以上传网站吗
  • 梅州建站怎么做中国建设银行官网下载
  • 网站静态化设计广州网站备案方案
  • 西安网络技术有限公司网站扬中网站建设方案
  • 青海省教育厅门户网站wordpress core
  • idc科技公司网站模板蜜雪冰城网络营销案例分析
  • 微信与网站对接手机软件怎么做
  • 户县网站建设珠海专业制作网站
  • 麦当劳的网站优化建议猎头公司工作怎么样
  • 合肥地区网站制作网页浏览器打不开
  • 做网站的不给ftp网站如何做触屏滑动
  • wordpress statraq重庆百度优化
  • 企业网站官网英文WordPress站点切换为中文
  • 服装公司网站定位一点号自媒体平台
  • 密云微网站建设汽车之家手机官网首页