shell小命令大用处

一、获取主机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不要将最近的归档压缩,压缩将在下一次轮询周期进行。

你可能感兴趣的:(System)