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

centos常用知识和命令

linux目录及结构

/etc #存配置文件

/var #存日志文件

/home #用户家目录

/root #root用户家目录

/bin #命令文件目录

/sbin #超级管理员命令目录

/dev #设备文件目录

/boot #系统启动核心目录

/lib #库文件目录

/mnt #挂载目录

/tmp #临时文件目录

/usr #用户程序存放目录

命令入门

  1. uname 查看系统信息

    [root@localhost /]# uname	#查看系统信息
    [root@localhost /]# uname	#查看系统信息包括内核
    
  2. ls列出文件命令

    [root@localhost /]# ls -h	#以便于阅读的形式列出文件信息
    [root@localhost /]# ls -l	#以列表的形式列出文件信息
    [root@localhost /]# ls -a	#列出文件所有信息,包括隐藏文件
    [root@localhost /]# ls /tmp #列出tmp下所有文件信息
  3. pwd 打印当前目录

    [root@localhost /]# pwd	#获取当前在哪个目录下
    
  4. cd 目录切换

    [root@localhost /]# cd /	#切换到根目录
    [root@localhost /]# cd ../	#切换到上一级目录
    [root@localhost /]# cd test	#切换到当前目录下的test目录
    
  5. clear 清空屏幕

    [root@localhost /]# clear	#清空当前屏幕信息
    
  6. whoami 打印当前用户

    [root@localhost /]# whoami	#打印当前是哪个用户
    
  7. reboot 重启

    [root@localhost /]# reboot	#重启系统命令
    
    1. shutdown 关机
    [root@localhost /]# shutdown	#重启系统命令,默认是60s后关机
    [root@localhost /]# shutdown now	#立即关机
    [root@localhost /]# shutdown -h 20	#20分钟后关机
    [root@localhost /]# shutdown -c	#取消系统关机
    
  8. type 查看命令是内部命令还是外部命令

    [root@localhost /]# type cd  #查看cd命令是内部命令还是外部命令
    cd 是 shell 内嵌
    [root@localhost /]# type ping	#查看ping是内部命令还是外部命令
    ping 是 /usr/bin/ping
  9. history 查看历史命令

    [root@localhost /]# history
    
  10. hostnamectl 更改主机名

    [root@localhost /]# hostnamectl set-hostname localhost #更改主机名为localhost
    

命令帮助

[root@localhost /]# help cd #查看内嵌命令帮助,这里的cd的是命令
[root@localhost /]# ping --help #查看外部命令帮助,这里的ping是命令

