简介:
本文内容大概学个三四天就够了,把课程看完做好笔记,重点熟悉下面的知识就行,面试的时候能说全,就算忘记了具体命令参数也别慌,就说“这些都很简单,而且用得不多,但是我看一下就能回忆起来”
建议结合实际测试需要要到的场景去学习。可以这样去问豆包:“我是一名软件测试小白,目前想快速回忆linux的命令,告诉我有哪些命令会经常在测试工作中使用到,并给我一些使用场景”
如果有什么建议,欢迎在评论区留言,主包一定改。
一、LINUX
1.这一块我笔记有点乱,不如豆包,方法已经告诉你们了哦。
2.另外,有时候参数有很多记一俩个就行了。标红全掌握(算了你们全看吧,标一半发现都很重要)。
3.这部分知识会用笔试的情况。ls,pwd,mkdri,cp,vi(编辑保存),rm。可以跟豆包要实际面试题(开启“联网搜索”功能,没有的话就用deepseek)
一、文件与目录操作
1. ls
- 查看文件和目录
bash
ls -l # 长格式查看(显示权限、大小、时间等)
ls -a # 显示隐藏文件
ls -lh # 以人类可读的方式显示文件大小
ls -lt # 按修改时间排序(最新的在前)
场景:查看测试环境中的日志文件、配置文件。
2. cd
- 切换目录。
cd /var/log # 进入系统日志目录
cd .. # 返回上一级目录
cd ~ # 返回用户主目录
场景:快速定位到测试所需的目录(如测试脚本、数据文件所在目录)。
3. mkdir
/ rmdir
- 创建 / 删除目录
mkdir test_dir # 创建目录
mkdir -p a/b/c # 递归创建多级目录
rmdir test_dir # 删除空目录
场景:创建临时测试目录或清理测试数据。
4. cp
/ mv
/ rm
- 复制 / 移动 / 删除文件
cp file.txt backup/ # 复制文件到目录
mv file.txt new_name # 重命名文件
rm -f file.txt # 强制删除文件
rm -rf test_dir # 递归删除目录(慎用!)
场景:备份测试数据、清理临时文件。
二、文件内容查看与编辑
1. cat
/ more
/ less
- 查看文件内容
cat app.log # 查看小文件
more large_file.txt # 分页查看大文件(空格下一页,b上一页)
less very_large.log # 更强大的分页查看(支持搜索:/关键词)
场景:查看接口测试的响应日志、应用错误日志。
2. grep
- 文本搜索
grep "ERROR" app.log # 搜索包含ERROR的行
grep -i "warning" app.log # 忽略大小写搜索
grep -r "api_key" /config/ # 递归搜索目录下所有文件
场景:从日志中筛选特定错误信息、查找配置文件中的敏感信息。
3. tail
/ head
- 查看文件首尾内容
tail -n 20 app.log # 查看日志最后20行(实时监控日志:tail -f)
head -n 10 config.ini # 查看配置文件前10行
场景:实时监控接口请求日志、查看配置文件头部信息。
4. vim
- 文本编辑(基础操作)
vim file.txt # 编辑文件
i # 进入插入模式(编辑内容)
Esc # 退出插入模式
:wq # 保存并退出
:q! # 强制退出不保存
场景:临时修改测试配置文件、编辑简单的测试脚本。
三、权限与用户管理
1. chmod
- 修改文件权限
bash
chmod +x script.sh # 添加执行权限
chmod 644 config.ini # 设置权限为rw-r--r--
场景:为测试脚本添加执行权限、限制配置文件的访问权限。
2. sudo
- 以管理员权限执行命令
bash
sudo service nginx restart # 重启Nginx服务
sudo apt-get install python3 # 安装软件
场景:在测试环境中安装依赖、重启服务。
四、进程与服务管理
1. ps
/ top
/ htop
- 查看进程
bash
ps -ef | grep python # 查看Python进程
top # 实时监控系统进程(按q退出)
htop # 更友好的进程监控工具(需先安装)
场景:确认测试应用是否正常运行、排查进程占用资源过高问题。
2. kill
- 终止进程
bash
kill 12345 # 终止PID为12345的进程
kill -9 12345 # 强制终止进程
场景:结束异常的测试进程、清理残留的后台任务。
3. service
/ systemctl
- 管理服务
bash
service nginx status # 查看Nginx状态
systemctl restart mysql # 重启MySQL服务(CentOS 7+)
场景:启动 / 停止 / 重启测试环境中的服务(如 Web 服务器、数据库)。
五、网络与端口操作
1. ping
/ telnet
- 网络连通性测试
bash
ping www.baidu.com # 测试网络连通性
telnet api.example.com 80 # 测试端口连通性
场景:确认测试环境是否可以访问外部 API、检查服务器端口是否开放。
2. netstat
/ ss
- 查看端口占用
bash
netstat -tulpn | grep 8080 # 查看8080端口占用情况
ss -tulpn | grep 80 # 更高效的端口查看工具
场景:排查端口被占用导致服务无法启动的问题。
3. curl
/ wget
- 网络请求
bash
curl https://api.example.com/data # 发送HTTP请求
wget https://example.com/file.zip # 下载文件
场景:测试 API 接口、下载测试数据或依赖包。
六、其他实用命令
1. find
- 文件搜索
bash
find / -name "*.log" # 全局搜索.log文件
find /var/log -mtime -1 # 查找24小时内修改过的文件
场景:查找历史测试报告、定位丢失的配置文件。
2. gzip
/ tar
- 压缩与解压
bash
tar -zcvf backup.tar.gz /data # 压缩目录为tar.gz
tar -zxvf backup.tar.gz -C /tmp # 解压到/tmp目录
场景:打包测试报告、备份测试环境数据。
3. df
/ du
- 磁盘空间查看
bash
df -h # 查看磁盘使用情况
du -sh /data # 查看目录占用空间
场景:检查测试环境磁盘是否已满、排查日志文件过大问题。
七、测试工作中的典型场景
-
接口测试
- 使用
curl
发送 HTTP 请求测试 API。 - 通过
grep
从日志中提取接口响应结果。
- 使用
-
性能测试
- 使用
top
/htop
监控测试过程中服务器资源占用。 - 通过
iostat
/vmstat
分析系统性能瓶颈。
- 使用
-
自动化测试
- 使用
chmod
为测试脚本添加执行权限。 - 通过
nohup
后台运行长时间测试任务。
- 使用
-
环境搭建
- 使用
sudo apt-get
或yum
安装测试工具。 - 通过
vim
修改配置文件部署测试环境。
- 使用
八、快速记忆技巧
- 多用多练:在本地虚拟机或云服务器上实践命令。
- 善用帮助:
man 命令
查看详细手册(如man ls
)。 - 自定义别名:为常用命令组合设置别名(如
alias ll='ls -lh'
)。 - 快捷键:
Tab
自动补全命令和文件名。Ctrl + R
反向搜索历史命令。Ctrl + C
终止当前命令。
九、sql命令
这部分是我自己的笔记。你们也可以用上面的方法去问AI。
使用场景 |
查询数据(查看数据的准确性) 修改数据(方便测试) |
| 库操作 表操作: |
汇总 | 增删改查,多表联查,子查询,3种删除,分页分组,一些聚合函数。 |
数据操作 增 删 改 查 | #
|
多表联查 | --内连接:INNER JOIN --左 / 右连接:LEFT JOIN / RIGHT JOIN |
应用:数据库表结合接口测试 | 接口--返回值 |
排序 | --从小到大 select * from students order by age; -- 从大到小 select * from students order by age desc, studentNo; --先class,再studentNo select * from students order by class, studentNo;
|
3个删除的区别。 | -- delete from 表名 where 条件 (id = 6 )逻辑删除:用一个字段标识已删除 delete from students where id=6; -- truncate table 表名 (删除表里的数据,保留结构)物理删除不可恢复。 truncate table studens; -- drop table 表名 (删除数据表,数据和结构)物理删除不可恢复。 drop table students;
|
子查询 | --条件: select * from 表1 where id =(select id from 表2 where name='test001') --数据:查询数据库和系统测试的课程成绩 select * from scores as sc inner join ( select * from courses where name in ('数据库','系统测试') ) as co on sc.courseNo=co.courseNo;
|