Linux系统管理二

目录

一.远程连接管理服务SSH

1.1 了解服务端和客户端

1.2 了解端口号的设定

1.3 了解ssh服务的作用

1.4 ssh搭建服务

二.netstat

2.1 netstat简介

2.2 netstat命令参数

2.3 常用命令参考

三.进程的检测与控制

3.1 管道

3.1.1 什么是管道

3.1.2 管道的分类

3.1.3 xargs命令

3.2 进程

3.2.1 什么是进程

3.2.2 进程有什么特点

3.2.3 进程信息查看

3.1 静态查看 ps命令

3.2 动态查看 top命令

四.时间同步(NTP服务)

五.计划任务

5.1 计划任务简介

5.1.1 crond 与 crontab 的关系

5.1.2 crond服务的安装与管理

5.1.3 任务调度的分类

5.2 计划任务创建


一.远程连接管理服务SSH

1.1 了解服务端和客户端

服务端:提供服务

客户端:享受服务

通过 IP地址 和 Port端口号 去找到相对应的服务

1.2 了解端口号的设定

说明:端口号只有整数,范围是从0 到65535

  • 1~255:一般是知名端口号,如:ftp 21号、web 80、ssh 22、telnet 23号等

  • 256~1023:通常都是由Unix系统占用来提供特定的服务

  • 1024~5000:客户端的临时端口,随机产生大于5000:为互联网上的其他服务预留

1.3 了解ssh服务的作用

用于Linux下远程连接管理服务器的安全协议。

功能:远程管理Linux服务器

  • SSH服务默认端口22

  • SSH服务是C/S架构

服务器端(开启ssh服务):安装软件(openssh-server)

客户端(专门的客户端工具): windows:SecureCRT 、 MobaXterm linux:openssh-clients ssh/scp

1.4 ssh搭建服务

Ⅰ ssh服务设置

systemctl status sshd  查看状态
systemctl stop sshd 关闭服务
systemctl start sshd 开启服务
systemctl restart sshd 重启服务
systemctl disable sshd 不自启
systemctl enable sshd 自启

Ⅱ ssh端口设置

netstat -ntap 查看端口

修改ssh服务端口vim /etc/ssh/sshd_config#在文件中添加以下行即可
Port 端口号重启服务
systemctl restart sshd

二.netstat

2.1 netstat简介

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态(Interface Statistics),masquerade连接,多播成员(Multicast Memberships)等。

命令的输出有两部分,第一部分是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列,这些数字一般都应该是0,如果不是则表示软件包正在队列中堆积。

第二部分是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能比网络套接字高一倍)。Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

2.2 netstat命令参数

注:netstat命令默认是不显示LISTEN状态的网络连接和LISTEING状态的UNIX域连接,只有使用带-a或者-l参数的命令才能显示出来。

Tisp:需安装net-tools工具才可以使用netstat命令,执行下面这条命令进行安装 # yum install -y net-tools

-a (all)显示所有状态的连接
-t (tcp)仅显示tcp相关连接
-u (udp)仅显示udp相关连接
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在监听状态的连接-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

2.3 常用命令参考

Ⅰ 列出所有连接(包括监听和为监听状态)

命令:netstat -a;列出所有状态下的连接命令:netstat -at;列出所有状态下的tcp连接命令:netstat -au;列出所有状态下的udp连接 命令:netstat -ax;列出所有状态下的UNINX域连接

Ⅱ 列出处于LISTEN状态的连接

命令:netstat -l;列出所有处于LISTEN状态的连接命令:netstat -lt;列出所有处于LISTEN状态的tcp连接命令:netstat -lu;列出所有处于LISTEN状态的udp连接命令:netstat-lx;列出所有处于LISTENING状态的UNIX域连接

Ⅲ 统计通信协议连接信息

命令:netstat -s;统计所有连接的通信协议连接信息命令:netstat -st;统计基于tcp连接的通信协议连接信息命令:netstat -su;统计基于udp连接的通信协议连接信息

