Linux系统之traceroute命令详解:追踪网络路径的核心工具
Linux系统之traceroute命令详解:追踪网络路径的核心工具
- 一、traceroute介绍
- 1. 基本介绍
- 2. 核心原理
- 二、安装与基本使用
- 1. 安装`traceroute`
- 2. 基础语法
- 三、基本使用
- 四、常用参数与场景
- 五、典型应用场景
- 1. 定位网络延迟问题
- 2. 检测防火墙拦截
- 3. 绕过DNS解析问题
- 4. 对比不同协议路径
- 六、高级技巧与注意事项
- 七、常见问题解答
- 八、总结
一、traceroute介绍
1. 基本介绍
在网络故障排查中,快速定位数据包传输路径的异常节点至关重要。traceroute
(或tracert
在Windows中)是Linux系统中用于追踪数据包从源主机到目标主机经过的路由路径的核心工具。通过分析每一跳(Hop)的延迟和丢包情况,可精准诊断网络连接问题(如延迟高、路由环路、防火墙拦截等)。本文将从基础使用到高级技巧,全面解析traceroute
的功能与实践。
2. 核心原理
traceroute
通过发送一系列探测包(默认使用UDP协议,端口从33434递增)并监控其路径,实现路由追踪。其核心逻辑基于TTL(Time-To-Live)机制:
- 发送第一个探测包时设置TTL=1,到达第一个路由器后TTL减为0,触发ICMP Time Exceeded响应。
- 逐步增加TTL值(TTL=2,3,…),直至探测包到达目标主机或达到最大跳数(默认30跳)。
- 通过分析每个路由节点的响应时间和IP地址,绘制完整路径。
二、安装与基本使用
1. 安装traceroute
不同Linux发行版的安装方式:
# Debian/Ubuntu
apt install traceroute# CentOS/RHEL
yum install traceroute
# 或使用新版本dnf
dnf install traceroute# Arch Linux
pacman -S traceroute
- 本机测试环境为Ubuntu 22.04.1 LTS,安装命令如下所示:
apt install traceroute -y
2. 基础语法
traceroute [选项] 目标主机或IP
traceroute
常用选项
选项 | 简写 | 描述 |
---|---|---|
-4 | - | 强制使用 IPv4 |
-6 | - | 强制使用 IPv6 |
-d | --debug | 启用 socket 层调试 |
-F | --dont-fragment | 不分片数据包 |
-f first_ttl | --first=first_ttl | 指定起始 TTL(默认从 1 开始) |
-g gate,... | --gateway=gate,... | 指定网关路由(最多 8 个 IPv4 或 127 个 IPv6) |
-I | --icmp | 使用 ICMP ECHO 进行追踪 |
-T | --tcp | 使用 TCP SYN 进行追踪,默认端口为 80 |
-i device | --interface=device | 指定使用的网络接口 |
-m max_ttl | --max-hops=max_ttl | 设置最大跳数(默认为 30) |
-N squeries | --sim-queries=squeries | 设置同时探测的数量(默认为 16) |
-n | - | 不进行 DNS 解析,直接显示 IP 地址 |
-p port | --port=port | 设置目标端口。根据方法不同,初始值分别为:UDP 默认 33434,ICMP 默认从 1 开始增加,TCP 默认 80 |
-t tos | --tos=tos | 设置 TOS(IPv4 的 Type of Service)或 TC(IPv6 的 Traffic Class)值 |
-l flow_label | --flowlabel=flow_label | 为 IPv6 数据包指定 Flow Label |
-w MAX,HERE,NEAR | --wait=MAX,HERE,NEAR | 设置等待响应的最大时间: - HERE: 同一跳响应时间的倍数(默认 3) - NEAR: 下一跳响应时间的倍数(默认 10) - MAX: 最大秒数(默认 5.0) |
-q nqueries | --queries=nqueries | 每个跳点发送的探测次数(默认为 3) |
-r | - | 绕过正常路由,直接发送到本地网络中的主机 |
-s src_addr | --source=src_addr | 指定发送数据包的源地址 |
-z sendwait | --sendwait=sendwait | 探测之间的最小间隔时间(默认为 0)。如果大于 10,则单位为毫秒;否则为秒(支持浮点数) |
-e | --extensions | 显示 ICMP 扩展信息(如 MPLS) |
-A | --as-path-lookups | 在路由注册表中查找 AS 路径,并在对应地址后打印结果 |
-M name | --module=name | 指定 traceroute 模块(内置或外部),例如 -I 相当于 -M icmp |
-O OPTS,... | --options=OPTS,... | 为模块指定特定选项,多个选项用逗号分隔。使用 help 查看可用模块选项 |
--sport=num | - | 指定发送数据包的源端口,隐含 -N 1 |
--fwmark=num | - | 为发送的数据包设置防火墙标记 |
-U | --udp | 使用 UDP 协议进行追踪(默认端口为 53) |
-UL | - | 使用 UDPLITE 协议进行追踪(默认端口为 53) |
-D | --dccp | 使用 DCCP Request 协议进行追踪(默认端口为 33434) |
-P prot | --protocol=prot | 使用指定协议(prot)的原始数据包进行追踪 |
--mtu | - | 发现路径 MTU,等价于 -F -N 1 |
--back | - | 推测反向路径的跳数,并在有差异时打印 |
-V | --version | 显示版本信息并退出 |
--help | - | 显示帮助信息并退出 |
三、基本使用
- PS:追踪到百度的路径
traceroute www.baidu.com
-
简单解释:
-
第1列:跳数(Hop),从1开始递增。
-
第2列:路由节点的IP地址和域名(若可解析)。
-
后续列:每个探测包的往返时间(RTT),默认发送3个探测包。
-
*
符号:表示该探测包未收到响应(可能被防火墙过滤或节点未回复)。
四、常用参数与场景
参数 | 说明 | 示例 |
---|---|---|
-m 最大跳数 | 设置最大追踪跳数(默认30) | traceroute -m 20 google.com |
-q 探测次数 | 每跳发送的探测包数量(默认3) | traceroute -q 5 github.com |
-I | 使用ICMP协议(替代默认UDP) | traceroute -I 8.8.8.8 |
-T | 使用TCP SYN(端口80) | traceroute -T example.com |
-n | 不解析IP为域名(加速输出) | traceroute -n 1.1.1.1 |
-w 超时时间 | 设置等待响应的超时秒数(默认5秒) | traceroute -w 3 api.cloud.com |
五、典型应用场景
1. 定位网络延迟问题
- 观察哪一跳的RTT突然增加,判断瓶颈节点(如跨国路由拥堵)。
traceroute -n 8.8.8.8
2. 检测防火墙拦截
- 若某跳后连续出现
*
,可能是防火墙丢弃ICMP/UDP包。
traceroute -I -m 10 target.com
3. 绕过DNS解析问题
- 直接使用IP地址,避免因DNS故障导致的追踪失败。
traceroute -n 203.0.113.5
4. 对比不同协议路径
- 某些网络可能对TCP/UDP/ICMP路径不同,需针对性测试。
traceroute -T api.service.com # TCP SYN
traceroute -I api.service.com # ICMP
六、高级技巧与注意事项
-
权限要求
使用ICMP或TCP探测时,可能需要root
权限:sudo traceroute -I 10.20.30.40
-
路径不对称问题
网络中的往返路径可能不同,需结合反向追踪(从目标到源)分析。 -
替代工具
mtr
:实时结合traceroute
与ping
,动态监控路径质量:mtr -n 8.8.8.8
tracepath
:无需root权限,适合基础诊断:tracepath example.com
-
隐私与安全
- 部分企业网络会屏蔽
traceroute
探测,需遵守合规要求。 - 输出中暴露的IP可能泄露内网结构,分享时需脱敏。
- 部分企业网络会屏蔽
七、常见问题解答
Q1:为什么某些跳显示*
?
- 节点配置了防火墙丢弃探测包。
- 网络拥塞导致响应超时(尝试增加
-w
超时时间)。
Q2:如何追踪IPv6地址?
- 使用
traceroute6
命令:
traceroute6 ipv6.google.com
Q3:输出中的IP全是内网地址?
可能经过NAT网关,需检查网络架构。
八、总结
traceroute
是Linux网络诊断的瑞士军刀,通过分析数据包路径,可快速定位路由异常、防火墙拦截及延迟瓶颈。掌握其核心参数与输出解读,结合mtr
等工具,能显著提升网络故障排查效率。对于复杂场景,建议多次测试并交叉验证不同协议的结果,以获取准确结论。
相关文章:
Linux系统之traceroute命令详解:追踪网络路径的核心工具
Linux系统之traceroute命令详解:追踪网络路径的核心工具 一、traceroute介绍1. 基本介绍2. 核心原理 二、安装与基本使用1. 安装traceroute2. 基础语法 三、基本使用四、常用参数与场景五、典型应用场景1. 定位网络延迟问题2. 检测防火墙拦截3. 绕过DNS解析问题4. 对…...
通义灵码2.5智能体模式联合MCP:打造自动化菜品推荐平台,实现从需求到部署的全流程创新
一、项目背景与目标 随着人工智能技术的快速发展,AI 辅助开发工具正在改变传统的软件开发模式。通义灵码 2.5 版本的发布,通过 Qwen3 模型 和 编程智能体模式 的结合,实现了从需求描述到代码生成的全流程自动化。同时,其对 魔搭M…...
Spring的AOP在什么场景下会失效?
SpringAOP是通过动态代理实现的,所以想要AOP生效就是需要动态代理生效,并且可以提前调用到代理对象的方法。 什么情况下会不走动态代理呢? 首先就是类内部的调用,比如一些私有方法的调用,内部类调用,以及同…...
基于规则引擎与机器学习的智能Web应用防火墙设计与实现
基于规则引擎与机器学习的智能Web应用防火墙设计与实现 引言:智能防御的必然选择 在2023年OWASP最新报告中,传统Web应用防火墙(WAF)对新型API攻击的漏报率高达67%,而误报导致的正常业务拦截损失每年超过2.3亿美元。面…...
NODE-I916 I721模块化电脑发布,AI算力与超低功耗的完美平衡
在智能工业与边缘计算蓬勃发展的今天,企业对计算设备的性能与能效需求日益严苛。全新推出NODE-I916与NODE-I721模块化电脑,分别搭载英特尔 酷睿™ Ultra 平台与Alder Lake-N平台,以差异化CPU配置为核心,为AI推理、工业自动化及嵌入…...
2024年热门AI趋势及回顾
人工智能的崛起 2024 年可能会被铭记为人工智能不再是一种技术新奇事物,而是成为现实的一年。微软、Salesforce 和 Intuit 等巨头将人工智能融入主流企业解决方案;从文案写作到数据分析,专门的人工智能应用程序和服务如雨后春笋般涌现&#…...
Python + moviepy:根据图片或数据高效生成视频全流程详解
前言 在数据可视化、自媒体内容生产、学术汇报等领域,我们常常需要将一组图片或一段变动的数据,自动合成为视频文件。这样不仅能提升内容表现力,也极大节省了人工操作时间。Python作为数据处理和自动化领域的王者,其`moviepy`库为我们提供了灵活高效的视频生成方案。本文将…...
文档债务拖累交付速度?5大优化策略文档自动化
开发者在追求开发速度的过程中,往往会忽视文档的编写,如省略设计文档、代码注释或API文档等。这种做法往往导致在后期调试阶段需要花费三倍以上的时间来理解代码逻辑,进而形成所谓的文档债务,严重拖累交付速度并造成资源浪费。而积…...
java接口自动化初识
简介 了解什么是接口和为什么要做接口测试。并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程。 一、什么是接口 在这里我举了一个比较生活化的例子,比如我们有一台笔记本,在笔记本的两端有很多插口。例如:USB插口。那…...
Wan2.1 文生视频 支持批量生成、参数化配置和多语言提示词管理
Wan2.1 文生视频 支持批量生成、参数化配置和多语言提示词管理 flyfish 设计 一个基于 Wan2.1 文本到视频模型的自动化视频生成系统。 文件关系图 script.py ├── 读取 → config.json │ ├── 模型配置 → 加载AI模型 │ ├── 生成参数 → 控制生成质量 │ └…...
高阶数据结构——AVL树的实现(详细解答)
目录 1.AVL的概念 2.AVL树的实现 2.1 AVL树的插入 2.1.1 平衡因子的更新 2.1.2 AVL树的插入 2.2 旋转 2.2.1 旋转的原则 2.2.2 右单旋 2.2.3 左单旋 2.2.4 先左后右双旋转 2.2.5 先右后左双旋转(先左后右双旋转模型的镜像) 2.2.6 代码总结 2…...
工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎,支持现实世界的流程自动化需求
前言 大家好,我是老马。 最近想设计一款审批系统,于是了解一下关于流程引擎的知识。 下面是一些的流程引擎相关资料。 工作流引擎系列 工作流引擎-00-流程引擎概览 工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎&#x…...
自定义geojson生成物体的样式
在上节我们学习了如何在cesium中导入geojson数据,本节我们来学习如何让它变得更加炫酷. // 加载GeoJSON数据 // 使用Cesium的GeoJsonDataSource加载指定URL的地理数据 Cesium.GeoJsonDataSource.load("https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json&quo…...
在tensorflow源码环境里,编译出独立的jni.so,避免依赖libtensorflowlite.so,从而实现apk体积最小化
需要在APP里使用tensorflow lite来运行PC端训练的model.tlite,又想apk的体积最小,尝试了如下方法: 1. 在gradle里配置 implementation("org.tensorflow:tensorflow-lite:2.16.1") 这样会引入tensorflow.jar,最终apk的…...
springboot框架 集成海康ISUP-SDK 并实现 协议透传给设备下发指令!
最近有一个需求 需要通过springboot框架 来和 海康的摄像头设备进行通信,就研究了一下 海康的官方ISUP-SDK 文档对接。这个sdk 主要实现了 第三方快速集成海康的设备。 海康的文档地址: https://open.hikvision.com/docs/docId?productId5cda567cf47ae8…...
【移动应用安全】Android系统安全与保护机制
Android系统安全与保护机制是一个多层次、多维度的防御体系,其安全架构与系统层级紧密耦合。以下是对各层级安全机制的扩展分析: Linux内核层(Linux Kernel)安全机制 强制访问控制(MAC) 通过SELinux&#…...
Spring Boot中如何使用RabbitMQ?
前面已经了解了怎么使用RabbitMQ的JDK原生客户端,现在我们来了解Spring Boot中如何使用RabbitMQ,在学习之前,先做好准备工作: 1. 添加依赖 在Spring Boot中使用RabbitMQ,需要使用如下依赖: <dependenc…...
kotlin 将一个list按条件分为两个list(partition )
前言 在安卓开发过程中,我们经常需要将一个列表按照特定条件拆分为两个子列表。随着对语言的深入理解,我发现了一些更高效、更简洁的实现方式,现在与大家分享。 实现 传统Java实现 假设我们有以下列表需要处理: List<Stri…...
R语言学习--Day04--数据分析技巧
在清洗完数据,在对数据分析前,我们要懂得先梳理一下我们的逻辑,即数据是什么形式的,要进行哪种分析,有可能呈现什么特点,进而再想怎么处理数据去画图可以最大程度地凸显我们要的特点。 一般来讲࿰…...
企业终端设备的安全管控
企业终端设备的安全管控是信息安全体系中的重要环节,涉及从设备准入到数据防护的全生命周期管理。 以下是一套系统化的解决方案,涵盖技术、管理和人员三个维度: 一、终端设备全生命周期管控 设备准入控制 802.1X网络认证:对接企业…...
桥梁凝冰在线监测装置:科技守护道路安全的新防线
在交通基础设施安全领域,桥梁凝冰问题始终是冬季道路管理的重点挑战。传统人工巡检方式存在时效性差、覆盖范围有限等缺陷,而桥梁凝冰在线监测装置的普及应用,正为这一难题提供智能化解决方案。 一、装置工作原理 桥梁凝冰在线监测装置通过多…...
【开源】一个基于 Vue3 和 Electron 开发的第三方网易云音乐客户端,具有与官方客户端相似的界面布局
🎵 XCMusic:高颜值第三方网易云音乐客户端 🎶 📍 项目亮点 XCMusic 是一款基于Vue3Electron开发的开源、跨平台网易云音乐客户端。 此音乐播放器基于 Electron 开发,旨在为用户提供简洁、美观、兼容多平台的音乐体验。…...
Android 中拖拽从一个组件到另外一个组件的写法(跨容器拖拽)
在 Android 中,拖拽一个图片(例如 ImageView)到另一个组件(如 LinearLayout、FrameLayout 等容器)涉及以下步骤: 准备工作 源组件:你从哪里开始拖动(如 ImageView)。 目…...
MATLAB实现GAN用于图像分类
生成对抗网络(GAN)是一种强大的生成模型,由生成器(Generator)和判别器(Discriminator)组成。生成器用于生成图像,判别器用于判断图像是真实的还是生成的。在MATLAB中实现GAN用于图像…...
武汉副市长李湛莅临指导 珈和展会精彩亮相引《武汉电视台》深度报道 以硬核科技赋能农业强链新范式获政府媒体“双重点赞”
为充分响应“双循环”新发展格局,深化区域产业协作、推动供需精准对接,进一步促进经济高质量发展,5月16日-18日,由武汉市经济和信息化局主办的2025年产业链供需对接(绍兴)推广活动在绍兴国际会展中心举办。…...
matlab慕课学习3.4
于20250319 3.4用for语句实现循环结构 3.4.1什么是循环结构 循环结构又称重复结构,是利用计算机运算速度快以及能进行逻辑控制的特点来重复执行某些操作。 3.4.2for语句 for 循环变量表达式1:表达式2:表达式3 循环体语句 end 说明&…...
matlab编写的BM3D图像去噪方法
BM3D(Block-Matching and 3D Filtering)是一种基于块匹配和三维滤波的图像去噪方法,广泛应用于图像处理领域。它通过在图像中寻找相似的块,并将这些块堆叠成三维数组进行滤波处理,从而有效地去除噪声,同时保…...
当科技邂逅浪漫:在Codigger的世界里,遇见“爱”
520,一个充满爱意的日子,人们用各种方式表达对彼此的深情。而在科技的世界里,我们也正经历着一场特别的邂逅——Codigger,一个分布式操作系统的诞生,正在以它独特的方式,重新定义我们与技术的关系。 Codigg…...
深入理解 Python 中的几种方法:实例方法、类方法、静态方法与特殊方法
前置阅读,了解什么是类属性、实例属性,对于理解类方法、实例方法会有帮助:Python 中的类属性与实例属性详解 0、总体介绍 在 Python 中,方法(method) 是定义在类(class)内部的函数&…...
游戏开发实战(二):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
文章目录 奇美拉和队列奇美拉被动技能多对多观察者关系实现自定义元类奇美拉基类 管理奇美拉的队列奇美拉队列类心得体会扩展 规则定义工作相关奇美拉相关 奇美拉属性 在本篇博文,我将介绍本项目的整体框架,以及“编码规则”,这些规则保证了本…...
Python实战:打造一个功能完整的单位转换器(长度/温度/货币)
📚 文章导读 在本文中,我将为大家介绍如何使用Python开发一个实用的单位转换器。这个项目不仅适合Python初学者练手,也能帮助你更好地理解Python的基础语法和函数设计。 🔍 主要特性 ✅ 支持多种长度单位互转(米、千…...
嵌入式学习笔记 D24 :系统编程之i/o操作
系统编程基本概念及一般组成文件的常见i/o操作 一、系统编程基本概念及一般组成 系统编程属于应用程序编程,即在操作系统运行成功的基础上执行程序。其一般包含以下四部分: 1)文件:存储在存储设备上的相关信息集合,是…...
利用朴素贝叶斯对UCI 的 mushroom 数据集进行分类
朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的简单而有效的分类算法,特别适合处理文本分类和多类别分类问题。UCI的Mushroom数据集是一个经典的分类数据集,包含蘑菇的特征和类别(可食用或有毒)。 1. 数据…...
Index-AniSora模型论文速读:基于人工反馈的动漫视频生成
Aligning Anime Video Generation with Human Feedback 一、引言 论文开头指出,尽管视频生成模型不断涌现,但动漫视频生成面临动漫数据稀缺和运动模式异常的挑战,导致生成视频存在运动失真和闪烁伪影等问题,难以满足人类偏好。现…...
FineBI 和 Axure工具比较——数据分析VS原型设计
FineBI和Axure是两款定位截然不同的工具,分别服务于数据分析和原型设计领域。以下从核心功能、应用场景、操作门槛等维度进行对比分析: 一、核心功能对比 FineBI 作为商业智能(BI)工具,聚焦于数据整合、清洗、分析及可…...
跟踪AI峰会,给自己提出的两个问题。
踪红杉AI峰会全纪录:AI打开万亿美元市场,卖的不是工具,而是收益。 原文链接: 红杉AI峰会全记录:AI打开万亿美元市场,卖的不是工具,而是收益(全文)_腾讯新闻 自己的学习…...
分布式ID生成器:原理、对比与WorkerID实战
一、为什么需要分布式ID? 在微服务架构下,单机自增ID无法满足跨服务唯一性需求,且存在: • 单点瓶颈:数据库自增ID依赖单表写入 • 全局唯一性:跨服务生成可能重复 • 扩展性差:分库分表后ID规…...
AR 开启昆虫学习新视界,解锁奇妙微观宇宙
在传统昆虫学习中,课堂教学是主要方式,老师通过板书、PPT 传授知识,但学生被动接受,书本静态图片无法展现昆虫真实比例、立体形态,学生难以直观感受复杂身体结构。博物馆的昆虫标本也是学习途径,不过标本放…...
WPF技巧-常用的Converter集合(更新ing)
文章目录 [toc]🧩 示例 1:BooleanToVisibilityConverter🧩 示例 2:InvertedBooleanToVisibilityConverter🧩 示例 3:StringToColorConverter🧩 示例 4:StringToBrushConverter&#…...
PostGIS栅格数据类型解析【raster】
PostGIS 栅格数据类型解析:结构、转换与应用 一、栅格数据类型概述 在 PostGIS 中,raster 是用于存储和处理栅格数据的核心类型,支持从多种格式(如 JPEG、GeoTIFF、PNG、DEM)导入的数据。每个栅格由一个或多个波段&a…...
985,成立人工智能学院
5月17日,北京理工大学AI变革与科教创新论坛暨人工智能学院成立大会在中关村校区举行。 北京理工大学校长姜澜介绍了学校近年来高质量发展取得的成绩。他表示,北京理工大学对人工智能高度重视、提前布局,具备扎实基础。学校将通过“一零一一”…...
使用 ARCore 和 Kotlin 开发 Android 增强现实应用入门指南
环境准备 1. 工具与设备要求 Android Studio:Arctic Fox 或更高版本设备:支持 ARCore 的 Android 设备(查看支持列表)依赖库:// build.gradle (Module级) dependencies {implementation com.google.ar:core:1.35.0im…...
房贷利率计算前端小程序
利率计算前端小程序 视图效果展示如下: 在这里插入代码片 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&qu…...
剧本杀小程序:指尖上的沉浸式推理宇宙
在推理热潮席卷社交圈的当下,你是否渴望随时随地开启一场烧脑又刺激的冒险?我们的剧本杀小程序,就是你掌心的“推理魔法盒”,一键解锁无限精彩! 海量剧本库,满足多元口味:小程序汇聚了从古风权…...
shp2pgsql 导入 Shp 到 PostGIS 空间数据库
前言 ❝ shp2pgsql是PostGIS自带的命令行工具,用于将Shapefile文件声称SQL脚本导入到PostGIS空间数据库。 1. 安装 PostGIS 通过Application Stack Builder或者下载单独的PostGIS包进行安装。而shp2pgsql则是与PostGIS工具集成在一起,无需单独下载。该命…...
什么是 ERP、MES、PLM,生产制造中如何应用
生产制造领域数字化转型加速背景下,ERP、MES、PLM 系统的应用成为企业提升竞争力的关键。然而,部分企业因对三者功能认知模糊、系统搭配不当、实施流程缺失,导致生产计划混乱、库存失衡、质量管控失效等问题频发。明晰系统功能定位与协同逻辑…...
Android Edge-to-Edge
Android Edge-to-Edge显示:开发者综合指南 一、什么是Android Edge-to-Edge Android Edge-to-Edge是一种先进的用户界面(UI)设计理念,旨在最大化利用设备的显示区域。它允许应用程序的内容延伸至屏幕的各个边缘,包…...
Java期末总复习 编程题(偏基础)
71. ①编写一个含 2 个属性的类,并为其设计有参构造方法,再设计一个用于显示属性值的方法。②编写该类的一个子类,除继承父类的 2 个属性外再增加一个属性,并创建有参构造方法对 3个属性初始化,重写显示属性的方法用于…...
进阶知识:自动化框架开发之有参的函数装饰器@wraps()和无参之间的对比
进阶知识:自动化框架开发之有参的函数装饰器wraps() 一、核心代码解析 1.1 有参装饰器结构 def func_3(argTrue): # 外层接收参数def inner_func(func): # 中间层接收被装饰函数wraps(func) # 保留元信息def wrap_func(*args, **kwargs): …...
es疑惑解读
好的,没问题。下面是我们对话中关于 Elasticsearch 数据库的知识点汇总,以问答对的形式呈现,希望能成为一个清晰的教程。 Elasticsearch 基础与 CRUD 操作 Q1: 我有 pymysql 的使用经验,想学习 Elasticsearch (ES) 的增删改查&am…...