在软件测试工程师的面试当中,肯定会遇到关于LinuxShell相关的面试题。下面从三个部分给大家说一下相关的套路。
(1)第一部分是摸底,通过询问使用过的命令是否编写过脚本来大致查看测试人员的在该方面的能力。
(2)第二部分是考察具体命令,通过询问相关常用命令(例如文件检索网络统计)来查看在Linux方面的具体执行能力。
(3)第三部分是综合能力,也就是进阶问题。这里可以以性能测试为例,就是如何使用命令查看服务器相关的数据,并对数据进行分析。

一、第一关——摸底

1.1 用过哪些命令
1.2 是否写过脚本
  • 摸底Linux使用深度,用脚本做过什么有价值的事情
  • 自动化任务(自动化测试、环境部署、任务调度),数据分析

二、第二关——考察具体命令

2.1 文件检索
  • 如何找到特定目录下后缀为 .jar 的所有文件?

    find . -name "*.jar"
    find . -type f  -name "*.jar"
    

    在这里插入图片描述

  • 如何在特定目录下找到包含特定数据的文件?

    find . | xargs grep "hello" 
    find . -type f  | xargs grep "hello"
    find . -type f -name "*.txt" | xargs grep "hello"
    find . -type f -name "*.txt" | xargs grep "hello" -l
    

    在这里插入图片描述
    参考:对find,xargs,grep和管道的一些深入理解

2.2 网络统计
  • 如何查看当前开放的端口和进程?
    netstat -tlnp
    netstat -tlnp|wc -l
    netstat -tlnp|grep sshd|wc -l
    
    在这里插入图片描述
  • 压测时如何统计当前机器的连接数?
    netstat -nat | grep ESTABLISHED | wc -l
    
    在这里插入图片描述
2.3 进程查看
  • 查看指定进程并杀死进程
    ps -ef|grep jmeter
    ps -aux|grep jmeter
    kill -9 进程号
    
    在这里插入图片描述

三、第三关——综合能力

3.1 性能分析——如何统计某个进程的 CPU 和内存的增长情况?
  • top命令显示机器中的所有进程,复制要查看进程的进程id

    top
    

    在这里插入图片描述

  • top -p 进程号显示指定进程的数据

    top -p 1305
    

    在这里插入图片描述

  • top -b -p 进程号 -n 1:取消可交互模式,并显示最近的一次的数据。

    top -b -p  1305 -n 1
    
  • top -b -p 进程号 -n 1 | tail -1 | awk '{print $9 $10}':显示最后一行数据,并显示其中第9、10列数据

    top -b -p  1305 -n 1 |tail -1|awk '{print $9,$10}'
    

    在这里插入图片描述

  • while true;do sleep 1;top -b -p 1305 -n 1|tail -1|awk '{print $9,$10}'; done':通过在此基础上添加while循环,每秒查看数据

    while true;do sleep 1;top -b -p  1305 -n 1|tail -1|awk '{print $9,$10}'; done
    

    在这里插入图片描述

3.2 数据统计
  • 有一份 Nginx 日志文件,第一列是 IP,如何给出访问量前三的 IP 地址?

  • 首先通过命令输入所有的IP

    awk '{print $1}' nginx.log | less 
    
  • 通过管道命令加上sort排序

    awk '{print $1}' nginx.log | sort | less
    
  • 通过管道命令加上uniq 去重并使用tail3显示前三

    awk '{print $1}' nginx.log | sort | uniq -c |sort -n |tail  -3
    

Logo

更多推荐