3.sed 操作,将文件第9行至第15行的数据复制到第十六行
sed -i '9,15H;16G' 文件
4.用awk获取文件中的三行的倒数第二列字段
awk -F":" 'NR==3 {print$(NF-1)}' 文件
5.针对test文件实现以下需求:
a)第一列为aaa行的其余所有列求和;
awk '{sum+=($2+$3+$4+$5)} END {print sum}' 文件
b)求文件偶数行求和;
awk '(NR%2)==0 {sum+=($2+$3+$4+$5)}END{print sum}' 文件
awk 'NR%2==0{i=2;while(i<=NF) {sum+=$i;i++}} END {print sum}' 文件
c)求文件中的最大数值
cat 文件 | xargs -n1 | sort -nr | head -1
6.将文件test.txt的制表符,即tab,全部替换成!
sed -i 's/ /!/gp' 文件
7.case语句的语法?while语句的语法?continue命令的作用?
case:针对变量的不同取值,执行不同的命令序列
while:重复测试某个条件,只要条件成立则反复执行
continue:跳出当前循环
8.用命令查看ssh连接状态
[root@localhost ~]# netstat -anupt | grep :22 | awk '{print$6}' | sort | uniq -c
4 ESTABLISHED
2 LISTEN
9.ps aux中的vsz和Rss代表什么含义?
[root@localhost ~]# ps aux | head -1
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
用户 PID号 CPU占用率 内存占用率 虚拟内存 物理内存 终端 状态 进程的开始时间 进程CPu占用时间 进程的命令
10.请写出下列shell脚本:使用for循环在/opt通过随机小写10位长度字母加上(+)固定字符串test批量创建10HTML文件,并且HTML大写,创建完成后将test全部改为test_done(for循环实现)
#!/bin/bash
cd /opt
for ((i=1;i<=10;i++))
do
a=$(date +%N%N | cut -c 1-10 | tr [0-9] [a-z])
touch $a\test.HTML
done
rename test.HTML test_done.HTML *
11.随机生成10位数+字,随机生成10位字母,随机生成10位字母+数字的混合,随机生成10位字母+数字的混合+特殊符号。
输出随机数字
[root@localhost ~]# date +%N%N | cut -c 1-10
echo $(date +%N%N | head -c 10)
echo $(echo $RANDOM$RANDOM$RANDOM | head -c 10)
输出随机小写字母
</dev/urandom tr -cd a-z | head -c 10;echo
date +%N%N | cut -c 1-10 | tr [0-9] [a-z]
输出随机大写字母
</dev/urandom tr -cd A-Z | head -c 10;echo
date +%N%N | cut -c 1-10 | tr [0-9] [A-Z]
输出随机大小写字母
< /dev/urandom tr -dc a-zA-Z |head -c ${1:-10};echo
输出随机小写字母加随机数字:
< /dev/urandom tr -dc 0-9a-zA-Z |head -c ${1:-10};echo
</dev/urandom tr -cd a-z0-9 | head -c 10;echo
echo $(($RANDOM)) | md5sum | sed -r 's/([a-zA-Z0-9]{10}).*/\1/g'
date +%N%N | cut -c 1-10 | tr [0-5] [a-z]
输出随机大小写字母
date +%N%N | cut -c 1-10 | tr [0-5] [A-Z]
输出随机大小写字母加随机数字加特殊符号
head -1000 /dev/urandom| strings -n 10 |head -1
cat /dev/urandom| strings -n 10 |head -1
运用脚本输出随机大小写字母加随机数字加特殊符号
#!/bin/bash
shuzi=(0 1 2 3 4 5 6 7 8 9 )
zimu=(a b c d e f g h i g k l m n o p q r s t o v w x y z)
fuhao=(\! \@ \# \$ \% \^ \& \*)
i=1
while [ $i -le 2 ]
do
a=$[$RANDOM % 26 + 1 ]
b=$[$RANDOM % 9 +1]
c=$[$RANDOM % 8 +1]
suiji=${zimu[$a]}${shuzi[$b]}${fuhao[$c]}${zimu[$a]}${shuzi[$b]}
echo -n "$suiji"
let i++
done
echo