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

CentOS7 环境配置

CentOS 7 环境配置

我的基础环境:

Windows11
CentOS版本:CentOS Linux release 7.7.1908 (Core)
Vmware版本:VMware® Workstation 17 Pro 17.5.0 build-22583795
使用工具:MobaXterm

注意:

  1. 所有有关防火墙的操作都可以不开端口,但是我为了测试方便我就开了端口号,便于后续本地测试,这个自行选择。
  2. 我所有的安装指令都是在root用户权限下执行的。
  3. 参考:软件安装 | CodeSheep
  4. 如有错误,欢迎指正!

1.验证网络连通性

ping 8.8.8.8
ping www.baidu.com

连不通的,去修改一下/etc/resolv.conf下的dns配置

# /etc/resolv.conf
nameserver 223.5.5.5      # 阿里云主DNS
nameserver 223.6.6.6      # 阿里云备DNS
nameserver 114.114.114.114 # 114公共DNS(备用)
nameserver 8.8.8.8        # Google DNS(最后备用)

再重启一下网络服务:
在这里插入图片描述

sudo systemctl restart NetworkManager

2.yum命令修复

我的yum损坏了,我重新下载了一下:

1.备份仓库配置文件,避免误删

sudo mkdir /etc/yum.repos.d/backup_$(date +%Y%m%d)
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup_$(date +%Y%m%d)/

2.临时关闭防火墙

sudo systemctl stop firewalld  # 临时关闭防火墙

3.重新下载新的仓库文件(从阿里云下载的)

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

4.重新下载正确的yum包

# 替换为阿里云的正确路径(注意版本号可能不同)
sudo wget https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm

5.验证修复

sudo yum --version 
# 应输出类似:3.4.3

常用工具和仓库下载:

sudo yum install wget
sudo yum install curl
sudo yum install epel-release

2.安装Git工具

2.1用yum命令安装

sudo yum install -y git

2.2 验证

git --version

3.JDK安装

3.1 查看已有jdk

# 查看
rpm -qa | grep java### 输出 (打注释的都是要删的):
[root@localhost git-2.45.0]# rpm -qa | grep java
python-javapackages-3.4.1-11.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
# java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64
tzdata-java-2019b-1.el7.noarch
# java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64
# java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64
# java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64

3.2 删除jdk

yum -y remove java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64
yum -y remove java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64
yum -y remove java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64
yum -y remove java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64

3.3 yum安装jdk1.8

sudo yum install java-1.8.0-openjdk
sudo yum install java-1.8.0-openjdk-devel

3.4 检查是否安装成功

java -version# openjdk version "1.8.0_412"
# OpenJDK Runtime Environment (build 1.8.0_412-b08)
# OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)javac -version#javac 1.8.0_412

3.5 添加环境变量

# bin目录路径添加到 PATH
vim  ~/.bashrc # 打开环境变量配置文件
# 添加如下环境变量,替换成自己的bin目录路径
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
export PATH=$PATH:$JAVA_HOME/bin
source ~/.bashrc  # 使配置立即生效

4.NodeJS环境配置

我的安装位置:/usr/local/node

容易出问题的点: 配置环境变量时,路径错误

4.1 下载压缩包

wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz

4.2 解压

tar xvf node-v14.15.1-linux-x64.tar.xz

4.3 检查文件权限

ls -l /usr/local/node/node-v14.15.1-linux-x64/bin/ # 检查node和npm是否有可执行权限
sudo chmod +x /usr/local/node/node-v14.15.1-linux-x64/bin/node # 给node加可执行权限
sudo chmod +x /usr/local/node/node-v14.15.1-linux-x64/bin/npm # 给npm加可执行权限

4.3 配置环境变量

# 将 Node.js 的 bin 目录路径添加到 PATH
vim  ~/.bashrc # 打开环境变量配置文件
# 添加如下环境变量,替换成自己的bin目录路径
export PATH=$PATH:/usr/local/node/node-v14.15.1-linux-x64/bin
source ~/.bashrc  # 使配置立即生效

4.3 验证安装

