Sy8网络管理命令(ubuntu23.10和centos8)

2024-04-27 11:28

本文主要是介绍Sy8网络管理命令(ubuntu23.10和centos8),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言、

本次实验主要是扩展学习,不仅限在课本的内容。毕竟课本的内容太过于陈旧了。需要的童鞋看看。

说明:(书本中sy9”第3.实验内容“大家还是要做下。)

1、使用ubuntu做实验的童鞋只要看第二、三、四、七章节的部分内容。

2、使用centos做实验的童鞋重点查看第五、六、七章节的内容。

实验环境:

宿主机为win11,网络:10.255.50.5 6389

WSL2 ubuntu

目标机的OS:Ubuntu 内核、版本如下:

linux@peggy0223:/$ uname -r

5.15.146.1-microsoft-standard-WSL2

linux@peggy0223:/$ cat /proc/version

Linux version 5.15.146.1-microsoft-standard-WSL2 (root@65c757a075e2) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP Thu Jan 11 04:09:03 UTC 2024

实验9 网络管理命令

1.实验目的

1)了解网络配置文件。

2)掌握网络基本配置的正确方法。

3)掌握常用的网络操作命令的用法。

4)掌握telnet、rlogin等服务的配置。

2.复习常用命令

ping:测试本机与网络中其他计算机的联通性。 forle

ifconfig:查看或配置本地主机的网络。

netstat:获取网络连接和状态信息。

3.实验内容

1)用vi编辑器打开/etc/hosts.allow与/etc/hosts.deny文件,修改配置以允许或禁止同网段的其他主机访问。

2)用vi编辑器打开其他网络配置文件并了解其作用。

3)执行ping命令,测试与其他主机的联通性。

4)执行ifconfig命令,修改自己主机的IP、网络掩码和网关地址。

5)执行netstat命令,查看网络的连接和状态信息。

6)参考本书内容学习配置telnet服务。

7)参考本书内容学习配置rlogin等服务。

4.实验报告

以书面形式记录每一个实验内容,包括遇到的问题和解决方法。

5.思考题

1.如何禁止某个(子)网段主机的访问?

2.如何通过telnet等命令登录远程主机?

一、ubuntu网络故障的解决: 

Vmware workstation中安装的ubuntu 2204中配置网卡后出现网卡一个问号的未知状态?如何解决?

A.首先尝试了如下命令:(注意这些命令必须是在非root账户下才可以使用,才可以识别networking的相关服务变量)

systemctl restart networking.service,

Nmtui

Service networking restart

Systemctl restart NetworkManager

同时图形化界面也配置了,也无法解决这个网卡问号的状态。

解决方式:

在VM workstation上重启配置虚拟网卡,先删除再添加一个,同时重置虚拟网卡的缺省配置。

注意,重新restore defaults后可能会有新的网段,比如VMnet8的NAT的子网就可从之前192.168.248.0变成了192.168.105.0的网段了,同理若是使用VMnet1也是一样。

二、设置服务器镜像源:提高Ubuntu软件的安装/更新速度

配置apt 更新源-20240401:

root@testhost01:/home/test/Desktop#

root@testhost01:/home/test/Desktop# lsb_release -a

No LSB modules are available.

Distributor ID:        Ubuntu

Description:        Ubuntu 20.10

Release:        20.10

Codename:        groovy

root@testhost01:/home/test/Desktop#

图形界面:

等来了如下结果,于是我想是否用下国外的网络测试下:

这样以后排查问题也是个思路

升级之后:

同时再other software中删除旧的,新增清华和阿里的把.

更新源

1. 备份源sources.list文件

cp /etc/apt/sources.list /etc/apt/sources2.list

2. 更新源sources.list文件内容

gedit /etc/apt/sources.list ;选择下面其中一个源进行替换(推荐清华源)

apt-get update        ;替换后记得更新源列表

阿里云:

ubuntu镜像_ubuntu下载地址_ubuntu安装教程-阿里巴巴开源镜像站

参考官网说明:

sed -i 's/https:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/apt/sources.list

清华源:

ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

以上两个都有详细的配置方法!

三、ubuntu23.10下网络操作命令使用

为了操作方便,先切换到root。

vms中NAT方式获取的ip如下:

root@testhost01:/# ifconfig

结果:

root@testhost01:/# ifconfig ens36 down

