Linux 笔记

1.shell 四舍五入

echo 1 |awk 'BEGIN {printf "%.0f\n",((51/10))}

=>5

echo 1 |awk 'BEGIN {printf "%.0f\n",((56/10))}'

=>6

 

2.shell 向上取整

echo 1 |awk '{print int(100/3)==(100/3)?int(100/3):int(100/3)+1}'

 

3.监控命令执行情况

watch -n 1 ls -l

 

4.赋值时,左值包含变量

例如a='11'

b_$a=20会报错

用eval b_$a=20正常

 

5.变量传递

a=10

b=a

echo $b 

=>a

echo ${!b}

=>10

 

6.shell 16进制相加

a=0xaa; printf "%x\n" $(($a+1))
a=aa; printf "%x\n" $((16#$a+1))

 

7.shell 使用字典

declare -A dict 声明一个字典
dict=([n1]=x1 [n2]=x2)
echo ${dict[n1]} =>由key取value
echo ${dict[*]} =>取所有的value
echo ${!dickt[*]} =>取所有的key

 

8.shell 合并行

tr "\n" ","

 

9.字符串截取表达式(仅表达式,不包括awk,sed等语法来截取)

 

10.awk if语句

echo $a|awk -F _ '{if($1=="a"){ print $2}else {print $1}}'

 

11.利用${ } 还可针对不同的变数状态赋值(沒设定、空值、非空值):

${file-my.file.txt} :假如$file 沒有设定,則使用my.file.txt 作传回值。(空值及非空值時不作处理) 
${file:-my.file.txt} :假如$file 沒有設定或為空值,則使用my.file.txt 作傳回值。(非空值時不作处理)
${file+my.file.txt} :假如$file 設為空值或非空值,均使用my.file.txt 作傳回值。(沒設定時不作处理)
${file:+my.file.txt} :若$file 為非空值,則使用my.file.txt 作傳回值。(沒設定及空值時不作处理)
${file=my.file.txt} :若$file 沒設定,則使用my.file.txt 作傳回值,同時將$file 賦值為my.file.txt 。(空值及非空值時不作处理)
${file:=my.file.txt} :若$file 沒設定或為空值,則使用my.file.txt 作傳回值,同時將$file 賦值為my.file.txt 。(非空值時不作处理)
${file?my.file.txt} :若$file 沒設定,則將my.file.txt 輸出至STDERR。(空值及非空值時不作处理)

 

12.awk 求和
[root@xd]$cat a.log
1.1
1.2
1.3
2
3
4

[root@xd]$cat a.log |awk 'BEGIN {sum=0} {sum+=$1} END {printf "SUM is :%.2f\n",sum}'
SUM is :12.60

*BEGIN是在awk开始扫描输入之前执行
*END是在awk扫描输入完后执行
*$1是一空格为分隔符,取第一个字段

 

13.awk match
a="qwert 1234"
echo $a|awk '{print match($0,"qwe")}'
=>1

14.qemu起guest
qemu-system-x86_64 \
-name vm_test,process=vm_test,debug-threads=on \
-enable-kvm \
-pidfile /tmp/.vm0.pid \
-daemonize \
-monitor unix:/tmp/vm0_monitor.sock,server,nowait \
#-monitor pty -serial stdio
-cpu host \
-smp cores=4,sockets=2,threads=2 \
-numa node,mem=15G,cpus=0-3,nodeid=0 \
-numa node,mem=15G,cpus=4-7,nodeid=1 \
-m 30720 \
-drive file=/home/centos7.6.img \
#-drive file=/home/centos7.6.img,if=virtio,format=qcow2\
-vnc :30 \
#-netdev tap,id=ipvm1,ifname=tap3,script=/etc/qemu-ifup \
#-device e1000,netdev=ipvm1,id=net0,mac=00:cb:dc:db:cf:05\
-nic user,model=virtio,hostfw=tcp::2222-:22\
-machine pc-i440fx-2.1,accel=kvm,usb=off\

ps -T -p `pgrep vm_test` 查看vcpu 线程

posted on 2019-11-06 10:33  骑着蜗牛追太阳  阅读(236)  评论(0编辑  收藏  举报

导航