重启命令:
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命令取消重启
bash ./xx.sh
与 bash -c './xx.sh'
两者大家肯定肯用的是前者.或者用的最多的是: sh xx.sh
或者是 ./xx.sh
两种. 但是经常写复杂的代码或者是看别人写的代码. 就会出现这里比较复杂的调用方式. 我们来看看两者有什么区别.
BASH语言本身作为脚本语言, 功能比较强大.但是语法又特别弱. 有时候我们需要对程序的接口函数进行标准封装. 比如一般的 shell函数的返回值只有 exit code和 stdout两种. 但是我们想要得到一般意义的函数返回 ApiResponse的时候. 这个时候怎么办呢. 这篇文章就是一个基本的技巧.
BASH语言本身作为脚本语言, 功能比较强大.但是语法又特别弱. 有时候我们需要对程序的接口函数进行标准封装. 比如一般的 shell函数的返回值只有 exit code和 stdout两种. 但是我们想要得到一般意义的函数返回 ApiResponse的时候. 这个时候怎么办呢. 这篇文章就是一个基本的技巧.
有时候我们为了方便会定义一些命令的别名,alias,但是定义后的别名很难找出来是什么时候,哪个文件定义的,所以可以用这个方法
简单介绍 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 和 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