首页 > 系统服务 > 详细

Linux Shell基线配置相关操作

时间:2019-01-03 12:47:32      阅读:161      评论:0      收藏:0      [点我收藏+]

一、输入解析类

1.1 echo解析tab和换行

问题描述:echo默认是原样输出字符串,并不解析\t和\n等反斜杠字符,如下图所示。我们希望echo能解析\t和\n等字符。

技术分享图片

处理办法:可以使用-e指示echo识别反斜杠。

技术分享图片

 

1.2 cat将变量写入文件

问题描述:我们经常需要将变量写到配置文件,比如将java相关的几个变量写到~/.profile,追加多行cat是最方便的但cat默认会在插入时解析变量,如下图所示。我们希望就是原样写入而不自动解析变量。

技术分享图片

处理办法:可通过给EOF加上单引号来指示cat不要解析变量。

技术分享图片

参考:https://blog.csdn.net/u010154760/article/details/45955797

 

二、输出查找类

2.1 grep查找进程并过滤查找命令本身

问题描述:我们经常使用ps -ef | grep something的语句去查找进程(以便进一步获取pid等),但此时grep本身也会被打印出来,如下图所示。我们希望grep语句本身也被过滤掉。

技术分享图片

处理办法:使用grep -v grep将grep语句去掉

技术分享图片

 

2.2 grep打印匹配行的前后几行

问题描述:我们使用grep查找时默认只打印匹配行,这种实现是合理的,但有时候匹配行与前后部份是强关联的我们也想获取。

技术分享图片

处理办法:我们可以使用-A num指示打印匹配行的后几行,使用-B num指示打印匹配行的前几行。

技术分享图片

 

2.3 sed去除块注释

问题描述:在读取tomcat等配置文件时,如果只是直接grep那查找出的内容可能其实是在块注释之中,该项配置其实并不生效。我们希望能先将配置文件中先将所有注释先去除掉。

技术分享图片

处理办法:此时可以使用sed ‘/regex/d‘删除单行注释,使用sed ‘/star_line_regex/,/end_line_regex/d‘来删除掉块注释。具体到tomcat如下

cat tomcat-users.xml |sed /<!--.*-->/d | sed /<!--/,/-->/d

技术分享图片

参考:https://askubuntu.com/questions/525974/how-to-remove-comments-from-an-xml-file

 

三、其他查找

3.1 获取tomcat版本号

问题描述:tomcat的版本号并不在响应的Server头中,只显示在默认的index.jsp和默认的错误页面中,此时可以通过curl获取其版本号(判断tomcat有没有设置隐藏版本号)。但如果默认index.jsp被删除且自定义了错误页面我们该如何通过shell获取到tomcat的版本号呢。

技术分享图片

处理办法:此时我们还有三种办法可以获取到版本号。

第一种,解压$CATALINA_HOME/lib/catalina.jar,到org\apache\catalina\util\ServerInfo.properties文件中查看版本号。这理论上对服务没有影响,但动服务器文件的做法并不是很好。

第二种,使用java -cp $CATALINA_HOME/lib/catalina.jar org.apache.catalina.util.ServerInfo使用查看版本号。但查找版本号的服务并不一定是运行tomcat的前户,其环境变量中并不一定有java。

技术分享图片

第三种,运行$CATALINA_HOME/bin/version.sh获取版本信息。

技术分享图片

参考:https://community.rsa.com/docs/DOC-81702

Linux Shell基线配置相关操作

原文:https://www.cnblogs.com/lsdb/p/10213076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!