当前位置: 首页 > news >正文

【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch




在这里插入图片描述



  • ping:检测网络联通
    • 1. ping 的基本功能
    • 2. ping 的工作原理
    • 3. ping 的常见用法
    • 4. ping 的输出解释
    • 5. ping 的应用场景
    • 6. 注意事项
  • netstat:查看网络状态
    • 1. netstat 的基本功能
    • 2. 常见用法
    • 3. 示例
    • 4. 输出字段解释
    • 5. netstat 的替代工具
    • 6. 注意事项
  • xargs:将数据转换为其他命令的命令行参数
    • 1. xargs 的基本功能
    • 2. 常见用法
    • 3. 示例
  • pidof:根据名字查找并返回进程PID
    • 1. pidof 的基本功能
    • 2. 常见用法
    • 3. 示例
    • 4. 输出解释
    • 5. 使用场景
    • 6. 注意事项
  • watch:动态刷新的数字监控
    • 1. watch 的基本功能
    • 2. 常见用法
    • 3. 示例
    • 4. 输出解释
    • 5. 使用场景
    • 6. 注意事项



ping:检测网络联通

ping 是一种常用的网络诊断工具,用于测试主机之间的连通性以及测量网络延迟。通过发送 ICMP(Internet Control Message Protocol)回声请求(Echo Request)消息到目标主机,并等待其返回 ICMP 回声应答(Echo Reply),可以判断目标主机是否可达,并评估网络性能。

以下是关于 ping 命令的详细讲解:




1. ping 的基本功能

  • 测试连通性:验证本地主机与目标主机之间的网络连接是否正常。
  • 测量延迟:计算从发送请求到接收响应的时间(通常以毫秒为单位),反映网络的速度和稳定性。
  • 检测丢包率:统计在一定时间内发送的请求中有多少未收到响应,从而判断网络质量。



2. ping 的工作原理

  1. 发送 ICMP 请求

    • 本地主机向目标主机发送一个 ICMP Echo Request 消息。
    • 这个消息包含一个唯一的标识符和序列号,用于区分不同的请求。
  2. 接收 ICMP 应答

    • 如果目标主机正常运行且网络畅通,它会返回一个 ICMP Echo Reply 消息。
    • 本地主机会记录从发送请求到接收应答的时间差,即往返时间(RTT,Round-Trip Time)。
  3. 统计结果

    • 根据多次请求的结果,计算平均延迟、最大延迟、最小延迟以及丢包率。



3. ping 的常见用法

(1) 基本语法
ping [选项] 目标地址
  • 目标地址:可以是域名(如 www.example.com)或IP地址(如 192.168.1.1)。
    可以输入自己服务器的域名或虚拟机的IP地址


(2) 常见选项
选项描述
-c <次数>指定发送的ICMP请求次数(例如:ping -c 4 www.example.com)。
-i <间隔>设置两次请求之间的时间间隔(秒)。
-t <TTL>设置数据包的生存时间(Time To Live,TTL)。
-s <大小>设置发送的数据包大小(字节)。
-W <超时>设置等待响应的超时时间(秒)。


(3) 示例
  • 发送4次请求

    ping -c 4 www.example.com
    
  • 指定数据包大小为1024字节

    ping -s 1024 www.example.com
    
  • 设置每次请求间隔为2秒

    ping -i 2 www.example.com
    



4. ping 的输出解释

以下是一个典型的 ping 输出示例:

PING www.example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=12.3 ms
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.8 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=12.1 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=11.9 ms--- www.example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 11.800/12.025/12.300/0.200 ms

字段说明
  • PING

    • 显示目标地址及其解析后的IP地址。
    • 数据包大小默认为56字节(加上ICMP头部后总共64字节)。
  • 每次请求的响应

    • 64 bytes:表示接收到的回显应答数据包大小。
    • icmp_seq=<序号>:表示该数据包的序列号。
    • ttl=<值>:表示数据包的生存时间(TTL,Time To Live),反映了路由跳数。
    • time=<值>:表示往返时间(RTT,Round-Trip Time),单位为毫秒。
  • 统计信息

    • packets transmitted:发送的总数据包数。
    • received:接收到的总数据包数。
    • packet loss:丢包率(百分比)。
    • time:整个测试过程的持续时间。
    • rtt min/avg/max/mdev:往返时间的最小值、平均值、最大值以及标准偏差。



