shell
文章平均质量分 61
如何在5年薪百万
202110,如何5年内年薪百万
201901,如何3年内拿到50+,如果快速提升价值,拿到50k+的薪水
201801,如何在3年内拿到30+,我一工作6年,后面3年我要思考如何拿到30+
展开
-
【shell实战案例】批量注释nginx的重定向并进行文件对比
线上配置中nginx存在大量 return 301重定向的配置,根据必须注释。文件夹下有大量文件,每个文件都有很多行。由于登录服务器有点麻烦,希望通过shell脚本处理。这个命令比较简陋,给所有匹配到的行前面加#。如果这一行本来就注释了,可能会重复注释。大家根据业务实际情况使用。对比修改后的文件夹和备份的文件夹,这个命令会对比两个文件夹所有文件内容,比较清晰的给出结果。原创 2023-01-12 14:42:32 · 760 阅读 · 1 评论 -
shell三剑客grep、sed、awk精讲
总览grep 文本过滤器sed 流编辑器awk 报告生成器grep基本语法以行为单位过滤通过匹配规则,对每一行进行匹配查找进行filter操作,匹配上的输出改行,否则丢弃改行## 方式1grep [option][pattern][file1,file2,file3]## 方式2(常用)comand | grep pattern选项含义-v取反,不包含某一行信息(常用)-i忽略大小写-n显示行号-r递归搜索-E支持正则原创 2021-11-27 18:27:36 · 752 阅读 · 0 评论 -
shell find命令使用简介
find命令基础语法find [path] [optional] [operation]path相对路径绝对路径optional选项含义-name根据文件名查找(常用)-iname同上,忽略大小写-perm根据文件权限查找-prune排除查找某些目录-user/group根据文件所属user,group- mtime -n | +n根据更改毫秒数(常用)-size -n +n按照文件大小-type按照文件类型原创 2021-11-27 18:16:43 · 1102 阅读 · 0 评论 -
shell进阶指南
一、变量替换语法含义${变量#pattern}从开头匹配,删除0第一个匹配到字符删除。双#表示删除0匹配到的最后一个字符呢删除${变量%patther}从尾部开始匹配,从尾部开始删除,其他同上${变量/oldstr/newstr}匹配第一个替换,双//表示全部替换var1=${variable_1#*ov}var2=${variable_1##*ov}echo "# *ov匹配结果:" $var1echo “## *ov匹配结果:” $var2v原创 2021-11-27 18:06:39 · 404 阅读 · 0 评论 -
shell简易入门指南
二、基础语法2.1 变量不能以数字开头区分大小写变量、等号、值不能有空格。值的内部有空格可以用引号括起来,例如 var1=“a 2 c”#!/bin/bash指的是当前脚本通过bash命令解释和执行shell中不加local修饰的变量都是全局变量,比如函数内部声明的变量,其他函数中也可以使用2.2 位置变量位置变量参数含义$nn是数字,$0代表脚本本身,$0$9代表第19个参数。10个以上的参数用大括号包含 ${10}$@接收所有参数$*接收所原创 2021-11-27 17:54:24 · 388 阅读 · 0 评论 -
[100 tips about shell] shell中变量拼接输出字符串、单引号、双引号
文章目的shell脚本中会涉及很多变量结果拼接的场景,这篇文章相对其中的场景探讨和总结。变量拼接字符串时变量之间可以直接拼接变量拼接字符串可以通过${变量名} 限定变量范围可以用引号分割变量和字符串echo $var1world echo $var1"world"helloworldecho ${var1}worldhelloworld变量结果拼接单引号双引号单引号和双引号区别单引号内部变量会被当做字符串双引号内部变量依然会被解析其他区别略[root@se原创 2021-11-27 17:35:29 · 5020 阅读 · 0 评论 -
[100 tips about shell] Shell中的变量作用域,全局和局部变量
本文目的shell中的变量作用域是什么?是否有全局变量和局部变量?这个问题很多人可能都会犯错,下面一起看一下真相结论shell中没有变量作用域,一旦声明就全局可用。或者认为所有变量都是全局变量。使用local关键字修饰的变量,可以作为局部变量。验证#!/bin/bash# 脚本上方声明的变量var1="hello world"function test1{ # 脚本内部声明变量 var2=87 echo "test1 $var2"}ec原创 2021-11-27 15:43:44 · 313 阅读 · 0 评论 -
[100 Tips About Shell] Shell中是如何处理换行符的
背景命令行中需要\续行,shell脚本内部需要吗?shell需要某个符号作为结尾吗?比如java中的分号,javascript中可用分号可不用shell脚本 一行命令中途航换行写 shell 如何处理今天我们就搞明白这个问题命令行中换行符使用学习linux时,我们有如下两种经验敲击回车时会触发命令执行。命令太长需要通过 反斜杠\ 来告诉linux下一条命令是当前命令的继续使用上箭头拿到上一条命令时发现,最终执行的命令之间其实是没有换行符的。直到最后遇到 -l后的换行符开始执行命原创 2021-11-27 15:32:49 · 1924 阅读 · 0 评论 -
执行shell脚本三种方法的区别:(sh、exec、source)
一、概念对比sh 方式使用$ sh script.sh执行脚本时,当前shell是父进程,生成一个子shell进程,在子shell中执行脚本。脚本执行完毕,退出子shell,回到当前shell。./script.sh与 sh script.sh等效。source方式使用$ source script.sh方式,在当前上下文中执行脚本,不会生成新的进程。脚本执行完毕,回到当前shell...原创 2019-06-10 10:14:06 · 14930 阅读 · 0 评论 -
Shell和Bash中的三元运算符,控制log打印时间
三元运算符 ?echo "显示启动日志"Tomcat_Home=/home/bian/tomcat-bms/parm=$2timeout $((parm>0?parm:5)) tail -f $Tomcat_Home/logs/catalina.out.`date +%Y-%m-%d`exit 0根据传入的第2个参数n,如果n大于0则执行n秒,否则打印5秒三元运算符 “:-...原创 2019-06-19 17:00:48 · 8856 阅读 · 0 评论 -
Shell 用变量的值作为新的变量名,eval命令的简单解释
背景我为什么有这个需求?我有三台服务器分别是server1,server2,server3,我需要写一个脚本在三台主机运行的时候分别执行不同的参数。server1=close sth on server3server2=close sth on server3server3= close sth on server3我的期待:sh `python \$$(hostname) 参...原创 2019-06-14 11:33:38 · 5249 阅读 · 1 评论 -
shell script中的$*和$@的作用和区别
结论$* 和 $@在不加双引号的时候是完全一样的,都是循环获取命令行的参数“∗"和"*" 和 "∗"和"@” 加了双引号后,前者将所有参数拼接后作为一个变量。后者将所有参数循环接收后,加上双引号。测试测试脚本#!/bin/bashfor param in $*;do echo "\$* Parame...原创 2019-06-06 14:12:15 · 1457 阅读 · 0 评论