• 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 线程

  • 相关阅读:
    利用Node.js的Net模块实现一个命令行多人聊天室
    JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题
    Node.js:进程、子进程与cluster多核处理模块
    Node.js:理解stream
    Node.js:Buffer浅谈
    Node.js:OS模块
    一个unsigned int 数的二进制表示中有多少个1
    一个栈的入栈序列为ABCDEF,则不可能的出栈序列是
    文件操作:获取一个文件行数的方法
    利用sourceinsight宏(Quicker.em)提高编码效率和质量
  • 原文地址:https://www.cnblogs.com/xia-dong/p/11803617.html
Copyright © 2020-2023  润新知