5. ping 的应用场景

(1) 测试网络连通性
  • 使用 ping 可以快速检查本地主机与目标主机之间的网络是否连通。
  • 如果无法收到任何响应,可能是因为目标主机不可达、网络中断或目标主机禁用了ICMP响应。
(2) 测量网络延迟
  • 通过观察 ping 输出中的 time 值,可以评估网络的速度和稳定性。
  • 较低的延迟通常意味着更好的网络性能。
(3) 检测丢包率
  • 如果部分请求没有收到响应,可能是网络拥塞或不稳定。
  • 高丢包率可能表明网络质量较差。
(4) 调试网络问题
  • 结合其他工具(如 traceroutemtr),可以定位网络故障的具体位置。



6. 注意事项

(1) 目标主机可能禁用ICMP
  • 某些主机或防火墙可能会禁用ICMP协议,导致即使网络正常也无法收到响应。
(2) 网络延迟的影响因素
  • 网络延迟可能受到多种因素的影响,包括物理距离、路由器数量、带宽限制等。
(3) 数据包大小的影响
  • 发送较大的数据包可能会暴露网络中的带宽瓶颈或MTU(Maximum Transmission Unit)问题。
(4) 不同平台的实现差异
  • Windows 和 Linux 的 ping 命令在默认行为上可能略有不同(例如,默认数据包大小)。



netstat:查看网络状态

我们在写一些网络服务时,如写 udp Server / tcp Server ,我们有时需要查看这些网络服务是否启动以及其他状态信息,如果直接使用 ps 命令,只能查看到一些偏向进程方面的,因此我们推荐 netstat

netstat 是一个用于显示网络连接、路由表、接口统计信息、伪装连接和多播成员的命令行工具。它是网络管理员和开发人员常用的工具之一,可以帮助诊断网络问题、监控网络状态以及分析系统上的活动连接。

以下是关于 netstat 的详细介绍:



1. netstat 的基本功能

netstat 提供了以下主要功能:

  • 显示活动的网络连接:列出当前系统的TCP/UDP连接。
  • 显示路由表信息:查看系统的IP路由表。
  • 显示接口统计信息:显示网络接口的流量统计信息。
  • 显示监听端口:列出正在监听的端口及其对应的服务或进程。
  • 显示网络协议统计信息:提供TCP、UDP、ICMP等协议的统计数据。

在这里插入图片描述




2. 常见用法

(1) 基本语法
netstat [选项]
(2) 常见选项

注意:在使用时,这些选项的前后顺序无所谓,没有规定

选项描述
-aall,显示所有连接和侦听端口(包括TCP和UDP)。
-ttcp,仅显示TCP连接。
-uudp,仅显示UDP连接。
-nnumber,以数字形式显示地址和端口号(不进行DNS解析)。
-l仅显示处于监听状态的连接。
-pprocess,显示与每个连接关联的进程ID(需要root权限)。
-r显示内核路由表。
-i显示网络接口的统计信息。
-s显示每个协议的统计信息(如TCP、UDP等)。



2. 常见用法

(1) 显示所有连接和侦听端口
netstat -a
  • 输出中会包含所有的TCP和UDP连接,包括已建立的连接和正在监听的端口。
(2) 显示所有TCP连接
netstat -at
  • 只显示TCP协议相关的连接。
(3) 显示所有UDP连接
netstat -au
  • 只显示UDP协议相关的连接。
(4) 显示监听端口
netstat -ln
  • 使用 -l 选项只显示处于监听状态的端口,-n 选项避免DNS解析,加快输出速度。
(5) 显示与进程关联的连接
sudo netstat -ntp
  • -n:以数字形式显示地址和端口号。
  • -t:仅显示TCP连接。
  • -p:显示与每个连接关联的进程ID和名称。
  • 需要使用 sudo 提升权限,因为普通用户无法访问某些进程信息。
(6) 显示路由表
netstat -r
  • 输出系统的IP路由表,类似于 routeip route 命令。
(7) 显示网络接口统计信息
netstat -i
  • 列出所有网络接口的流量统计信息,包括接收和发送的数据包数量、错误数等。
(8) 显示协议统计信息
netstat -s
  • 提供TCP、UDP、ICMP等协议的详细统计信息,例如已建立的连接数、丢弃的数据包数等。



