linux面试题

1.awk命令

3 5 6 7
2 3 1 0
4 5 6 9
2 3 4 4
2 2 1 0
4 5 0 9
假如把2列与3列和的值作为新的第5列,第5列的平均值为avg5,求第5列中大于avg5的行数。

awk '{x+=$2+$3;a[NR]=$2+$3}END{y=x/NR;for(i in a){if(y<a[i])z++}print z}' file

2.系统调用里面有一个sleep()函数,还有一个usleep()函数,然后usleep()函数号称自己是微秒级,你相信它真的能达到这么快吗?或者说系统调用可以达到微秒速度吗?


3.linux进程调度方法

1.分时调度策略:通过nice和counter值决定权值,nice越小,counter越大,被调用概率越大(曾经使用CPU最少的进程优先调度)。

2.实时调度策略,先到先服务

3.实时调度策略,时间片轮转


4.shell编程(awk)

内容如下:
[root@localhost ~]# cat test
zhangsan     80
lisi                 81.5
wangwu       93
zhangsan     85
lisi                88
wangwu      97
zhangsan    90
lisi               92
wangwu      88
[root@localhost ~]# 

要求输出格式:(average:平均成绩,total:总成绩)
name#######average#######total
zhangsan            xxx                        xxx
lisi                       xxx                        xxx
wangwu             xxx                        xxx

awk 'BEGIN{print "name average total"}{a[$1]+=$2;b[$1]++};END{for(i in a)print i"\t"a[i]/b[i]"\t"a[i]}' test.txt|column -t


你可能感兴趣的:(linux面试题)