asp做网站的步骤,做书封面的网站,网站做中英文英文太长怎么办,wordpress拉宽shell的内容也挺多的#xff0c;虽然云原生课程主要是讲grep、sed、awk三剑客#xff0c;但是还有结合循环结构#xff0c;判断语句#xff0c;以及函数等内容。还是有点复杂的#xff0c;并且我对shell的掌握并不多#xff0c;所以写的可能并不全。当然#xff0c;如果…shell的内容也挺多的虽然云原生课程主要是讲grep、sed、awk三剑客但是还有结合循环结构判断语句以及函数等内容。还是有点复杂的并且我对shell的掌握并不多所以写的可能并不全。当然如果后面遇到了新内容这个shell系列还是会持续更新的。本来是打算云原生暑期培训就完结这个云原生俱乐部专栏的但是现在看来里面的知识点也很庞大或许以后还会有新的内容需要添加或者补充。当然我并不能预测所以能写多少算多少。不过我的更新速度还是很快的每天都能写几千字。
这一篇的主要内容是三剑客最后会做一个补充内容也就是讲一讲shell中的变量、数组和函数。反正如果要用linux的话是离不开这三剑客的因为功能强大且好用能够省很多事至于脚本的话那更不用说了。grep命令总结 1. -v反向查找verbose2. -i不区分大小写默认区分3. -n查看并显示行号4. -w精确匹配模式而不是包含5. -l显示文件中包含模式的文件名不显示具体内容6. -r递归查找目录下的文件有该模式的行7. -c查看有多少匹配的项相当于wc -l8. ^$表示空行9. a|b属于查找两个中的一个其实相当于[ab]但属于扩展正则。但是对于ab|bc这种使用[]就无法做到了10. ()表示分组后面可以加匹配次数如?匹配1次或0次匹配1到多次*匹配0到多次{1,4}精确匹配1到4次{1,}匹配1次到无数次。11. -q表示静默模式不在标准输出显示但是可以通过状态码来查看执行情况使用$?。12. ||表示前者失败后者才运行表示前者成功后者才运行使用则不管成不成功都运行。13. echo -e表示使用转义字符如\n否则不使用。sed命令总结1. s命令表示替换
2. a命令表示追加
3. c命令表示替换整行
4. i命令表示插入
5. d表示删除
6. p表示打印行
7. 直接用数字6表示第六行如6d
8. 6,9其中表示6到9行如6,9d
9. /laste/,9d,s表示从匹配的到laste行到第九行
10. 用数字表示范围可以直接跟命令但是用模式需要用分隔符
11. g表示全部范围
12. i表示不缺分大小写注意i和g这两个选项都只能用于s
13.n表示匹配的第几个才执行与g相对但同样只能作为末尾给s使用 awk命令总结1. 都使用单引号因为有$0等awk命令的特殊符号。
2. awk默认使用扩展正则表达式
3. $0表示整行$1表示第一列然后awk会每行每行匹配
4. 使用$2,$4表示的是第二列和第四列不是连续的。
5. 使用OFS作为输出字段分隔符默认是空格。
6. NF表示行的列数每行每行匹配使用$NF表示取最后一列
7. NR则记录行号从1开始计数并且是全局行号跨文件累增
8. 使用print动作结果是每行每行输出
9. 可以使用-F ,指定输入分隔符(其实也可以不用引号引起来但是使用集合的话要用引号)默认也是空格并且支持使用[]匹配多个分隔符。
10. 可以在动作print之前使用模式匹配/pattern/ {print}共同放在单引号内
11. ~表示匹配操作符一般用于$n ~ 模式正则表达式 来匹配命中的列则可以使用print打印。
12. 也可以使用NR或者NR或者NR符号来匹配行号然后可以使用表示与
13. $NF值同样适用或者说是$n也一样不建议使用$NR因为这匹配的还是列而不是对应的行。
14. 使用比较符既可以比较数字也可以匹配单词如$3 Engineer注意这与~模式不太一样。
15. 可以使用prinft来格式化输出当然也可以用print配合OFS来控制输出分隔字符。
16. FS是输入分隔符可以用-F来指定。
17. BEGIN表示在执行之前应用可以不给awk设置输入文件。
18. {}默认是每行每行的执行但是前面加上END表示后面的则是只在输入处理完毕的时候执行一次
19. 可以使用if-else结构也可以使用for循环结构也可以使用while循环可以省略结构的大括号句子之间通过相隔。21. 注意if-else语句可以用if{}else{}这样做中间不需要加分号隔开除非if语句不使用{}这样需要用分号隔开。
22. 注意使用while循环的时候需要将print count和count放在一个语句块内只用分号相隔不正确必须用{}。
23. next用于跳过当前行的处理直接下一行可以结合匹配来使用。NRFNR处理第一个文件的时候为真因为NR是跨文件的
24. sort用于按字母排序使用sort -n则是按数值排序sort -nr则是按数值反向排序
25. uniq则是进行去重由于它只会在相邻的进行去重所以需要先排序使用-c选项则是在去重结果中显示重复次数。shell补充内容本来想自己写写shel三剑客的内容的但是看了看我之前的笔记发现我要写的内容和它大差不差。而且这东西只靠记忆是不行的关键在于运用死记规则并没有什么用。所以我把重点放在了这里介绍主要是shell函数和变量。services(mysql redis nginx)可用于声明数组echo ${services[0]}则输出元素。echo ${services[]} 用于输出所有元素mysql redis nginx。echo ${!services[]} 用于输出索引0 1 2 配合变量一起使用一般将索引赋给变量然后取索引值获取数组元素。local可用于声明本地变量如果不用local的话则是全局变量。containers(${container_name:-$service})用于给数组添加元素。local arr($)可以将函数的所有参数转化为数组如果是$#则也是所有的参数但不会有空格间隔$0则是脚本名。${var:-default}如果var未设置或为空返回default上面的例子就是用了。${var:default}如果var未设置或为空设置var为default并返回${var:?Error}如果var未设置打印Error并退出。测试语句和算术语句的使用也很多[[ -z $str ]]判断为空 [[ -n $str ]]判断非空。((count))用于自增(( )) 是 Bash 的算术运算复合命令里面的变量可以不用加$取值。