3. 示例

以下是一个典型的 netstat 输出示例:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1235/cupsd
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1236/dhclient


4. 输出字段解释

  • Proto:协议类型(TCP或UDP)。
  • Recv-Q:接收队列中的数据包数量。
  • Send-Q:发送队列中的数据包数量。
  • Local Address:本地地址和端口。
  • Foreign Address:远程地址和端口。
  • State:连接状态(仅适用于TCP,例如 LISTENESTABLISHED 等)。
  • PID/Program name:与该连接关联的进程ID和程序名称(需使用 -p 选项)。



5. netstat 的替代工具

在现代Linux系统中,netstat 已逐渐被更高效的工具(如 ssip)取代:

  • ss:功能类似 netstat,但性能更高,推荐使用。
  • ip:用于管理和显示网络接口、路由表等信息。

例如,使用 ss 查看监听端口:

ss -tnlp



6. 注意事项

(1) 权限问题
  • 某些选项(如 -p)需要 root 权限才能查看进程信息。

    比如下图,有些条目缺失了一些信息,只有我们自己启动的 ./server

    在这里插入图片描述

  • 如果没有权限,可以尝试使用 sudo 提升权限。

    如下图,使用 sudo 提权后,所有信息都展示出来了

    在这里插入图片描述

(2) 性能问题
  • 在高并发环境下,netstat 的性能可能不如 ss,因为它需要读取大量的内核数据。
(3) 替代工具
  • 在较新的 Linux 发行版中,netstat 可能已被废弃或不再默认安装。可以使用 ssip 命令作为替代。



xargs:将数据转换为其他命令的命令行参数

xargs 是一个功能强大的命令行工具,用于从标准输入(stdin)读取数据,并将其作为参数传递给其他命令执行。它可以帮助用户将管道或文件中的数据转换为命令行参数,从而实现批量处理任务。

以下是关于 xargs 的详细讲解:


1. xargs 的基本功能

  • 从标准输入读取数据xargs 从标准输入中读取数据,通常是通过管道或其他命令的输出。
  • 构建命令行参数:将读取到的数据转换为命令行参数,并传递给指定的命令。
  • 批量执行命令:支持对多个输入项逐一或分批执行命令。



2. 常见用法

(1) 基本语法
command | xargs [选项] [命令]
  • command:生成输入数据的命令。
  • xargs:将输入数据转换为命令行参数。
  • [选项]:控制 xargs 的行为。
  • [命令]:接收参数并执行的命令。



3. 示例

(1) 基本用法
echo "file1 file2 file3" | xargs ls
  • file1 file2 file3 作为参数传递给 ls 命令,等价于:

    ls file1 file2 file3
    



pidof:根据名字查找并返回进程PID

pidof 是一个用于查找正在运行的进程的 PID(Process ID)的命令行工具。它根据指定的进程名称返回与该名称匹配的进程的 PID 列表。pidof 是系统管理员和开发人员常用的工具之一,尤其在需要动态获取某个服务或程序的 PID 时非常方便。

以下是关于 pidof 的详细讲解:


1. pidof 的基本功能

  • 查找进程 ID:根据进程名称返回对应的 PID。
  • 支持多个匹配项:如果存在多个同名进程,pidof 会返回所有匹配的 PID。
  • 简单易用:语法简单,适合脚本中使用。



2. 常见用法

(1) 基本语法
pidof [选项] 进程名称
(2) 常见选项
选项描述
-s只返回一个 PID(即使有多个匹配的进程)。
-x匹配脚本或可执行文件(不仅限于二进制程序)。
-o PID,...排除指定的 PID 或特殊符号(如 $$ 表示当前 shell 的 PID)。



3. 示例

(1) 查找特定进程的 PID
pidof sshd
  • 如果 sshd 正在运行,输出可能是:

    1234 1235
    
  • 这表示有两个 sshd 进程正在运行,其 PID 分别为 12341235

(2) 只返回一个 PID
pidof -s sshd
  • 即使有多个 sshd 进程,也只返回其中一个 PID,例如:

    1234
    
(3) 匹配脚本或可执行文件
pidof -x myscript.sh
  • 如果 myscript.sh 是一个正在运行的脚本,pidof 会返回其 PID。
