中断命令名为analyze的任务
ps -e |grep "analyze" |awk '{print $1}'
kill $(ps -e |grep "analyze" |awk '{print $1}')
批量生成文件夹
mkdir $(seq -f "08%02g" 1 2 20)
筛选特定行
cat file | sed -r '1,5d'
cat file | sed -rn '6p'
筛选特定列
cat file | awk -F ':' '{printf $2}'
筛选文本,筛选,合并,选择
cat anarecord.log |grep -A1 'path dot' |sed '/--/d' |sed 'N;s/\n/:/' |awk -F ":" '{if($2>500) print $4}'
wc path* |awk '{if($1<500) print $4}'
筛选文本,分段,加和
cat anarecord.log |grep "The length of path" |awk -F ":" '{print $2}' |awk 'BEGIN{sum=0} {sum=$1+sum} END{print sum/50}'
expect脚本
#!/usr/bin/expect
set dir [lindex $argv 0]
set password [lindex $argv 1]
spawn ssh node1@10.4.47.246 mkdir /mnt/sdb1/ZMH/$dir
expect {
"password:" { send "$password\r" }
}
expect eof
bash脚本中使用expect脚本
#/bin/sh
local=$PWD
password=node1root
for i in $(seq -f '0%g' 6 1 9); do
#echo $i
for j in $(seq -f '%02g' 1 1 20); do
if ls |grep "$i$j" &>/dev/null; then
dir=$i$j
cd $dir
/usr/bin/expect <<-EOF
set timeout -1
spawn ssh node1@10.4.47.246 mkdir /mnt/sdb1/ZMH/$i$j
expect {
"password:" { send "$password\r" }
}
spawn scp FibreParameter.dat palabos0.dat RawData.dat record.dat node1@10.4.47.246:/mnt/sdb1/ZMH/$dir
expect {
"password:" { send "$password\r" }
}
expect eof
EOF
cd $local
fi
done
done
批量输入
while read line
do
…
done < file
command | while read line
do
…
done
统计相同值个数
cat av100.dat |cut -c 1-5 |sort |uniq -c
用于网络监听
nc命令
用于块拷贝
dd命令
用于得到特定格式的计算机时间
date命令
筛选文件中日期在一个月之前的日志文件并删除
###aaa.a.aaa.aaa.20150202-101013.log
###aa_aaa_aaa.20170202-101013.log
###aa_aaa_aaa.20200723-101013.log
###aa_aaa_aaa.20200723-101013.log.ERROR
#
#
#!/bin/sh
LOG_DIR=/opt/log
critical_time=$(date -d "1 month ago" +%Y%m%d)
#echo $critical_time
for i in $(ls $LOG_DIR); do
#echo $i
record=$(echo $i |awk -F "." '{count=1;do{print $count;count++;}while(count<=NF)}' |grep "20......-......" |cut -c 1-8 |awk '{if($0<'$critical_time'){print $0}}')
#echo $record
if [ -n "$record" ]; then
#echo $i
rm -f $LOG_DIR/$i
fi
done
###
###touch $(seq -f "abc.bcd.20%06g-111111.log" 181111 5 201111)
批量生成具有特定名称特定大小的测试文件
seq -f "abc.bcd.20%06g-111111.log" 181111 5 201111 |xargs -i dd if=/dev/zero of={} bs=1024 count=1