一、获取主机eth0网卡ip
1.ip a s eth0 |sed -nr "/inet .*/s/.*inet (.*)\/.*/\1/p"
2.ip a s eth0 |grep -Eo "([0-9]{1,3}\.){1,3}[0-9]{1,3}"|head -1
3.ip a s eth0 |grep "inet"| awk -F "[ /]+" 'NR==1{print $3}'
二、截取字符串
1.掐头
$ path=/root/data/tools/abc.tar.gz
$ echo ${path$$*/}
abc.tar.gz
2.去尾
$ FileName=abc.tar.gz
$ echo ${FileName%%.*}
abc
三、简单的数值运算
1.$((num1 + num2))
$ echo $((2+3))
5
$ echo $((2-3))
-1
$ echo $((2*3))
6
$ echo $((2/3))
0
$ echo $((2%3))
2
2.$[ num1 + num2 ]
$ echo $[2+3]
5
$ echo $[2-3]
-1
$ echo $[2*3]
6
$ echo $[2/3]
0
$ echo $[2%3]
2
3.expr num1 + num2
$ expr 2 + 3
5
$ expr 2 - 3
-1
$ expr 2 \* 3
6
$ expr 2 % 3
2
$ expr 2 / 3
0
4.bc
$ echo "1+2"|bc
3
$ echo "2+3"|bc
5
$ echo "2-3"|bc
-1
$ echo "2*3"|bc
6
$ echo "2/3"|bc
0
$ echo "2%3"|bc
2
四、进制转换
1.其他进制转十进制
//进制赋值((num=2#1010))或者num=$[2#1010]
$ echo $num
10
$ num=$[8#12]
$ echo $num
10
$ num=$[16#A]
$ echo $num
10
2.十进制转其他进制
$num=10
$echo "obase=2;$num" |bc
1010
$echo "obase=8;$num" |bc
12
$echo "obase=16;$num" |bc
A
五、范围匹配
$methods='+-*/%'
1.echo $methods |grep -q $method
六、find查找
find / -type f -exec du -k {} \; |sort -rnk 1 |head
七、logrotate日志切割
/root/2019 {
daily
missingok
notifempty
size 30k
compress
delaycompress
rotate 5
create 0600 root root
}
delaycompress 总是与compress 选项一起使用,delaycompress 选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮询周期进行。