root@testhost01:/# ifconfig

结果:

root@testhost01:/# ip addr add 192.168.105.200/24 dev ens36

root@testhost01:/# ip addr

底层网络设置 – ip

ip 和先前的 ifconfig 和 route 有相同功能的命令如下:

  • ip link show
  • ip route list
  • ip link set eth0 down
  • ip addr del dev eth0 local 192.168.0.3
  • ip addr add dev eth0 local 192.168.0.111/24 broadcast 192.168.0.255
  • ip link set eth0 up
  • ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1

运行的时候使用 help 参数,能让 ip 打印出命令的语法。 例如,ip link help 打印出:

Usage: ip link set DEVICE { up | down | arp { on | off } |
dynamic { on | off } |
multicast { on | off } | txqueuelen PACKETS |
name NEWNAME |
address LLADDR | broadcast LLADDR |
mtu MTU }
ip link show [ DEVICE ]

四、ubuntu23.10配置文件

注意UBUNTU23.04之后的版本网卡配置文件不一样了,使用netplan来配置。

先了解下Netplan —— 抽象网络配置生成器

1、Netplan配置流程

默认配置文件

/etc/netplan目录下。您可以查看: ls /etc/netplan/

2、查看配置文件内容

cat /etc/netplan/*.yaml

3、使用vim\nano来编辑yaml文件

vim /etc/netplan/*.yaml

根据您的网络需要更新配置文件。对于静态 IP 寻址,添加 IP 地址、网关、DNS 信息,而对于动态 IP 寻址,无需添加此信息,因为它将从 DHCP 服务器获取此信息。使用以下语法编辑配置文件。

4、测试配置文件并修改生效:sudo netplan try,如果没有问题,它将返回配置接受消息。如果配置文件未通过测试,它将恢复为以前的工作配置。

5、重启网络服务

如果是桌面版:

sudo systemctl restart system-networkd

如果您使用的是 Ubuntu 服务器,请改用以下命令:

sudo systemctl restart network-manager

6、验证IP是否生效:ip addr

2、Netplan配置文件注解:

2.1、使用DHCP

network:

  version: 2

  renderer: networkd

  ethernets:

    enp3s0:

      dhcp4: true

2.2、使用staticIP

network:

  version: 2

  renderer: networkd

  ethernets:

    enp3s0:

      addresses:

        - 10.0.0.10/8

      gateway4: 10.0.0.1

      nameservers:

          search: [mydomain, otherdomain]

          addresses: [10.0.0.5, 1.1.1.1]

2.3、多个网卡DHCP

network:

  version: 2

  ethernets:

    enred:

      dhcp4: yes

      dhcp4-overrides:

        route-metric: 100

    engreen:

      dhcp4: yes

      dhcp4-overrides:

        route-metric: 200

2.4、在单网卡配置多个IP(同一个网段)

network:

  version: 2

  renderer: networkd

  ethernets:

    enp3s0:

     addresses:

       - 10.0.0.10/8

       - 10.0.0.10/8

     gateway4: 10.0.0.1

2.5、在单网卡配置不同网段的IP

network:

  version: 2

  renderer: networkd

  ethernets:

    enp3s0:

     addresses:

       - 9.0.0.9/24

       - 10.0.0.10/24

       - 11.0.0.11/24

     #gateway4:    # unset, since we configure routes below

     routes:

       - to: 0.0.0.0/0

         via: 9.0.0.1

         metric: 100

       - to: 0.0.0.0/0

         via: 10.0.0.1

         metric: 100

       - to: 0.0.0.0/0

         via: 11.0.0.1

         metric: 100

2.6、连接wifi网络

 Connect to WPA encrypted WiFi:

network:

  version: 2

  renderer: networkd

  wifis:

    wlp2s0b1:

      dhcp4: no

      dhcp6: no

      addresses: [10.0.0.10/8]

      gateway4: 10.0.0.1

      nameservers:

        addresses: [10.0.0.5, 8.8.8.8]

      access-points:

        "network_ssid_name":

          password: "**********"

Connect to open WiFi (without password):

network:

  version: 2

  wifis:

    wl0:

      access-points:

        opennetwork: {}

      dhcp4: yes

3、配置本机的网络

先用ip addr 查看网卡名称,如ens33,然后找对应的yaml文件。

root@testhost01:/etc/netplan#  cp 90-NM-c9079332-b430-3d27-aefc-c81bc607a273.yaml 90-NM-c9079332-b430-3d27-aefc-c81bc607a273.yaml0

root@testhost01:/etc/netplan# ls

90-NM-9052ccd1-2d87-4272-88c0-c515a52f8ac7.yaml

90-NM-c9079332-b430-3d27-aefc-c81bc607a273.yaml

90-NM-c9079332-b430-3d27-aefc-c81bc607a273.yaml0

root@testhost01:/etc/netplan#  vi 90-NM-c9079332-b430-3d27-aefc-c81bc607a273.yaml

再编辑修改ip

注意缩进

然后

netplan try

netplan apply

最后重启网络验证:

systemctl restart NetworkMangager

五、centos8的网络操作命令

参考:

Centos8的版本如下:

[root@k8s-m1 ~]# uname -a

Linux k8s-m1 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

[root@k8s-m1 ~]# lsb_release -a

LSB Version:        :core-4.1-amd64:core-4.1-noarch

Distributor ID:        CentOS

Description:        CentOS Linux release 8.5.2111

Release:        8.5.2111

Codename:        n/a

[root@k8s-m1 ~]#

Centos8使用NetworkManager.service(检测NM)管理网络服务,之前早期的centos7/rhel7用的时network.service,centos8/rhel8目前已经不怎么使用,默认没有安装network.service。

NetworkManager.service(检测NM)对应的工具命令为:nmcli/nmtui

nmcli使用方法

nmcli使用方法非常类似linux ip命令、cisco交换机命令,并且支持tab补全(详见本文最后的Tips),也可在命令最后通过-h、--help、help查看帮助。在nmcli中有2个命令最为常用:

nmcli connection

译作连接,可理解为配置文件,相当于ifconfig。可以简写为nmcli c

nmcli device

译作设备网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d

在NM里,有2个维度:连接(connection)设备(device),这是多对一的关系。想给某个网卡配ip,首先NM要能纳管这个网卡。

设备里存在的网卡(即nmcli d可以看到的),就是NM纳管的。接着,可以为一个设备配置多个连接(即nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过nmcli c up切换连接。

connection有2种状态

▷ 活跃(带颜色字体):表示当前该connection生效

▷ 非活跃(正常字体):表示当前该connection不生效

device有4种常见状态

▷ connected:已被NM纳管,并且当前有活跃的connection

▷ disconnected:已被NM纳管,但是当前没有活跃的connection

▷ unmanaged:未被NM纳管

▷ unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ethX down)

如上图操作,使用了ip link set ens33 down之后nm device的颜色并没有发生变化,而且也不是断开的状态,但是效果时一样的。!

nmcli常用命令参数: 

# 查看ip(类似于ifconfig、ip addr)

 nmcli

 ​

 # 创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)

nmcli c add type ethernet con-name ens33 ipv4.addresses 192.168.105.199/24 ipv4.gateway 192.168.105.2 ipv4.method manual

以上命令会在/etc/sysconfig/network-scripts/下生成一个ifcfg-ens33-1的文件,文件内容见“第六部分的配置文件 cat ifcfg-ens33-1”,因只有一个ens33网卡(ens33-1是另外一个状态),所以nmcli c查看的时候只有一个状态是活跃的。

 ​

 # 创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)

 nmcli c add type ethernet con-name ens33 ifname ethX ipv4.method auto

 ​

 # 修改ip(非交互式)这里是针对ifcfg-ens33这个文件生效了。

 nmcli c modify ens33 ipv4.addr '192.168.105.99/24'

 nmcli c up ens33

 ​

 # 还可以交互式

  ​

 # 启用connection(相当于ifup)

 nmcli c up ens33

 ​

 # 停止connection(相当于ifdown)

 nmcli c down

 ​

 # 删除connection(类似于ifdown并删除ifcfg)

 nmcli c delete ens33

 ​

 # 查看connection列表

 nmcli c show

 ​

 # 查看connection详细信息

 nmcli c show ens33

 ​

 # 重载所有ifcfg或route到connection(不会立即生效)

 nmcli c reload

 ​

 # 重载指定ifcfg或route到connection(不会立即生效)

 nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX

 nmcli c load /etc/sysconfig/network-scripts/route-ethX

 ​

 # 立即生效connection,有3种方法

 nmcli c up ethX

 nmcli d reapply ethX

 nmcli d connect ethX

 ​

 # 查看device列表

 nmcli d

 ​

 # 查看所有device详细信息

 nmcli d show

 ​

 # 查看指定device的详细信息

 nmcli d show ethX

 ​

 # 激活网卡

 nmcli d connect ethX

 ​

 # 关闭无线网络(NM默认启用无线网络)

 nmcli r all off

 ​

 # 查看NM纳管状态

 nmcli n

 ​

 # 开启NM纳管

 nmcli n on

 ​

 # 关闭NM纳管(谨慎执行)

 nmcli n off

 ​

 # 监听事件

 nmcli m

 ​

 # 查看NM本身状态

 nmcli

 ​

 # 检测NM是否在线可用

 nm-online

重启查看网络服务的命令:

 systemctl stauts NetworkManager

 systemctl stop NetworkManager

 systemctl start NetworkManager

 systemctl restart NetworkManager

六、centos8的网络配置文件

配置文件名

文件功能说明

/etc/sysconfig/network-scripts/ifcfg-ens33

网络配置接口文件

/etc/hostname

本地主机名配置文件

/etc/hosts

完成主机名映射为IP的解析功能

/etc/networks

完成域名与网络地址(网络ID)的映射

/etc/host.conf

配置域名服务客户端的控制文件

/etc/resolv.conf

配置域名服务客户端的配置文件,用于指定域名服务器的位置

/etc/protocols

当前linux支持的协议以及各个协议号

/etc/services

当前linux支持的网络服务及端口号

以上配置文件实例内容。

/etc/protocols和

/etc/services的内容比较多,未列出。

网络接口配置文件:

[root@k8s-m1 network-scripts]# cat ifcfg-ens33-1

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

IPADDR=192.168.105.199

PREFIX=24

GATEWAY=192.168.105.2

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

UUID=0c00bd60-9cab-4e99-b812-5ec4c88631ba

ONBOOT=yes

[root@k8s-m1 network-scripts]#

这里可以使用以下方法来对ifcfg-ethxx进行配置:

  • 1. 手工配置ifcfg,通过NM来生效
  •  2. 通过NM自带工具配ip,比如nmcli

第1种直接写文件。

#这里需要 nmcli c reload,

# nmcli c up eth0 # 如果之前没有eth0的connection,则上一步reload后就已经自动生效

操作命令如下:

cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF

 NAME=eth0

 DEVICE=eth0

 ONBOOT=yes

 BOOTPROTO=none

 TYPE=Ethernet

 IPADDR=192.168.1.10

 NETMASK=255.255.255.0

 GATEWAY=192.168.1.1

 EOF

 第2种如上述第五部分所讲的,NM其实也就是对配置文件ifcfg的修改。

最后这里补下nmtui的工具使用:

输入nmtui进入:

使用TAB键来上下移动,ENTER选择对应的选项,比如进入“编辑连接”选项:

然后选择其中一个以太网的网卡,ENTER后进入编辑界面:

这里可以手动输入对应的ip,gw,route等信息。输入后TAB到确定返回上一步保存退出。

这里我举个自己的例子对照:

首先使用ip addr查看:

[root@k8s-m1 network-scripts]# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

    link/ether 00:0c:29:59:bb:f9 brd ff:ff:ff:ff:ff:ff

    inet 192.168.105.130/24 brd 192.168.105.255 scope global dynamic noprefixroute ens33

       valid_lft 923sec preferred_lft 923sec

    inet 192.168.52.200/24 scope global ens33

       valid_lft forever preferred_lft forever

    inet 192.168.105.99/24 brd 192.168.105.255 scope global secondary noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:fe59:bbf9/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default

    link/ether 02:42:1e:5d:d5:9e brd ff:ff:ff:ff:ff:ff

其次通过ifconfig查看:

[root@k8s-m1 network-scripts]# ifconfig -a

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether 02:42:1e:5d:d5:9e  txqueuelen 0  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.105.130  netmask 255.255.255.0  broadcast 192.168.105.255

        inet6 fe80::20c:29ff:fe59:bbf9  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:59:bb:f9  txqueuelen 1000  (Ethernet)

        RX packets 21257  bytes 29228819 (27.8 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 12071  bytes 939917 (917.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 1000  (Local Loopback)

        RX packets 18  bytes 1238 (1.2 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 18  bytes 1238 (1.2 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

然后通过nmcli 查看:

[root@k8s-m1 network-scripts]# nmcli connection

NAME   UUID                                  TYPE      DEVICE

ens33  b5fbcdf1-cac3-4839-9015-886dc7546a68  ethernet  ens33 

ens33  0c00bd60-9cab-4e99-b812-5ec4c88631ba  ethernet  --    

[root@k8s-m1 network-scripts]# nmcli

ens33: 已连接 到 ens33

        "Intel 82545EM"

        ethernet (e1000), 00:0C:29:59:BB:F9, 硬件, mtu 1500

        ip4 默认

        inet4 192.168.105.99/24

        inet4 192.168.105.130/24

        inet4 192.168.52.200/24

        route4 0.0.0.0/0

        route4 192.168.105.0/24

        route4 192.168.105.0/24

        route4 192.168.52.0/24

        inet6 fe80::20c:29ff:fe59:bbf9/64

        route6 fe80::/64

docker0: 已断开

        "docker0"

        bridge, 02:42:1E:5D:D5:9E, 软件, mtu 1500

lo: 未托管

        "lo"

        loopback (unknown), 00:00:00:00:00:00, 软件, mtu 65536

DNS configuration:

        servers: 192.168.105.2

        domains: localdomain

        interface: ens33

使用 "nmcli device show" 获取关于已知设备的完整信息,以及

"nmcli connection show" 获取活动连接配置集的概述。

完整的用法细节,可参考 nmcli(1) 和 nmcli-examples(7) 手册页。

这里验证下,我从宿主机[192.168.105.1]win11ping了两个地址都是ok的,说明可用

这里我通过secCRT ssh的地址为192.168.105.130这个肯定必须可用的。

接下来通过nmtui修改查看对比:

nmtui执行:

这里设备为ens33(mac后4位--BB:F9)

修改为192.168.105.98/24

然后进入

这里第二个ens33,设备名就是空的了。

修改为192.168.105.198/24

保存退出。

再来查看,发现没有变化:

同时查看对应的ifcfg文件,发现通过nmtui修改生效了

Ifcfg-ens33对应的nutui界面上的第一个ens33,设备名后4位为BBF9

Ifcfg-ens33-1对应的刚才第二个ens33,设备名为空。

这里我

使用nmcli conn reload和systemctl restart NetworkManger之后还是一样

没有看到更改后的效果,这里必须重新连接网卡接口才可以生效!

重新连接网络接口:

 nmcli conn down ens33

nmcli conn up ens33

我重启了,失去了105.130的ssh连接,通过vm控制台进入查看后生效了。

如果重启这里192.168.105.130的IP就会失效,如果不重起这个92.168.105.130还是存在的,可能是vmware的原因。

这里给大家演示了,过程,有出错调试的。感觉更让人信服。

七、关于以上网络配置的说明

linux下的网络配置操作方法有以上两种,但是按配置后生效的结果又可以区分为临时性网络配置和永久性网络配置。

a、临时性网络配置

通过命令修改当前内核中的网络相关参数实现,比如使用命令(ip、 ifconfig、route、sysctl –w等),配置后立即生效,重启失效。

b、永久性网络配置

通过修改网络相关的配置文件实现,比如使用(vim/nano编辑器直接编辑)或是通过nmcli/nmtui工具(其实也就是针对配置文件编辑的)。修改后需重新连接指定的网络接口,重新开机后保留所有配置。

这篇关于Sy8网络管理命令(ubuntu23.10和centos8)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940377

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

linux 判断某个命令是否安装

linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' >&2exit 1fi

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

Linux命令(4):fg与bg命令

fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的 一.& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行 二.ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停 三.jobs 查看当前有多少在后台运行的命令 四.fg 将后台中的命令调至前台继续运行 如果后台中有多个命令,可以

Linux命令(3):sz与rz命令

一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地; 与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive) rz,sz是便是Linux

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

Linux命令(11):系统信息查看命令

系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

Android下执行linux命令

最近在开发过程中 使用了几个命令来对   手机的文件的权限进行修改;现在记录一下: 用到的方法: 1:判断是否有Root权限;  /**      * 判断当前手机是否有ROOT权限      * @return      */     public static boolean isRoot(){         boolean bool = false;         try{