Ⅳ 输出中显示进程ID和进程名信息(可搭配其他参数使用)

命令:netstat -p;列出除LISTEN和LISTENING状态下的连接,包含连接所属进程的进程ID和进程名命令:netstat -tp;列出除LISTEN和LISTENING状态下的tcp连接,包含连接所属进程的进程ID和进程名命令:netstat -up;列出除LISTEN和LISTENING状态下的udp连接,包含连接所属进程的进程ID和进程名

Ⅵ 动态输出连续信息

命令:netstat -c;每间隔一秒输出当前连接信息

Ⅶ 列出特定的连续

命令:netstat -ap|grep postgres

三.进程的检测与控制

3.1 管道

3.1.1 什么是管道

管道,指在类UNIX系统中,进程之间通讯的一种方式或机制。管道,也指一种特殊的文件,叫管道文件。

3.1.2 管道的分类

Ⅰ 匿名管道

匿名管道,顾名思义,就是没有名字的管道,常常用于父子关系的进程之间通讯一种方式。匿名管道,在bash中,用符号"|"来表示。在同一个终端通讯。

匿名管道作用:将上一个命令所执行的结果(标准输出)作为下一条命令的标准输入

示列 : rpm -qa | grep openssh   grep "password" /var/log/mysqld.log  在指定文件中查询 password 关键字

Ⅱ 命名管道

命名管道,顾名思义,就是有名字的管道,既可以用于任何进程之间通讯。

命名管道,可以使用mkfifo命令创建。

[root@localhost ~]# mkfifo /tmp/p_file //创建一个命名管道文件
[root@localhost ~]# file /tmp/p_file //判断该文件的类型
/tmp/p_file: fifo (named pipe)
[root@localhost ~]# ll /tmp/p_file
prw-rw-r--. 1 root root 0 Mar 10 15:28 /tmp/p_file
[root@localhost ~]# tty
/dev/pts/1
[root@localhost ~]# echo "hello world" > /tmp/p_file
[root@localhost ~]# tty
/dev/pts/2
[root@localhost ~]# cat /tmp/p_file
hello world
[root@localhost ~]#

3.1.3 xargs命令

xargs: 将上一条命令所执行的结果作为下一条命令的参数

命令 [可选项] 参数
[root@localhost ~]# ls -l /root
命令:整条shell命令的主体
选项:会影响或微调命令的行为
参数:命令作用的对象举例说明:
cat -n filename
命令 选项 参数常见选项
-n:指定单行显示的参数个数
-d:定义分割符,默认是以空格和换行符[root@localhost ~]# cat 1.txt
a b c d
10.1.1.254
A B C[root@localhost ~]# cat 1.txt |xargs -n 3
a b c
d 10.1.1.254 A
B C[root@localhost ~]# cat 1.txt |xargs -n 4
a b c d
10.1.1.254 A B C[root@localhost ~]# cat 1.txt |xargs -d'\t' -n 3
a b c d
10.1.1.254
A B C[root@localhost ~]# cat 1.txt |xargs -d'.' -n 3
a b c d
10 1 1
254
A B C

3.2 进程

3.2.1 什么是进程

进程,由程序产生,是正在运行的程序,或者说是已启动的可执行程序的运行实例。

进程,具有自己的生命周期和各种不同的状态。 

3.2.2 进程有什么特点

  • 独立性 进程是系统中独立存在的实体,它可以拥有自己的独立资源,每一个进程都有自己的私有地址空间; 在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间。

  • 动态性 进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合; 进程具有自己的生命周期和各种不同的状态。

  • 并发性 多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响。

3.2.3 进程信息查看

3.1 静态查看 ps命令

Ⅰ 常见组合

ps -ef
ps -eF
ps -ely
ps aux
ps auxf
a 显示当前终端下的所有进程,包括其他用户的进程
u 显示进程拥有者、状态、资源占用等的详细信息(注意有“-”和无“-”的区别)
x 显示没有控制终端的进程。通常与a这个参数一起使用,可列出较完整信息
o 自定义打印内容
-e 显示所有进程。
-f 完整输出显示进程之间的父子关系
-l 较长、较详细的将该进程的信息列出

