Ubuntu 第11章 网络管理_常用的网络配置命令
为了管理网络,Linux提供了许多非常有用的网络管理命令。利用这些命令,一方面可以有效地管理网络,另一方面出现网络故障时,可以快速进行诊断。本节将对Ubuntu提供的网络管理命令进行介绍。
11.2.1 ifconfig命令
关于ifconfig命令,在11.1节中已经提到过了。通过该命令可以查看和配置网络接口。ifconfig是一个比较古老的命令,在Ubuntu22以及其他的许多发行版中,已经不太推荐使用该命令了。默认情况下,Ubuntu 22.04已经不提供该命令,用户可以通过安装net-tools软件包来获得该命令,如下所示:
root@node1:~# apt install net-tools
ifconfig 命令的基本语法如下:
ifconfig [-v] interface [aftype] options | address ...
在上面的语法中,参数interface表示要配置的网络接口。aftype表示地址类型,例如inet、inet6或者ddp等。options表示ifconfig命令的选项,常用的选项有:
- -a:列出当前系统所有的可用网络接口,包括禁用状态的。
- up:启用指定的网络接口。
- down: 禁用指定的网络接口。
- netmask:指定当前IP网络的子网掩码。
- add:为指定网络接口增加一个IPv6地址。
- del:从指定网络接口删除一个IPv6地址。
- -broadcast:指定网络接口的广播地址。
address参数为指派给网络接口的IP地址。
例如,使用下面的命令查看当前系统所有的网络接口:
root@node1:~# ifconfig -a
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255ether 06:6c:3a:20:1c:30 txqueuelen 0 (以太网)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 24 overruns 0 carrier 0 collisions 0ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.6.101 netmask 255.255.255.0 broadcast 192.168.6.255inet6 fe80::fc0:15fc:cb36:c90a prefixlen 64 scopeid 0x20<link>ether 00:0c:29:da:76:27 txqueuelen 1000 (以太网)RX packets 1383 bytes 611544 (611.5 KB)RX errors 0 dropped 85 overruns 0 frame 0TX packets 791 bytes 118578 (118.5 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 19 base 0x2000 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.8.150 netmask 255.255.255.0 broadcast 192.168.8.255inet6 fe80::20c:29ff:feda:7631 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:da:76:31 txqueuelen 1000 (以太网)RX packets 80 bytes 29877 (29.8 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 129 bytes 15218 (15.2 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 19 base 0x2080 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (本地环回)RX packets 238 bytes 25070 (25.0 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 238 bytes 25070 (25.0 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在上面的输出中,一共有四个网络接口,其名称分别为docker0、ens33、ens37和lo。关于各个网络接口的详细信息,在前面已经介绍过了,不再重复。
如果想要禁用某个网络接口,可以使用down选项。例如,使用下面的命令禁用名称为ens37的网络接口:
root@node1:~# ifconfig ens37 down
网络接口被禁用之后,其状态信息中就不再包含RUNNING属性了,如下所示:
root@node1:~# ifconfig ens37
ens37: flags=4098<BROADCAST,MULTICAST> mtu 1500ether 00:0c:29:da:76:31 txqueuelen 1000 (以太网)RX packets 88 bytes 30757 (30.7 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 129 bytes 15218 (15.2 KB)TX errors 0 dropped 2 overruns 0 carrier 0 collisions 0device interrupt 19 base 0x2080
被禁用的网络可以使用以下命令重新启动:
root@node1:~# ifconfig ens37 up
11.2.2 ip命令
与前面介绍的ifconfig命令不同,ip命令是一个Linux系统中比较新的、功能强大的网络管理工具。ip命令是iproute2软件包中的核心命令。通过ip命令可以显示或操纵Linux主机的路由、网络设备、策略路由、多播地址和隐道。ip命令的基本语法如下:
ip [ OPTIONS ] OBJECT { COMMAND | help }
在上面的语法中,options表示命令选项,常用的选项有:
- -h:输出可读的信息。
- -f:指定协议族,该选项可以取inet。inet6、bridge、ipx以及dnet五个值、如果没有指定协议族,则ip命令会从其他的参数判断,如果无法判断,则默认为inet。
- -4:指定协议族为inet,即IPv4。
- -6:指定协议族为inet6,即IPv6。
- -B:指定协议族为bridge,即桥接。
- -D:指定协议族为decnet。
- -l:指定协议族为ipx,即IPX协议。
- -s:显示详细信息。
object为命令操作的对象。常见的对象有:
- Address:IPv4或者IPv6地址。
- 12tp:L2TP隙道协议。
- link:网络设备。
- maddress:多播地址。
- route:路由表。
- rule:路由策略。
- tunnel:隧道
command 为命令,常用的命令有add、delete、show、set或者list等。根据不同的对象,会有不同的命令。下面分别介绍ip命令的使用方法。
1. 管理网络设备
网络设备包括交换机、路由器以及网络接口等。ip命令最常管理的网络设备就是网络接口。
例如,使用下面的命令显示网络设备的运行状态:
root@node1:~# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000link/ether 00:0c:29:da:76:27 brd ff:ff:ff:ff:ff:ffaltname enp2s1
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000link/ether 00:0c:29:da:76:31 brd ff:ff:ff:ff:ff:ffaltname enp2s5
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 06:6c:3a:20:1c:30 brd ff:ff:ff:ff:ff:ff
在上面的命令中,link为对象,即网络设备,list为命令,所以整个命令的含义为列出所有的网络设备。如果想要显示更详细的信息,可以使用-s选项,如下所示:
root@node1:~# ip -s link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00RX: bytes packets errors dropped missed mcast 25216 240 0 0 0 0 TX: bytes packets errors dropped carrier collsns 25216 240 0 0 0 0
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000link/ether 00:0c:29:da:76:27 brd ff:ff:ff:ff:ff:ffRX: bytes packets errors dropped missed mcast 2409588 4048 0 316 0 0 TX: bytes packets errors dropped carrier collsns 232332 2109 0 0 0 0 altname enp2s1
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000link/ether 00:0c:29:da:76:31 brd ff:ff:ff:ff:ff:ffRX: bytes packets errors dropped missed mcast 56836 142 0 0 0 0 TX: bytes packets errors dropped carrier collsns 23342 210 0 2 0 0 altname enp2s5
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 06:6c:3a:20:1c:30 brd ff:ff:ff:ff:ff:ffRX: bytes packets errors dropped missed mcast 0 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 0 0 0 26 0 0
使用下面的命令禁用网络接口ens37:
root@node1:~# ip link set ens37 down
在上面的命令中,由于操作的对象为网络接口,因此使用link。set命令用来设置属性。down为禁用状态,up为启用状态。
注意:以上命令等同于ifconfig ens37 down。
设置完成之后,使用ip命令查看其状态,如下所示:
root@node1:~# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000link/ether 00:0c:29:da:76:27 brd ff:ff:ff:ff:ff:ffaltname enp2s1
3: ens37: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000link/ether 00:0c:29:da:76:31 brd ff:ff:ff:ff:ff:ffaltname enp2s5
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 06:6c:3a:20:1c:30 brd ff:ff:ff:ff:ff:ff
从上面的输出可以得知,网络接口ens37的状态中不再含有UP标识。
若想把ens37重新启用,则可以使用以下命令:
root@node1:~# ip link set ens37 up
使用下面的命令改变网络设备的最大传输单元,即MTU的值为1400:
root@node1:~# ip link set ens37 mtu 1400
其中,dev表示网络接口。因此,上面的命令把网络接口enp0s3的MTU值设置为1400。
使用下面的命令修改网络设备的MAC地址,把网络接口enp0s3的MAC地址修改为
00:0c:29:da:76:31:
root@node1:~# ip link set ens37 address 00:0c:29:da:76:31
2. 管理 IP 地址
利用ip命令可以管理网络接口的IP地址,包括添加、删除、显示以及清除等。其中需要使用address 对象。通常情况下,address可以缩写为a、add或者addr。
使用下面的命令为网络接口ens37添加一个新的IP地址:
root@node1:~# ip address add 192.168.8.151/24 dev ens37
在上面的命令中,IP地址采用CIDR地址表示法,斜线前面为IP地址,斜线后面为二进制子网掩码中1的个数。
如果想要删除指定网络接口的IP地址,可以使用以下命令;
root@node1:~# ip addr del 192.168.8.151/24 dev ens37
在上面的命令中,采用缩写addr,delete表示要执行的命令。
ip命令中的show可以显示指定网络接口的IP地址信息,如下所示:
root@node1:~# ip a show dev ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000link/ether 00:0c:29:da:76:31 brd ff:ff:ff:ff:ff:ffaltname enp2s5inet 192.168.8.150/24 brd 192.168.8.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feda:7631/64 scope link proto kernel_ll valid_lft forever preferred_lft forever
同样,以下两个命令也可以显示同样的结果:
root@node1:~# ip addr ls ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000link/ether 00:0c:29:da:76:31 brd ff:ff:ff:ff:ff:ffaltname enp2s5inet 192.168.8.150/24 brd 192.168.8.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feda:7631/64 scope link proto kernel_ll valid_lft forever preferred_lft forever
在上面的例子中,使用list命令代替show,list可以缩写为ls。从上面的例子可以得知,ip命令的语法是非常灵活的。
如果想要清除某个网络接口的IP地址,则可以使用flush,如下所示:
root@node1:~# ip -4 addr flush ens37
上面的命令使用-4选项来表示清除IPv4类型的IP地址,同时指定网络接口为ens37。
注意:通过ip命令修改的IP地址重启后会消失。如果想永久保存,请修改网络配置文件。
3. 管理路由表
在ip命令中,路由表使用route对象表示。route可以缩写为r或者ro。从Linux内核2.2版本开始,内核把路由归纳到许多路由表中,并对这些表都进行编号,编号的范围是1~255。另外,为了方便,还可以在/etc/iproute2/rt_tables中为路由表命名。例如,下面的代码为一个默认的rt_tables文件的内容:
itadmin@lenovo-07:~$ cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
在上面的文件中,每行定义一个路由表,前面的数字为路由表编号,后面为路由表名称,例如local、main以及default等。上面的几个路由表为默认路由表,用户不可以修改。用户可以修改该文件,增加新的路由表,但是前面的编号不可以重复。
默认情况下,所有的路由都会被插入编号为254的main表中。在进行路由查询时,内核只使用路由表 main。
默认情况下,ip命令会显示出main路由表的路由信息,如下所示:
root@node1:~# ip route show
default via 192.168.6.1 dev ens33 proto dhcp src 192.168.6.101 metric 100
default via 192.168.8.2 dev ens37 proto static metric 101
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.6.0/24 dev ens33 proto kernel scope link src 192.168.6.101 metric 100
192.168.8.0/24 dev ens37 proto kernel scope link src 192.168.8.150 metric 101
从上面的输出可以得知,当前系统的main路由表中一共有5条路由信息。其中第1~2行都为默认路由,使用关键字default表示。第1行为网络接口ens33指定默认网关为192.168.6.1,其跳数为100。第2行为网络接口ens37指默认网关为192.168.8.2,其跳数为101。默认网关是必须要有的路由信息,当系统在发送数据包的时候,查不到相应的路由信息,便直接从默认路由发送。
如果想要显示其他路由表的路由记录,则可以通过table关键字来指定路由表,如下所示:
root@node1:~# ip route show table local
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
local 172.17.0.1 dev docker0 proto kernel scope host src 172.17.0.1
broadcast 172.17.255.255 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
local 192.168.6.101 dev ens33 proto kernel scope host src 192.168.6.101
broadcast 192.168.6.255 dev ens33 proto kernel scope link src 192.168.6.101
local 192.168.8.150 dev ens37 proto kernel scope host src 192.168.8.150
broadcast 192.168.8.255 dev ens37 proto kernel scope link src 192.168.8.150
上面的命令显示了local路由表的路由信息。
注意:如果没有指定table关键字,则默认为main路由表。
下面的例子删除一条默认路由:
root@node1:~# ip route del default
执行完以上命令之后,再次显示路由表信息,结果如下:
root@node1:~# ip route list
default via 192.168.8.2 dev ens37 proto static metric 101
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.6.0/24 dev ens33 proto kernel scope link src 192.168.6.101 metric 100
192.168.8.0/24 dev ens37 proto kernel scope link src 192.168.8.150 metric 101
可以得知,网络接口 ens37的默认路由已经被删除了。由于当前系统还有一条通过网络接口ens37的默认路由,因此该系统仍然可以访问其他所有的网络。如果再执行一次上面的命令,把网络接口ens37的默认路由也删除,则该系统便不能访问其他的网络了,如下所示:
root@node1:~# ip route del default
root@node1:~# ping 8.8.8.8
ping: connect: 网络不可达
但是由于通向网络192.168.6.0/24和192.168.8.0/24的路由还存在,因此这两个网络仍然可以访问,如下所示:
root@node1:~# ping 192.168.8.2
PING 192.168.8.2 (192.168.8.2) 56(84) bytes of data.
64 bytes from 192.168.8.2: icmp_seq=1 ttl=128 time=0.232 ms
64 bytes from 192.168.8.2: icmp_seq=2 ttl=128 time=0.085 ms
为了使得系统能够访问其他的网络,使用以下命令添加一条默认路由:
root@node1:~# ip route add default via 192.168.6.1 dev ens33
root@node1:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=3 ttl=114 time=10.3 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=114 time=10.6 ms
ip route get命令可以获取通向某个IP地址的路由信息,如下所示:
root@node1:~# ip route get 8.8.8.8
8.8.8.8 via 192.168.6.1 dev ens33 src 192.168.6.101 uid 0 cache
上面的命令告诉我们,发送到8.8.8.8的数据包经过网络接口ens37,并且通过网关192.168.6.1。
4. 管理策略路由
在某些情况下,我们不只是需要通过数据包的目的地址决定路由,可能还需要通过其他一些信息,例如源地址、IP协议、传输层端口甚至数据包的负载。这叫作策略路由。策略路由是Linux提供的一种比较高级的路由功能。策略路由由路由规则来表示,在IP命令中,其对象为rule。同样,
相关文章:
Ubuntu 第11章 网络管理_常用的网络配置命令
为了管理网络,Linux提供了许多非常有用的网络管理命令。利用这些命令,一方面可以有效地管理网络,另一方面出现网络故障时,可以快速进行诊断。本节将对Ubuntu提供的网络管理命令进行介绍。 11.2.1 ifconfig命令 关于ifconfig命令&…...

【Qt】Qt 构建系统详解:qmake 入门到项目实战
Qt 构建系统详解:qmake 入门到项目实战 本文将系统介绍 Qt 构建工具 qmake 的用法,并通过一个完整的项目结构示例,帮助你掌握 .pro 文件编写、子项目管理、模块依赖等核心技能。 🧭 一、什么是 qmake? qmake 是 Qt 提…...
Python实例题:pygame开发打飞机游戏
目录 Python实例题 题目 pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本 代码解释 初始化部分: 游戏主循环: 退出部分: 运行思路 注意事项 Python实例题 题目 pygame开发打飞机游戏 pygame-aircraft-game使用 Pygame 开发…...

《Zabbix Proxy分布式监控实战:从安装到配置全解析》
注意:实验所需的zabbix服务器的搭建可参考博客 zabbix 的docker安装_docker安装zabbix-CSDN博客 1.1 实验介绍 1.1.1 实验目的 本实验旨在搭建一个基于Zabbix的监控系统,通过安装和配置Zabbix Proxy、MySQL数据库以及Zabbix Agent,实现分…...

华为配置篇-RSTP/MSTP实验
MSTP 一、简介二、常用命令总结三、实验 一、简介 RSTP(快速生成树协议) RSTP(Rapid Spanning Tree Protocol)是 STP 的改进版本,基于 IEEE 802.1w 标准,核心目标是解决传统 STP 收敛速度慢的问…...

git如何将本地 dev 分支与远程 dev 分支同步
要让本地 dev 分支与远程 dev 分支完全同步(丢弃本地多余的提交记录),可以按照以下步骤操作: 1. 获取远程最新状态 git fetch origin dev # 拉取远程 dev 分支的最新提交,但不会修改本地代码 IDEA中点击fetc…...
使用Python和OpenCV实现实时人脸检测与识别
前言 在计算机视觉领域,人脸检测与识别是两个非常重要的任务。人脸检测是指在图像中定位人脸的位置,而人脸识别则是进一步识别出人脸的身份。随着深度学习的发展,这些任务的准确性和效率都有了显著提升。OpenCV是一个开源的计算机视觉库&…...

Unity基础学习(九)输入系统全解析:鼠标、键盘与轴控制
目录 一、Input类 1. 鼠标输入 2. 键盘输入 3. 默认轴输入 (1) 基础参数 (2)按键绑定参数 (3)输入响应参数 (4)输入类型与设备参数 (5)不同类型轴的参…...

QT:获取软件界面窗口的尺寸大小2025.5.8
在Windows系统中,获取软件界面窗口的尺寸大小可以通过多种方法实现,以下是基于不同场景的详细解决方案: 方法1:使用Windows API获取窗口尺寸 适用于获取外部应用程序窗口的尺寸(如记事本、计算器等)。 步…...

【ML-Agents】ML-Agents示例项目导入unity报错解决
最近在跑ML-Agents的示例代码,无奈往unity中导入项目后,就出现报错。本文简要描述了各个报错的解决方法。 文章目录 一、error CS0234: The type or namespace name InputSystem does not exist in the namespace UnityEngine (are you missing an assem…...
【网络安全】SQL注入
如果文章不足还请各位师傅批评指正! 想象一下,你经营着一家咖啡店,顾客可以通过店内的点单系统下单。这个系统会根据顾客的输入,向后厨发送指令,比如“为顾客A准备一杯拿铁”。 然而,如果有个不怀好意的顾客…...

Transformer Decoder-Only 参数量计算
Transformer 的 Decoder-Only 架构(如 GPT 系列模型)是当前大语言模型的主流架构,其参数量主要由以下几个部分组成: 嵌入层(Embedding Layer)自注意力层(Self-Attention Layers)前馈…...

uni-app 中的条件编译与跨端兼容
uni-app 为了实现一套代码编译到多个平台(包括小程序,App,H5 等),引入了条件编译机制。 通过条件编译,我们可以针对不同的平台编写特定的代码,从而实现跨端兼容。 一、条件编译的作用 平台差异…...
<C#>log4net 的配置文件配置项详细介绍
log4net 是一个功能强大的日志记录工具,通过配置文件可以灵活地控制日志的输出方式、格式、级别等。以下是对 log4net 配置文件常见配置项的详细介绍: 根元素 <log4net> 这是 log4net 配置文件的根元素,所有配置项都要包含在该元素内…...
excel单元格如果是日期格式,在C#读取的时候会变成45807,怎么处理
excel单元格如果是日期格式,在C#读取的时候会变成45807,怎么处理 excel单元格如果是日期格式,在C#读取的时候会变成45807,怎么处理 在 C# 中,Excel 日期被表示为一个数字,这是因为 Excel 内部将日期存储为…...

Unity接入SDK之修改Unity启动页面
原理就是在Android Studio新建Activity继承UnityPlayerActivity,然后再Unity中修改启动页面。 一,Android Studio篇 首先新建一个项目, 新建完成之后基于新建的项目新建一个module,选择为Android Library类型 新建的Library再目…...

yarn workspace使用指南
作用 Yarn workspace 是 Yarn 包管理工具中的一个功能,主要用于管理多包项目(monorepo)。它的主要作用如下: 支持多包结构:允许在一个仓库中管理多个独立的包或项目。项目间依赖管理:方便地在不同包之间添…...
[学习]RTKLib详解:datum.c、download.c与lambda.c
RTKLib详解: datum.c、download.c 与 lambda.c 本文是 RTKLlib详解 系列文章的一篇,目前该系列文章还在持续总结写作中,以发表的如下,有兴趣的可以翻阅。 [学习] RTKlib详解:功能、工具与源码结构解析 [学习]RTKLib详解ÿ…...

VUE el-select下拉框动态设置禁用,删除后恢复可选择
场景:点击新增添加按钮,列表table会新增一条包含下拉菜单的数据,如果其中任何一个下拉框选择了某个值,那么新增的下拉菜单的选项中该值是禁用状态,只能选择其他未被选中过的值。点击删除按钮后,已禁用的选项…...

FPGA----基于ALINX提供的debian实现TCF
引言:接上问,我们使用自制的image.ub和boot.bin以及ALINX提供的debian8根文件系统,构建了petalinux,但是经测试,该文件系统无法启用TCF服务,即无法与Xilinx SDK建立连接,那么我们应该如何解决? FPGA----基于ZYNQ 7020实现定制化的EPICS通信系统-CSDN博客文章浏览阅读4…...

木马查杀篇—Opcode提取
【前言】 介绍Opcode的提取方法,并探讨多种机器学习算法在Webshell检测中的应用,理解如何在实际项目中应用Opcode进行高效的Webshell检测。 Ⅰ 基本概念 Opcode:计算机指令的一部分,也叫字节码,一个php文件可以抽取出…...
1.7 方向导数
(底层逻辑演进脉络)从"单车道"到"全路网"的导数进化史: 一、偏导数奠基(1.6核心) 诞生背景:多元函数分析需求 当变量间存在耦合关系时(如房价面积单价装修成本)…...
设计模式系列(01):总览与引导
设计模式系列(01):总览与引导 本文为设计模式系列第1篇,定位为总览和引导,系统梳理设计模式的核心思想、分类、UML、设计原则、典型场景、学习建议与常见误区,适合系统学习与团队协作。 目录 1. 前言2. 设计模式简介3. UML与设计模式4. 术语解释5. UML工具与PlantUML6. 面…...

国产化Excel处理控件Spire.XLS系列教程:如何通过 C# 删除 Excel 工作表中的筛选器
在 Excel 文件中,筛选器(Filter)是一个常用的数据处理工具,可以帮助用户快速按条件筛选数据行。但在数据整理完成、导出、共享或打印之前,往往需要 删除 Excel 工作表中的筛选器,移除列标题中的下拉筛选按钮…...
第二篇 客户端脚本安全
同源策略 限制了来自不同的"dociment"或脚本,对当前"dociment"读取或设置一些属性。 不同源:host(域名或ip),子域名,端口,协议。 对于当前页面来说,页面的源…...

[sklearn] 特征工程
一.字典数据抽取 def dictvec():"""字典数据抽取:return: None"""# 实例化# sparse改为True,输出的是每个不为零位置的坐标,稀疏矩阵可以节省存储空间dict DictVectorizer(sparseFalse) #矩阵中存在大量的0,sparse存储只…...

CI/CD与DevOps流程流程简述(提供思路)
一 CI/CD流程详解:代码集成、测试与发布部署 引言 在软件开发的世界里,CI/CD(持续集成/持续交付)就像是一套精密的流水线,确保代码从开发到上线的整个过程高效、稳定。我作为一名资深的软件工程师,接下来…...

S7-1500——零基础入门1、工业编程基本概念
工业编程基本概念 一,数制与基本数据类型二,数字量信号三,模拟量信号一,数制与基本数据类型 本节主要内容 类别内容主题数制与基本数据类型数制讲解十进制、十六进制、二进制及其进位规则;基数、位权概念数据类型介绍PLC 使用的数据类型:未序列数据类型(bit、byte、wor…...

六、快速启动框架:SpringBoot3实战
六、快速启动框架:SpringBoot3实战 目录 一、SpringBoot3介绍 1.1 SpringBoot3简介1.2 系统要求1.3 快速入门1.4 入门总结 二、SpringBoot3配置文件 2.1 统一配置管理概述2.2 属性配置文件使用2.3 YAML配置文件使用2.4 批量配置文件注入2.5 多环境配置和使用 三、…...

万兴PDF-PDFelement v11.4.13.3417
万兴PDF专家(Wondershare PDFelement)是一款国产PDF文档全方位解决方案.万兴PDF编辑器软件万兴PDF中文版,专注于PDF的创建,编辑,转换,签名,压缩,合并,比较等功能.万兴PDF专业版PDF编辑软件,以简约风格及强大的功能在国外名声大噪,除了传统功能外,还提供OCR扫描,表格识别,创建笔…...