which node  # 应输出 `/usr/local/node/node-v14.15.1-linux-x64/bin/node`
which npm   # 应输出 `/usr/local/node/node-v14.15.1-linux-x64/bin/npm`
node -v     # 显示 Node.js 版本(如 v14.15.1)
npm -v      # 显示 npm 版本

5.Python3 环境安装

sudo yum update
sudo yum install python3 python3-pip
python3 --version

6.Maven环境安装

6.1 下载maven压缩包

wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz

6.2 解压

sudo tar -xzvf apache-maven-3.9.6-bin.tar.gz

6.3 添加到环境变量

# bin 目录路径添加到 PATH
vim  ~/.bashrc # 打开环境变量配置文件
# 添加如下环境变量,替换成自己的bin目录路径
export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH
source ~/.bashrc  # 使配置立即生效

6.4 验证

mvn -version

7.Mysql 5.7环境安装

7.1 删除mysql

参考:mysql安装教程-CSDN

7.2 删除mariadb(可能会与mysql冲突)

rpm -qa|grep mariadb

7.3 下载mysql5.7压缩包(最好是下载跟自己linux版本相符合的版本)

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz

7.4 解压

tar -xvf mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz -C /usr/local/mysql

7.5 创建一个mysql用户来管理数据库

groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/

7.6 配置my.cnf配置文件

# 通常将配置文件放在 `/etc/` 目录下
sudo vi /etc/my.cnf配置文件内容如下(可根据需求改):
[mysqld]
# 基础配置
basedir = /usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64
datadir = /usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/data
port = 3306
character-set-server = utf8mb4
max_connections = 200
lower_case_table_names = 1  # 解决表名大小写敏感问题# 日志配置(参考知识库[1][3])
log-error = /usr/local/mysql/log/error.log
general-log = 1
general_log_file = /usr/local/mysql/log/logger.log
slow-query-log = 1
slow_query_log_file = /usr/local/mysql/log/logger-slow.log
long_query_time = 10# InnoDB 配置
innodb_buffer_pool_size = 128M
innodb_log_file_size = 128M# 安全配置
default_authentication_plugin = mysql_native_password[client]
default-character-set = utf8mb4

7.6 创建log路径并授权

sudo mkdir -p /usr/local/mysql/log
sudo chown -R mysql:mysql /usr/local/mysql/log

7.6 进入mysql安装目录创建data目录

cd /usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/
# 创建数据目录并设置权限
sudo mkdir data
sudo chown -R mysql:mysql data
sudo chmod 750 data

7.7 将mysql添加到环境变量

# bin 目录路径添加到 PATH
vim  ~/.bashrc # 打开环境变量配置文件# 添加如下环境变量,替换成自己的bin目录路径
export PATH=$PATH:/usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/binsource ~/.bashrc  # 使配置立即生效

7.8 初始化

 sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64 --datadir=/usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/data

7.9 使用systemd服务(推荐)

