我的shell命令集锦

记录我用过的比较复杂或者有用的shell脚本/命令

  1. 向文件里面循环插入特定字符:
    awk -v RS="ShowPrecision" '{n+=1;printf $0"ExpOid=\"2.2."n"\" ShowPrecision"}' EquipmentTemplate198.xml awk -v RS="ShowPrecision" 'BEGIN{m=1;};{n+=1;if(n==11){m+=1;n=1;};printf $0"ExpOid=\"2."m"."n"\" ShowPrecision"}' ee.xml

  2. SNMP发送trap的命令:
    ./snmptrap -v1 -c public 10.169.32.137 .1.3.6.1.4.1.13400 10.169.32.137 2 3 1000 .1.3.6.1.9.9.44.1.2.1 i 12 1.3.6.1.2.1.33.1.7.1.0 s frank

  3. 修改目录下所有文件格式:
    find . -name "*" -type f -exec dos2unix {} \;

  4. snmp Alarm table和snmpwalk
    ./snmptable -v 2c -c public 192.168.1.1 OID
    ./snmptable -v1 -c public 192.168.1.1 UPS-MIB:AlarmTable
    ./snmptranslate -Tz -m ALL > d:\2.txt 取得所有名称与OID的对应表,很有用
    while [ 1 ]; do ./snmpwalk -v2c -c public 192.168.1.1 OID; done

  5. 查找最新修改的文件
    在当前文件夹内查找最近一天内更改的文件(包括子文件夹):
    find . -type f -mtime -1
    1天以前更改的文件:
    find . -type f -mtime +1
    最近10分钟内状态变化的文件:
    find . -type f -cmin -10
    修改文件时间
    创建文件我们可以通过touch来创建。同样,我们也可以使用touch来修改文件时间。touch的相关参数如下: -a : 仅修改access time。 -c : 仅修改时间,而不建立文件。 -d : 后面可以接日期,也可以使用 --date="日期或时间" -m : 仅修改mtime。 -t : 后面可以接时间,格式为 [YYMMDDhhmm] 注:如果touch后面接一个已经存在的文件,则该文件的3个时间(atime/ctime/mtime)都会更新为当前时间。若该文件不存在,则会主动建立一个新的空文件。

  6. 去掉linux ^M符号
    第一种方法
    dos2unix filename
    第二种方法:
    sed -i 's/^M//g' filename
    *注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M*
    第三种方法:
    vi filename
    :1,$ s/^M//g
    ^M 输入方法: ctrl+V ,ctrl+M
    第四种方法:
    cat filename |tr -d ‘/r’ > newfile
    ^M 可用 /r 代替

  7. 删除除了file1之外的所有文件
    rm -rf !(file1|file2)
    ls | grep -v "cfg\|web" | xargs rm -rf

  8. 挂在内存盘
    bin/mount -t tmpfs -o size=2048k none /tmp

  9. grep打印字符串所在行的行号
    grep -n "ntpd" /home/script/init.sh | cut -d ":" -f 1
    ls | grep -v cfg | grep -v web |xargs rm -rf ; grep -v是反向查找,表示除了xxx之外。

  10. sed指定行插入内容
    sed '19 c\\abcdef' /home/script/test.sh > /tmp/test.sh;cp /tmp/test.sh /home/script/test.sh
    sed -i 's/VERTIV CO. TECH. LTD/Vertiv Tech. Co., Ltd./g' filename

  11. 有限循环命令
    cnt=10; while [ $cnt -ne 0 ] ; do echo $cnt; ((cnt=$cnt-1)); sleep 1; done

  12. tcpdump
    tcpdump udp port 162 抓取trap

  13. openssl将der证书转换给pem
    openssl x509 -inform der -in DevRoot-G2.cer -out DevRoot-G2.pem

  14. openssl验证证书
    DigiCertGlobalRootG2.pem是根证书,ProdRoot-G2.pem是中间证书,ProdMSFT-RS256.pem是下级证书。
    openssl verify -CAfile DigiCertGlobalRootG2.pem ProdRoot-G2.pem
    openssl verify -CAfile ProdRoot-G2.pem ProdMSFT-RS256.pem

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

horsen_duan

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值