目录文件相关命令

  1. 创建目录 mkidr

    [root@localhost tmp]# mkdir test	#在当前目录下创建一个名为test的目录
    [root@localhost /]# mkdir /tmp/test1 #用绝对路径的方式创建目录
    [root@localhost tmp]# mkdir test2 test3	#同时创建 test2和test3目录
    [root@localhost tmp]# mkdir test{4..6}	#创建test4和test5和test6目录,{这里面表示有规律的新增}
    [root@localhost tmp]# mkdir -p a/b/c	#在当前目录下递归创建 a/b/c目录
  2. 删除目录 rmdir(必须是空目录)

    [root@localhost tmp]# rmdir test6	#删除test6目录
    [root@localhost tmp]# rmdir -p a/b/c	#递归删除a/b/c空目录
  3. 文件创建 touch

    [root@localhost tmp]# touch 1.txt	#创建1.txt文件
    [root@localhost tmp]# touch 2.txt 3.txt	#同时创建多个目录
    [root@localhost tmp]# touch {4..6}.txt	#有规律的创建多个目录
    
  4. 文件删除

    [root@localhost tmp]# rm 1.txt	#删除文件
    rm:是否删除普通空文件 "1.txt"?y
    [root@localhost tmp]# rm -f 2.txt  #忽略提示直接删除文件,-f忽略提示
    [root@localhost tmp]# rm -rf test	#递归删除test目录及test目录下所有文件,-r 表示递归,-f忽略提示
    [root@localhost tmp]# rm -rf *.txt	#删除当前目录下所有以txt结尾的文件,这里的*表示任意多个字符
    
  5. 复制操作

    [root@localhost tmp]# cp test1 /	#将test1目录拷贝到根目录下,拷贝文件也是一样的操作
    [root@localhost tmp]# cp test1 /test2 #拷贝并重命名
    
  6. 剪切操作

    [root@localhost tmp]# mv test1 /	#将test1目录剪切到根目录下,剪切文件也是一样的操作
    [root@localhost tmp]# mv test1 /test2 #剪切并重命名
    
  7. 打包操作与解压操作

    [root@localhost tmp]# touch 1.txt 2.txt 3.txt #先创建三个文件准备打包
    [root@localhost tmp]# tar -cvf 123.tar 1.txt 2.txt 3.txt #将1.txt 2.txt 3.txt打包成123.tar,-c表示打包,-f表示文件名,-v显示打包进度
    [root@localhost tmp]# tar -xvf 123.tar #将文件解压到当前目录######下面是.gz文件打包和解压
    tar -zcf 名称.tar.gz 要打包的文件  #打包
    tar -zxf 名称.tar.gz				#解压
    
  8. 查看文件命令

    cat 1.txt #查看文件
    tail -n 5 1.txt #查看最后5行
    tail -f 1.txt #动态监听文件变化
    head -n 5 1.txt #查看文件前5行
    less 1.txt #查看大文件
    
  9. wc 命令统计文件行数,单词数,字节数

    wc -l 1.txt #统计行数
    wc -w 1.txt #统计单词数
    wc -c 1.txt #统计字节数
    
  10. du 统计文件或文件夹大小

    du -s 1.txt #总大小
    du -sh 1.txt #以便于阅读的形式统计
    
  11. find 查找文件命令

    find /tmp -name 1.txt	#查询/tmp下名为1.txt的文件,-name按名称查
    find /tmp -type f    #查询/tmp下类型为普通文件的文件
    find /tmp -size +1M  #查询/tmp下大于1M的文件
    
  12. grep 过滤命令

    grep -n root /etc/passwd #查询/etc/passwd文件有包含root的行,并显示行号 -n表示显示行号
    
  13. echo 标准输出,在终端中输入指定的内容,并输出

    echo "hello word" #输出hello word
    
  14. > 或 >> 重定向

    “>” 标准输出重定向:覆盖输出,会覆盖原先的文件内容

    “>>”追加重定向:追加输出,不会覆盖原始文件内容,只会在原始内容末尾继续添加

    echo "hello word" > a.txt  #输出heloo word 到a.txt文件,会覆盖原来的内容
    echo "hello word" >> a.txt  #追加heloo word 到a.txt文件,不会覆盖原来的内容
    
  15. ln 建立软链接

    软链接会产生新的inode和block,而硬链接不会

    软链接可以链接目录,而硬链接只能链接文件

    软链接源文件被删除软链接无法找到,而硬链接不会

    ln -s  /tmp/pass   /opt/pass_soft  #为/tmp/pass文件建立一个/opt/pass_soft的软链接
    ln   /tmp/pass   /opt/pass	 #为/tmp/pass文件建立一个/opt/pass的硬链接
    

文件管理vim

vim有4种模式

  1. 命令行模式,默认使用vim进入的是命令行模式
  2. 编辑模式,输入i或者a从命令行模式进入编辑模式,按esc键退回命令行模式
  3. 末行模式:输入: 冒号进入末行模式,末行模式可以按wq保存退出,q!不保存退出,按两下esc键退回命令行模式
  4. 可视化模式,可以进行复制粘贴,和批量注释等操作

命令行模式下的常用操作

gg  #定位到首行
GG #定位到末行
4G #定位到第4行
yy #复制当前行
p	#粘贴到下一行
dd #剪切或删除当前行

末行模式下常用操作

#按:冒号进入末行模式
:wq	#保存退出
:q! #不保存退出
:set nu #显示行号
:set nonu #取消显示行号
:s/c/3   #替换当前行第一个c字符替换为3   s表示替换当前行 c要被替换的字符  3替换后的字符
:s/c/3/g #替换当前行所有c字符替换为3   s表示替换当前行 c要被替换的字符  3替换后的字符 g表示所有
:%s/c/3/g #替换整个文档所有c字符替换为3   %s表示替换整个文档 c要被替换的字符  3替换后的字符 g表示所有
/abc	#查找abc字符,按n向下查找,按N向上查

用户和用户组管理

