条件判断
假设/tmp/test.js存在,而/tmp/test.jsx文件不存在,则执行以下命令(注意中括号两端的空格):
| 12
 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
| 12
 
 | $ ifconfig eth0 192.168.1.155 netmask 255.255.255.0$ route add default gw 192.168.1.1
 
 | 
mac查找特定端口的应用程序lsof -i | grep 8080