Ⅱ 进程信息解释说明

USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存,驻留内存
TTY: 进程运行的终端
STAT: 进程状态,man ps获取帮助(/STATE)
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行
START 进程的启动时间
TIME 进程占用CPU的总时间
COMMAND 进程文件,进程名
其他命令查看进行信息
pidof 查看指定进程的PID
pstree 查看进程树
3.2 动态查看 top命令

第一部分:统计信息

[root@localhost ~]# top
top - 10:55:44 up 3:19, 2 users, load average: 1.03, 0.50, 2.10
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 1004412k total, 331496k used, 672916k free, 58364k buffers
Swap: 2031608k total, 0k used, 2031608k free, 107896k cached

关注load average:系统1分钟、5分钟、15分钟内的平均负载,判断一个系统负载是否偏高需要计算单核CPU的平均负载,如下图,一般以1以内为比较合适的值。偏高说明有比较多的进程在等待使用CPU资源。

计算方法: 平均负载 / 逻辑cpu数量

物理CPU(N路):主板上CPU插槽的个数
CPU核数:一块CPU上面能处理数据的芯片组的数量
逻辑CPU:一般情况,一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来;
逻辑CPU数量=物理cpu数量 x cpu核数。如果支持HT,还要更多。
查看物理CPU的个数
# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看逻辑CPU的个数
# cat /proc/cpuinfo |grep "processor"|wc -l
查看CPU是几核
# cat /proc/cpuinfo |grep "cores"|uniq

第三行:当前的CPU运行情况

us 用户进程占用CPU的比率
sy 内核、内核进程占用CPU的比率;
ni 如果一些用户进程修改过优先级,这里显示这些进程占用CPU时间的比率;
id CPU空闲比率,如果系统缓慢而这个值很高,说明系统慢的原因不是CPU负载高;
wa CPU等待执行I/O操作的时间比率,该指标可以用来排查磁盘I/O的问题,通常结合wa和id判断
hi CPU处理硬件中断所占时间的比率;
si CPU处理软件中断所占时间的比率;
st 其他任务所占CPU时间的比率;
说明:
1. 用户进程占比高,wa低,说明系统缓慢的原因在于进程占用大量CPU,通常还会伴有教低的id,说明CPU空闲时间很少;
2. wa低,id高,可以排除CPU资源瓶颈的可能。
3. wa高,说明I/O占用了大量的CPU时间,需要检查交换空间的使用;如果内存充足,但wa很高,说明需要检查哪个进程占用
了大量的I/O资源。

第二部分:进程信息

Ⅰ 常用按键命令

h | ? 帮助
M 按内存的使用排序
P 按CPU使用排序
T 按该进程使用的CPU时间累积排序
k 给某个PID一个信号(signal),默认值是信号15
1 显示所有CPU的负载
s 改变两次刷新之间的时间。默认是5秒
q 退出程序
N 以PID的大小排序
R 对排序进行反转
f 自定义显示字段
r 重新安排一个进程的优先级别

Ⅱ 常用选项

-d 后面可以接秒数,指定每两次屏幕信息刷新之间的时间间隔;
-p 指定某个进程来进行监控;
-u 指定进程的拥有者
-b -n 以批处理方式执行top命令。通常使用数据流重定向,将处理结果输出为文件;
[root@MissHou ~]# top
[root@MissHou ~]# top -d 1
[root@MissHou ~]# top -d 1 -p 10126 查看指定进程的动态信
息
[root@MissHou ~]# top -d 1 -u apache 查看指定用户的进程
[root@MissHou ~]# top -d 1 -b -n 2 > top.txt 将2次top信息写入到文件

四.时间同步(NTP服务)

Ⅰ 加载ntpyum install -y ntpⅡ ntp服务设置systemctl status ntpd 查看状态
systemctl enable ntpd 设置自启
systemctl start ntpd 开启服务Ⅲ 查看时间date

