记录我用过的比较复杂或者有用的shell脚本/命令
:
-
向文件里面循环插入特定字符:
: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
-
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
-
修改目录下所有文件格式:
:find . -name "*" -type f -exec dos2unix {} \;
-
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
-
查找最新修改的文件
在当前文件夹内查找最近一天内更改的文件(包括子文件夹):
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)都会更新为当前时间。若该文件不存在,则会主动建立一个新的空文件。
-
去掉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 代替
-
删除除了file1之外的所有文件
rm -rf !(file1|file2)
ls | grep -v "cfg\|web" | xargs rm -rf
-
挂在内存盘
bin/mount -t tmpfs -o size=2048k none /tmp
-
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之外。 -
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
-
有限循环命令
cnt=10; while [ $cnt -ne 0 ] ; do echo $cnt; ((cnt=$cnt-1)); sleep 1; done
-
tcpdump
tcpdump udp port 162
抓取trap -
openssl将der证书转换给pem
openssl x509 -inform der -in DevRoot-G2.cer -out DevRoot-G2.pem
-
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