(4) 排除特定 PID
pidof -o $$ bash
  • $$ 表示当前 shell 的 PID。此命令会列出所有正在运行的 bash 进程的 PID,但排除当前 shell 的 PID。



4. 输出解释

pidof 的输出是一个由空格分隔的 PID 列表。如果没有找到匹配的进程,则不会有任何输出。

例如:

$ pidof nginx
1234 1235 1236

这表示有三个 nginx 进程正在运行,其 PID 分别为 123412351236




5. 使用场景

(1) 动态获取 PID

在编写脚本时,可以使用 pidof 获取某个服务的 PID 并进行进一步操作。例如:

PID=$(pidof mysqld)
if [ -n "$PID" ]; thenecho "MySQL is running with PID $PID"
elseecho "MySQL is not running"
fi
(2) 结合其他工具

可以将 pidof 的输出与其他工具结合使用。例如:

  • 使用 kill 发送信号:有两种写法

    // 方法一:
    kill $(pidof nginx)// 方法二: 通过管道
    pidof nginx | xargs kill -9
    
  • 使用 ps 获取更多进程信息:

    ps -p $(pidof sshd)
    
(3) 监控进程状态

通过定期检查某个进程是否存在,可以实现简单的进程监控功能。




6. 注意事项

**(1) 进程名称匹配 **
  • pidof 根据进程名称进行匹配,因此可能会出现误匹配的情况。例如,pidof http 可能会匹配到 httpd 或其他包含 http 的进程。
  • 如果需要更精确的匹配,建议结合 pgrepps 使用。
(2) 权限问题
  • 如果当前用户没有权限访问某些进程的信息,pidof 可能无法返回这些进程的 PID。
(3) 替代工具
  • 在某些情况下,pgrep 是一个更强大的替代工具,因为它可以根据更多的条件(如用户、命令行参数等)进行过滤。



watch:动态刷新的数字监控

watch 是一个非常实用的命令行工具,用于定期执行其他命令并将输出显示在终端中。它可以帮助用户实时监控系统状态、进程运行情况或其他动态变化的信息。通过 watch,你可以以固定的时间间隔重复执行某个命令,并观察其结果的变化。

以下是关于 watch 的详细讲解:




1. watch 的基本功能

  • 定期执行命令:按照指定的时间间隔(默认为2秒)重复执行某个命令。
  • 高亮变化:可以高亮显示输出中发生变化的部分,便于快速发现差异。
  • 全屏显示:将命令的输出完整地显示在终端中,类似于一个动态更新的窗口。



2. 常见用法

(1) 基本语法
watch [选项] 命令
(2) 常见选项
选项描述
-n <秒>设置刷新时间间隔(默认为2秒)。
-d--difference高亮显示输出中的变化部分。
-t--no-title禁用顶部标题栏(显示命令和时间信息)。
-b--beep如果输出发生变化,则发出蜂鸣声。
-g--chgexit当输出发生变化时立即退出。



3. 示例

(1) 默认使用
watch df -h
  • 每隔2秒执行一次 df -h 命令,显示磁盘使用情况。
(2) 自定义刷新时间
watch -n 5 free -m
  • 每隔5秒执行一次 free -m 命令,显示内存使用情况。
(3) 高亮显示变化
watch -d uptime
  • 每隔2秒执行一次 uptime 命令,并高亮显示输出中发生变化的部分。
(4) 禁用标题栏
watch -t date
  • 每隔2秒执行一次 date 命令,并禁用顶部标题栏。
(5) 输出变化时发出蜂鸣声
watch -b ls
  • 每隔2秒执行一次 ls 命令,如果目录内容发生变化,则发出蜂鸣声。
(6) 输出变化时立即退出
watch -g ps aux | grep sshd
  • 每隔2秒检查是否有 sshd 进程,如果输出发生变化(例如进程启动或停止),则立即退出。



4. 输出解释

watch 的输出通常包括以下部分:

  • 顶部标题栏:显示命令、当前时间以及刷新间隔。
  • 命令输出:每次执行命令的输出结果。
  • 高亮部分:如果启用了 -d 选项,输出中发生变化的部分会被高亮显示。

例如:

Every 2.0s: df -h                                                                                         Tue Feb 28 10:00:00 2023Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  2.1M  1.6G   1% /run
/dev/sda1        50G   12G   36G  25% /
...



5. 使用场景