sudo vi /etc/systemd/system/mysqld.service#文件内容如下:
[Unit]
Description=MySQL Server
After=network.target[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/etc/my.cnf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target

7.10 重新加载systemd且启动服务

sudo systemctl daemon-reload
sudo systemctl enable mysqld

7.11 使用systemd启动、查看、停止mysql服务

# 使用 systemd 启动mysql服务
sudo systemctl start mysqld
# 使用 systemd 查看 mysql服务
sudo systemctl status mysqld
# 使用 systemd 停止 mysql服务
sudo systemctl stop mysqld 

7.12 查看临时密码并登录mysql

# 查看临时密码
sudo grep 'temporary password' /usr/local/mysql/log/error.log 
# 使用临时密码登录(从 error.log 中获取)
mysql -u root -p # 会提示让你输入密码,隐式密码

7.13 修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

7.14 运行安全配置(可选)

sudo mysql_secure_installation

接下来是本地(windows主机)连接虚拟机mysql的步骤(如果有需要可以继续):

1.防火墙开放指定端口3306

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

2.在my.cnf中的[mysqld]下添加:

如果配置文件中没有指定bind-address,MySQL服务器通常会监听所有可用的网络接口(等同于bind-address = 0.0.0.0

bind-address = 192.168.***.***

3.测试(本地连接):

在这里插入图片描述

8.Redis环境安装

8.1 下载安装并启动

sudo yum install redis -y # 安装redis
sudo systemctl start redis # 启动redis
sudo systemctl enable redis # 设置开机自启动
sudo systemctl status redis # 检查redis状态

8.2 修改配置文件

不需要本地连接虚拟机上的数据库的走到这一步就可以了。

- 8.2.1 打开配置文件
vim /etc/redis.conf- 8.2.2 在配置文件中修改 /etc/redis.conf:
requirepass 你的密码 #设置访问密码(测试环境)
bind 192.168.***.*** # 允许远程访问(将 bind 127.0.0.1 改为 bind 0.0.0.0 或指定 IP)(在实际运行中改成127.0.0.1)
protected-mode no # 关闭保护模式(仅测试环境使用,生产环境不建议)- 8.2.3 重启redis
sudo systemctl restart redis

8.3 防火墙开放6379端口

sudo firewall-cmd --add-port=6379/tcp --permanent
sudo firewall-cmd --reload

8.4 本地测试连接

9.RabbitMQ环境安装

参考:CentOS7安装RabbitMQ简单实用教程 |huang_sj502

如果有问题的话,基本就是github连不上的问题,用加速器就好了

10.Tomcat环境安装

1.下载压缩包

https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.104/bin/apache-tomcat-9.0.104.tar.gz

2.解压

sudo tar -zxvf apache-tomcat-9.0.104.tar.gz

3.把项目迁移到tomcat9这个目录下

mv /usr/local/tomcat/apache-tomcat-9.0.104/* /usr/local/tomcat/tomcat9/
rm -rf /usr/local/tomcat/apache-tomcat-9.0.104

4.添加环境变量

# bin 目录路径添加到 PATH
vim  ~/.bashrc # 打开环境变量配置文件# 添加如下环境变量,替换成自己的bin目录路径
export PATH=$PATH:/usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/binsource ~/.bashrc  # 使配置立即生效

5.将tomcat添加systemd服务

vim /etc/systemd/system/tomcat.service # 创建服务### 文件内容填入:
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target[Service]
Type=forkingEnvironment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
Environment=CATALINA_PID=/usr/local/tomcat/tomcat9/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat/tomcat9
Environment=CATALINA_BASE=/usr/local/tomcat/tomcat9
# Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
# Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'ExecStart=/usr/local/tomcat/tomcat9/bin/startup.sh
ExecStop=/usr/local/tomcat/tomcat9/bin/shutdown.shUser=root
Group=root
UMask=0007RestartSec=10
Restart=always[Install]
WantedBy=multi-user.targetsystemctl daemon-reload # 重新加载systemd

5.验证

sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl status tomcat

6.防火墙开放8080端口

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

7.虚拟机访问

在这里插入图片描述

本地访问:

在这里插入图片描述

11.Nginx环境安装

1.下载压缩包

wget http://nginx.org/download/nginx-1.27.5.tar.gz

2.解压

mkdir /usr/local/nginx
cd  /usr/local/nginx
tar -zxvf nginx-1.27.5.tar.gz

3.安装依赖

sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

4.配置编译参数并编译安装

mkdir usr/local/nginx/nginx # 安装目录
cd usr/local/nginx/nginx-1.27.5 # 存放源码
./configure --prefix=/usr/local/nginx/nginx --with-http_ssl_module --with-http_v2_module
make && sudo make install

5.添加到环境变量

# bin 目录路径添加到 PATH
vim  ~/.bashrc # 打开环境变量配置文件# 添加如下环境变量,替换成自己的bin目录路径
export PATH=$PATH:/usr/local/nginx/nginx/sbinsource ~/.bashrc  # 使配置立即生效

6.验证

nginx -version

7.修改nginx配置文件(centos默认80端口已经被占了,我换了个端口号)

cd /usr/local/nginx/nginx/conf# 修改server下的端口号和其他配置
listen       8080;
server_name  localhost;
root /usr/local/nginx/nginx/html;
index index.html;# 检查语法
sudo /usr/local/nginx/nginx/sbin/nginx -t -c /usr/local/nginx/nginx/conf/nginx.conf

8.启用systemd服务

sudo vim /etc/systemd/system/nginx.service# nginx.service 配置文件内容如下(记得替换成自己的路径):
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/nginx/sbin/nginx
ExecReload=/usr/local/nginx/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/nginx/sbin/nginx -s quit
PrivateTmp=true
Restart=on-failure[Install]
WantedBy=multi-user.target# 重新加载服务
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl status nginx
sudo systemctl restart nginx
sudo systemctl stop nginx

9.防火墙开放8080端口号(可选):

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

12 docker安装环境

参考CSDN保姆级教程(good good):

centos7安装Docker详细步骤(无坑版教程)| 江東-H


到这里就结束了,祝大家安装顺利!!!---- Xuan

相关文章:

CentOS7 环境配置

CentOS 7 环境配置 我的基础环境: Windows11 CentOS版本:CentOS Linux release 7.7.1908 (Core) Vmware版本:VMware Workstation 17 Pro 17.5.0 build-22583795 使用工具:MobaXterm 注意: 所有有关防火墙的操作都可以…...

缓存,内存,本地缓存等辨析

快速辨析缓存,内存,本地缓存,memcache,redis等 (个人临时记录) 缓存 泛指所有用于暂存数据以提升访问速度的技术,包括本地缓存、分布式缓存、CPU缓存等。核心目标是减少对慢速存储&#xff08…...

C++模板学习(进阶)

目录 一.非类型模板参数 二.模板的特化 一).函数模板特化 二).类模板特化 1.全特化 2.偏特化 三.模板分离编译 一).什么是分离编译 1. 问题描述 2. 模板的实例化机制 3. 分离编译的困境 二).解决方法 1. 头文件包含…...

【Git】fork 和 branch 的区别

在 Git 中,“fork” 和 “branch” 是两个不同的概念,它们用于不同的场景并且服务于不同的目的。理解这两者的区别对于有效地使用 Git 进行版本控制非常重要。 1. Fork(分叉) 定义 Fork 是指在 GitHub、GitLab 等代码托管平台上…...

STM32单片机入门学习——第45节: [13-2] 修改频主睡眠模式停止模式待机模式

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.22 STM32开发板学习——第45节: [13-2] 修改主频&睡眠模式&停止模式&待…...

Java中常见API的分类概述及示例

1. 集合框架&#xff08;java.util 包&#xff09; 核心接口与实现类 接口实现类特点示例代码ListArrayList, LinkedList有序、可重复List<String> list new ArrayList<>(); list.add("Java");SetHashSet, TreeSet无序、唯一Set<Integer> set …...

IOT项目——物联网 GPS

GeoLinker - 物联网 GPS 可视化工具 项目来源制作引导 项目来源 [视频链接] https://youtu.be/vi_cIuxDpcA?sigMaOKv681bAirQF8 想要在任何地方追踪任何东西吗&#xff1f;在本视频中&#xff0c;我们将向您展示如何使用 ESP32 和 Neo-6M GPS 模块构建 GPS 跟踪器——这是一…...

开源状态机引擎,在实战中可以放心使用

### Squirrel-Foundation 状态机开源项目介绍 **Squirrel-Foundation** 是一个轻量级、灵活、可扩展、易于使用且类型安全的 Java 状态机实现&#xff0c;适用于企业级应用。它提供了多种方式来定义状态机&#xff0c;包括注解声明和 Fluent API&#xff0c;并且支持状态转换、…...

TockOS,一种新安全软件架构的RTOS介绍

文章目录 1. TockOS介绍详细总结 2. TockOS开源项目的目录结构3. 胶囊&#xff08;Capsules&#xff09;胶囊的本质胶囊的特点胶囊的应用场景 4. 胶囊的实现模块化设计安全隔离事件驱动可复用性 1. TockOS介绍 Tock 是一款面向 Cortex-M 和 RISC-V 微控制器的安全嵌入式操作系…...

AGI大模型(12):向量检索之关键字搜索

1 检索的方式有那些 列举两种: 关键字搜索:通过用户输入的关键字来查找文本数据。语义搜索:不仅考虑关键词的匹配,还考虑词汇之间的语义关系,以提供更准确的搜索结果。2 关键字搜索 先看一个最基础的实现 安装模块 pip install redis 不会redis的去看我的redis专题 首…...

数据库MySQL学习——day1(创建表与数据类型)

文章目录 1. 创建表&#xff08;CREATE TABLE&#xff09;1.1. 创建表的基本语法&#xff1a;1.2. 示例&#xff1a;创建学生信息表 2. 数据类型2.1. 常用的数据类型&#xff1a; 3. 表约束3.1. 常见约束类型&#xff1a;3.2. 示例&#xff1a;添加约束条件3.3. 修改表添加约束…...

基于Transformer与随机森林的多变量时间序列预测

哈喽&#xff0c;我不是小upper&#xff0c;今天和大家聊聊基于Transformer与随机森林的多变量时间序列预测。 不懂Transformer的小伙伴可以看我上篇文章:一文带你彻底搞懂&#xff01;Transformer &#xff01;&#xff01;https://blog.csdn.net/qq_70350287/article/detail…...

【程序员 NLP 入门】词嵌入 - 上下文中的窗口大小是什么意思? (★小白必会版★)

&#x1f31f; 嗨&#xff0c;你好&#xff0c;我是 青松 &#xff01; &#x1f308; 希望用我的经验&#xff0c;让“程序猿”的AI学习之路走的更容易些&#xff0c;若我的经验能为你前行的道路增添一丝轻松&#xff0c;我将倍感荣幸&#xff01;共勉~ 【程序员 NLP 入门】词…...

MATLAB Coder 应用:转换 MATLAB 代码至 C/C++ | 实践步骤与问题解决

注&#xff1a;本文为 “ MATLAB 代码至 C/C 应用” 相关文章合辑。 未整理去重。 如有内容异常&#xff0c;请看原文。 MATLAB 代码转换为 C/C 代码的详细指南 随心 390 zhihu 发布于 2020-07-12 12:39 在实际项目中&#xff0c;我们常常遇到需要将 MATLAB 代码转换为 C/C …...

BLE 6.0 六大核心特性全解析

写在前面: 2025年1月15日,Bluetooth SIG发布了备受期待的 Bluetooth Core Specification 6.0。相比5.x系列,6.0在测距精度、能耗优化、扫描过滤、音频体验和协议灵活性等方面实现了重大突破。本文将以浅显易懂的语言、丰富的图示和真实案例,带你全面深入了解BLE 6.0的六大核…...

网络应用程序体系结构

本文来源 &#xff1a; 《计算机网络 自顶向下方法》 应用程序体系结构&#xff08;application architecture&#xff09;由应用程序研发者设计&#xff0c;规定了如何在各种端系统上组织该应用程序。 现代网络应用程序中使用的两种主流体系结构&#xff1a; (1)客户-服务器…...

Filename too long 错误

Filename too long 错误表明文件名超出了文件系统或版本控制系统允许的最大长度。 可能的原因 文件系统限制 不同的文件系统对文件名长度有不同的限制。例如&#xff0c;FAT32 文件名最长为 255 个字符&#xff0c;而 NTFS 虽然支持较长的文件名&#xff0c;但在某些情况下也…...

Linux学习——UDP

编程的整体框架 bind&#xff1a;绑定服务器&#xff1a;TCP地址和端口号 receivefrom()&#xff1a;阻塞等待客户端数据 sendto():指定服务器的IP地址和端口号&#xff0c;要发送的数据 无连接尽力传输&#xff0c;UDP:是不可靠传输 实时的音视频传输&#x…...

C++:继承

目录 一&#xff1a;继承的概念 1.1 继承的定义 1.2 继承方式 1.3 可见性区别 公有方式 私有方式 保护方式 1.4 一般规则 二、继承中的隐藏规则 三、基类和派生类间的转换 四、派生类的默认成员函数 实现一个不能被继承的类 继承与友元 五、继承与静态成员 六、多…...

RSGISLib:一款功能强大的GIS与RS数据处理Python工具包

今天为大家介绍的软件是RSGISLib&#xff1a;一款功能丰富的遥感与GIS数据的python库。下面&#xff0c;我们将从软件的主要功能、支持的系统、软件官网等方面对其进行简单的介绍。 RSGISLib官网网址为&#xff1a;http://rsgislib.org/&#xff0c;它提供了一个丰富的工具集&…...

Git管理

1.创建git仓库 git init 2.让文件添加到暂存区 git add. 3.给暂存区文件添加说明&#xff0c;并提交到本地仓库 git commit -m 说明 4.查看历史记录 git log /git log --oneline 查看状态&#xff1a;git status 5. 引用旧版 git reset --hard commitid 6.创建分支 …...

Java中内部类

1.静态类与非静态类是内部类的区分&#xff0c;外部类不可以被static修饰。 2.类的加载过程&#xff1a;类只有被使用才会被类加载器加载&#xff0c;加载后类的信息放在元空间&#xff08;方法区&#xff09;中。类的使用包括初始化对象、静态方法的调用。 3.静态内部类与普…...

[U-Net-Dual]DEU-Net

论文题目:DEU-Net: Dual-Encoder U-Net for Automated Skin Lesion Segmentation 中文题目:DEU-Net:用于自动皮肤病变分割的双编码器U-Net 0摘要 皮肤病的计算机辅助诊断(CAD)在很大程度上依赖于皮肤病变的自动分割,尽管由于病变在形状、大小、颜色和纹理上的多样性以及…...

【数据结构】第五弹——Stack 和 Queue

文章目录 一. 栈(Stack)1.1 概念1.2 栈的使用1.3 栈的模拟实现1.3.1 顺序表结构1.3.2 进栈 压栈1.3.3 删除栈顶元素1.3.4 获取栈顶元素1.3.5 自定义异常 1.4 栈的应用场景1.改变元素序列2. 将递归转化为循环3. 四道习题 1.5 概念分区 二. 队列(Queue)2.1 概念2.2 队列的使用2.3…...

LSTM如何解决梯度消失问题

LSTM如何解决梯度消失问题 一、传统RNN的梯度消失困境 在标准RNN中&#xff0c;隐藏状态更新公式为&#xff1a; h t tanh ⁡ ( W h h h t − 1 W x h x t b h ) h_t \tanh(W_{hh}h_{t-1} W_{xh}x_t b_h) ht​tanh(Whh​ht−1​Wxh​xt​bh​) 梯度计算通过链式法则展…...

什么是管理思维?

管理思维是指在管理活动中形成的系统性、战略性和创造性的思考方式&#xff0c;帮助个人或团队更高效地达成目标。它不仅适用于企业管理&#xff0c;也适用于个人成长、项目执行和复杂问题解决。以下是关于管理思维的核心内容&#xff1a; 一、管理思维的核心特征 1. 系统性思…...

缓存与内存;缺页中断;缓存映射:组相联

文章目录 内存&#xff08;RAM&#xff09;与缓存&#xff08;Cache&#xff09;Memory Management Unit缺页中断 多级缓存缓存替换策略缓存的映射方式 内存&#xff08;RAM&#xff09;与缓存&#xff08;Cache&#xff09; 缓存&#xff1a; CPU 内部或非常靠近的高速存储&a…...

12.5/Q1,GBD高分文章解读

文章题目&#xff1a;Global, regional, and national burdens of early onset pancreatic cancer in adolescents and adults aged 15-49 years from 1990 to 2019 based on the Global Burden of Disease Study 2019: a cross-sectional stud DOI&#xff1a;10.1097/JS9.000…...

路由交换网络专题 | 第六章 | OSPF | BGP | BGP属性 | 防环机制

目录 拓扑图 &#xff08;1&#xff09;AS 400 内部使用 OSPF 路由协议&#xff0c;使 PC2 访问 PC3 的路径优先选择 AR2-AR4-AR3。 &#xff08;2&#xff09;AS 400 内部使用 RIP 路由协议&#xff0c;使 PC2 访问 PC3 的路径优先选择 AR2-AR4-AR3。 &#xff08;3&#…...

ubuntu 安装 redis server

ubuntu 安装 redis server sudo apt update sudo apt install redis-server The following NEW packages will be installed:libhiredis0.14 libjemalloc2 liblua5.1-0 lua-bitop lua-cjson redis-server redis-toolssudo systemctl start redis-server sudo systemctl ena…...

基于 Spring Boot实现的图书管理系统

Spring Boot图书管理系统详细分析文档 1. 项目概述 本文档对基于Spring Boot实现的图书管理系统进行详细分析。该项目是一个典型的Web应用程序&#xff0c;采用了Spring Boot框架&#xff0c;结合MyBatis作为ORM工具&#xff0c;实现了图书信息的管理功能&#xff0c;包括图书…...

gradle可用的下载地址(免费)

这几天接手一个老项目&#xff0c;想找gradle老版本的&#xff0c;但一搜&#xff0c;虽然在CSDN上搜索出来一堆&#xff0c;但都是收费&#xff0c;有些甚至要几十积分(吃相有点难看了)。 我找了一个能访问的地址&#xff0c;特地分享出来&#xff0c;有需要的自取&#xff01…...

发送百度地图的定位

在vuephp写的聊天软件项目中&#xff0c;增加一个发送百度地图的定位功能 在 Vue PHP 的聊天软件中增加发送百度地图定位功能&#xff0c;需要从前端定位获取、地图API集成、后端存储到消息展示全流程实现。以下是详细步骤&#xff1a; 一、前端实现&#xff08;Vue/Uni-app…...

滑动窗口学习

2090. 半径为 k 的子数组平均值 题目 问题分析 给定一个数组 nums 和一个整数 k&#xff0c;需要构建一个新的数组 avgs&#xff0c;其中 avgs[i] 表示以 nums[i] 为中心且半径为 k 的子数组的平均值。如果在 i 前或后不足 k 个元素&#xff0c;则 avgs[i] 的值为 -1。 思路…...

python数据分析(二):Python Pandas索引技术详解

Python Pandas索引技术详解&#xff1a;从基础到多层索引 1. 引言 Pandas是Python数据分析的核心库&#xff0c;而索引技术是Pandas高效数据操作的关键。良好的索引使用可以显著提高数据查询和操作的效率。本文将系统介绍Pandas中的各种索引技术&#xff0c;包括基础索引、位…...

(15)VTK C++开发示例 --- 生成随机数的首选方法

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 vtkMinimalStandardRandomSequence 是 VTK&#xff08;Visualization Toolkit&#xff09;库中的一个类&#xff0c;…...

华为S系列交换机CPU占用率高问题排查与解决方案

问题概述 在华为S系列交换机(V100&V200版本)运行过程中&#xff0c;CPU占用率过高是一个常见问题&#xff0c;可能导致设备性能下降甚至业务中断。根据华为官方维护宝典&#xff0c;导致CPU占用率高的主要原因可分为四大类&#xff1a;网络攻击、网络震荡、网络环路和硬件…...

为啥低速MCU单板辐射测试会有200M-1Ghz的辐射信号

低速MCU&#xff08;如8位或16位单片机&#xff09;单板在辐射测试中出现 200MHz~1GHz的高频辐射信号&#xff0c;看似不合理&#xff0c;但实际上是由多种因素共同导致的。以下是详细原因分析及解决方案&#xff1a; 1.根本原因分析: (1) 时钟谐波与开关噪声 低速MCU的时钟谐…...

docker本地虚拟机配置

docker 下载安装 yum install -y docker 如果报错 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache 修改docker 仓…...

【随机过程】柯尔莫哥洛夫微分方程总结

柯尔莫哥洛夫微分方程&#xff1a;用“水流扩散”理解概率演化 1. 核心思想 柯尔莫哥洛夫微分方程&#xff08;Kolmogorov Equations&#xff09;是描述**连续时间马尔可夫过程&#xff08;CTMC&#xff09;**中概率分布随时间演化的工具。 前向方程&#xff08;Fokker-Planc…...

AI领域:MCP 与 A2A 协议的关系

一、为何会出现MCP和A2A 协议是非常重要的东西&#xff0c;只有大家都遵循统一的协议&#xff0c;整体生态才好发展&#xff0c;正如有了HTML&#xff0c;互联网才快速发展&#xff0c;有了OpenAPI&#xff0c; API才会快速发展。 Agent目前是发展最快的领域&#xff0c;从最初…...

重学React(一):描述UI

背景&#xff1a;React现在已经更新到19了&#xff0c;文档地址也做了全面的更新&#xff0c;上一次系统性的学习还是在16-17的大版本更新。所以&#xff0c;现在就开始重新学习吧&#xff5e; 学习内容&#xff1a; React官网教程&#xff1a;https://zh-hans.react.dev/lea…...

代理模式(Proxy Pattern)详解:以延迟加载图片为例

在日常开发中&#xff0c;是否遇到过以下问题&#xff1a; “程序启动时图片太多&#xff0c;加载太慢&#xff01;” “用户还没看到图片就已经开始加载了&#xff0c;性能浪费&#xff01;” 此时&#xff0c;代理模式&#xff08;Proxy Pattern&#xff09;便派上了用场。本…...

Power BI企业运营分析——数据大屏搭建思路

Power BI企业运营分析——数据大屏搭建思路 欢迎来到Powerbi小课堂&#xff0c;在竞争激烈的市场环境中&#xff0c;企业运营分析平台成为提升竞争力的核心工具。 整合多源数据&#xff0c;实时监控关键指标&#xff0c;精准分析业务&#xff0c;快速识别问题机遇。其可视化看…...

HCIP-H12-821 核心知识梳理 (5)

Portal 认证场景中 AC 与 Portal 服务器通信使用的 Portal 协议基于 TCP&#xff1b;HTTP/HTTPS 可作为接入与认证协议&#xff1b;缺省情况下&#xff0c;接入设备处理 Portal 协议报文及向 Portal 服务器主动发送报文的目的端口号均为 50100 VRRP 协议心跳报文缺省发送间隔为…...

从M个元素中查找最小的N个元素时,使用大顶堆的效率比使用小顶堆更高,为什么?

我们有一个长度为 M 的数组&#xff0c;现在我们想从中找出 最小的 N 个元素。例如&#xff1a; int a[10] {12, 3, 5, 7, 19, 0, 8, 2, 4, 10};从中找出 最小的 4 个元素。 正确方法&#xff1a;使用大小为 N 的「大顶堆」 原因分析&#xff1a; 我们想保留最小的 4 个元素…...

【AI工具】2025年主流自动化技术(供参考)

背景 前面完成了AutoIT的自动化操作的尝试&#xff0c;有惊喜有惊吓&#xff0c;就是能进行自动化控制&#xff0c;但是有点“笨”&#xff0c;于是就想找找同类好用的技术&#xff0c;有了这篇自动化技术比较分析的文档&#xff0c;资料参考了AI总结的内容。 autoit的使用&am…...

1.微服务拆分与通信模式

目录 一、微服务拆分原则与策略 业务驱动拆分方法论 • DDD&#xff08;领域驱动设计&#xff09;中的限界上下文划分 • 业务功能正交性评估&#xff08;高内聚、低耦合&#xff09; 技术架构拆分策略 • 数据层拆分&#xff08;垂直分库 vs 水平分表&#xff09; • 服务粒…...

【Java面试笔记:基础】4.强引用、软引用、弱引用、幻象引用有什么区别?

1. 引用类型及其特点 强引用(Strong Reference): 定义:最常见的引用类型,通过new关键字直接创建。回收条件:只要强引用存在,对象不会被GC回收。示例:Object obj = new Object(); // 强引用特点: 强引用是导致内存泄漏的常见原因(如未及时置为null)。手动断开引用:…...

使用Python+OpenCV将多级嵌套文件夹下的视频文件抽帧为JPG图片

使用PythonOpenCV将多级嵌套文件夹下的视频文件抽帧为JPG图片 import os import cv2 import time# 存放视频文件的多层嵌套文件夹路径 videoPath D:\\videos\\ # 保存抽帧的图片的文件夹路径 savePath D:\\images\\if not os.path.exists(savePath):os.mkdir(savePath) vide…...