linux系统可以有多个用户同时登录,一个用户有一个主组和多个副组,用户拥有主组和副组的权限

  1. 用户组操作

    groupadd g1 #新增一个叫g1的用户组
    groupadd -g 1002 g2 #新增一个编号为1002 的g2用户组
    tail -5 /etc/group  #查看用户组
    groupmod -n g3 g1 #把g1用户组改名为g3
    
  2. 用户操作

    useradd u1 	#创建u1用户
    useradd -g g2 u2 #创建u2用户并添加到g2组
    usermod -g g2 u1 #修改u1的主组为g2
    usermod -l u3 u1 #将用户u1改名为u3
    id u1 #查看u1的信息
    cat /etc/passwd #每创建一个用户都会在/etc/passwd文件添加一行信息
  3. 用户文件信息

    cat /etc/group #查看用户组
    cat /etc/passwd #查看用户
    cat /etc/shadow #用户密码文件
  4. 设置用户密码

    passwd u2 #设置u2密码,按提示操作echo "123" | passwd --stdin u2 #将u2密码设置为123
    
  5. 切换用户

    su u2 #切换到u2用户
  6. wheel组

    只有wheel组中的用户,才可以通过su命令切换到root账户,默认wheel组不生效,需要配置开启wheel组

    vim /etc/pam.d/su  #编辑切换用户的配置文件#%PAM-1.0
    auth            sufficient      pam_rootok.so
    # Uncomment the following line to implicitly trust users in the "wheel" group.
    #auth           sufficient      pam_wheel.so trust use_uid
    # Uncomment the following line to require a user to be in the "wheel" group.
    auth           required        pam_wheel.so use_uid   #将这一行注释打开则为wheel组才能切换用户操作
    auth            substack        system-auth
    auth            include         postlogin
    account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
    account         include         system-auth
    password        include         system-auth
    session         include         system-auth
    session         include         postlogin
    session         optional        pam_xauth.so
  7. 用户删除

    userdel u1 #删除u1用户但不删除u1的家目录
    userdel -r u2 #删除u2用户同时删除u2的家目录

权限管理

权限基本概念

drwxr-xr-x. 2 root root       6 10月  3 10:42 test1
drwxr-xr-x #第一位表示文件类型,d为目录,-为普通文件#第2,3,4表示所属用户的权限#第5,6,7表示所属用户组的权限#第8,9,10表示其他用户权限
#第一个root表示所属root用户
#第二个root表示所属root用户组d表示目录
r可读  4
w可写  2
x可执行 1

linux的文件类型

-: 普通文件

d:目录文件

s:套接字文件

l:链接文件

c:字符设备文件

p:管道文件

b:block,块设备文件

chmod 修改文件权限

chmod -R u+x test #对test及test下的文件的所属用户添加可执行权限,-R表示递归,一般用于目录
chmod -R g+x test #对test及test下的文件的所属用户组添加可执行权限,-R表示递归,一般用于目录
chmod -R o+x test #对test及test下的文件的其他用户添加可执行权限,-R表示递归,一般用于目录
chmod 777 test    #对test目录的用户及所属组及其他用户的权限设为可读可写可执行

chown 修改文件所属用户和所属组

chown root:user01 a.txt  #将 a.txt文件的所属用户改为root,所属组为user01

特殊权限suid

只能设置在可执行文件上,任何人执行可执行文件都可以拥有该文件所属用户的权限

 chmod u+s /usr/bin/cat #为cat命令添加suid权限chmod u-s /usr/bin/cat #取消suid权限

特殊权限sgid

SGID 属性可运用于文件或者目录,运用该文件可拥有可属组权限

 chmod g+s /tmp/dir_sgid  #添加sgid权限chmod g-s /tmp/dir_sgid  #取消sgid权限

特殊权限sticky

sticky 权限只能运用于目录上,限制普通用户在此目录下只能删除自己的文件

chmod o+t /tmp/dir_sticky  #添加sticky权限
chmod o-t /tmp/dir_sticky  #取消sticky权限

通信IP配置

ifconfig #查看IP信息

配置静态IP,配置后需要重启网络 systemctl restart network

 vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet    #类型Internet
BOOTPROTO=none		#IP的获取方式 none静态IP
IPADDR=192.168.10.128 #设置的静态IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.10.254 #网关
DNS1=114.114.114.114  #dns解析服务器
DNS2=8.8.8.8 #dns解析服务器
DEVICE=ens33 #网卡设备名
ONBOOT=yes   #开机自启

