Linux 笔记

1.shell 四舍五入

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

=>5

echo 1 |awk 'BEGIN {printf "%.0f ",((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 " $(($a+1))
a=aa; printf "%x " $((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 " " ","

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 ",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 线程

原文地址:https://www.cnblogs.com/xia-dong/p/11803617.html