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

LINUX的使用(2)- 安装软件

0.防火墙相关

启动防火墙:

sudo systemctl start firewalld

#查看防火墙列表

firewall-cmd --list-ports

设置防火墙开机自启:

sudo systemctl enable firewalld

检查防火墙状态:

sudo firewall-cmd --state

允许某个端口(如端口 9200):

sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent

sudo firewall-cmd --reload

禁用防火墙:

sudo systemctl stop firewalld

查看端口:

sudo firewall-cmd --list-ports 

关闭防火墙端口:

 sudo firewall-cmd --permanent --remove-port=8080/tcp

sudo firewall-cmd --reload

遇到的问题

①Linux防火墙启动超时报错

如果你没有修改其他配置文件的情况下,大概率就是重启防火墙失败之后进程堵塞了,导致后续无法在启动防火墙,

解决方法:

systemctl stop firewalld
 
pkill -f firewalld
 
systemctl start firewalld

关闭两个端口22和9200

 
SELinux 端口

 -- (13: Permission denied)

SELinux 端口:
(http_port_t:端口类型, -m:修改; -a:增加)
semanage port -l | grep 8080
semanage port -l | grep http_port_t
semanage port -a -t http_port_t -p tcp 8080
semanage port -m -t http_port_t -p tcp 8080

sudo systemctl restart nginx

tail -f /var/log/nginx/error.log

1.安装Jdk

方法1:使用官方Oracle JDK

  1. 下载JDK

    访问Oracle官网下载JDK的RPM包,如jdk-8uXXX-linux-x64.rpm

  2. 安装RPM

    sudo rpm -ivh jdk-8uXXX-linux-x64.rpm
  3. 配置环境变量

    编辑/etc/profile或用户的~/.bash_profile文件,添加以下内容:

    export JAVA_HOME=/usr/java/jdk1.8.0_XXX

    export PATH=$JAVA_HOME/bin:$PATH

    替换jdk1.8.0_XXX为你的JDK目录名。

  4. 使环境变量生效

    source /etc/profile

    或者重新登录终端。

方法2:使用OpenJDK

CentOS 7自带了OpenJDK,可以通过包管理器安装。

  1. 安装OpenJDK

    sudo yum install java-1.8.0-openjdk
  2. 验证安装

    java -version

    这会显示已安装的Java版本。

  3. 配置环境变量(如果需要,类似于方法1中的步骤):

    # 设置JAVA环境变量

    export JAVA_HOME=/usr/local/java/jdk1.8.0_311

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  4. 使环境变量生效

    source /etc/profile

    这会显示已安装的Java版本。

  5. 检查Java版本

    java -version

    如果显示类似以下信息,说明安装成功:

    java version "1.8.0_311" Java(TM) SE Runtime Environment (build 1.8.0_311-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)

方法3:使用SDKMAN!(适用于多种Java版本)

SDKMAN! 是一个工具,可以让你轻松地在多种Java版本之间切换。

  1. 安装SDKMAN!

    curl -s "https://get.sdkman.io" | bash

    source "$HOME/.sdkman/bin/sdkman-init.sh"

  2. 安装Java

    sdk install java 8.0.XXX-open # 替换为具体版本号,例如 8.0.275-open

  3. 使用SDKMAN!切换Java版本

    sdk use java 8.0.XXX-open

2.安装Nginx

查看nginx的错误日志

tail -f /var/log/nginx/error.log 

方法 1: 手动添加 Nginx 仓库并安装

  1. 创建 Nginx 仓库文件

首先,手动创建一个 Nginx 的 YUM 仓库配置文件。执行以下命令:

sudo vi /etc/yum.repos.d/nginx.repo

然后在打开的编辑器中,粘贴以下内容:

[nginx]

name=nginx

repo baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=1

enabled=1

gpgkey=http://nginx.org/keys/nginx_signing.key

保存并退出编辑器(按 Esc 键,然后输入 :wq,回车)。

  1. 安装 Nginx

现在,通过 YUM 安装 Nginx:

sudo yum install nginx -y

方法 2: 使用 Nginx 官方的 RPM 包

如果无法通过 YUM 安装,可以尝试手动下载并安装 Nginx 的 RPM 包。

  1. 下载 Nginx RPM 包

你可以访问 Nginx 官方下载页面,然后根据你的系统架构下载适合 CentOS 7 的 RPM 包。

例如,你可以使用 wget 下载最新的 Nginx RPM 包:

wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.24.0-1.el7.ngx.x86_64.rpm

  1. 安装 Nginx RPM 包

下载完成后,使用 rpm 命令安装:

sudo rpm -ivh nginx-1.24.0-1.el7.ngx.x86_64.rpm

方法 3: 使用 dnf(CentOS 8 及以后版本)

如果你使用的是 CentOS 8 或更高版本,可以尝试使用 dnf 替代 yum 来安装 Nginx。首先确认 dnf 是否安装并工作正常,然后使用以下命令:

sudo dnf install nginx -y

方法 4: 使用 Docker 安装 Nginx

如果你不希望处理这些问题,可以选择通过 Docker 安装 Nginx,避免与本地系统的依赖问题。

  1. 安装 Docker

sudo yum install docker -y sudo systemctl start docker sudo systemctl enable docker

  1. 拉取并运行 Nginx 镜像