配置动态ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=dhcp #ip获取方式为动态获取
DEVICE=ens33
ONBOOT=yes

安装软件包的几种方式

通过源码编译安装

通过官网下载*.tar.gz文件

解压 tar -zxvf 文件

./configure 配置安装路径

make 编译

make install 安装

通过RPM安装

rpm -qa |grep firefox #查询firefox,-q表示查询,-a表示所有
rpm -ivh 软件包的名称.rpm  #安装rmp,需要从官网下载上传到服务器,-i表示安装 -v表示显示进度 -h表示以#显示进度
rpm -e 软件名称  #卸载软件包,后面加--nodeps 表示强制卸载
rpm -Uvh firefox-91.11.0-2.el7.centos.x86_64.rpm #软件升级

通过yum 安装

yum的主配置文件在/etc/yum.conf,yum的子配置文件的路径在/etc/yum.repos.d/ 以.repo结尾的文件

yum安装直接使用

yum -y install 软件包 
配置网络yum源

进入阿里云的镜像官网,找到指定的网络yum源的下载路径,https://developer.aliyun.com/mirror/

下载网络yum源配置文件到指定的/etc/yum.repos.d/ 路径下

yum clean all #清理缓存

配置本地yum源

必须配置本地yum仓库

yum的子配置文件必须是以.repo结尾的文件(/etc/yum.repos.d)

准备本地仓库

mkdir /mnt/iso
mount  /dev/sr0  /mnt/iso
###### 配置本地源
cat > /etc/yum.repos.d/iso.repo << EOF
[iso]
name=centos7
baseurl=file:///mnt/iso  #表示从本地的/mnt/iso仓库下载
enabled=1
gpgcheck=0
EOF
#备份原有的yum子配置文件mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/CentOS-*  /etc/yum.repos.d/bak/# 清理yum源,并建立元数据缓存yum clean all yum makecache fast

进程管理

进程就是一个运行中的程序,每个进程的数据互不影响,一个进程可以有多个线程,多个线程共享进程的资源

进程管理命令

ps 命令查看

ps -e #查看所有进程
ps -ef #输出全格式
ps -a #显示现行终端机下的所有进程

top命令动态查进程

top # -p 可以查看指定pid的进程# -c 显示命令参数# -u	显示指定用户

top 运行中界面中,按钮

1 显示所有CPU占用情况

P 以 CPU 占用率大小的顺序排列进程列表

M 以内存占用率大小的顺序排列进程列表

n 设置在进程列表所显示进程的数量

q 退出 top

netstat命令和ss命令

两个命令一样,ss比较快

 netstat -r      # 显示:本机路由表netstat -tunp  # 显示:网络连接,即:socket网络套接字netstat -tunlp  # 显示:侦听端口,即:socket网络套接字 -t表示tcp ; -u 表udp ; -l 表示监听端口 ;

lsof命令列出进程打开的文件

lsof -u user01 #以user01用户身份运行的进程所打开的文件
lsof -i:22  #列出:指定port端口的进程信息

控制进程前台、后台运行

ctrl + z 将正在执行的任务暂停放入后台

jobs -l 查看后台任务

fg 任务编号 将任务调回前台

bg 任务编号 在后台继续运行任务

将进程放入后台运行并脱离终端

语法:

nohup 命令 &

杀死进程的方式

kill -9 进程id #根据进程id杀死进程pkill -9 httpd #根据命令名杀死进程

调整进程的优先级

renice -10 1220 #renice调整优先级,-10表示优先级 1220是进程id
nice -n -15 crond  #nice调整优先级 -15表示优先级 crond是进程名

相关文章:

centos常用知识和命令

linux目录及结构 /etc #存配置文件 /var #存日志文件 /home #用户家目录 /root #root用户家目录 /bin #命令文件目录 /sbin #超级管理员命令目录 /dev #设备文件目录 /boot #系统启动核心目录 /lib #库文件目录 /mnt #挂载目录 /tmp #临时文件目录 /usr #用户程序存…...

基于yolov8调用本地摄像头并将读取的信息传入jsonl中

最近在做水面垃圾识别的智能船 用到了yolov8进行目标检测 修改并添加了SEAttention注意力机制 详情见其他大神 【保姆级教程|YOLOv8添加注意力机制】【1】添加SEAttention注意力机制步骤详解、训练及推理使用_yolov8添加se-CSDN博客 并且修改传统的iou方法改为添加了wise-io…...

