条件判断
假设/tmp/test.js
存在,而/tmp/test.jsx
文件不存在,则执行以下命令(注意中括号两端的空格):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| $ [ -e /tmp/test.js ] $ echo $? # 0,表示上一条命令执行成功,即文件存在 $ [ -e /tmp/test.jsx ] $ echo $? # 1,非零值,上一条命令执行失败 # 我们可以执行下面的命令从而得到更加语义化的结果 $ [ -e /tmp/test.js ] && echo 'exists ' || echo 'not exists'
# 判断文件权限 $ [ -w /tmp/test.js ] && echo 'can write' || echo 'can not write'
文件1 -ef 文件2 # 判断两个文件的Inode是否一致,可理解为判断2个文件是否是同一个文件,用于判断硬链接是很好的方法
$ touch t $ ln t t2 $ [ /tmp/t -ef /tmp/t2 ] && echo yes || echo no # yes
# 整数比较 $ [ 12 -ge 10 ] && echo more || echo less # more
# 字符串判断 $ name=canglaoshi $ [ -z "$name" ] && echo "empty" || echo "not empty" # not empty $ a=1 $ b=2 $ [ "$a" == "$b" ] && echo equal || echo not # 字符串相等的判断,not
# 多重条件判断 逻辑与:判断1 -a 判断2 $ a=20 $ [ -n "$a" -a "$a" -gt 10 ] && echo "a存在且a不小于10" || echo no # a存在且a不小于10
|
*注意:*脚本中的变量加双引号.
if语句
参见coding.net
case语句
参见coding.net
循环
for
参见coding.net
while和until
参见coding.net
参见stackoverflow,编辑redis配置文件中的logfile目录为一个可写的目录。其实最简单的方法是用root权限启动redis。
Linux网络监控
我们常用netstat
命令查看网络状况(netstat -tunlp | grep 22
,查看端口占用的进程),但是使用ss
命令更快。nc
命令可以模拟客户端和服务器。
使用time
命令可以为命令计时。例如time sleep 5
将计算出sleep 5
这条命令的执行时间为5.002s。
设置静态IP
1 2
| $ ifconfig eth0 192.168.1.155 netmask 255.255.255.0 $ route add default gw 192.168.1.1
|
mac查找特定端口的应用程序lsof -i | grep 8080