浅识Linux高阶用法
(前记:内容有点多,先看目录再挑着看。)
问题:在Java面试中,当被提问到Linux的高阶用法以及如何使用Linux将程序、数据库、中间件等部署在云上时,可以从以下几个方面进行回答:
Linux的高阶用法
-
Shell脚本编写:
- 编写复杂的Shell脚本,实现自动化管理任务,如批量启动/停止服务、日志收集与分析等。
- 利用正则表达式、循环、条件判断等Shell脚本特性,提高脚本的灵活性和可维护性。
- 假设需要每天凌晨2点自动备份某个重要目录。可以编写一个Shell脚本,使用
cron
定时任务来每天执行这个脚本。脚本中可以使用tar
命令将目录打包成压缩文件,并使用scp
命令将压缩文件传输到远程备份服务器上。
-
文件系统管理:
- 熟练掌握Linux文件系统的结构,能够合理规划磁盘空间,优化文件I/O性能。
- 了解并使用LVM(逻辑卷管理)进行磁盘的动态扩展和管理。
- 假设服务器的磁盘空间不足,需要扩展磁盘空间。可以使用LVM来动态扩展逻辑卷。首先,添加新的物理卷到卷组中,然后使用
lvextend
命令扩展逻辑卷的大小,最后使用resize2fs
命令调整文件系统的大小以匹配新的逻辑卷大小。
-
网络配置与管理:
- 配置和管理Linux网络,包括静态IP设置、路由配置、防火墙规则等。
- 使用netstat、iptables等工具监控和分析网络流量,排查网络故障。
- 假设需要限制某个IP地址的访问权限。可以使用
iptables
命令来添加一条规则,拒绝来自该IP地址的所有连接请求。例如,使用命令iptables -I INPUT -s 192.168.1.100 -j DROP
来拒绝来自192.168.1.100的访问。
-
系统性能调优:
- 分析系统性能瓶颈,使用top、htop、vmstat等工具监控CPU、内存、磁盘I/O等资源使用情况。
- 调整系统参数,如内核参数、文件描述符限制等,以提高系统性能。
- 假设服务器的CPU使用率非常高,需要找出占用CPU最高的进程。可以使用
top
命令来实时查看系统资源使用情况,并通过按P
键来按CPU使用率排序进程列表。找到占用CPU最高的进程后,可以使用kill
命令终止该进程。 - 工具链使用:
# CPU分析 top -H -p [PID] # 查看线程级CPU占用 perf stat -d java -jar app.jar # 性能计数器分析# 内存分析 vmstat 2 10 # 每2秒采样,共10次(检查si/so判断Swap使用) jmap -histo:live [PID] > heap.txt # Java堆内存直方图# 磁盘IO iostat -x 1 # 监控磁盘吞吐和延迟(%util >70%表示瓶颈) pidstat -d -p [PID] # 进程级IO统计# 网络分析 ss -tnlp # 比netstat更高效的连接查看 tcpdump -i eth0 'port 8080' -w capture.pcap # 抓包分析
- 实战案例:
- 某次线上服务延迟突增,通过
top
发现CPU软中断(si)过高,结合mpstat -P ALL 1
确认单核瓶颈,最终用ethtool -K eth0 gro off
关闭GRO功能解决网卡多队列不均问题。
- 某次线上服务延迟突增,通过
-
安全配置与管理:
- 配置SELinux或AppArmor等安全模块,增强系统安全性。
- 定期更新系统补丁,防范已知漏洞。
- 使用SSH密钥认证、防火墙规则等限制非法访问。
- 假设需要增强服务器的安全性,可以配置SELinux来限制进程的访问权限。例如,可以设置SELinux为enforcing模式,并使用
semanage
命令来管理SELinux策略。此外,还可以定期更新系统补丁,使用yum update
命令来安装最新的安全更新。
-
系统级问题排查
-
核心技巧:
# 日志分析三板斧 grep "ERROR" app.log | awk '{print $1}' | sort | uniq -c | sort -nr # 错误统计 journalctl -u nginx --since "2023-08-01" --until "2023-08-02" # 系统服务日志 dmesg -T | grep "Out of memory" # 内核日志时间格式化# 进程调试 strace -ff -o trace.log java -jar app.jar # 系统调用跟踪 gcore [PID] # 生成Core Dump而不终止进程
-
案例:
曾遇到JVM频繁Full GC,通过jstat -gcutil [PID] 1000
观察内存回收情况,结合jmap -dump:format=b,file=heap.hprof [PID]
导出堆分析,发现内存泄漏点为未关闭的数据库连接池。
-
-
-
自动化运维
Shell脚本进阶:-
# 安全备份脚本(保留7天) find /backups -type f -mtime +7 -exec rm -f {} \; mysqldump -u root db | gzip > /backups/db_$(date +%F).sql.gz# 服务监控脚本 while true; doif ! nc -z localhost 8080; thenecho "服务宕机!" | mail -s "告警" admin@example.comsystemctl restart appfisleep 60 done
-
Ansible实战:
# deploy.yml - hosts: webserverstasks:- name: 部署JAR包copy:src: target/app.jardest: /opt/app/- name: 重启服务systemd:name: appstate: restartedenabled: yes
使用Ansible实现跨200+服务器的批量部署,部署时间从2小时缩短至5分钟。
-
--------分界线---------------------------------------------------------------------------------------------------
使用Linux将程序、数据库、中间件等部署在云上
- 选择云服务提供商:
- 选择可靠的云服务提供商,如阿里云、腾讯云、AWS等。
- 根据业务需求选择合适的云服务器规格,如CPU、内存、存储等。
- 创建云服务器实例:
- 在云服务提供商的控制台中创建新的云服务器实例。
- 选择适合的Linux发行版作为操作系统镜像。
- 配置实例设置:
- 配置实例的网络设置,包括公网IP、私网IP、安全组规则等。
- 根据需求选择地理位置和可用区。
- 连接到实例:
- 使用SSH协议等工具连接到云服务器实例。
- 进行必要的系统初始化设置,如更新软件包、安装常用工具等。
- 部署程序:
- 将Java程序打包成可执行的jar包或war包。
- 使用scp、rsync等工具将程序上传到云服务器。
- 配置和运行Java程序,如使用Tomcat、Jetty等Servlet容器或Spring Boot等框架。
- 假设有一个Java Web应用程序需要部署在Tomcat服务器上。首先,将Tomcat服务器安装在云服务器上,并将Java Web应用程序打包成WAR文件。然后,使用
scp
命令将WAR文件上传到Tomcat的webapps目录下。最后,启动Tomcat服务器,Tomcat会自动解压WAR文件并部署应用程序。
- 部署数据库:
- 选择适合的数据库类型,如MySQL、PostgreSQL等。
- 在云服务器上安装并配置数据库。
- 进行数据库初始化,导入必要的数据。
- 假设需要部署一个MySQL数据库。首先,在云服务器上安装MySQL服务器,并进行初始化设置,如设置root密码、创建数据库和用户等。然后,将数据库备份文件上传到云服务器上,并使用
mysql
命令导入备份文件到MySQL数据库中。
- 部署中间件:
- 根据业务需求选择合适的中间件,如Redis、Memcached等缓存中间件,或RabbitMQ、Kafka等消息中间件。
- 在云服务器上安装并配置中间件。
- 进行必要的中间件初始化设置。
- 假设需要部署一个RabbitMQ消息中间件。首先,在云服务器上安装Erlang和RabbitMQ。然后,启动RabbitMQ服务,并进行必要的配置,如创建交换机、队列和绑定等。最后,编写生产者和消费者程序,使用RabbitMQ提供的API来发送和接收消息。
- 配置和优化:
- 根据实际需求配置系统设置,如网络设置、安全设置、性能优化等。
- 使用监控工具(如Nagios、Zabbix等)监控服务器状态,及时发现并解决问题。
- 在部署完成后,需要进行必要的配置和优化。例如,可以调整Tomcat服务器的内存设置,以提高应用程序的性能。可以使用
vi
命令编辑Tomcat的配置文件server.xml
,并修改<Connector>
元素的maxThreads
、minSpareThreads
等属性来调整线程池的大小。此外,还可以使用sysctl
命令来调整Linux内核参数,如文件描述符限制、TCP连接超时等,以提高系统的网络性能。
- 备份和恢复:
- 定期进行服务器备份,以防数据丢失或服务器故障时能够快速恢复。
- 配置自动化备份策略,提高备份效率和可靠性。
- 为了确保数据的安全性,需要定期进行备份。可以使用
rsync
命令将重要数据同步到远程备份服务器上。此外,还可以使用cron
定时任务来定期执行备份脚本。在需要恢复数据时,可以从备份服务器上下载备份文件,并使用相应的命令将数据恢复到原始位置。
- 自动化部署与监控
-
使用CI/CD工具(如Jenkins、GitLab CI)实现自动化部署。
-
使用监控工具(如Prometheus、Grafana)监控应用、数据库和中间件的运行状态。
-
--------分界线---------------------------------------------------------------------------------------------------
二、云上部署架构(项目实战)
1. 基础设施即代码(IaC)
-
Terraform示例(AWS):
resource "aws_instance" "app" {ami = "ami-0c55b159cbfafe1f0"instance_type = "t3.medium"vpc_security_group_ids = [aws_security_group.app.id]user_data = filebase64("init.sh") }resource "aws_rds_cluster" "mysql" {engine = "aurora-mysql"instance_class = "db.t3.medium"availability_zones = ["us-east-1a", "us-east-1b"] }
项目经验:
在金融项目中,通过Terraform管理200+资源,实现环境快速复制(开发→测试→生产),并集成Vault动态生成数据库凭证。
2. 容器化部署
-
Docker优化技巧:
-
使用Docker容器化:将Java程序打包为Docker镜像,然后部署到容器服务(如Kubernetes、Docker Swarm)。
-
直接部署到虚拟机:通过SSH连接到云服务器,使用
scp
或rsync
将程序文件传输到服务器上。 -
# 多阶段构建减小镜像体积 FROM maven:3.8-jdk-11 AS build COPY . /app RUN mvn package -DskipTestsFROM openjdk:11-jre-slim COPY --from=build /app/target/app.jar /app.jar USER nobody # 非root运行 HEALTHCHECK --interval=30s CMD curl -f http://localhost:8080/health || exit 1
案例:
将单体应用改造为微服务,镜像大小从780MB降至95MB,启动时间由45秒缩短至8秒。-
Kubernetes部署:
# deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: app spec:replicas: 3strategy:rollingUpdate:maxSurge: 1maxUnavailable: 0template:spec:containers:- name: appimage: registry.example.com/app:v1.2resources:limits:memory: "1Gi"cpu: "500m"livenessProbe:httpGet:path: /healthport: 8080
实战经验:
在电商大促期间,通过HPA(Horizontal Pod Autoscaler)实现自动扩缩容,应对流量峰值从50到300 Pod的弹性伸缩。
-
3. 中间件云上部署
-
Redis集群部署:
# 使用Redis官方Helm Chart helm repo add bitnami https://charts.bitnami.com/bitnami helm install redis-cluster bitnami/redis \--set cluster.slaveCount=2 \--set persistence.storageClass=gp2
调优经验:
配置maxmemory-policy allkeys-lru
并启用rdb-save
,在内存不足时保障核心数据持久化。 -
Kafka云原生方案:
# Strimzi Operator部署 apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata:name: my-cluster spec:kafka:replicas: 3storage:type: persistent-claimsize: 100Giconfig:num.partitions: 12default.replication.factor: 3zookeeper:replicas: 3
案例:
在日志分析系统中,通过调整num.io.threads=16
和log.flush.interval.messages=10000
,吞吐量提升40%。
4. 数据库高可用方案
-
云托管服务选择:
-
AWS RDS Multi-AZ部署
-
阿里云PolarDB集群
-
自建MySQL Group Replication
-
-
备份策略:
# Percona XtraBackup自动化 innobackupex --user=backup --password=xxx /backups/ aws s3 sync /backups s3://bucket/db-backups/
恢复演练:
每季度执行全量恢复测试,确保RTO<30分钟,RPO<5分钟。(RTO是恢复时间目标,指系统允许的最大停机时间,而RPO是恢复点目标,指数据丢失的最大时间范围。)
三、监控与安全
1. 云原生监控体系
-
Prometheus + Grafana:
# Prometheus配置示例 - job_name: 'java_app'metrics_path: '/actuator/prometheus'static_configs:- targets: ['app:8080']
自定义业务指标:
@Timed(value = "order.process.time", description = "订单处理耗时") public void processOrder() { ... }
2. 安全加固实践
-
Linux层:
# SSH加固 sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config echo "AllowUsers deploy" >> /etc/ssh/sshd_config# 防火墙策略 ufw allow proto tcp from 10.0.0.0/8 to any port 8080
-
K8s安全:
# Pod安全策略 securityContext:runAsNonRoot: truecapabilities:drop: ["ALL"]readOnlyRootFilesystem: true
四、回答技巧
-
技术结合业务:
"在最近的风控系统中,我们使用tcpdump
抓取可疑请求,结合Wireshark
分析发现API被恶意爬取,随后通过iptables
动态封禁IP段,并优化了鉴权流程" -
故障排查故事:
"某次凌晨3点数据库CPU 100%,通过pt-query-digest
分析慢日志,发现缺失索引导致全表扫描,紧急添加索引后恢复,并建立了SQL审核流程" -
架构演进路线:
"系统从单机部署逐步演进为:-
阶段1:EC2 + 自建MySQL
-
阶段2:EKS容器化 + RDS读写分离
-
阶段3:跨AZ多活 + 混沌工程测试"
-
-
数据量化成果:
"通过优化JVM参数(-XX:+UseZGC
)和内核参数(vm.swappiness=10
),GC暂停时间从200ms降至10ms,系统吞吐量提升3倍"
通过以上技术细节与项目实战的结合,既能展示对Linux的深度掌握,又能体现云原生部署的工程能力,这正是高级Java工程师所需的核心竞争力。
--------分界线---------------------------------------------------------------------------------------------------
综上所述,Linux的高阶用法包括Shell脚本编写、文件系统管理、网络配置与管理、系统性能调优和安全配置与管理等方面。而使用Linux将程序、数据库、中间件等部署在云上则需要选择云服务提供商、创建云服务器实例、配置实例设置、连接到实例、部署程序、数据库和中间件、进行配置和优化以及备份和恢复等操作。
(抱歉,最近在面试,粗糙了些。)
(望各位潘安、各位子健/各位彦祖、于晏不吝赐教!多多指正!🙏)
相关文章:
浅识Linux高阶用法
(前记:内容有点多,先看目录再挑着看。) 问题:在Java面试中,当被提问到Linux的高阶用法以及如何使用Linux将程序、数据库、中间件等部署在云上时,可以从以下几个方面进行回答: Li…...
I²C简介
前言 IC(Inter-Integrated Circuit, 内置集成电路)总线是由Philips公司(现属于恩智浦)在上世纪80年代开发的两线式串行通信总线,用于连接微控制器及其外围设备,控制设备之间的通信。 IC总线的物理拓扑示意…...
Linux定时静默执行桌面/前台程序
Linux服务器上的程序大都在后台默默的执行,但有些需要在前台或桌面上运行的程序该怎么办呢?这就要借助虚拟显示技术,也就是在后台运行时提供虚拟的显示,使前台运行的程序也能默默的在后台运行,这就是所谓的以“无头模式…...
Redux中间件redux-thunk和redux-saga的具体区别是什么?
Redux 中间件是增强 Redux 功能的重要工具,redux-thunk 和 redux-saga 是两个常用的中间件,它们在处理异步操作和副作用时提供了不同的方式和理念。以下是两者的具体区别: 1. 概念与设计理念 redux-thunk 简洁:redux-thunk 是一…...
【STM32】DRV8833驱动电机
1.电机如何转动 只需要给电机两个端子加一正一负的极性就会转起来了,但是要注意的是不要将电机两端直接接在5v和gnd之间,这种电机一般要提供几百毫安的电流,而GPIO口只能提供几毫安,所以我们使用一个DRV8833来驱动 DRV8833输入口…...
【go语言规范】 使用函数式选项 Functional Options 模式处理可选配置
如何处理可选配置? Config Struct 方式 (config-struct/main.go) 这是最简单的方式,使用一个配置结构体: 定义了一个简单的 Config 结构体,包含 Port 字段创建服务器时直接传入配置对象优点:简单直接缺点:…...
vue中为组建添加样式的方式
在 Vue 中,可以通过多种方式为 view 添加样式,并且支持动态绑定样式。以下是几种常见的方式: 1. 内联样式 直接在模板中使用 style 属性来添加样式。 <template><div style"color: red; font-size: 14px;">这是一个…...
如何简单的去使用jconsloe 查看线程 (多线程编程篇1)
目录 前言 1.进程和线程 进程 PCB 的作用 并发编程和并行编程 线程 为什么选择多线程编程 2.在IDEA中如何简单创建一个线程 1. 通过继承Thread类 2. 通过实现 Runnable 接口 3. 使用 Lambda 表达式 3.如何简单使用jconsloe去查看创建好的线程 前言 2025来了,这是第…...
机器学习·最近邻方法(k-NN)
前言 上一篇简单介绍了决策树,而本篇讲解与决策树相近的 最近邻方法k-NN。 机器学习决策树-CSDN博客 一、算法原理对比 特性决策树最近邻方法(k-NN)核心思想通过特征分割构建树结构,递归划分数据基于距离度量,用最近…...
网络安全试题
ciw网络安全试题 (1)(单选题)使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这属于什么攻击类型? A、拒绝服务 B、文件共享 C、BIND漏洞 D、远程过程调用 &a…...
沃丰科技大模型标杆案例 | 索尼大模型智能营销机器人建设实践
AI大模型发展日新月异,国内外主流大模型每月必会升级。海外AI大模型市场由美国主导, 各模型已形成“多强竞合”的局面。中国积极响应全球大模型技术的发展趋势,高校、研究院所等科研机构、互联网企业,人工智能企业均不同程度地投入…...
rust学习四、控制语句
rust的控制语句和大部分语言没有什么区别,都是熟悉的for,while,loop,if。 比较不同的是,在绝大部分非常流行的语言中都有的switch,rust是没有的。 诸如c/c,java,javascript,c#。连PL/SQL都有case when语句。 一、基本的for、while、if&…...
会员购交易系统架构演进
本期作者 1.背景 会员购是B站2017年推出的IP消费体验服务平台,在售商品以手办、漫画、JK制服等贴合平台生态的商品为主。随着业务发展,会员购从最开始的预售,现货拓展到全款预售,盲盒,众筹等多种售卖方式,销…...
在Linux系统下修改Docker的默认存储路径
在Linux系统下修改Docker的默认存储路径可以通过多种方法实现,下边是通过修改daemon.json文件方式实现 查看当前Docker存储路径 使用命令 docker info | grep "Docker Root Dir" 查看当前Docker的存储路径,默认为 /var/lib/docker 停止Docker…...
【人工智能】释放数据潜能:使用Featuretools进行自动化特征工程
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 特征工程是机器学习流程中至关重要的一步,它直接影响模型的性能。然而,手动特征工程既耗时又需要领域专业知识。Featuretools是一个强大的…...
shell脚本备份PostgreSQL数据库和库下表
注意: 以下为对PostgreSQL13.16版本数据库备份shell脚本参考请确认备份节点上psql和pgdump的版本不至于太低,建议>13.16该脚本目前是对于整库、(默认针对public这个schema,如果有其他schema,请自行添加一层循环&am…...
java面试笔记(一)
1. 一万个string类型的数据,设计一个算法如何按照String长度来排序 以使用 Arrays.sort() 方法,并结合一个自定义的比较器。以下是实现的示例代码: public class StringLengthSort {public static void main(String[] args) {// 定义一万个字符串的示例…...
网络分析仪E5071C的回波损耗测量
回波损耗(Return Loss)是评估射频/微波元件(如滤波器、天线、电缆等)信号反射特性的关键参数,反映端口阻抗匹配性能。E5071C矢量网络分析仪(VNA)通过以下步骤实现高精度回波损耗测量:…...
sql注入中,如果information_schema被过滤,该怎么绕过
目录 一、sys.schema_auto_increment_columns 1.功能 2.利用思路 二、sys.schema_table_statistics_with_buffer 1.功能 2.利用思路 三、mysql.innodb_table_stats和mysql.innodb_index_stats 1.mysql.innodb_table_stats 1.1功能 2.mysql.innodb_index_stats 2.1功…...
若依Flowable工作流版本监听器使用方法
1.前言 本文详细介绍如何在若依Flowable工作流版本(RuoYi-Vue-Flowable)中配置执行监听器和任务监听器。是以我二次开发的代码为基础,介绍如何配置监听器,已解决源码在新增或删除监听器出现的问题,如果需要二次开发的…...
Linux(Centos 7.6)命令详解:cat
1.命令作用 将文件或标准输入连接到标准输出(Concatenate FILE(s), or standard input, to standard output), 即将文件内容输出到屏幕上,或者将多个文件合并成一个文件。 2.命令语法 Usage: cat [OPTION]... [FILE]... 3.参数详解 OPTION: -A, -…...
使用DeepSeek+本地知识库,尝试从0到1搭建高度定制化工作流(自动化篇)
7.5. 配图生成 目的:由于小红书发布文章要求图文格式,因此在生成文案的基础上,我们还需要生成图文搭配文案进行发布。 原实现思路: 起初我打算使用deepseek的文生图模型Janus进行本地部署生成,参考博客:De…...
罗德与施瓦茨ZNB20,矢量网络分析仪9KHz-20GHz
罗德与施瓦茨ZNB20矢量网络分析仪9KHz-20GHz R&SZNB20矢量网络分析仪 产品型号: ZNB20 产品品牌:罗德与施瓦茨 R&S 产品名称: 矢量网络分析仪 频率范围:9kHz - 20GHz R&S ZNB 矢量网络分析仪 良好的测量速度、动态范围和操作方便性&am…...
Linux 固定 IP 地址和网关
Linux 固定 IP 地址和网关 查看 IP ifconfig ifconfig eth0 ip addr ip addr show eth0 查看网关 ip route show route -n netstat -rn 设置固定 IP // 配置静态IP文件/etc/network/interfaces $ vi /etc/network/interfacesauto eth0 iface eth0 inet static addre…...
C++ ——const关键字
const关键字通常表示只读,不可修改,可以保证数据的安全性 1、修饰局部变量 const修饰的局部变量,叫做常局部变量,表示该局部变量不可被修改,这种用法常用于引用参数 2、修饰成员变量 const修饰的成员变量…...
MySQL:MySQL8.0 JSON类型使用整理,基于用户画像的案例
摘要:MySQL,JSON类型,多值索引, 用户画像 MySQL是结构化数据存储,JSON是非结构化格式,在MySQL中使用JSON类型可以打通关系型和非关系型数据的存储之间的界限,为业务提供更好的架构选择ÿ…...
Python MoviePy 视频处理全攻略:从入门到实战案例
第1章 环境安装与配置 # 案例1:安装MoviePy及FFmpeg !pip install moviepy # Windows安装FFmpeg:https://ffmpeg.org/download.html # Linux: sudo apt-get install ffmpeg# 验证安装 from moviepy.editor import * print("MoviePy版本:", __…...
30道Qt面试题(答案公布)
前五个答案 ✦ 1. Qt中常用的五大模块是哪些? Qt中常用的五大模块包括: • Qt Core:提供核心非GUI功能,如数据结构、文件操作、国际化等。 • Qt GUI:提供与平台无关的图形和基本窗口功能。 • Qt Widgets:提供用于创建传统桌面应用程序的UI组件。 • Qt Netw…...
深入解析 MySQL 数据删除操作:DELETE、TRUNCATE 与 DROP 的原理与选择
引言 在 MySQL 中,删除数据或表结构的操作看似简单,但不同操作(如 DELETE、TRUNCATE、DROP)背后的原理和适用场景差异巨大。错误选择可能导致性能问题或数据丢失!本文通过通俗的比喻、流程图和表格,带你深入理解它们的原理与差异。 DELETE 操作的原理 DELETE … IN 执…...
spring cloud gateway限流常见算法
目录 一、网关限流 1、限流的作用 1. 保护后端服务 2. 保证服务质量 (QoS) 3. 避免滥用和恶意攻击 4. 减少资源浪费 5. 提高系统可扩展性和稳定性 6. 控制不同用户的访问频率 7. 提升用户体验 8. 避免API滥用和负载过高 9. 监控与分析 10. 避免系统崩溃 2、网关限…...
华为FusionCompute虚拟化平台
一、华为FusionCompute虚拟化套件介绍 华为FusionCompute虚拟化套件是业界领先的虚拟化解决方案,能够帮助客户带来如下的价值,从而大幅提升数据中心基础设施的效率。 帮助客户提升数据中心基础设施的资源利用率;帮助客户成倍缩短业务上线周期…...
自然语言处理入门1——单词的表示和距离
随着DeepSeek的火爆,AI大模型越来越被大众所接受,我们在日常生活和工作学习中也开始越来越频繁的使用豆包、通义千问、Kimi、DeepSeek、文心一言等大模型工具了。这些大模型底层技术都是Transformer模型,属于自然语言处理范畴。 今天开始&am…...
UART(一)——UART基础
一、定义 UART(Universal Asynchronous Receiver/Transmitter)是一种广泛使用的串行通信协议,用于在设备间通过异步方式传输数据。它无需共享时钟信号,而是依赖双方预先约定的参数(如波特率)完成通信。 功能和特点 基本的 UART 系统只需三个信号即可提供稳健的中速全双工…...
【数据结构初阶第十节】队列(详解+附源码)
好久不见。。。别不开心了,听听喜欢的歌吧 必须有为成功付出代价的决心,然后想办法付出这个代价。云边有个稻草人-CSDN博客 目录 一、概念和结构 二、队列的实现 Queue.h Queue.c test.c Relaxing Time! ————————————《有没…...
确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了
智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…...
SP字体UI放大代码
代码: echo off set QT_SCALE_FACTOR放大倍数 start "" "你的SP.exe启动路径"...
信息安全之网络安全防护
信息安全之网络安全防护 先来看看计算机网络通信面临的威胁: 截获——从网络上窃听他人的通信内容中断——有意中断他人在网络上的通信篡改——故意篡改网络上传送的报文伪造——伪造信息在网络上传送 截获信息的攻击称为被动攻击,而更改信息和拒绝用…...
idea无法联网,离线安装插件
插件地址:https://plugins.jetbrains.com/ JetBrains Marketplace 如果无法进入,可以试试 配置hosts 3.163.125.103 plugins.jetbrains.com ip 变了,可以查询个最新的: https://tool.chinaz.com/speedtest/plugins.jetbrai…...
数据结构——哈希表
一、哈希表 1.1 哈希表的概念 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函…...
学习查看 linux 关于进程的文件信息 cat /proc/968/status
(1) 在 Linux 系统中,/proc 文件系统是一个伪文件系统,提供了一个接口来访问内核数据结构。/proc/[pid]/status 文件包含了关于特定进程的状态信息。当你运行 cat /proc/968/status 时,它会输出与进程 ID 为 968 的进程…...
记一次一波三折的众测SRC经历
视频教程和更多福利在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 目录: 前言 波折一:RCE漏洞利用失败 波折二:SQL时间盲注 波折三:寻找管理后台 总结 前言 先谈个人SRC心得体会吧,我虽…...
python绘图之箱型图
箱型图(Boxplot),也称为箱线图或盒须图,是一种用于展示一组数据的分布情况的统计图表。它通过简洁的图形形式,直观地呈现数据的集中趋势、离散程度、偏态以及异常值等信息。本节我们来学习使用python绘制箱型图 # 导入…...
http 响应码影响 video 标签播放视频
背景 使用后端给的文件下载接口地址实现视频播放,但是 video 标签一直无法播放视频如下图,把接口地址放到浏览器请求能直接下载。但就是不能播放 原因 http 响应码不正确,返回201是无法播放视频200可以如下图 状态码的影响: 20…...
【ClickHouse 特性及应用场景】
Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS)。 传统数据库在数据大小比较小,索引大小适合内存,数据缓存命中率足够高的情形下能正常提供服务。但残酷的是,这种…...
【基础架构篇九】《DeepSeek模型版本管理:Git+MLflow集成实践》
各位在模型迭代中反复去世的炼丹师们,扔掉你们那些混乱的v1.2.3_final_fix2模型压缩包!今天我们不聊什么单纯的Git分支管理,也不讲MLflow的入门教程,而是直接掀开算法迭代的黑箱,手把手教你用"外科手术级"的版本控制方案,让模型迭代从玄学变成精准的流水线作业…...
EasyExcel 自定义头信息导出
需求:需要在导出 excel时,合并单元格自定义头信息(动态生成),然后才是字段列表头即导出数据。 EasyExcel - 使用table去写入:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write#%E4%BD%BF%E7%94%A8table%E…...
MySQL 之INDEX 索引(Index Index of MySQL)
MySQL 之INDEX 索引 1.4 INDEX 索引 1.4.1 索引介绍 索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键 key,索引通过存储引擎实现。 优点 大大加快数据的检索速度; 创建唯一性索引,保证数…...
Linux驱动学习(二)--字符设备
设备分类 字符设备块设备网络设备 内核结构图: 字符设备号 字符设备号是32位的无符号整型值 高12位:主设备号低20位:次设备号 查看设备号 cat /proc/devices 设备号构造 直接使用宏MKDEV #define MKDEV(ma,mi) (((ma) << MINORBITS…...
计算机毕业设计--基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型设计与实现(含Github代码+Web端在线体验界面)
基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型 Yolo算法应用之《基于Yolo的花卉识别算法模型设计》,请参考这篇CSDN作品👇 计算机毕业设计–基于深度学习技术(Yolov11、v8、v7、v5)算法的…...
leetcode-414.第三大的数
leetcode-414.第三大的数 code review! 文章目录 leetcode-414.第三大的数一.题目描述二.代码提交 一.题目描述 二.代码提交 class Solution { public:int thirdMax(vector<int>& nums) {set<int> set_v(nums.begin(), nums.end());auto it set_v.rbegin()…...