Linux中的进程间通信之管道

管道 管道是Unix中最古老的进程间通信的形式。 我们把从一个进程连接到另一个进程的一个数据流称为一个“管道” 匿名管道 #include <unistd.h> 功能:创建一无名管道 原型 int pipe(int fd[2]); 参数 fd&#xff1a;文件描述符数组,其中fd[0]表示读端, fd[1]表示写端 …...

【Vue】vue2项目打包后部署刷新404,配置publicPath ./ 不生效问题

Vue Router mode&#xff0c;为 history 无效&#xff0c;建议使用默认值 hash&#xff1b;...

【PyTorch】生成对抗网络

生成对抗网络是什么 概念 Generative Adversarial Nets&#xff0c;简称GAN GAN&#xff1a;生成对抗网络 —— 一种可以生成特定分布数据的模型 《Generative Adversarial Nets》 Ian J Goodfellow-2014 GAN网络结构 Recent Progress on Generative Adversarial Networks …...

Vue3轻松实现前端打印功能

文章目录 1.前言2.安装配置2.1 下载安装2.2 main.js 全局配置3.综合案例3.1 设置打印区域3.2 绑定打印事件3.3 完整代码4.避坑4.1 打印表格无边框4.2 单选框复选框打印不选中4.3 去除页脚页眉4.4 打印內容不自动换行1.前言 vue3 前端打印功能主要通过插件来实现。 市面上常用的…...

SHA-1 是一种不可逆的、固定长度的哈希函数,在 Git 等场景用于生成唯一的标识符来管理对象和数据完整性

SHA-1 (Secure Hash Algorithm 1) 是一种加密哈希函数&#xff0c;它能将任意大小的数据&#xff08;如文件、消息&#xff09;转换为一个固定长度的 160 位&#xff08;20 字节&#xff09;哈希值。这种哈希值通常以 40 个十六进制字符的形式表示&#xff0c;是数据的“指纹”…...

Activiti7 工作流引擎学习

目录 一. 什么是 Activiti 工作流引擎 二. Activiti 流程创建步骤 三. Activiti 数据库表含义 四. BPMN 建模语言 五. Activiti 使用步骤 六. 流程定义与流程实例 一. 什么是 Activiti 工作流引擎 Activiti 是一个开源的工作流引擎&#xff0c;用于业务流程管理&#xf…...

pytorch使用LSTM模型进行股票预测

文章目录 tushare获取股票数据数据预处理构建模型训练模型测试模型tushare获取股票数据 提取上证指数代码为603912的股票:佳力图,时间跨度为2014-01-01到今天十年的数据。 import tushare as ts pro = ts.pro_api()#准备训练集数据df = ts.pro_bar(ts_code=603912.SH, star…...

掌握 C# 异常处理机制

在任何编程语言中&#xff0c;处理错误和异常都是不可避免的。C# 提供了强大的异常处理机制&#xff0c;可以帮助开发者优雅地捕获和处理程序中的异常&#xff0c;确保程序的健壮性和可靠性。本文将带你了解 C# 中的异常类、try-catch 语句、自定义异常以及 finally 块的使用。…...

【Redis】Redis Cluster 简单介绍

Redis Cluster 是 Redis 3.0 提供的一种分布式解决方案, 允许数据在多个节点之间分散存储, 从而实现高可用性和可扩展性。 特点: 分片: Redis Cluster 将数据分散到多个节点, 通过哈希槽 (hash slots) 机制将键映射到不同的节点上。总共有 16384 个哈希槽, 每个节点负责一部分…...

【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000010 案列 EXCEL单元格格式。EXCEL文本型和常规型转…...

golang grpc进阶

protobuf 官方文档 基本数据类型 .proto TypeNotesGo Typedoublefloat64floatfloat32int32使用变长编码&#xff0c;对于负值的效率很低&#xff0c;如果你的域有可能有负值&#xff0c;请使用sint64替代int32uint32使用变长编码uint32uint64使用变长编码uint64sint32使用变长…...

Java JUC(三) AQS与同步工具详解