sudo docker pull nginx sudo docker run --name nginx-container -p 80:80 -d nginx

使用 Docker 运行 Nginx 是一种非常方便且不依赖系统包管理的方式。

3.安装Mariadb

方法1:官方安装

地址:https://mariadb.com/kb/en/yum/

地址:https://mariadb.org/download/

卸载mariadb(因为用的是在 CentOS 7亲测有效):

sudo yum remove mariadb-server mariadb mariadb-libs

遇到的问题:备份的数据接入

cat /var/log/mysql-error.log

[ERROR] InnoDB: The data file './ibdata1' must be writable

sudo chown -R mysql:mysql /data/mariadb/

cat /etc/my.cnf

4.安装Elasticsearch

网址:Download Elasticsearch | Elastic

选择适合自己的版本

方法1:RPM安装

下载rpm文件

安装elasticsearch

sudo rpm -ivh /data/soft/elasticsearch-8.17.4-x86_64.rpm

 我是用的是备份下的数据文件,因为是新安装的elasticsearch所以存在和之前文件所有权冲突的问题

①:查看现有文件的权限(如下图所有者和用户组都是nginx)

②:查看系统安装是时候的用户(如下图所有者:root和用户组:elasticsearch)

③:将备份下来要接入的数据文件的所属进行统一(如下图所有者和用户组都是elasticsearch)

 解析:

  1. sudo

    sudo 是 "SuperUser DO" 的缩写,表示以超级用户(root)权限执行后面的命令。这个命令通常用于需要管理员权限的操作。
  2. chown

    chown 是改变文件或目录的所有者(owner)和用户组(group)的命令。
  3. -R

    -R 是 chown 的一个选项,表示递归操作,也就是说不仅会修改指定目录本身的所有者和用户组,还会修改该目录下的所有子目录和文件。
  4. mysql:mysql

    第一个 mysql 表示新的所有者(owner)。即你希望将目录及其内容的所有权赋给 mysql 用户。第二个 mysql 表示新的用户组(group)。也就是说,文件和目录将被赋予 mysql 用户组。
  5. /data/mariadb/

    /data/mariadb/ 是你要更改权限的目录路径。

错误提醒:

8.17.4版本的ES默认是Https访问需进行修改:

