Linux Shell 常用指令碎片存档(一)
收集一些在平时或者在特定情况下经常使用的指令或者 bash 指令以及参数,省的用的时候想不起来,也免去迷失在搜索的 汪洋之中,节约些时间。
if 条件判断
- if 语句格式
if condition; then
execute something ...
elif condition; then
execute something ...
else
execute something
fi
其中 elif、else 两部分可以都没有,也可以只有其中一个,或者两者都有。
-
条件表达式之文件表达式
- if [ -f file ] 如果文件存在
- if [ -d … ] 如果目录存在
- if [ -s file ] 如果文件存在且非空
- if [ -r file ] 如果文件存在且可读
- if [ -w file ] 如果文件存在且可写
- if [ -x file ] 如果文件存在且可执行
-
条件表达式之整数变量表达式
- if [ int1 -eq int2 ] 如果int1等于int2
- if [ int1 -ne int2 ] 如果不等于
- if [ int1 -ge int2 ] 如果 >=
- if [ int1 -gt int2 ] 如果 >
- if [ int1 -le int2 ] 如果 <=
- if [ int1 -lt int2 ] 如果 <
-
条件表达式之字符串变量表达式
- if [ $a = $b ] 如果string1等于string2,字符串允许使用赋值号做等号
- if [ $string1 != $string2 ] 如果string1不等于string2
- if [ -n $string ] 如果string 非空(非0),返回0(true)
- if [ -z $string ] 如果string 为空
- if [ $sting ] 如果string 非空,返回0 (和-n类似)
-
逻辑表达式
-
逻辑非 ! 条件表达式的相反
- if [ ! 表达式 ]
- if [ ! -d $num ] 如果不存在目录$num
-
逻辑与 –a 条件表达式的并列
- if [ 表达式1 –a 表达式2 ]
-
逻辑或 -o 条件表达式的或
- if [ 表达式1 –o 表达式2 ]
-
shell 中的特殊变量
- $$ Shell本身的PID(ProcessID)
- $! Shell最后运行的后台Process的PID
- $? 最后运行的命令的结束代码(返回值)
- $- 使用Set命令设定的Flag一览
- $* 所有参数列表。如"$*“用「"」括起来的情况、以”$1 $2 … $n"的形式输出所有参数。
- $@ 所有参数列表。如"$@“用「"」括起来的情况、以”$1" “$2” … “$n” 的形式输出所有参数。
- $# 添加到Shell的参数个数
- $0 Shell本身的文件名
- $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数 …。
统计 Nginx 网站访问日志前 5 的 IP
awk -F ' ' '{print $1}' www_example_com.access.log | sort | uniq -c | sort -nr | head -n 5