第一部分:Linux
1、列出 5 个熟悉的 Linux 命令 or 命令+参数,并指明它们能够完成什么操作?
(1)问题分析
考官主要想了解你对 Linux 的操作是否熟练,从而判断你 Linux 基础的操作水平是否
过关。
(2)核心问题讲解
切记不要说你会 ls、cd、pwd、exit 等简单的指令,要讲相对常复杂点的
如何查看 CPU 信息?
cat /proc/meminfo
cat/proc/cpuinfo
如何查看一个文件的末尾 50 行?
查看/etc/profile 的前 10 行内容,应该是:
# head -n 10 /etc/profile
查看/etc/profile 的最后 50 行内容,应该是:
# tail -n 50 /etc/profile
如何过滤文件内容中包含”ERROR“的行?
grep "ERROR" file_name
cat file_name | grep "ERROR"
查看某端口号?
netstat -anp | grep port_number
查看某进程号?
ps -ef | grep ps_name
ps -ef | grep ps_number
创建和删除一个多级目录?
mkdir -p ./a/b
rm -rf ./a
在当前用户家目录中查找 haha.txt 文件?
find ~/ -name haha.txt
如何查询出 tomcat 的进程并杀掉这个进程,写出 Linux 命令?
ps -ef | grep tomcat
kill -9 tomcat_port
动态查看日志文件?
tail -f log_file
查看当前机器 listen 的所有端口?
netstat -tlnp
把一个文件夹打包压缩成.tar.gz 的命令,以及解压拆包.tar.gz 的命令?
tar zcvf xxx.tar.gz file tar zxvf xxx.tar.gz
(3)问题扩展
Linux 中如何利用 shell 脚本条件执行命令?
首先建一个 shell 脚本 start.sh
然后把该脚本放在某个目录下,例如本人放在了/export/songhongwei/soft/sh
编辑~/.profile 文件把 sh 目录添加到环境变量即可
在 shell 或 Linux 终端中可以在任何目录下直接访问该命令
(4)结合项目中使用
在有些数据库 RDS 的测试中,有大量的表单需要生成,有数据库动态需要监控,我们
就可以写 shell 自动操作数据库的脚本来实现。
2、Liunx 查看 tomcat 日志的命令?
题目标签:Linux 命令
试题编号:MS006696
(1)问题分析
考官主要想看你对 Linux 操作细节的把控
(2)核心问题讲解
1)先切换到:cd usr/local/tomcat5/logs
2)tail -f catalina.out
3)这样运行时就可以实时查看运行日志了
(3)问题扩展
Linux 下查看 tomcat 日志的其他方法:
使用 docker
docker logs -f -t --since="2018-06-20" --tail=10 tomcat8080
--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f : 查看实时日志
-t : 查看日志产生的日期
-tail=10 : 查看最后的 10 条日志。
edu_web_1 : 容器名称
主要弊端是日志非实时。
(4)结合项目中使用
用 tomcat 部署项目
3、你平时工作中,哪些地方用到了 Linux 指令,如何使用的?
(1)问题分析
考官主要想了解你是否有实际工作经验,对 Linux 的日常使用把控如何
(2)核心问题讲解
测试环境搭建和项目部署,会使用常见的 linux 命令,还经常连接 linux 服务器进行
一些基本操作,也会处理一系异常情况。如下:
kill 终止系统进程
格式:kill [参数] [进程号/pid]
参数:-9 无条件强制终止进程
(3)问题扩展
如何一次终止同一名字的多个进程
ps -aux|grep csh
假设得到:
root 1345 1345 ……… /bin/csh
root 2434 2434 ……… /bin/csh
root 3678 3678 ……… grep csh
2.执行 kill 命令:
kill 1345 2434
而如果我们使用 fuser 命令就可以执行:
fuser -k /bin/csh
(4)结合项目中使用
有些时候进程占用端口,需要杀死进程释放端口,需要用到此命令
第二部分:数据库
1、用 SQL 得出每个部门的平均工资?
知识点标签:数据库
试题编号:
(1)问题分析:
考察的是多表查询,表与表之间的关系, 考察分组,聚合函数
(2)核心答案讲解:
对于员工表(employees)的 部门编号字段(department_id) 与 部门表(departments)
的 主键字段(id) 有关联
1)对员工表和部门表联合查询
select *
from employees, departments
where employees.department_id = departments.id;
2)对查询后的数据,进行按照 部门名称 分组
select departments.name
from employees, departments
where employees.department_id = departments.id
group by departments.name;
3)再去求出每个部门的平均薪资
select departments.name, avg(employees.salary)
from employees, departments
where employees.department_id = departments.id
group by departments.name;
使用内连接的方式查询每个部门的平均薪资:
select departments.name, avg(employees.salary)
from employees
inner join departments
on employees.department_id = departments.id
group by departments.name;
(3)问题扩展:
(4)结合项目中使用:
2、创建表?
知识点标签:mysql 基础
试题编号:
(1)问题分析:
1)考试面试者是否掌握了 sql 语句的建表语法
2)考试面试者是否掌握了 sql 语句建表的常见错误
3)考试面试者是否掌握了 mysql 中建表时常用数据类型
4)考试面试者是否掌握了主键设置
(2)核心答案讲解:
1)建表语法
create table 表名(
字段名 类型 约束,
字段名 类型 约束
)
2)建表 5 个常见错误
A)标点符号必须是英文状态下的
B)靠近最后一个括号的语句不能加标点符号
C)不能创建和现有表同名的表
D)类型在约束前面
E)不相关的语句一定要注释掉
3)mysql 中常用数据类型和约束
* 整数 int (没有负数就是无符号)
* 小数 decimal(5,2)
* 字符串 varchar(10)
* 日期时间 datetime
4)建表语句中主键的设置
id int unsigned primary key auto_increment
5)答案
create table stu_info(
no int unsigned primary key auto_increment,
name varchar(10),
age int unsigned,
score decimal(4,1),
grade int unsigned
)
(3)问题扩展:
(4)结合项目中使用:
3、请写出一个 SQL 语句来查询分数前 5 的所有人?
知识点标签:mysql 基础
试题编号:
(1)问题分析:
1)考察你对取值命令limit
的应用
2)考察你对order by
命令的使用
3)考察你对 SQL 语句中的命令顺序的掌握程度
(2)核心答案讲解:
1)limit`命令的应用
limit 用法 1:限定查询记录(从第一条到指定的数量)
select * from 表名 limit 5
limit 用法 2: 获取指定区间的数据(从第一条到指定的数量)
select * from 表名 limit 0,5
2) order by
命令的使用
select * from 表名 order by 列 1 asc|desc,列 2 asc|desc,..
-- asc 从小到大排列,即升序(升序是默认的,也就意味着可写可不写)
-- desc 从大到小排序,即降序
3)SQL 语句中的命令顺序
select *
from 表名
where 条件 1
group by 依据列
having 条件 2
order by 依据列
limit 0,1
4)答案:
select * from students order by score desc limit 5
(3)问题扩展:
(4)结合项目中使用:
4、请用一条语句统计:2019 年 10 月份所有员工的请假天数?
知识点标签:mysql 基础
(1)问题分析:
1)考察面试者是否掌握了 sql 语句两表连接查询方法
2)考察面试者是否掌握了范围查询使用方法
3)考察面试者是否掌握了求统计数据的聚合函数的使用方法
(2)核心答案讲解:
1)两表连接查询方法
解题思路:
select * from
将题目中的所求字段所在的表做为数据源(放在 from 后面的表,就叫数据源)
找两表中意义相同的字段,进行相等,进行连接
如果有条件,将过滤条件放在 where 后面
将题目的所求字段放在 select 后面,替换*
2) 范围查询使用方法
范围查询
in 表示在一个非连续的范围内(使用频率非常高)
between ... and ...表示在一个连续的范围内 意味着只能接连接类型字段 注意点:小值
放在前面,大值放在后面
3)聚合函数的使用方法
A)常见聚合函数有哪些?
求个数:count(*)
求总和:sum
求最大值:max
求最小值:min
求平均值:avg
B)聚合函数如何使用?
所有的聚合方式使用都是 函数名(字段) 对这一个字段进行聚合
4)答案:
select sum(l_days) from e_info as e inner join leave_info as l on e.e_id=l.e_id
where l_date between "2019-10-1" and "2019-10-31"
(3)问题扩展:
(4)结合项目中使用:
5、写 SQL 查询成绩小于 60 分的所有学生名单?
知识点标签:mysql