五.计划任务

5.1 计划任务简介

crontab 是 Unix 类操作系统(如 Linux)中的一种名为cron(周期性任务调度机制)的配置文件。crontab 文件允许用户定义周期性运行的命令或脚本。

5.1.1 crond 与 crontab 的关系

crond:是一个系统级的后台进程,负责根据 crontab 文件中的时间表,周期性地运行用户定义的任务。它始终在后台运行并每分钟检查任务是否需要执行。

crontab:是用户用于定义计划任务的配置文件,包含命令和任务执行的时间表。每个用户,包括系统用户,都可以拥有一个 crontab 文件。 因此,要执行crontab命令需要crond服务的支持。

5.1.2 crond服务的安装与管理

在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的,若需要安装则执行如下命令:

Ⅰ 安装yum install -y crontabsⅡ 管理systemctl start crond  开启服务
systemctl enable crond 设置自启
systemctl stop crond 停止服务
systemctl disable crond 取消自启
systemctl status crond 查看状态
systemctl restart crond 重启服务

注意:上述命令适用于大多数使用 systemd 作为初始化系统的 Linux 发行版(如 CentOS 7、RHEL 7、Ubuntu 等)。如果使用的是较老的系统(如 CentOS 6、RHEL 6 等),可以使用 service 命令管理 crond 服务。

5.1.3 任务调度的分类

Ⅰ 系统调度

由系统管理员配置和管理,用于执行系统级别的定时任务,通常涉及系统维护和全局管理,通常存储在 /etc/crontab 或 /etc/cron.d/ 等目录中。

格式分钟 小时 日期 月份 星期 用户 命令

Ⅱ 用户调度

由普通用户自行管理,用于个人需求的定时任务,不影响系统全局环境,通常在 /var/spool/cron/<用户名>

格式分钟 小时 日期 月份 星期 命令

5.2 计划任务创建

特殊字符含义
*任意时刻
-表示时间范围
,(逗号)分隔时段
*/n指定时间间隔的频率,如:每3分钟执行一次,*/3

Ⅰ 系统调度

1.创建并编写一个执行文件

写入以下代码

2.创建对应的文件

3.执行文件,进行测试

4.写入crontab文件中

Ⅱ 用户调度

① 需要用到crontab命令,格式如下:

crontab  [-u  user]  [-l | -r | -e]crontab命令参数参数	解释	示例
-l	list 查看定时任务	crontab -l
-e	edit 编辑定时任务,建议手动编辑	crontab -e
-i	删除定时任务,提示用户确认删除,避免出错	crontab -i
-r	删除定时任务,移除/var/spool/cron/username文件	crontab -r
-u user	指定用户执行任务,root 可以管理普通用户计划任务	crontab -u redhat -l执行crontab 命令就是在修改 /var/spool/cron 中的定时任务文件编辑crontab
[root@he ~]# crontab -e* 写入的命令格式:每一行书写一个工作,每个工作共有6个字段
* 代表意义	分钟	小时	日期	月份	星期	            命令
* 数字范围	0-59	0-23	1-31	1-12	0-7(0和7表示周日)	执行的动作*    *    *    *    *   command
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    └─── 一周中的第几天 (0 - 7) (0 或 7 表示周日)
│    │    │    └─────── 月份 (1 - 12)
│    │    └──────────── 日期 (1 - 31)
│    └───────────────── 小时 (0 - 23)
└────────────────────── 分钟 (0 - 59)

② 编写

[root@he ~]# crontab -e# 点 i 键进入编辑模式
输入以下代码*/1 * * * * /root/hi.sh # 按 esc 键退出编辑模式
# 再输入 :wq 保存并退出
# 这个创建计划任务就OK了# 需要注意的是,在用crontab方式创建计划任务是不用加用户名的,而直接修改crontab文件是需要加用户名的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Recon】Git源代码泄露题目解题方法

