自我介绍?
Linux命令有那些?
- ls:列出当前目录的文件和子目录
- pwd:显示当前工作目录的路径
- cd:切换工作目录
- mkdir:创建新目录
- rmdir:删除空目录
- rm:删除文件或目录
- cp:复制文件或目录
- mv:移动文件或重命名文件或目录
- touch:创建空文件或更新文件的时间戳
- cat:连接和显示文件内容
- kill:杀死进程
- ifconfig/ip:查看和配置网络接口信息
- ping:测试与主机的连通性
- tar:用于压缩和解压文件和目录
- mysql:用于与mysql数据库进行交互的命令行工具
- ssh:远程登录到其他计算机
- find:在文件系统中查找文件和目录
- grep:在文件中搜索指定文本
- zip/unzip:用于压缩和解压ZIP文件
- ps:显示进程信息
- history:查看命令历史记录
- sudo:以超级用户权限运行命令
- vim:完成对文件进行更细颗粒度的编辑
- nohup 命令 & 后台执行
- netstat -tln | grep 端口号
判断两台服务器之间是互通的?
- ping 命令:
使用 ping 命令测试两台服务器之间的网络连通性。在命令提示符或终端输入 ping<目标服务器IP地址>,如果接收到响应(如“Reply from …” 或 “64 bytes from …”),则表示两台服务器之间可以相互通信。 - traceroute 命令:
可以显示数据包从源服务器到目标服务器所经过的路由,如果你可以看到完整的路径并且没有太多超时或丢失的数据包,那么这通常意味着两台服务器之间是互通的。traceroute<目标服务器IP地址> - telnet 命令:
telnet 可以测试特定端口的连通性。如果你知道目标服务器上某个端口号(如ssh的22端口),你可以使用telent<目标服务器IP地址><端口号>来测试该端口的连通性。如果连接成功,那么你会看到一个欢迎信息或者提示输入用户名和密码。
如何确定服务器端口被占用了?
- 使用 netstat 命令
查看所有监听中的端口:netstat -tuln
检查特定端口是否被占用:netstat -tuln | grep 端口号 - 使用 ss 命令
查看所有监听中的端口:ss -tuln
检查特定端口是否被占用:ss -tlun | grep 端口号 - 使用 lsof 命令 :lsof -i :端口
MySQL中 where 和having区别?
-
用的地方:
where 可以用在 select,update,insert,delete 语句中,having 只能用在select语句里 -
执行的顺序:
where是在分组前执行,having是在分组后执行(where和having一起用的话先执行where,后执行having) -
子句区别:
where的表达式,having可跟随执行
having的有些表达式where不可以跟
having子句可以用到聚合函数使用(求和,统计,平均数,最大值,最小值),where不可以子句结合聚合函数使用 -
去重查询的关键字? distinct
phthon 里面的 is 关键字和“ == ”有啥区别?
- is 用于比较两个对象的身份是否相同(即是否指向同一个内存地址)。
- == 用于比较两个对象的值是否相等。
让你去测试一个模块,怎样去测才能保证程序的质量,说一下你的测试思路?
- 需求分析:
深入了解该模块的功能需求,性能需求和预期的用户行为。
与开发团队,产品经理或客户经理沟通,确保对需求有清晰的理解 - 测试计划制定
制定详细的测试计划,包括测试目标,测试范围,测试方法。
评估测试风险,并制定相应的应对策略。 - 单元测试
对模块中的最小测试单元(如函数,类等)进行 单元测试。
编写测试用例,覆盖各种边界条件和异常情况 - 集成测试
验证模块与其他模块之间的接口和交互是否正常。
编写测试用例,覆盖各种可能模块组合和交互情况。 - 系统测试
对整个系统进行测试,验证是否满足用户需求和设计规范 。
包括功能测试,性能测试,安全测试等多个方面 - 回归测试
在恢复一个问题后,重新执行相关的测试用例,确保问题已经完全解决,没有引入新的缺陷。 - 缺陷跟踪与修复
当发现一个缺陷时,详细记录缺陷的信息,包括发现时间,描述,优先级等。 - 代码审计
进行代码审查,通过人工检查代码质量,发现潜在的问题和改进的空间。 - 持续集成和部署
实现持续集成和部署,频繁地将代码集成到主干分支,并进行自动化测试和构建。 - 跨平台和浏览器兼容性测试
在多种设备和浏览器上执行测试,确保应用程序在各种环境都能正常工作。
DNS域名解析(详细介绍)?
- 发起请求:客户端对目标网络发起访问请求。
- 查询本地缓存:客户端首先会查询本地的 DNS 缓存(如浏览器缓存或操作系统的 DNS 缓存),看是否已经解析过该域名。如果在本地缓存中找到相应的IP地址,则直接使用IP地址进行访问,解析过程结束。
- 查询本地 DNS 服务器:如果在本地缓存中没有找到相应的IP地址,客户端会向本地配置的 DNS 服务器发起查询请求。
- 迭代查询过程:
- 本地 DNS 服务器会先在自己的缓存中查找该域名的 IP 地址。
- 如果本地 DNS 服务器的缓存中没有找到,它会向根域名服务器发起查询请求。
- 根域名服务器会告知本地 DNS 服务器下一级顶级域名服务器的地址,如.com,.net等。
- 本地 DNS 服务器再向相应的顶级域名服务器发起查询请求。
- 顶级域名服务器会告知本地 DNS 服务器 目标域名 授权的权威解析服务器的地址。
- 本地 DNS 服务器再向权威域名服务器发起查询请求。
- 权威域名服务器将权威的解析记录结果(即 IP 地址)告知本地 DNS 服务器。
- 缓存并响应:
- 本地 DNS 服务器将查询的 IP 地址缓存起来,以便后续查询。 同时,本地 DNS 服务器将 IP 地址响应给发起请求的客户端。
- 客户端访问:客户端使用获得到的 IP 地址向目标服务器发起访问请求,完成整个 DNS 解析过程。
在整个 DNS 解析过程中,涉及到的主要服务器有:
- 本地 DNS 服务器:客户端配置的用于进行域名解析的服务器。
- 根域名服务器:DNS系统的顶级服务器,负责告知下一级域名服务器的地址。
- 顶级域名服务器:负责处理顶级域名(如.com,.net等)的服务器。
- 权威域名服务器:负责处理特定域名的服务器,存储了该域名的解析记录。
通过这个过程,DNS 系统实现了域名到 IP 地址的映射,使得人们能够使用易于记忆的域名来访问互联网资源。
谈谈进程和线程的区别?
- 进程包含线程
- 线程比进程更轻量,创建和销毁的速度都更快
- 同一个进程的多个线程之间共用同一份内存/文件资源,进程与进程之间,则是独立的内存/文件资源
- 进程是资源分配的基本单位,线程是调度执行的基本单位