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不要將最近的歸檔壓縮,壓縮將在下一次輪詢週期進行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章