(1) 监控系统资源
  • 使用 watch 可以方便地监控系统资源的使用情况,例如:
    • 内存使用:watch free -m
    • CPU负载:watch top
    • 磁盘空间:watch df -h
(2) 监控网络连接
  • 查看活动的网络连接:watch netstat -tuln
  • 查看路由表变化:watch route -n
(3) 监控文件或目录变化
  • 查看某个目录的内容变化:watch ls -l /path/to/directory
  • 查看日志文件的变化:watch tail -n 10 /var/log/syslog
(4) 监控服务状态
  • 查看某个服务的状态:watch systemctl status sshd
  • 查看某个端口的监听状态:watch lsof -i :80



6. 注意事项

(1) 终止 watch
  • 按下 Ctrl+C 可以终止 watch 的运行。
(2) 命令输出的限制
  • watch 的输出会根据终端窗口的大小自动调整,因此不适合处理非常大的输出。
(3) 高亮功能的限制
  • -d 选项只能高亮显示文本内容的变化,无法检测到格式或颜色的变化。
(4) 替代工具
  • 如果需要更复杂的监控功能,可以考虑使用 while 循环结合 sleep,例如:

    while true; do clear; df -h; sleep 5; done
    

相关文章:

【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch

ping&#xff1a;检测网络联通 1. ping 的基本功能2. ping 的工作原理3. ping 的常见用法4. ping 的输出解释5. ping 的应用场景6. 注意事项 netstat&#xff1a;查看网络状态 1. netstat 的基本功能2. 常见用法3. 示例4. 输出字段解释5. netstat 的替代工具6. 注意事项 xargs&…...

上海创智学院(测试)算法笔试(ACM赛制)部分例题

1.第一个题&#xff0c;大概题目意思是求n句话中最长的单词和最短的单词 这个题目做的有点磕巴&#xff0c;好几年没有写过c/c了&#xff0c;连string的复制都不会写了&#xff0c;哈哈哈&#xff0c;太笨了 后面一点点捡起来&#xff0c;还是写出来了&#xff0c;本身没啥&…...

