connection-summary() {
netstat -tnp | grep -v State | awk '{print $4,$6}' | awk -F : '{print $2}' | sort | uniq -c
}
s ()
{
netstat -nt | awk ‘NR>2{print $4,$6}’ | awk -F : ‘{print $2}’ | sort | uniq -c | sort -nr | awk ‘{print $2,$3,$1}’
}
connection_summary(){
netstat -tn | awk 'NR>2 {print $4,$6}' | awk -F: '{print $2}' |sort | uniq -c | sort -nr | awk '{print $2, $3, $1}'
}
正常模式下的top是在一个界面不断重写刷新原有数据 而且带有交互功能,比如通过上下键滚动数据等操作
批处理模式下,每一次都是输出快照数据,这样就比较方便对数据进行存储和处理
明白了,谢谢老师
输出$4 $6之后 后续的待处理内容就变成这两列数据 而不是初始的整行数据了 你可以把后面的语句去掉输出看一下就知道了
get_reward(){
while true
data = seq 1 10
for i in $data:
if i >3
data=i
print$data
}
lucy()
{
winner={}
while:
while read line
do
if $((RANDOM%6+1>3))
then
echo $line":>3"
winner+=(line)
else
echo $line":<3"
fi
done
if [ ${#{winner[@]}==0 ]:
continue
done
}
lucky ()
{
arr=()
for i in `seq 1 100`
do
arr[$i]=$(($RANDOM%6+1))
done
while ((1))
do
echo ${!arr[@]}
arr_befor=$arr
for i in ${!arr[@]}
do
((${arr[$i]} > 3)) || unset arr[$i]
done
((${#arr[@]} == 1)) && break
((${#arr[@]} == 0)) && arr=$arr_befor
for i in ${!arr[@]}
do
arr[$i]=$((RANDOM%6+1))
done
done
echo ${!arr[@]}
}
有2个地方讲的时候没有跟上。请帮忙解答下
1、作业2 链接所有的端口和对应的tcp连接状态,找出他们的连接总数
connection_summary() {
netstat -tn |
awk 'NR>2{print $4,$6}' |
awk -F: '{print $2}' |
sort | uniq -c | sort -nr |
awk '{print $2"\t"$3"\t"$1}'
}
问题:
(1)awk -F: '{print $2}' 是只取第2列内容么?还是为了做分割用?那上面awk的$4和 $6的值还能取到么?
(2)awk -F: '{print $2}' |
sort | uniq -c | sort -nr |
awk '{print $2"\t"$3"\t"$1}'
这一段是在输出什么?$1、$2、$3代表什么
2、作业3,掷骰子random%6+1>=3
问题:
(1)为什么要%6,目的是?输出的范围是?
(2)random%6+1为何又要+1
不行的,加双引号是为了解决有些数组元素是带有空格的情况,比如
[00534760@shell.ceshiren.com ~]$ a=(1 2 "3 4")
[00534760@shell.ceshiren.com ~]$ b=(${a[@]})
[00534760@shell.ceshiren.com ~]$ echo ${#a[@]}
3
[00534760@shell.ceshiren.com ~]$ echo ${#b[@]}
4
all=()
#定义一个集合,把每一轮使用的数据存到这个集合里面
sub=()
#设置轮数
index=0
seq 1 100 | {
#读取所有数据
while read line; do
all+=($line)
done
echo ${all[@]}
while ((${#all[@]} > 1)); do
((index = index + 1))
sub=("${all[@]}")
echo "------"
echo $sub
echo "++++++"
echo ${!all[@]}
for i in "${!all[@]}"; do
((RANDOM % 6 + 1 <= 3)) && unset all[$i]
done
echo "_+_+_+"
echo "${all[@]}"
#复活
((${#all[@]} == 0)) && all=("${sub[@]}")
done
}
明白了,这里老师上课强调过,跟这个问题没联系起来,谢谢老师。
perf_get ()
{
top -b -d 1 -n 5 | grep --color=auto -i --line-buffered yundun$ | awk 'BEGIN{print "CPU MEM"}{cpu+=$9;mem+=$10;print $9,$10}END{print "";print cpu/NR,mem/NR}'
}
尽量贴代码吧,all() 是不是应该是all=()
seq 1 100 | { all() while read line; do all+=($line); done; echo ${all[@]}; for i in "${!all[@]}";do ((RANDOM%6+1<3)) && unset all[$i]; done; echo "${all[@]}"; }
代码大致是这样的