Linux 常用知识点(测试常用)
Linux 常用知识点测试常用整理人Luren适用岗位测试开发、QA、自动化测试目录文件操作文本处理进程管理网络操作日志分析用户权限Shell 脚本基础常用工具测试开发常用场景面试常问一、文件操作1.1 文件浏览命令说明示例ls列出目录内容ls -lapwd显示当前路径pwdcd切换目录cd /home/testtree树形显示目录结构tree -L 2find搜索文件find / -name *.log1.2 文件查看命令说明示例cat查看文件内容cat test.logmore分页查看文件more test.logless交互式分页查看less test.loghead查看文件开头head -n 20 test.logtail查看文件尾部tail -n 20 test.logtail -f实时查看日志tail -f test.log1.3 文件编辑命令说明常用操作vim强大的文本编辑器i插入:w保存:q退出nano简单的文本编辑器CtrlO保存CtrlX退出sed行编辑器批量替换sed -i s/old/new/g file1.4 文件管理命令说明示例touch创建空文件touch test.txtmkdir创建目录mkdir -p /home/testcp复制文件cp file1 file2mv移动/重命名mv old.txt new.txtrm删除文件rm -rf dirtar压缩/解压tar -zxvf file.tar.gz二、文本处理2.1 搜索过滤命令说明示例grep搜索文本grep error test.loggrep -r递归搜索grep -r test /homegrep -n显示行号grep -n error test.loggrep -v反向匹配grep -v INFO test.log2.2 文本处理命令说明示例awk文本分析工具awk {print $1} test.logsed文本替换sed s/old/new/g filecut提取列cut -d, -f1 test.csvwc统计行数wc -l test.log三、进程管理3.1 进程查看命令说明示例ps查看进程ps auxps aux | grep搜索进程ps auxtop实时进程监控tophtop交互式进程监控htop3.2 进程控制命令说明示例kill杀死进程kill 12345kill -9强制杀死进程kill -9 12345nohup后台运行nohup java -jar app.jar 后台运行python test.py 四、网络操作4.1 网络信息命令说明示例ifconfig查看网卡信息ifconfigip addr查看IP地址ip addrping测试网络连通性ping www.baidu.comnetstat查看网络连接netstat -tlnp4.2 端口管理命令说明示例netstat -tlnp查看端口占用netstat -tlnpss查看端口状态ss -tlnplsof查看端口进程lsof -i :80804.3 HTTP请求命令说明示例curl发送HTTP请求curl http://localhost:8080/api/testcurl -X POST发送POST请求curl -X POST -d nametest http://localhost:8080/api/testwget下载文件wget https://example.com/file.zip五、日志分析5.1 日志查看命令说明示例tail -f实时监控日志tail -f app.loggrep ERROR搜索错误日志grep ERROR app.loggrep -n显示行号grep -n ERROR app.loggrep -c统计数量grep -c ERROR app.logcat app.log | grep管道组合cat app.log5.2 日志统计命令说明示例wc -l统计行数wc -l app.logawk统计字段awk “{print $1}” app.logsort | uniq去重统计grep “ERROR” app.loghead/tail取首尾grep “ERROR” app.log六、用户权限6.1 用户管理命令说明示例whoami查看当前用户whoamisu切换用户su rootsudo以管理员身份执行sudo ls /rootchmod修改文件权限chmod 755 test.sh6.2 权限说明Linux 文件权限由 9 位字符表示rwxrwxrwx第一组rwx文件所有者权限第二组rwx所属组权限第三组rwx其他用户权限权限值r读权限4w写权限2x执行权限1常用权限755rwxr-xr-x所有者读写执行其他读执行644rw-r--r--所有者读写其他只读777rwxrwxrwx所有人全部权限七、Shell 脚本基础7.1 脚本结构示例脚本test.sh#!/bin/bash# 这是一个测试脚本echoHello World# 定义变量nameTestechoHello,$name# 条件判断if[-ftest.log];thenecho文件存在elseecho文件不存在fi# 循环foriin{1..5};doechoNumber:$idone运行方式chmodx test.sh# 添加执行权限./test.sh# 运行脚本7.2 常用命令命令说明示例echo输出文本echo Helloread读取输入read nameif条件判断if [ -f file ]; thenfor循环for i in 1 2 3; dowhile循环while true; doexit退出脚本exit 0八、常用工具工具说明示例curlHTTP客户端curl http://localhost:8080jqJSON处理curl …git版本控制git clone ...docker容器管理docker pspython脚本语言python test.pymake构建工具make install九、测试开发常用场景9.1 环境部署登录服务器ssh usernamehost创建目录mkdir -p /opt/test上传文件scp local_file usernamehost:/opt/test解压文件tar -zxvf file.tar.gz启动服务nohup java -jar app.jar 查看日志tail -f nohup.out9.2 接口测试GET请求curl http://localhost:8080/api/testPOST请求curl -X POST -d nametest http://localhost:8080/api/test带Headercurl -H Content-Type: application/json http://localhost:8080/api/test保存响应curl http://localhost:8080/api/test response.json响应时间curl -w %{time_total} http://localhost:8080/api/test9.3 日志分析实时监控tail -f app.log搜索错误grep ERROR app.log统计错误数grep -c ERROR app.log查看最近10条错误grep ERROR app.log | tail -10按时间过滤grep 2024-01-01 app.log9.4 性能测试查看CPUtop查看内存free -m查看磁盘df -h查看网络netstat -tlnp压测工具ab -n 1000 -c 100 http://localhost:8080/api/test十、面试常问Q1: 如何查看端口占用A:netstat -tlnp | grep 端口号或lsof -i :端口号Q2: 如何杀死进程A:kill -9 进程IDQ3: 如何查看日志A:tail -f 日志文件配合grep搜索Q4: 如何发送HTTP请求A:使用curl命令Q5: 如何编写Shell脚本A:以#!/bin/bash开头chmod x 脚本名添加执行权限./脚本名运行Q6: Linux文件权限是什么A:rwxrwxrwxr4,w2,x1