重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
场景:
在做一些自动化的脚本处理. 现在要提取Maven
工程中的pom.xml
文件中的引用jar包的版本定义.
如:
<properties>
<leo.pdf.version>1.0.2</leo.pdf.version>
</properties>
此时需要准确为别标签 properties
内部的内容. 同时还要对里面可能存在的注释进行识别. 以便进行区分过滤.最终得到一个真正的版本定义.
可能遇到的问题:
<!-- <leo.pdf.version>1.0.2</leo.pdf.version> -->
<leo.pdf.version>1.0.2</leo.pdf.version><!-- 跟在右边的注释-->
<leo.pdf.version>1.0.2</leo.pdf.version>
<!-- 第一行
第二行
跟在右边的注释
-->
<leo.pdf.version>1.0.2</leo.pdf.version><!-- 第一个注释 --> <leo.auth.version>1.0.0</leo.auth.version><!-- 第二个注释 -->
虽然这些问题可以规范大家的编码规则 .但是对于一个写自动化处理脚本来说,还是要尽可能的兼容所有的场景才是.
简单介绍 sed 的正则表达式的使用注意事项.可以看如下的几个case:
一个case:
输入: echo "abcwwwdc456" | gsed -E 's/(abc)([\w]+)(.*456)/\1替换后的字符\3/g'
输出: abc替换后的字符dc456
解释: [\w]+只匹配到了所有的`w`.没有匹配后面的`dc`,所以dc没有被替换.
原因: 实际上字符集是`\`和`w`两者的集合.并不是 **匹配数字和字母下划线** , `\`在 `[ ]`中没有特殊的含义.所以也就无法构建出`\w`
第二个case:
输入: echo "abcwwwdc456" | gsed -E 's/(abc)(\w+)(.*456)/\1替换后的字符\3/g'
输出: abc替换后的字符456
解释: `\w`被识别为了字符集. **数字和字母下划线** , 因此匹配到了w以及后面的dc
原因: 在sed的普通的`s语句`中.是支持如 `\w`,`\b`此类的字符集的.
第三个case:
输入: echo "abcwwwdc456" | ggrep -o -P --color=auto '(abc)([\w]+)'
输出: abcwwwdc456
解释: `grep`的正则的字符集的定义支持把`\w`放到`[]`中定义新的字符集. 这个更倾向于更常见的正则语法. 写起来也更自然一些
原因: 这个grep使用的是perl语法风格的正则. 因此支持这样处理.
记录了 sed 的常用命令.主要是字符串替换操作. 从其基本语法.到常用命令.以及命令使用的基本核心点进行了主要阐述.阅读此文后能够对 sed 有一个基本的理解.
基本能够覆盖常用的使用场景.
在 Linux 环境中,可以直接使用如下命令: echo "a,b,c" | sed 's/,/\n/g'
直接完成行转列的输出;但是此命令在 OS X 环境中无法正常运行;本文对此问题进行了简单的研究实践;这个是由于 OS X 使用的sed
版本与GNU
版本不太一样.其使用的是BSD
版本的sed
命令,使用brew install gnu-sed
安装命令,并且使用:gsed
来使用GNU
版本的sed
命令;
介绍了 Linux 和 Unix 不同环境下需要处理\r
相关的处理办法.可以使用sed
, tr
以及${var//origin/replace}
三种处理办法.同时说明了最后一种是效率最高的.
同时本文也对不同环境中 shell 脚本语法的不同之处进行了简单说明.以期在不同的环境里面可以正确的处理\r
的清除问题.
处理方法如下:
echo "$a" | tr -d '\r' | od -c
echo "$a" | sed $'s/\r//g' | od -c
echo "${a//$'\r'/}" | od -c
介绍了 Shell 中的变量嵌套(shell嵌套参数)情况下的变量替换方法.
#
key="keyname"
keyname="helloworld"
echo "$key" # 期望输出 "helloworld"
上面的语法无法达到此目的.本文介绍解决此问题的办法.
主要介绍了 awk 在处理文本中的重复行时的可以十分方便的定制化的过滤重复数据,或者是输出有重复的数据中的待保留数据.
简单介绍了echo
命令的基本使用方法与一些常见的使用场景;包括基本的常用的几个参数 -n
,-e
的介绍使用,同时对参数的是否使用括号的区别与最佳实践进行了说明与实践;