Java JUC&#xff08;三&#xff09; AQS与同步工具详解 一. ReentrantLock 概述 ReentrantLock 是 java.util.concurrent.locks 包下的一个同步工具类&#xff0c;它实现了 Lock 接口&#xff0c;提供了一种相比synchronized关键字更灵活的锁机制。ReentrantLock 是一种独占…...

使用rust写一个Web服务器——async-std版本

文章目录 实现异步代码并发地处理连接使用多线程提升性能 使用rust实现一个异步运行时是async-std的单线程Web服务器。 仓库地址&#xff1a; 1037827920/web-server: 使用rust编写的简单web服务器 (github.com) 在之前的单线程版本的Web服务器代码上进行修改&#xff0c;具体…...

C语言复习概要(一)

本文 C语言入门详解&#xff1a;从基础概念到分支与循环1. C语言常见概念1.1 程序的基本结构1.2 变量作用域和存储类1.3 输入输出1.4 编译与运行 2. C语言中的数据类型和变量2.1 基本数据类型2.2 变量的声明与初始化2.3 常量与枚举 3. C语言的分支结构3.1 if语句3.2 if-else语句…...

二、kafka生产与消费全流程

一、使用java代码生产、消费消息 1、生产者 package com.allwe.client.simple;import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.pr…...

本地搭建OnlyOffice在线文档编辑器结合内网穿透实现远程协作

文章目录 前言1. 安装Docker2. 本地安装部署ONLYOFFICE3. 安装cpolar内网穿透4. 固定OnlyOffice公网地址 前言 本篇文章讲解如何使用Docker在本地Linux服务器上安装ONLYOFFICE&#xff0c;并结合cpolar内网穿透实现公网访问本地部署的文档编辑器与远程协作。 Community Editi…...

ScrapeGraphAI 大模型增强的网络爬虫

在数据驱动的动态领域&#xff0c;从在线资源中提取有价值的见解至关重要。从市场分析到学术研究&#xff0c;对特定数据的需求推动了对强大的网络抓取工具的需求。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线…...

PDF转换为TIF,JPG的一个简易工具(含下载链接)

目录 0.前言&#xff1a; 1.工具目录 2.工具功能&#xff08;效果&#xff09;&#xff0c;如何运行 效果 PDF转换为JPG&#xff08;带颜色&#xff09; PDF转换为TIF&#xff08;LZW形式压缩&#xff0c;可以显示子的深浅&#xff09; PDF转换为TIF&#xff08;CCITT形…...

Wireshark 解析QQ、微信的通信协议|TCP|UDP

写在前面 QQ&#xff0c;微信这样的聊天软件。我们一般称为im&#xff0c;Instant Messaging&#xff0c;即时通讯系统。那大家会不会有疑问&#xff0c;自己聊天内容会不会被黑客或者不法分子知道&#xff1f;这种体量的im是基于tcp还是udp呢&#xff1f;这篇文章我们就来探索…...

网络编程(5)——模拟伪闭包实现连接的安全回收

六、day6 今天学习如何利用C11模拟伪闭包实现连接的安全回收&#xff0c;之前的异步服务器为echo模式&#xff0c;但存在安全隐患&#xff0c;在极端情况下客户端关闭可能会导致触发写和读回调函数&#xff0c;二者都进入错误处理逻辑&#xff0c;进而造成二次析构。今天学习如…...

C#绘制动态曲线

前言 用于实时显示数据动态曲线&#xff0c;比如&#xff1a;SOC。 //用于绘制动态曲线&#xff0c;可置于定时函数中&#xff0c;定时更新数据曲线 void DrawSocGraph() {double f (double)MainForm.readData[12]; //display datachart1.Series[0].Points.Add(f);if (ch…...

用Python实现运筹学——Day 10: 线性规划的计算机求解

一、学习内容 1. 使用 Python 的 scipy.optimize.linprog 进行线性规划求解 scipy.optimize.linprog 是 Python 中用于求解线性规划问题的函数。它实现了单纯形法、内点法等算法&#xff0c;能够处理求解最大化或最小化问题&#xff0c;同时满足线性约束条件。 线性规划问题的…...

[C++]使用C++部署yolov11目标检测的tensorrt模型支持图片视频推理windows测试通过

官方框架&#xff1a; https://github.com/ultralytics/ultralytics yolov8官方最近推出yolov11框架&#xff0c;标志着目标检测又多了一个检测利器&#xff0c;于是尝试在windows下部署yolov11的tensorrt模型&#xff0c;并最终成功。 重要说明&#xff1a;安装环境视为最基…...

