一、SSH到服务器上再执行shell命令
1 | ssh -t root@192.168.111.111 \ |
二、查看或修改监控文件系统(Inotify)的watch数目
1 | 设置 |
三、查看Ubuntu操作系统位数及版本
1 | 查看Ubuntu操作系统位数 |
四、动态查看一个文件
1 | tail -f filename |
五、sudo操作手动输入密码
1 | echo "abc123_" | sudo -S sh -c "cp /home/user/hosts /etc/hosts" |
六、替换变量中字符
第一种方式
1 | COMMIT_MSG=$(COMMIT_MSG//feat/build) # 将COMMIT_MSG中所有的feat替换成build |
第二种方式: sed
1 | COMMIT_MSG=$(echo $COMMIT_MSG | sed 's/^ //g') #去除COMMIT_MSG变量中所有左边的空格 |
第三种方式: tr命令
tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
语法
1 | tr(选项)(参数) |
选项
- -c或——complerment:取代所有不属于第一字符集的字符;
- -d或——delete:删除所有属于第一字符集的字符;
- -s或–squeeze-repeats:把连续重复的字符以单独一个字符表示;
- -t或–truncate-set1:先删除第一字符集较第二字符集多出的字符。
参数
- 字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
*字符集2:指定要转换成的目标字符集。
实例
将输入字符由大写转换为小写:
1 | echo "HELLO WORLD" | tr 'A-Z' 'a-z' |
‘A-Z’ 和 ‘a-z’都是集合,集合是可以自己制定的,例如:’ABD-}’、’bB.,’、’a-de-h’、’a-c0-9’都属于集合,集合里可以使用’\n’、’\t’,可以可以使用其他ASCII字符。
更详细的tr实例
七、if指令详解(TODO)
判断文件夹是否存在
1 | 如果文件夹不存在,创建文件夹 |
八、开始行和结束行的内容
1 | 文件最后100行 |
九、用来从文件或者变量中提取字段(awk)
awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。
1 | echo "Adam Bor, 34, IndiaKerry Miller, 22, USA" | awk -F, '{print $1 "," $3 }' |
这里我们使用,作为字段分割符,同时打印第一个和第三个字段
十、输出不换行(echo)
echo的参数中, -e表示开启转义, /c表示不换行,脚本如下:
1 | #!/bin/sh |
脚本2:
1 | !/bin/sh |
十一、字符串大小写不敏感的比较
通用的方法是将字符串先转换成小写后再比较
1 | !/bin/bash |
十二、**&&** 运算符
语法格式:
1 | command1 && command2 [&& command3 ...] |
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。
1 命令之间使用 && 连接,实现逻辑与的功能。
2 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
3 只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。
十三、**||** 运算符
语法格式:
1 | command1 || command2 [|| command3 ...] |
||则与&&相反。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。
1 命令之间使用 || 连接,实现逻辑或的功能。
2 只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才会被执行。这和 c 语言中的逻辑或语法功能相同,即实现短路逻辑或操作。
3 只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。
十四、判断变量中是否包含某个字符串
3 只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。
1 | str="this is a string" |
结果为:
this is a string contains this
this is a string does NOT contains that
“[[“ 判断命令和 “=~”正则式匹配符号
十五、shell中 [ ] 和 [[ ]] 的区别
http://blog.csdn.net/ysdaniel/article/details/7905818
十六、shell中 ‘’ , “” 和 `` 的区别
http://www.cnblogs.com/Skyar/p/5914942.html