解决方法:
  1. 确认 Elasticsearch 配置是否启用了 HTTPS: Elasticsearch 默认情况下只使用 HTTP 协议,但如果配置了 SSL/TLS,它会启用 HTTPS 协议。你需要检查 Elasticsearch 是否启用了 HTTPS。

    查看 elasticsearch.yml 配置文件中的相关配置,检查 xpack.security.http.ssl.enabled 是否为 true,如果启用了 HTTPS 配置,通常配置如下:

    xpack.security.http.ssl.enabled: true
    xpack.security.http.ssl.keystore.path: /path/to/keystore
    xpack.security.http.ssl.truststore.path: /path/to/truststore

    如果配置了 HTTPS,说明你应该通过 HTTPS 协议访问 Elasticsearch。

  2. 使用 HTTPS 协议访问: 如果 Elasticsearch 启用了 HTTPS,你需要在 curl 请求中明确指定使用 HTTPS,而不是 HTTP。你可以通过以下命令来进行测试:

    curl -X GET "https://localhost:9200/_nodes?pretty" --insecure
    --insecure 选项用于忽略 SSL 证书的验证(如果是自签名证书),在生产环境中最好使用有效的 SSL 证书。
    • 如果 Elasticsearch 没有启用 HTTPS: 如果你不打算启用 HTTPS,可以在 elasticsearch.yml 中禁用 SSL 配置。如下所示:

      xpack.security.http.ssl.enabled: false

      然后重新启动 Elasticsearch。

    • 7.14.0版本跟8.17.0版本大不一样

    在 Elasticsearch 7.14.0 中,如果你需要重置账号和密码,通常有两种常见的情况:

    1. 使用内置的 Elastic 用户和其他用户(如 kibana)重置密码
    2. 修改/重置自定义用户密码(如果你使用了 X-Pack 或其他安全插件)。

    以下是如何在这两个场景下进行操作的步骤:

    1. 重置内置用户密码(如 elastic 用户)

    Elasticsearch 提供了一些内置用户(例如 elastic 用户)用于访问管理界面(如 Kibana)。要重置这些内置用户的密码,可以通过以下方法:

    使用 elasticsearch-setup-passwords 工具

    Elasticsearch 7.14.0 提供了 elasticsearch-setup-passwords 工具,它可以帮助你设置或重置内置用户的密码。以下是步骤:

    1. 停止 Elasticsearch 服务(如果正在运行):

      sudo systemctl stop elasticsearch
    2. 运行密码重置工具

      你可以通过以下命令运行 elasticsearch-setup-passwords 工具:

      sudo bin/elasticsearch-setup-passwords interactive

      这将启动一个交互式的提示,要求你为内置用户(如 elastic, kibana, logstash_system 等)设置新的密码。

      • elastic 用户是 Elasticsearch 管理员用户。
      • kibana 用户用于 Kibana。
      • logstash_system 用户用于 Logstash 集成。

      你需要为每个用户设置新的密码。

    3. 重新启动 Elasticsearch 服务

      sudo systemctl start elasticsearch
    4. 使用新的密码登录: 通过 Kibana 或直接 API 访问 Elasticsearch,你可以使用新设置的密码登录。

    如果没有启用内置用户安全功能

    如果你没有启用 Elasticsearch 的安全功能(如 X-Pack 或基本认证),你将无法使用 elasticsearch-setup-passwords 工具,直接通过配置文件禁用安全性或者启用后再设置密码。

    2. 重置自定义用户密码(如果使用了 X-Pack 安全功能)

    如果你使用了 X-Pack 或 Elasticsearch 的安全功能(即启用了用户认证和角色权限控制),你可以通过以下方法重置自定义用户的密码。

    通过 elasticsearch-users 命令行工具
    1. 使用 elasticsearch-users 工具重置用户密码

      Elasticsearch 提供了一个命令行工具 elasticsearch-users,你可以用它来修改用户密码。以下是命令格式:

      sudo bin/elasticsearch-users passwd <username>

      例如,要重置 elastic 用户的密码,可以运行:

      sudo bin/elasticsearch-users passwd elastic

      然后输入新的密码。

    2. 确认用户密码已重置: 确保密码已经被成功更新。你可以通过 Kibana 或 Elasticsearch API 使用新密码进行登录。

    3. 重置 elastic 用户密码后恢复到 Kibana

    如果你使用的是 Kibana,可以通过 Web 界面使用新的密码进行登录。如果是其他用户密码重置,则确保已重新配置和分配适当的角色和权限。

    4. 最后的注意事项

    • 安全性:确保在重置密码时使用强密码,并保管好这些凭证。
    • 文件权限:确保 Elasticsearch 用户和权限配置正确,防止权限问题。

    执行sudo ./bin/elasticsearch-setup-passwords interactive后报错

    Failed to authenticate user 'elastic' against http://127.0.0.1:9200/_security/_authenticate?pretty Possible causes include: * The password for the 'elastic' user has already been changed on this cluster * Your elasticsearch node is running against a different keystore This tool used the keystore at /etc/elasticsearch/elasticsearch.keystore ERROR: Failed to verify bootstrap password 

     解决方法:使用正确的 elasticsearch.keystore

    删除并重新创建 keystore。

    1. 删除现有的 keystore

    首先,确保 Elasticsearch 实例已经停止,然后删除现有的 keystore 文件。

    停止 Elasticsearch 服务

    sudo systemctl stop elasticsearch

    删除 keystore 文件

    通常,keystore 文件位于 Elasticsearch 的配置目录下,默认路径为 /etc/elasticsearch/ 或者你的 Elasticsearch 安装目录中的 config 目录。你可以使用以下命令删除 keystore 文件:

    sudo rm /etc/elasticsearch/elasticsearch.keystore

    如果你的 Elasticsearch 安装在其他路径,替换成相应路径。

    2. 创建新的 keystore

    删除旧的 keystore 后,你可以重新创建一个新的 keystore。

    创建新的 keystore

    使用 elasticsearch-keystore 工具创建一个新的 keystore:

    sudo bin/elasticsearch-keystore create

    3. 向 keystore 中添加密码或其他敏感信息

    如果你需要将敏感信息(例如用户名、密码或证书)添加到 keystore 中,可以使用以下命令:

    添加密码

    例如,添加 elastic 用户的密码:

    sudo bin/elasticsearch-keystore add "bootstrap.password"

    执行此命令后,系统会提示你输入密码。

    如果你遇到任何问题或需要更详细的帮助,欢迎随时提问!

    安装 IK 分词插件

    地址:Index of: analysis-ik/stable/

    步骤 1:下载插件

    1. 访问 IK 分词插件的 GitHub 发布页面,找到版本 8.17.4 的插件下载链接。
    2. 下载 elasticsearch-analysis-ik-8.17.4.zip 文件。

    步骤 2:安装插件

    1. elasticsearch-analysis-ik-8.17.4.zip 文件移动到 Elasticsearch 安装目录中的 plugins 目录,或者直接在命令行中通过 URL 安装。

      假设 Elasticsearch 安装路径是 /usr/share/elasticsearch,请执行以下步骤:

      sudo bin/elasticsearch-plugin install file:///path/to/elasticsearch-analysis-ik-8.17.4.zip

      请将 path/to/elasticsearch-analysis-ik-8.17.4.zip 替换为你下载的插件文件的实际路径。(注:file:///不能去除)

    2. 如果插件安装成功,你应该会看到类似以下的输出:

      -> Downloading file:///path/to/elasticsearch-analysis-ik-8.17.4.zip 
      -> Installed plugin 'analysis-ik'

    步骤 3:重启 Elasticsearch

    安装插件后,需要重启 Elasticsearch 服务:

    sudo systemctl restart elasticsearch

    或者,如果你是使用其他方式启动 Elasticsearch 的,也可以重启它。

    步骤 4:验证插件安装成功

    重启 Elasticsearch 后,可以通过以下命令验证插件是否安装成功:

    curl -X GET "localhost:9200/_cat/plugins?v"

    如果安装成功,你应该会看到类似以下的输出:

    name component

    your-node-name analysis-ik

    步骤 5:使用 IK 分词插件

    插件安装成功后,你可以在创建索引时使用 ik 分词器。例如,以下是一个索引创建的示例,使用了 ik_smart 分词器:

    PUT /my_index
    {"settings": {"analysis": {"analyzer": {"ik_smart": {"type": "custom","tokenizer": "ik_smart"}}}},"mappings": {"properties": {"your_field": {"type": "text","analyzer": "ik_smart"}}}
    }

    5.安装Kibana

    地址:Download Kibana Free | Get Started Now | Elastic

     

    注意(这个几个项要放开):

    server.host: "0.0.0.0"

    server.basePath: "/kibana"

    server.rewriteBasePath: true

    elasticsearch.username: "elastic"
    elasticsearch.password: "t6Q91234566788"

    6.安装rides

    方法一:使用包管理器安装 Redis

    1. 更新系统软件包列表

    首先,确保你的软件包列表是最新的。可以通过以下命令更新:

    sudo apt-get update

    2. 安装 Redis
    对于 Ubuntu/Debian 系统:

    你可以使用 apt 包管理器来安装 Redis。运行以下命令:

    sudo apt-get install redis-server

    对于 CentOS/RHEL 系统:

    在 CentOS 上,使用 yum 安装 Redis:

    sudo yum install epel-release sudo yum install redis

    3. 启动 Redis 服务

    安装完成后,你可以启动 Redis 服务:

    sudo systemctl start redis

    4. 设置 Redis 服务开机自启

    为了确保 Redis 在系统启动时自动启动,你可以使用以下命令:

    sudo systemctl enable redis

    5. 验证 Redis 是否成功启动

    使用以下命令检查 Redis 服务的状态:

    sudo systemctl status redis

    你也可以通过连接到 Redis 服务器并运行一些命令来确认 Redis 是否正在运行:

    redis-cli

    然后,在 redis-cli 中输入:

    ping

    如果 Redis 正常运行,它会返回:

    PONG

    启用 Redis 密码验证

    要为 Redis 设置密码,确保启用了密码验证,你需要编辑 Redis 的配置文件 redis.conf 来启用密码功能。

    1. 编辑 Redis 配置文件: 找到并编辑 Redis 的配置文件(通常是 redis.conf)。

      在该文件中,找到以下行(大概在45%的位置):

      # requirepass foobared

      这行是默认的注释行,表示没有设置密码。要启用密码验证,取消注释并设置你希望的密码,例如:

      requirepass your_password

      这将启用密码验证,要求每次连接时都输入 your_password

    2. 重新启动 Redis: 配置更改后,需要重新启动 Redis 服务来使密码设置生效。你可以使用以下命令重启 Redis(具体命令取决于你的操作系统和 Redis 的安装方式):

      sudo systemctl restart redis

      或者如果是手动启动的 Redis:

      redis-server /path/to/redis.conf
    3. 使用密码连接 Redis: 设置密码后,你需要在连接 Redis 时提供密码。使用 redis-cli 时,可以通过以下命令进行连接并提供密码:

      redis-cli -a your_password

      也可以在连接后使用 AUTH 命令进行验证:

      redis-cli 127.0.0.1:6379> AUTH your_password OK

    7.安装Frpc

    安装Frpc核心就是要对应frps的版本

    在 CentOS 7 上安装和配置 frpc(frp 客户端)是一个相对简单的过程。以下是完整的安装和配置步骤:

    步骤 1:安装 frpc

    1. 下载 frp 的最新版本: 你可以从 GitHub 官方仓库下载最新版本的 frp(frp 的客户端 frpc 和服务端 frps):

      cd /tmp wget https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz

      这里的链接是 frp 版本 0.47.0,你可以根据需要替换成最新的版本。

    2. 解压缩下载的文件

      tar -zxvf frp_0.47.0_linux_amd64.tar.gz cd frp_0.47.0_linux_amd64
    3. frpc 文件移动到 /usr/local/bin 目录,方便全局使用:

      sudo mv frpc /usr/local/bin/ sudo mv frpc.ini /etc/frp/ # 将默认的配置文件移动到配置目录

    步骤 2:配置 frpc

    1. 创建配置文件

      frpc 的配置文件通常是 frpc.ini,你需要根据你的需求编辑配置文件。配置文件的常见内容如下:

      [common]
      server_addr = x.x.x.x  # 这里填写 frps 服务器的公网 IP 地址
      server_port = 7000      # frps 服务端口,通常为 7000[ssh]
      type = tcp
      local_ip = 127.0.0.1
      local_port = 22
      remote_port = 6000
      

      将上述内容保存为 /etc/frp/frpc.ini

    2. 启动 frpc

      启动 frpc 客户端,使用配置文件 /etc/frp/frpc.ini

      frpc -c /etc/frp/frpc.ini

      如果配置正确,frpc 会连接到 frps 服务并建立隧道。

    步骤 3:配置 frpc 服务(可选)

    为了让 frpc 在系统启动时自动启动,可以将其设置为一个系统服务:

    1. 创建 systemd 服务文件

      /etc/systemd/system/ 目录下创建一个名为 frpc.service 的文件:

      sudo vim /etc/systemd/system/frpc.service

    2. 编辑服务文件内容

      将以下内容复制到 frpc.service 文件中:

      [Unit]
      Description=frpc
      After=network.target[Service]
      ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
      Restart=on-failure
      User=root
      WorkingDirectory=/etc/frp/[Install]
      WantedBy=multi-user.target
      
    3. 重新加载 systemd 并启动服务

      sudo systemctl daemon-reload sudo systemctl start frpc
    4. 设置开机自启

      sudo systemctl enable frpc

    步骤 4:验证 frpc 是否正常工作

    1. 查看 frpc 是否在运行:

      sudo systemctl status frpc
    2. 检查端口是否被转发(例如:在远程主机上检查端口 6000 是否可以访问到本地的 SSH 服务):

      telnet your-server-ip 6000

    结语

    以上步骤应该可以帮助你在 CentOS 7 上成功安装并配置 frpc 客户端。如果遇到任何问题,欢迎随时提问!

    相关文章:

    LINUX的使用(2)- 安装软件

    0.防火墙相关 启动防火墙&#xff1a; sudo systemctl start firewalld #查看防火墙列表 firewall-cmd --list-ports 设置防火墙开机自启&#xff1a; sudo systemctl enable firewalld 检查防火墙状态&#xff1a; sudo firewall-cmd --state 允许某个端口&#xff08;如端…...

    一主多从+自组网络,无线模拟量信号传输专治布线PTSD

    无线模拟量信号传输模块通过无线方式实现模拟量信号的传输&#xff0c;采集工业现场标准4~20mA电流信号&#xff0c;并将其转换为无线信号进行传输。 以下是关于无线模拟量信号传输模块实现无线模拟量信号传输的详细介绍&#xff1a; 一、模块原理 无线模拟量信号传输模块的…...

    IDEA中使用Git

    Git工作流程 创建远程仓库 现在我们已经在本地创建了一个Git仓库&#xff0c;但是这只能满足我们单人开发&#xff0c;如果想要团队协作&#xff0c;还需要一个远程仓库 目前比较流行的远程仓库&#xff0c;有下面这两个&#xff1a; github&#xff1a;https://github.com …...

    Go RPC 服务方法签名的要求

    在 Go 中&#xff0c;RPC 方法的签名有严格的要求&#xff0c;主要是为了保证方法的调用能够通过网络正确地传输和解析。具体要求如下&#xff1a; 1. 方法必须是导出的 RPC 服务的方法必须是导出的&#xff08;即首字母大写&#xff09;。这是因为 Go 的反射机制要求服务方法…...

    Ant(Ubuntu 18.04.6 LTS)安装笔记

    一、前言 本文与【MySQL 8&#xff08;Ubuntu 18.04.6 LTS&#xff09;安装笔记】同批次&#xff1a;先搭建数据库&#xff0c;再安装JDK&#xff0c;后面肯定就是部署Web应用。其中Web应用的部署使用 Ant 方式&#xff0c;善始善终&#xff0c;特以笔记。 二、准备 &#xf…...

    相机DreamCamera2录像模式适配尺寸

    在开发中遇到 一个问题&#xff0c;相机切换视频模式时&#xff0c;预览时&#xff0c;界面不能充满屏幕两侧有黑边&#xff0c;客户要求修改&#xff0c;在此记录 一问题现象&#xff1a; 系统相机在视频模式下预览时如下现象如图1&#xff0c;期望现象如图2: 图1 …...

    Animate 中HTMLCanvas 画布下实现拖拽、释放、吸附的拼图游戏

    1.舞台上物体拖拽 2.松手以后&#xff0c;检查是否移动到范围内&#xff0c;是则自动吸附 3.播放音效 4.变量1&#xff0c;显示在舞台的动态文本中 1.实现拖拽 下面代码实现拖拽和释放 地图模块 //记录原始位置 var OriXthis.my_mc.x; var OriYthis.my_mc.y;this.my_mc.on(&q…...

    第十一章-PHP表单传值

    第十一章-PHP表单传值 一&#xff0c;核心概念 1. 表单的基本结构&#xff08;HTML&#xff09; 通过HTML的<form>标签定义表单&#xff0c;关键属性包括&#xff1a; action: 指定处理表单数据的PHP脚本路径&#xff08;如action"process.php"&#xff09…...

    互联网大厂Java求职面试:从Java核心到微服务的深度探索

    场景引入: 在一个阳光明媚的早上,谢飞机满怀信心地走进了一家知名互联网大厂的面试房间。面试官坐在桌子的另一端,手中拿着一份简历,面带微笑地开始了今天的面试。 第一轮提问:核心语言与平台 面试官: "谢飞机,你好。我看到你熟悉Java SE,能不能简单介绍一下Ja…...

    微服务即时通信系统(十二)---入口网关子服务

    目录 功能设计 模块划分 业务接口/功能示意图 服务实现流程 网关HTTP接口 网关WebSocket接口 总体流程 服务代码实现 客户端长连接管理封装(connectionManage.hpp) proto文件的编写 身份鉴权proto 事件通知proto 各项请求的URL的确定 服务端完成入口网关服务类…...

    ES练习册

    es索引结构和数据实例 这里提供索引结构和数据实例提供给大家使用练习&#xff0c;希望大家能够一起成长进步~~~~ #添加索引 PUT /ecommerce_products {"settings": {"number_of_shards": 3,"number_of_replicas": 1,"analysis": {&…...

    运算符分为哪几类?哪些运算符常用作判断?简述运算符的优先级

    运算符主要分为以下几类‌&#xff1a; ‌算术运算符‌&#xff1a;用于执行基本的数学运算&#xff0c;如加、减、乘、除、取模等。例如&#xff1a;、-、*、/、%‌。‌赋值运算符‌&#xff1a;用于将值赋给变量。例如&#xff1a;、、-、*、/、%‌。‌比较运算符‌&#xff…...

    shell编程基础知识及脚本示例

    文章目录 前言一、shell变量1.命名规则2.定义及使用变量 二、shell传递参数1.位置参数2. 任意参数 三、shell一维数组0.定义方式1.定义并获取数组的单个元素2.定义并获取数组的所有元素3.定义并获取数组的元素个数4.定义并获取数组的元素索引 四、shell条件判断语法五、shell常…...

    再学GPIO(一)

    GPIO输出模式 STM32的GPIO&#xff08;General Purpose Input Output 通用输入输出&#xff09;引脚支持多种输出模式&#xff0c;不同模式决定了引脚的驱动能力和信号特性。STM32的GPIO输出模式主要分为以下4种&#xff1a; 推挽输出&#xff08;Push-Pull Output&#xff09;…...

    OpenCV彩色图像分割

    OpenCV计算机视觉开发实践&#xff1a;基于Qt C - 商品搜索 - 京东 灰度图像大多通过算子寻找边缘和区域生长融合来分割图像。彩色图像增加了色彩信息&#xff0c;可以通过不同的色彩值来分割图像&#xff0c;常用彩色空间HSV/HIS、RGB、LAB等都可以用于分割。本节使用inRange…...

    django filter 排除字段

    在Django中&#xff0c;当你使用filter查询集&#xff08;QuerySet&#xff09;时&#xff0c;通常你会根据模型的字段来过滤数据。但是&#xff0c;有时你可能想要排除某些特定的字段&#xff0c;而不是过滤这些字段。这里有几种方法可以实现这一点&#xff1a; 使用exclude方…...

    多模态大语言模型arxiv论文略读(四十五)

    CAT: Enhancing Multimodal Large Language Model to Answer Questions in Dynamic Audio-Visual Scenarios ➡️ 论文标题&#xff1a;CAT: Enhancing Multimodal Large Language Model to Answer Questions in Dynamic Audio-Visual Scenarios ➡️ 论文作者&#xff1a;Qil…...

    Vue3 通过Vue3-Print-Nb在线工单打印 模板打印 自定义打印 打印下载

    介绍 通过在应用中集成打印功能&#xff0c;用户可以直接从页面打印工单&#xff0c;不用导出文件或使用其他外部工具。节省时间&#xff0c;提高效率&#xff0c;特别是当需要大量打印时。同时也可以将文件模板上传到数据库&#xff0c;提供给部门工作自行下载。 开源文档&am…...

    视觉“解锁”触觉操控:Franka机器人如何玩转刚柔物体?

    集智联机器人&#xff08;Plug & Play Robotics&#xff09;&#xff0c;简称PNP机器人&#xff0c;是Franka Robotics和思灵机器人金牌合作伙伴&#xff0c;集智联机器人团队成员均来自于国内外机器人行业知名企业&#xff0c;具有较强的学术背景。PNP机器人致力于为客户提…...

    FlinkUpsertKafka深度解析

    1. 设计目标与工作机制 Upsert-Kafka Connector 核心功能&#xff1a;支持以 Upsert&#xff08;插入/更新/删除&#xff09; 模式读写 Kafka 数据&#xff0c;适用于需要动态更新结果的场景&#xff08;如聚合统计、CDC 数据同步&#xff09;。数据流类型&#xff1a; 作为 …...

    百度Create大会深度解读:AI Agent与多模态模型如何重塑未来?

    目录 百度Create大会亮点全解析&#xff1a;从数字人到Agent生态布局 数字人商业化&#xff1a;从"拟人"到"高说服力"的进化 Agent生态&#xff1a;从"心响"App看百度的Agent战略布局 "心响"App的技术架构与创新点 多模态大模型&a…...

    新能源汽车运动控制器核心芯片选型与优化:MCU、DCDC与CANFD协同设计

    摘要&#xff1a;随着新能源汽车产业的迅猛发展&#xff0c;汽车运动控制器的性能和可靠性面临着更高的要求。本文深入探讨了新能源汽车运动控制器中MCU&#xff08;微控制单元&#xff09;、DCDC电源管理芯片和CANFD总线通信芯片的选型要点、优化策略及其协同设计方案。通过综…...

    【软件工程】 白盒测试简介

    1. 前言 在软件测试过程中&#xff0c;白盒测试&#xff08;White-box Testing&#xff09;是一种重要方法&#xff0c;它通过检查程序内部结构来验证软件功能。本文以一道典型的伪代码程序为例&#xff0c;结合白盒测试的基本操作&#xff0c;设计语句覆盖测试用例&#xff0…...

    uniapp自定义一个选择年月日时分的组件。

    <template><view><u-popup :show"timePopShow" mode"bottom" close"close" open"open" :closeOnClickOverlay"true"><view class"popup-container"><!-- 自定义时间内容 --><vi…...

    Git命令(Gitee)

    三板斧&#xff1a; git init //初始化本地仓库 git add . //添加所有文件到缓存区 &#xff08;或指定文件&#xff09; git commit -m "备注" //提交&#xff0c;填写备注 git remote add origin <远程仓库链接> git push -u origin ma…...

    Node.js 应用部署:镜像体积优化与安全的多阶段构建探索

    Node.js 应用部署:镜像体积优化与安全的多阶段构建探索 在开发 Node.js 应用时,部署过程中的镜像体积优化和安全性保障是至关重要的环节。本文将通过两种不同的 Docker 部署方式,深入探讨如何实现高效的镜像体积优化和安全的部署环境。 传统的单阶段构建方式 许多开发者在…...

    深度解析:Web Crawling与Web Scraping的区别与联系

    在现代互联网数据驱动的时代&#xff0c;Web Crawling(网页爬取)和Web Scraping(网页抓取)成为数据采集领域的两大核心技术。尽管两者常被混用&#xff0c;但它们在技术实现、应用目的和操作流程上存在显著差异。本文将基于权威资料&#xff0c;特别是维基百科的定义&#xff0…...

    C# 利用log4net 工作台打印和保存到文件

    目录 ‌log4net‌简介引言1、添加引用库2、添加引用和构建实例3、添加属性配置4、添加配置文件最后 ‌log4net‌简介 log4net‌是一个开源的日志记录组件&#xff0c;专为.NET平台设计。它是Apache log4j框架在Microsoft .NET平台的实现&#xff0c;属于Apache Logging Servic…...

    2025 VSCode中如何进行dotnet开发环境配置完整教程

    我一直都是用Visual Studio 2019来开发C#项目的&#xff0c;用的比较顺手&#xff0c;也习惯了。看其他技术文章有介绍VS Code更轻量&#xff0c;更方便。 所以就想来研究如何使用VS Code&#xff0c;看看它是如何构建代码、调试代码、如何运行C#应用程序。 本文将详细介绍如何…...

    vscode本地化显示远程图形化界面

    远程登陆到服务器端 sudo vim /etc/ssh/sshd_config修改文件中的参数&#xff0c;保存。主要参数如下 配置好上述后需要reload一下ssh,安装xclock。 service ssh reload # 安装x11-apps&#xff0c;这样就可以使用xclock apt install x11-apps查看环境变量,在其中并没有DISPL…...

    STM32 CAN通信 HAL库实战教程:从零到测试成功

    STM32 CAN通信 HAL库实战教程&#xff1a;从零到测试成功 <我打印的是陀螺仪的数据> 目录 简介&#xff1a;为什么学习CAN通信CAN通信基础概念STM32 CAN硬件配置CAN初始化详解CAN数据发送实现CAN数据接收实现测试与验证方法常见问题与解决总结与拓展 1. 简介&#xff1…...

    数据结构强化篇

    应用题 排序 插入排序 void InsertSort (ElemType A[], n int) {int i, j;for (i2; i<n; i) //依次将 A[2]&#xff5e;A[n]插入前面已排序序列if (A[i]<A[i-1]) { //若 A[i]关键码小于其前驱&#xff0c;将 A[i]插入有序表A[0]A[i]; //复制为哨兵&#xff0c;A[0]不存放…...

    泰迪杯实战案例超深度解析:旅游景点游客流量预测与资源优化

    (2025年泰迪杯数据挖掘挑战赛D题特等奖案例) 一、案例背景与目标 1.1 应用场景与痛点 某5A级景区面临以下核心问题: 拥堵严重:节假日热门景点游客密度超过10人/㎡,排队时间长达2小时。 资源浪费:接驳车空载率30%,餐饮点位在非高峰时段闲置率60%。 应急滞后:突发降雨或…...

    qt 3d航迹图

    一般就是三种方法 1.opengl&#xff0c;vtk这种从零自己画&#xff0c;网上也可能有半成品&#xff0c;大多是付费的。 2.重写qwt3d&#xff0c;07年就停止更新了&#xff0c;画出来类似opengl&#xff0c;需要自己修改参数&#xff0c;参数修改不对很难搞&#xff0c;对于经…...

    探索排序算法的奥秘(上):冒泡排序、选择排序、插入排序

    在计算机科学中&#xff0c;排序算法是数据处理的基础工具之一。通过对数据进行有序排列&#xff0c;可以极大地提高数据检索和处理的效率。本文将详细介绍三种经典的排序算法&#xff1a;冒泡排序、选择排序和插入排序。我们将从算法思想、原理、代码实现&#xff08;C语言、P…...

    Stable Diffusion 技术全景解析与行业竞争力分析

    目录 一、Stable Diffusion 技术概览 1. 核心背景 2. 技术架构 二、行业地位与竞品对比 1. 市场定位 2. 核心竞争优势 三、部署成本与硬件要求 1. 硬件配置方案 2. 优化技巧 四、优势与劣势分析 1. 核心优势 2. 主要劣势 五、开源策略与商业模型 1. 开源协议 2. …...

    基于Python的DeepSeek API图形界面开发

    基于Python的DeepSeek API图形界面开发 在人工智能技术广泛应用的今天&#xff0c;如何将强大的API能力与用户友好的界面结合&#xff0c;成为开发者关注的重点。本文将以DeepSeek API为例&#xff0c;详解如何通过Python构建兼具功能性与美观度的GUI应用程序。 一、技术架构…...

    w~嵌入式C语言~合集4

    我自己的原文哦~ https://blog.51cto.com/whaosoft/13870376 一、STM32怎么选型 什么是 STM32 STM32&#xff0c;从字面上来理解&#xff0c;ST是意法半导体&#xff0c;M是Microelectronics的缩写&#xff0c;32表示32位&#xff0c;合起来理解&#xff0c;STM32就是指S…...

    自动驾驶(ADAS)领域常用数据集介绍

    1. KITTI 数据集 简介&#xff1a;由德国卡尔斯鲁厄理工学院与丰田研究院联合创建&#xff0c;是自动驾驶领域最经典的评测基准&#xff0c;涵盖立体视觉、光流、3D检测等任务。包含市区、乡村和高速公路场景的真实数据&#xff0c;标注对象包括车辆、行人等&#xff0c;支持多…...

    【嵌入式八股23】Linux关键指令

    系统关机命令 在 Linux 系统中,有多种命令可用于实现系统关机或重启操作,以下为你详细介绍各命令及其特点: 指令 说明 shutdown该命令能够安全地将系统关机。它允许用户指定关机的时间,还可以在关机前向所有登录用户发送警告消息。例如,shutdown -h now 可立即关机,shu…...

    机器学习的一百个概念(13)布里尔分数

    前言 本文隶属于专栏《机器学习的一百个概念》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索: 知识库创建人机器学习@Shockang机器学习数学基础@Shocka…...

    AI提示词(Prompt)终极指南:从入门到精通(附实战案例)

    在AI重塑工作方式的今天&#xff0c;掌握Prompt工程已成为智能时代的必备技能。本指南系统解析提示词设计精髓&#xff0c;从认知底层逻辑到实战应用技巧&#xff0c;带您解锁AI工具的完整潜能。涵盖主流模型选型策略、三大黄金法则、结构化模板及典型避坑指南&#xff0c;更有…...

    鸿蒙版电影app设计开发

    鸿蒙电影购票APP项目介绍 一、项目概述及使用方式 &#xff08;一&#xff09;项目概述 在智能手机与移动互联网蓬勃发展的当下&#xff0c;移动设备已成为人们生活不可或缺的一部分&#xff0c;而电影购票这一日常娱乐消费行为也日益向移动端迁徙。鸿蒙系统作为新兴力量&…...

    如何启动jar包隐藏cmd窗口

    要启动一个JAR文件并隐藏命令行窗口&#xff08;cmd&#xff09;&#xff0c;你可以使用不同的方法&#xff0c;具体取决于你的操作系统。以下是几种常见的方法&#xff1a; 在Windows中使用批处理文件 你可以创建一个批处理文件&#xff08;.bat文件&#xff09;&#xff0c;…...

    【Redis】基础3:一些应用场景

    文章目录 1. session管理1.1 手机号登录流程1.2 session的数据结构设计1.2.1 一些概念1.2.2 session数据结构例子 1.3 引入redis来实现共享session1.3.1 流程发送验证码短信的流程验证码登录流程登录检查流程 1.3.2 要考虑的问题 2. 限时抢购代金券2.1 业务流程2.2 代金券表设计…...

    【创新实训个人博客】multi-agent调研(2)

    下面的部分我们将简单介绍现有的三个multi-agent框架&#xff0c;并对它们进行简单的比较 multi-agent框架分析 MetaGPT 相关资料 代码repo&#xff1a;https://github.com/geekan/MetaGPT论文&#xff1a;https://arxiv.org/pdf/2308.0035 AgentVerse 相关资料 代码repo&…...

    对鸿蒙 Next 系统“成熟论”的深度剖析-优雅草卓伊凡

    对鸿蒙 Next 系统“成熟论”的深度剖析-优雅草卓伊凡 在科技飞速发展的当下&#xff0c;鸿蒙 Next 系统无疑成为了众多科技爱好者与行业人士关注的焦点。今日&#xff0c;卓伊凡便收到这样一个饶有趣味的问题&#xff1a;鸿蒙 Next 系统究竟需要多长时间才能完全成熟&#xff…...

    模方ModelFun瓦片数据操作教程

    摘要&#xff1a;本文主要介绍模方ModelFun瓦片数据操作&#xff0c;包含&#xff1a;打开/关闭瓦片数据&#xff0c;备份和恢复&#xff0c;导出 OBJ/ OSGB&#xff0c;导出DOM/DSM。 1.打开/关闭瓦片数据 在“总体模型视图/OSGB”里对 tiles 进行操作&#xff1a;选择&…...

    RabbitMQ应用(基于腾讯云)

    1.防火墙配置 关于RabbitMQ的远程&#xff0c;主要有4个端口需要开通【入站规则】&#xff0c;分别是&#xff1a; 端口 5672&#xff1a;这是 RabbitMQ 的默认 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;端口&#xff0c;用于客户端与 RabbitMQ 服务器之…...

    堆和二叉树的概念和操作

    目录 1.树的概念 1.1数的表示 1.2二叉树 1.3特殊的二叉树 1.3.1满二叉树 1.3.2完全二叉树 1.3.3 二叉树存储结构 2.堆 2.1堆的实现 初始化和销毁 堆的插入 堆的向上调整算法​编辑 ​编辑 堆的删除 出堆顶 1.树的概念 树是非线性的数据结构&#xff0c;有限节点具有的层…...