霍夫曼树及其与B树和决策树的异同

霍夫曼树是一种用于数据压缩的二叉树结构&#xff0c;通常应用于霍夫曼编码算法中。它的主要作用是通过对符号进行高效编码&#xff0c;减少数据的存储空间。霍夫曼树在压缩领域扮演着重要角色&#xff0c;与B树、决策树等数据结构都有一些相似之处&#xff0c;但又在应用场景和…...

CompletableFuture常用方法

一、获得结果和触发计算 1.获取结果 &#xff08;1&#xff09;public T get() public class CompletableFutureAPIDemo{public static void main(String[] args) throws ExecutionException, InterruptedException{CompletableFuture<String> completableFuture Com…...

本地化测试对游戏漏洞修复的影响

本地化测试在游戏开发的质量保证过程中起着至关重要的作用&#xff0c;尤其是在修复bug方面。当游戏为全球市场做准备时&#xff0c;它们通常会被翻译和改编成各种语言和文化背景。这种本地化带来了新的挑战&#xff0c;例如潜在的语言错误、文化误解&#xff0c;甚至是不同地区…...

使用rust实现rtsp码流截图

中文互联网上的rust示例程序源码还是太稀少&#xff0c;找资料很是麻烦&#xff0c;下面是自己用业余时间开发实现的一个对批量rtsp码流源进行关键帧截图并存盘的rust demo源码记录。 要编译这个源码需要先安装vcpkg&#xff0c;然后用vcpkg install ffmpeg安装最新版本的ffmpe…...

Cpp::STL—string类的模拟实现(12)

文章目录 前言一、string类各函数接口总览二、默认构造函数string(const char* str "");string(const string& str);传统拷贝写法现代拷贝写法 string& operator(const string& str);传统赋值构造现代赋值构造 ~string(); 三、迭代器相关函数begin &…...

flash网站规划/微博推广

php mail收不到的解决办法&#xff1a;首先使用命令“sudo apt-get install mailutils”安装mailutils&#xff1b;然后打开sendmail的配置宏文件&#xff1b;接着修改内容为“Addr0.0.0.0”&#xff1b;最后测试配置即可。推荐&#xff1a;《PHP教程》解决php mail发送邮件收不…...

大尺度做爰网站在线/上海seo优化bwyseo

当你把文件导入到了这个工程目录下 &#xff1a;项目名称/library/Alipay/openssl &#xff0c;中间是隔了几个文件夹 的那么在Header Search Paths 的设置就得改为 $(SRCROOT)/library/Alipay/openss&#xff0c;问题就解决了再反过来看官方的demo&#xff0c;原来他们把opens…...

做期货看什么网站/推广网站的公司

oracle没有锁管理器和锁列表&#xff0c;这样可以避免行级锁维护的开销和行级锁数量不足导致的争用问题。在Oracle的每行数据上&#xff0c;都有一个标志位来表示该行数据是否被锁定&#xff0c;要查看某一行是否被锁定&#xff0c;必须直接找到这一行&#xff0c;而不要指望能…...

什么网站做电器出租/百度小说排行榜前十

## log4net * 参考链接&#xff1a;http://www.codeproject.com/Articles/140911/log-net-Tutorial * 上面的链接里的工程里有log4net.dll 添加步骤 新建winform&#xff08;just for example&#xff09;在里面添加引用log4net.dll&#xff08;上面提到的&#xff09;配置…...

台州黄岩做网站/bing搜索引擎国内版

可更换背景图使用点击上方蓝色字关注我们~怎么制作一个app软件&#xff1f;app制作有多难&#xff1f;因为手机app软件开发涉及众多领域的专业&#xff0c;所以在大家的认知里程序员大佬们开发这件事是个不容易的工作。1过去要开发一个app软件&#xff0c;需要至少5名左右的专业…...

网站建设主机/西安关键词优化排名

1.共用体的基本概念 struct ABC { char a; int b; double c; }; struct ABC a, b[50], *p &a; a.a a.b a.c b[0].a b[0].b b[0].c p->a //p所指向的实例的a成员 p->b p->c 将左边代码中的关键字struct换成关union键字&#xff0c;就形成…...