CTF中Git源代码泄露题目解题方法 1. 确认存在.git目录泄露2. 下载完整的.git目录3. 恢复Git仓库历史4. 查找Flag的常见位置5. 处理不完整的.git目录6. 其他技巧示例流程 在CTF中遇到Git源代码泄露题目时&#xff0c;通常可以通过以下步骤解决&#xff1a; 1. 确认存在.git目录泄…

字符串 反转函数reverse() 的错误用法

回文字符串 题目描述 如果一个字符串逆序后与正序相同&#xff0c;那么称这个字符串为回文字符串。例如abcba是回文字符串&#xff0c;abcca不是回文字符串。 给定一个字符串&#xff0c;判断它是否是回文字符串。 输入描述 一个非空字符串&#xff08;长度不超过 50&#…

C#程序加密与解密Demo程序示例

目录 一、加密程序功能介绍 1、加密用途 2、功能 3、程序说明 4、加密过程 5、授权的注册文件保存方式 二、加密程序使用步骤 1、步骤一 ​编辑2、步骤二 3、步骤三 4、步骤四 三、核心代码说明 1、获取电脑CPU 信息 2、获取硬盘卷标号 3、机器码生成 3、 生成…

专题二串联所有单词的子串

1.题目 题目分析&#xff1a; 有一个字符串s和字符串数组&#xff0c;如何字符串数组里面的元素可以组成一个字符串&#xff0c;然后要在字符串里面找到连续子串跟组成的字符串一样&#xff0c;返回起始地址。 2.算法原理 这道题可以把字符串数组的元素string看出char&#x…

scala类型检测和转换

在scala中关于类型的检测的api一共有以下三个&#xff1a; &#xff08;1&#xff09;obj.isInstanceOf[T]&#xff1a;判断 obj 是不是 T 类型。 &#xff08;2&#xff09;obj.asInstanceOf[T]&#xff1a;将 obj 强转成 T 类型。 &#xff08;3&#xff09;classOf[T]&am…

【论文阅读】VAD: Vectorized Scene Representation for Efficient Autonomous Driving

一、介绍 VAD是华科团队设计的一个端到端无人驾驶框架&#xff0c;针对传统的无人驾驶框架的模块化设计的问题&#xff0c;该算法使用向量化的策略进行了端到端的实现。传统的模块化设计使得感知模块完全依赖于感知模块的计算结果&#xff0c;这一解耦实际上从规划模块的角度损…

探索Java多线程的核心概念与实践技巧,带你从入门到精通!

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 今天我们来学习多线程编程-"掌握线程创建、管理与安全"&#xff1a; 上一节课程我们铺垫了一系列的东西&#xff0c;引出来了我们的多…

互动多媒体项目 自行车互动

该项目为UE4 +自行车骑行速度 互动项目 结果预览 : 1. 获取自行车速度 这里使用的是Arduino单片机 + 霍尔传感器 霍尔传感器: 单片机完整代码: #define HALL_PIN 2 // 霍尔传感器连接到D2(中断引脚) volatile unsigned long lastTime = 0; // …

STM32——GPIO介绍

GPIO(General-Purpose IO ports,通用输入/输出接口)模块是STM32的外设接口的核心部分,用于感知外界信号(输入模式)和控制外部设备(输出模式),支持多种工作模式和配置选项。 1、GPIO 基本结构 STM32F407 的每个 GPIO 引脚均可独立配置,主要特性包括: 9 组 GPIO 端口…

学习笔记:Python网络编程初探之基本概念(一)

一、网络目的 让你设备上的数据和其他设备上进行共享&#xff0c;使用网络能够把多方链接在一起&#xff0c;然后可以进行数据传递。 网络编程就是&#xff0c;让在不同的电脑上的软件能够进行数据传递&#xff0c;即进程之间的通信。 二、IP地址的作用 用来标记唯一一台电脑…

DeepSeek 医疗大模型微调实战讨论版(第一部分)