【学术投稿-第四届材料工程与应用力学国际学术会议(ICMEAAE 2025】材料工程与应用力学的探讨

重要信息 官网&#xff1a;www.icmeaae.com 时间&#xff1a;2025年3月7-9日 地点&#xff1a;中国西安 简介 第四届材料工程与应用力学&#xff08;ICMEAAE 2025&#xff09;将于2025年3月7日至9日在中国西安召开。本次会议将重点讨论材料科学、应用力学等领域的最新研究进…...

2025吐槽季第一弹---腾讯云EO边缘安全加速平台服务

前言&#xff1a; 关于EO边缘安全加速平台服务 参照&#xff1a;产品概述,具体如下&#xff1a; 边缘安全加速平台 EO&#xff08;Tencent Cloud EdgeOne&#xff0c;下文简称为 EdgeOne&#xff09;是国内首款基于全新架构的真正一体化的边缘安全加速平台。提供全面的安全防…...

力扣-动态规划-70 爬楼梯

思路 dp数组定义&#xff1a;爬到第i个台阶有多少种爬法递推公式&#xff1a; 当前台阶可能是从前一个或者前两个来的dp数组初始化&#xff1a;遍历顺序&#xff1a;顺序遍历时间复杂度&#xff1a; 代码 class Solution { public:int climbStairs(int n) {if(n 1) ret…...

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片 根据您的需求&#xff0c;目前需要了解以下几个关键点及分步解决方案&#xff1a; --- 一、现状分析 1. Ollama 的限制&#xff1a; - 目前Ollama主要面向文本大模型&#xff0c;原生不支持直接上传/处理图片 …...

使用 pytest-mock 进行 Python 高级单元测试与模拟

一、单元测试与模拟的意义 在软件开发中,单元测试用于验证代码逻辑的正确性。但实际项目中,代码常依赖外部服务(如数据库、API、文件系统)。直接测试这些依赖会导致: 测试速度变慢测试结果不可控产生副作用(如真实发送邮件)模拟(Mocking) 技术通过创建虚拟对象替代真…...

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并等。

入口类&#xff1a;exportPdf ​ package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowa…...

《Linux 指令集:开启极客世界的钥匙_01》

一、命令行基础 &#xff08;一&#xff09;命令行提示符解析 当前用户&#xff1a;显示当前登录的用户名。例如&#xff0c;当前用户为 “ubuntu_user”&#xff0c;则在命令行提示符中会显示该用户名。 连接符&#xff1a;通常是 “”&#xff0c;用于分隔用户名和计算机名…...

【Android】用 chrome://inspect/#devices 调试H5页面

通常做Android开发的过程中&#xff0c;不可避免的需要遇到去与H5交互&#xff0c;甚至有时候需要去调试H5的信息。 这里分享一下Android工程里如何调试H5页面信息&#xff1a; 直接在浏览器地址栏输入 &#xff1a; chrome://inspect/#devices 直接连接手机usb,打开开发者模式…...

Deepseek 实战全攻略,领航科技应用的深度探索之旅

想玩转 Deepseek&#xff1f;这攻略别错过&#xff01;先带你了解它的基本原理&#xff0c;教你搭建运行环境。接着给出自然语言处理、智能客服等应用场景的实操方法与代码。还分享模型微调、优化技巧&#xff0c;结合案例加深理解&#xff0c;让你全面掌握&#xff0c;探索科技…...

《论区块链技术及应用》审题技巧 - 系统架构设计师

区块链技术及应用论题写作框架 一、考点概述 本论题“区块链技术及应用”主要考察软件测试工程师对区块链技术的理解及其在软件项目中的实际应用能力。论题涵盖了多个关键方面&#xff0c;首先要求考生对区块链技术有全面的认识&#xff0c;包括但不限于其作为分布式记账技术…...

ROS2 强化学习:案例与代码实战

一、引言 在机器人技术不断发展的今天&#xff0c;强化学习&#xff08;RL&#xff09;作为一种强大的机器学习范式&#xff0c;为机器人的智能决策和自主控制提供了新的途径。ROS2&#xff08;Robot Operating System 2&#xff09;作为新一代机器人操作系统&#xff0c;具有…...

【Python模块】——pymysql

pymysql是python操作mysql的标准库&#xff0c;可以通过pip install快速导入pymysql包操作数据库 使用pymysql操作mysql 简单demo import pymysql connect pymysql.connect(host"localhost",port3306,user"root",password"root",database&quo…...

【我的Android进阶之旅】Android Studio SDK Update Site 国内的腾讯云镜像配置指南

一、腾讯云的镜像 https://mirrors.cloud.tencent.com/AndroidSDK/ 二、 打开 Android Studio‌的SDK Manager 路径:Tools–>SDK Manager 在右侧找到 SDK Update Sites 列表‌‌,添加如下链接,像下面一样,一个一个添加 将下面几个链接都加上去 https:...

springboot实现多文件上传

springboot实现多文件上传 代码 package com.sh.system.controller;import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMap…...

Webpack打包优化

在使用 Webpack 打包项目时&#xff0c;随着项目规模的扩大&#xff0c;构建时间和打包产物的体积可能会逐渐增加。为了提高构建性能和减小打包产物的体积&#xff0c;可以采取以下几种 Webpack 打包优化 的方法。 1. 使用 mode 配置 Webpack 通过 mode 配置来指定构建模式。…...

浅谈HTTP及HTTPS协议

1.什么是HTTP&#xff1f; HTTP全称是超文本传输协议&#xff0c;是一种基于TCP协议的应用非常广泛的应用层协议。 1.1常见应用场景 一.浏览器与服务器之间的交互。 二.手机和服务器之间通信。 三。多个服务器之间的通信。 2.HTTP请求详解 2.1请求报文格式 我们首先看一下…...

GTID的基本概念

1.1 GTID的基本概念 1.1.1 GTID的作用 GTID的全称为Global Transaction Identifier&#xff0c;是MySQL的一个强大的特性。MySQL会为每一个DML/DDL操作都增加一个唯一标记&#xff0c;叫作GTID&#xff08;每个事务一个GTID&#xff09;。这个标记在整个复制环境中都是唯一的…...

.NET Core MVC IHttpActionResult 设置Headers

最近碰到调用我的方法要求返回一个代码值&#xff0c;但是要求是不放在返回实体里&#xff0c;而是放在返回的Headers上 本来返回我是直接用 return Json(res) 这种封装的方法特别简单&#xff0c;但是没有发现设置headers的地方 查询过之后不得已换了个返回 //原来方式 //…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...