DeepSeek医疗大模型微调实战指南第一部分 DeepSeek 作为一款具有独特优势的大模型,在医疗领域展现出了巨大的应用潜力。它采用了先进的混合专家架构(MoE),能够根据输入数据的特性选择性激活部分专家,避免了不必要的计算,极大地提高了计算效率和模型精度 。这种架构使得 …

JetBrains学生申请

目录 JetBrains学生免费授权申请 IDEA安装与使用 第一个JAVA代码 1.利用txt文件和cmd命令运行 2.使用IDEA新建项目 JetBrains学生免费授权申请 本教程采用学生校园邮箱申请&#xff0c;所以要先去自己的学校申请校园邮箱。 进入JetBrains官网 点击立即申请&#xff0c;然…

LINUX网络基础 [五] - HTTP协议

目录 HTTP协议 预备知识 认识 URL 认识 urlencode 和 urldecode HTTP协议格式 HTTP请求协议格式 HTTP响应协议格式 HTTP的方法 HTTP的状态码 ​编辑HTTP常见Header HTTP实现代码 HttpServer.hpp HttpServer.cpp Socket.hpp log.hpp Makefile Web根目录 H…

六十天前端强化训练之第八天到第十四天——综合案例:用户管理系统

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、知识体系详解 1. 变量与作用域 2. 箭头函数特性 3. 数组高阶函数 4. DOM操作原理 5. 事件传播机制 6. 闭包核心原理 7. 原型继承体系 8. Promise工作流程 二、综…

技术周总结 03.03 - 03.09 周日(Java监控 SpringAI)

文章目录 一、03.05 周三二、03.08 周六openAI 的Spring开发 一、03.05 周三 jvisualvm java自带的监控和故障排除工具 命令行执行后&#xff0c;会出现 JConsole 二、03.08 周六 openAI 的Spring开发 引入 spring-ai-openai-spirng-boot-starter 依赖 Spring AI http…

DeepSeek:中国AGI破局者的技术革命与生态重构

在AI领域被"算力霸权"与"技术垄断"笼罩的今天&#xff0c;一家来自杭州的初创公司正以颠覆性创新撕开行业铁幕。DeepSeek&#xff08;深度求索&#xff09;不仅重新定义了AGI技术研发范式&#xff0c;更通过开源生态构建引发全球AI产业格局的深度重构。 一…

manus本地部署使用体验

manus部署 https://github.com/mannaandpoem/OpenManus git clone https://github.com/mannaandpoem/OpenManus.git 或者手工下载zip包解压&#xff0c;包很小&#xff0c;只有几百K。 cd OpenManus-main #创建python环境&#xff0c;有python3的可以用python3 python -m ven…

【统计至简】【入门测试1】给定数据矩阵X,如何求其质心、中心化数据、标准化数据、格拉姆矩阵、协方差矩阵、相关系数矩阵

给定数据矩阵X&#xff0c;如何求其质心、中心化数据、标准化数据、格拉姆矩阵、协方差矩阵、相关系数矩阵。   设数据矩阵 X X X是一个 n p n\times p np的矩阵&#xff0c;其中 n n n是样本数量&#xff0c; p p p是变量数量&#xff0c; X ( x i j ) X (x_{ij}) X(xij​…

CI/CD—Jenkins、Maven安装

Jenkins简介 Jenkins 是一款广泛使用的开源持续集成和持续交付&#xff08;CI/CD&#xff09;工具&#xff0c;以下是对它的详细介绍&#xff1a; 基本信息 起源与发展&#xff1a;Jenkins 最早起源于 Hudson 项目&#xff0c;后来从 Hudson 项目中分离出来独立发展。自 2011 …

抽奖系统测试报告

项目链接: 管理员登录页面 项目功能: 管理员登录: 登录方式分为两种: 手机号密码登录: 正确输入密码和手机号登录 短信验证码登录: 输入手机号,等待验证码,输入验证码登录 管理员注册: 登录页面点击注册按钮即可注册管理员身份 人员管理模块: 人员管理模块分为注册…