自有服务与软件包
—— 小 峰 编 程
目录
编辑
一、自有服务概述
二、systemctl管理服务命令
1、显示服务
2、查看启动和停止服务
3、服务持久化
三、常用自有服务(ntp,firewalld,crond)
1、ntp时间同步服务
1)NTP同步服务器原理
2)到哪里去找NPT服务器
3)时间同步操作
2、firewalld 防火墙
1)什么是防火墙
2)传统Linux防火墙
3、firewalld 防火墙的概念
1)区域
2)运行模式和永久模式
4、firewalld防火墙的配置
1)查看,开启和停止firewalld服务
2) 管理firewall配置
常用选项:
①查看默认使用的区域
②查看所有可用区域
③列出当前使用区域配置
④列出所有区域的配置
⑤添加允许通过的服务或端口
⑥去掉允许通过的服务或端口
⑦永久模式参数permaent
⑧重新加载配置reload
5、计划任务crontab
1)计划任务的作用
2)查看计划任务
3)编辑计划任务(重点)
4)几个小案例 (分时日月周 命令或服务)
5)扩展
① crontab 权限问题
② 查看计划任务文件保存路径
③ 查看计划任务日志信息
四、Linux软件包
1、软件包概述
1)源码包
2)二进制包
2、如何获取rpm包
3、从光盘获取
3.1 虚拟机中加载光盘
3.2 使用 # lsblk(list block devices)或者df -T 查看块状设备的信息
3.3 进入/mnt/cdrom目录
4、查询某个软件安装情况
5、卸载某个软件
6、安装某个软件
7、更新某个软件
8、rpm扩展
8.1依赖关系
8.2 查看文件所属的包名(实用)
8.3查询软件安装完成后,生成了哪些文件
9、扩展:光盘的挂载和解挂
① 解挂操作
② 挂载光盘
一、自有服务概述
服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为”服务“
举例:当我们使用SSH客户端软件连接linux的时候,我们的服务器为什么会对连接做出响应?
答:是因为SSH服务开机就自动运行了。
所谓自有服务,简单来说,可以理解为Linux系统开机自动运行的服务(程序)。
那我们如何管理这些自有服务呢?
二、systemctl管理服务命令
在Centos7之前,通过service 和 chkconfig两个命令来管理服务
- service: 负责启动,停止服务,显示服务状态
- chkconfig: 指定服务是否开机启动
从Centos7开始,统一使用systemctl来管理服务, systemctl同时具有service和chkconfig命令的功能。
1、显示服务
命令:systemctl
作用:管理服务
语法:#systemctl [选项]
选项:
list-units --type service --all:列出所有服务(包含启动的和没启动的)
list-units --type service:列出所有启动的服务
用法一:systemctl list-units --type service --all 不加具体服务名含义:列出所有服务,包括已运行的和没有运行的空格可以翻页,q退出
示例代码:#systemctl list-units --type service --all
用法二:systemctl list-units --type service 不加具体服务名
示例代码:#systemctl list-units --type service
含义:列出已运行的服务,空格可以翻页,q退出
2、查看启动和停止服务
命令:systemctl
作用:管理服务
语法:#systemctl [选项] 服务名
选项:
status 检查指定服务的运行状况 start 启动指定服务 stop 停止指定服务 restart 重启指定服务 reload 重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart) 用法三:
systemctl 选项 服务名
示例代码:
#systemctl status crond
含义:查看crond服务的状态
- Active:active(running) 表示当前crond服务是运行状态。
- Inactive,表示crond服务当前是停止状态
用法四:
systemctl 选项 服务名
示例代码:
#systemctl stop crond
含义:停止crond服务
用法五:systemctl 选项 服务名
示例代码:
#systemctl start crond
含义:启动crond服务
用法六:systemctl 选项 服务名
示例代码:
#systemctl restart crond
含义:重启crond服务
#systemctl reload crond
含义:重新加载crond服务配置文件
3、服务持久化
所谓服务持久化,就是 服务在开机的时候,是否自动启动。
命令:systemctl
作用:管理服务
语法:#systemctl [选项] 服务名
选项:
- enable:指定服务开机自动启动
- disable:取消服务开机自动启动
用法七:
systemctl 选项 服务名
示例代码:
#systemctl disable crond
含义:取消crond服务开机启动
用法八:systemctl 选项 服务名
示例代码:
#systemctl disable crond
含义:指定crond服务开机启动
- systemctl参数总结
参数 含义 list-units --type service --all 列出所有服务 list-units --type service 列出所有启动的服务 start 启动指定服务 stop 停止指定服务 status 检查指定服务的运行状况 restart 重启指定服务 reload 重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart) enable 指定服务开机自动启动 disable 取消服务开机自动启动
三、常用自有服务(ntp,firewalld,crond)
服务名含义
ntpd | 用于同步计算机的系统时间的服务 |
firewalld | 防火墙服务 |
crond | 计划任务服务 |
1、ntp时间同步服务
NTP 是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
工作场景:
公司开发了一个电商网站,由于访问量很大,网站后端由100台服务器组成集群。50台负责接收订单,50台负责安排发货,接收订单的服务器需要记录用户下订单的具体时间,把数据传给负责发货的服务器,由于100台服务器时间各不相同,记录的时间经常不一致,甚至会出现下单时间是明天,发货时间是昨天的情况。
1)NTP同步服务器原理
标准时间是哪里来的?
现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时)所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
在NTP中,定义了时间按照服务器的等级传播,Stratum层的总数限制在15以内。工作中,通常我们会直接使用各个组织提供的,现成的NTP服务器。
2)到哪里去找NPT服务器NTP授时网站:全球可用的NTP服务器列表与解析服务 - ntp.org.cn & ntpdate.net
3)时间同步操作
同步服务器时间方式有2 个:一次性同步手动同步、通过服务自动同步。
手动同步
用法一:ntpdate 时间服务器IP 示例代码: #ntpdate 203.114.74.17 含义:从服务器203.114.74.17同步标准网络时间到服务器(从http://www.ntp.org.cn/网站获取) 注意:从网络同步时间,要确保自己的服务器可以访问互联网
如果遇到错误信息:no servers can be used
错误信息的含义:服务器不可用,这里的服务器是指网络上的时间服务器,不可用,不代表是对方服务器有问题,也有可能是你自己的服务器网络不通,无法连接到网络上的时间服务器。
自动同步
用法二:启动ntpd服务,并配置为开机启动 示例代码: #systemctl start ntpd #systemctl enable ntpd 含义:启动ntpd服务,并配置为开机启动,服务启动后,系统会自动同步网络时间 注意:从网络同步时间,要确保自己的服务器可以访问互联网
问题1:启动ntpd服务后,是不是时间就自动同步了?
答:启动后就自动同步了
问题2:需不需要让ntpd服务,开机自动运行?
答:需要ntpd服务配置文件位置 /etc/ntp.conf
2、firewalld 防火墙
1)什么是防火墙
防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。
> 防火墙选择让正常请求通过,从而保证网络安全性。
Windows防火墙:
2)传统Linux防火墙
3、firewalld 防火墙的概念
1)区域
CentOS6x中防火墙叫做iptables
CentOS7.x 中默认使用的防火墙是firewalld
firewalld 增加了区域的概念,所谓区域是指,firewalld 预先准备了几套防火墙策略的集合,类似于策略的模板,用户可以根据需求选择区域。
常见区域及相应策略规则
区域 默认策略 trusted 允许所有数据包 home 拒绝流入的流量,除非与流出的流量相关,允许ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过 internal 等同于home work 拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6-client服务通过 public 拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通过 external 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 dmz 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 block 拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作 drop 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作 2)运行模式和永久模式
运行模式:此模式下,配置的防火墙策略立即生效,但是不写入配置文件
永久模式:此模式下,配置的防火墙策略写入配置文件,但是需要 reload 重新加载才能生效。
firewall 默认采用 运行模式。
4、firewalld防火墙的配置
1)查看,开启和停止firewalld服务
命令:systemctl
作用:管理服务
语法:
#systemctl [选项] firewalld
选项:
status 检查指定服务的运行状况 start 启动指定服务 stop 停止指定服务 restart 重启指定服务 reload 重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart) 使用systemctl来管理firewalld的服务,具体命令前面已经讲过,只是服务名换成了firewalld,这里不再赘述。
2) 管理firewall配置
命令:firewall-cmd
作用:管理firewall具体配置
语法:
#firewall-cmd [参数选项1] …[参数选项n]
常用选项:
①查看默认使用的区域
用法一:firewall-cmd 选项 示例代码: #firewall-cmd --get-default-zone 含义:查看默认使用区域,当前默认使用区域为public
②查看所有可用区域
用法二:firewall-cmd 选项 示例代码: #firewall-cmd --get-zones 含义:查看所有可用区域
③列出当前使用区域配置
用法三:firewall-cmd 选项 示例代码: #firewall-cmd --list-all 含义:查看所有可用区域
④列出所有区域的配置
用法四:firewall-cmd 选项 示例代码: #firewall-cmd --list-all-zones 含义:查看所有可用区域
⑤添加允许通过的服务或端口
用法五:firewall-cmd 选项 示例代码: # firewall-cmd --zone=public --add-port=80/tcp 含义:在public区域,添加允许http协议的80端口通过的规则#firewall-cmd --zone=public --add-service=http 含义:在public区域,添加允许http服务通过的规则
⑥去掉允许通过的服务或端口
用法五:firewall-cmd 选项 示例代码: #firewall-cmd --zone=public --remove-port=1024/tcp 含义:在public区域,去掉允许tcp协议的1024端口通过的规则#firewall-cmd --zone=public --remove-service=ftp 含义:在public区域,去掉允许http服务通过的规则
⑦永久模式参数permaent
用法七:firewall-cmd 选项 示例代码: #firewall-cmd --permanent --zone=public --add-port=80/tcp 含义:在public区域,使用permanent参数,永久添加允许80端口通过的规则
⑧重新加载配置reload
用法七:firewall-cmd 选项 示例代码: #firewall-cmd --reload 含义:重新加载配置
补充: 查看防火墙的服务的配置文件,每个服务的相关的配置信息都是以 .xml 结尾的文件
使用命令:
ls /usr/lib/firewalld/services/
查看某一服务的具体配置 ( 以http服务为例 )
cat /usr/lib/firewalld/services/http.xml
5、计划任务crontab
1)计划任务的作用
作用:操作系统不可能24 小时都有人在操作,有些时候想在指定的时间点去执行任务(例如:每天凌晨 2 点去重新启动Apache),此时不可能真有人每天夜里 2 点去执行命令,这就可以交给计划任务程序去执行操作了。
2)查看计划任务
语法:
# crontab 选项
常用选项:
- -l:list,列出指定用户的计划任务列表
- -e:edit,编辑指定用户的计划任务列表,简单来说,计划任务就是一个文件
- -u:user,指定的用户名,如果不指定,则表示当前用户
- -r:remove,删除指定用户的计划任务列表
示例代码:列出当前用户的计划任务列表
上述的提示,代表 root 用户没有计划任务需要去做。
3)编辑计划任务(重点)
进入计划任务编辑文件
打开计划任务编辑文件后,可以在此文件中编写我们自定义的计划任务:
计划任务的规则语法格式,以行为单位,一行则为一个计划:分 时 日 月 周 需要执行的命令
例如:0 0 * * * reboot,代表每天0时0分执行reboot指令。
取值范围(常识):
分:0~59
时:0~23
日:1~31
月:1~12
周:0~7,0 和 7 表示星期天四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在 1 点,2 点 6 点执行,则可以在时的位置写:1,2,6
> 特别补充:在Linux系统中,有些命令不能直接在计划任务中使用,使用后,其也不会生效。如useradd命令。如果想让其生效必须使用完整路径。
问题:如何查询一个命令的真实路径在哪个位置?
> 答:使用whereis 命令名称。
4)几个小案例 (分时日月周 命令或服务)
- 问题1:每月1、10、22 日的4:45 重启network 服务
答:45 4 1,10,22 * * service network restart
- 问题2:每周六、周日的1:10 重启network 服务
答:10 1 * * 6,7 service network restart
- 问题3:每天18:00 至23:00 之间每隔30 分钟重启network 服务
答:*/30 18-23 * * * service network restart
- 问题4:每隔两天的上午8 点到11 点的第3 和第15 分钟执行一次重启
答:3,15 8-11 */2 * * reboot
案例:每1 分钟往 root 家目录中的 readme.txt 中输一个1,为了看到效果使用追加输出【输出使用echo 命令,语法:# echo 输出的内容】
在末行模式下输入:wq
保存并退出,使用tail -f查看test.c动态变化
> 注意:在计划任务中,默认最小单位就是分,不能再小了。如果需要做到秒级别则需要配合研发相关代码。
5)扩展
① crontab 权限问题
crontab是任何用户都可以创建的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务 。
黑名单配置文件位于:
/etc/cron.deny
里面写用户名,一行只能写一个
保存退出,切换到xiaofeng普通用户,执行crontab命令,如下图所示:
白名单还有一个配置文件
/etc/cron.allow (本身不存在,自己创建)
> 注意:白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,则会被默认允许创建计划任务。
② 查看计划任务文件保存路径
问题:计划任务文件具体保存在哪里呢?
答:
/var/spool/cron/用户名文件中
,如果使用root用户编辑计划任务,则用户文件名为root
③ 查看计划任务日志信息
问题:在实际应用中,我们如何查看定时任务运行情况?
答:通过计划任务日志,日志文件位于
/var/log/cron
四、Linux软件包
1、软件包概述
这是什么?
Linux下也有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是 源码包 和二进制包。
1)源码包
源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。计算机只能识别机器语言,也就是二进制语言,所以源码包安装之前需要编译。编译过程耗时较长 大多数用户不懂开发,编译过程中可能会有各种错误,用户无力解决。为了解决使用源码包安装的问题,Linux 软件包的安装出现了使用二进制包的安装方式。
2)二进制包
二进制包,也就是源码包经过成功编译之后产生的包。
二进制包是 Linux 下默认的软件安装包,目前主要有以下 2 大主流的二进制包管理系统:
- RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
- DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。
RPM 是 RedHat Package Manager(RedHat软件包管理工具)的缩写。
作用:rpm 的作用类似于豌豆荚,华为应用市场,App Store,主要作用是对linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。
2、如何获取rpm包
> 要想装软件,和windows 下一样,先得找到安装包:xxx.rpm
软件包的获得方式:
- a. 去官网去下载(http://rpm.pbone.net);
- b. 不介意老版本的话,可以从光盘(或者镜像文件)中读取;
3、从光盘获取
3.1 虚拟机中加载光盘
3.2 使用 # lsblk(list block devices)或者df -T 查看块状设备的信息
Name:名称 Size:设备大小 Type:类型 MountPoint:挂载点 此界面类似于Windows 下的磁盘管理界面:
3.3 进入/mnt/cdrom目录
#cd /mnt/cdrom/Packages #ll
4、查询某个软件安装情况
语法:
# rpm -qa | grep 软件名称
选项:
- -q:查询,query
- -a:全部,all
示例代码:查询firefox浏览器的安装情况,已安装
#rpm -qa |grep firefox
示例代码:查询qq软件的安装情况,未安装
#rpm -qa |grep qq
5、卸载某个软件
语法:
# rpm -e 软件的名称(建议写完整的名称,通过-qa 查询)
案例:卸载火狐浏览器
#rpm -qa |grep firefox 首先查询firefox软件的完整名称 firefox-68.10.0-1.el7.centos.x86_64 #rpm -e firefox-68.10.0-1.el7.centos.x86_64
卸载完成后,单击firefox浏览器图标,运行结果如下图所示:
6、安装某个软件
命令:rpm
作用:管理rpm软件包
语法:
# rpm -ivh 软件包完整路径名称
选项:
- -i:install,安装
- -v:显示进度条
- -h:表示以"#"形式显示进度条
示例代码:将刚刚卸载的firefox火狐浏览器重新安装(在DVD光盘1中)
用法:rpm -ivh 软件包名称 示例代码: #cd /run/media/root/CentOS\ 7\ x86_64/Packages/ 进入光盘Packages目录,里面存放了很多rpm的安装包#ll |grep firefox 查看Packages目录下,包含firefox的安装包#rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm 使用rpm命令,安装firefox软件包#rpm -qa |grep firefox 查询是否安装完成
安装完成后,打开firefox浏览器
7、更新某个软件
语法:
# rpm -Uvh 完整的安装包路径
选项:
- -U:upgrade,升级
- -v:表示显示进度条
- -h:表示以#形式显示进度条
用法:rpm -Uvh 软件包名称 示例代码: #rpm -qa |grep firefox 查询当前firefox的版本#ll 查看root目录下,我们刚刚拷到虚机上的RPM安装包的名称#rpm -Uvh firefox-68.10.0-1.el7.centos.x86_64.rpm 使用rpm命令,安装60.8.0版本的软件包#rpm -qa |grep firefox 查询升级后的firefox版本
8、rpm扩展
8.1依赖关系
一个软件必须先有其他软件才能运行,例如之前xmind启动过程中提示的缺少DLL,称之为依赖WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。
60.8.0的firefox可以更新成功
下面我们尝试更新到68.4.1的版本
用法:rpm -Uvh 软件包名称#rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm 使用rpm命令,安装68.4.1版本的软件包
错误提示:
error:Failed dependencies:
提示安装68版本的firefox需要依赖nspr4.21的版本,nss的3.44的版本,这就是我们说的依赖关系。为了解决依赖关系的问题,有另外一个管理工具叫做yum,后面我们会讲到。
8.2 查看文件所属的包名(实用)
语法:
# rpm -qf 需要查询的文件路径
选项:
- -f:查询文件所属包
示例代码:查询/etc/ntp.conf 属于哪个软件包?
8.3查询软件安装完成后,生成了哪些文件
语法:
# rpm -ql 需要查询的软件包名称
- #rpm -ql firefox
- #rpm -ql openssh
特别说明:软件安装完成后,一共生成了以下几类文件 配置文件类:/etc目录 程序文件本身,二进制文件命令:/usr/sbin目录 文档手册:/usr/share/doc或man目录
9、扩展:光盘的挂载和解挂
① 解挂操作
命令:umount
语法:
# umount 当前设备的挂载点(路径)
例如:
#umount /run/media/root/CentOS\ 7\ x86_64/
② 挂载光盘
首先新建一个挂载点,然后使用mount命令进行挂在,挂载点可以理解为就是一个空目录
命令:mount
语法:
# mount 设备文件原始地址(/dev目录) 要挂载的位置路径(盘符)
设备原始地址:地址统一都在/dev 下,然后根据大小确定具体name 值,拼凑在一起组成原
始地址,例如当前:“/dev/sr0”
用法:mount 设备 挂载点 示例代码: #mkdir /mnt/cdrom 新建一个目录作为挂载点#mount /dev/sr0 /mnt/cdrom 将光驱设备/dev/sr0 挂载到 /mnt/cdrom这个挂载点#df -T 可以看到已经成功挂载
本 篇 完 结 … …
持 续 更 新 中 … …
相关文章:
自有服务与软件包
—— 小 峰 编 程 目录 编辑 一、自有服务概述 二、systemctl管理服务命令 1、显示服务 2、查看启动和停止服务 3、服务持久化 三、常用自有服务(ntp,firewalld,crond) 1、ntp时间同步服务 1)NTP同步服务器原理 2)到哪里去找NPT服务…...
PHP之hyperf学习笔记
Hyperf Model,Dao,Service,Contronller 路由 使用文件来配置路由,就是和laravel一样的 Router::addGroup(["middleware" > ["web", "auth"],"namespace" > "Hyperf\HttpServer\Contr…...
C++STL(六)——list模拟
目录 本次所需实现的三个类一、结点类的模拟实现构造函数 二、迭代器类的模拟实现为什么有迭代器类迭代器类的模板参数说明构造函数运算符的重载- -运算符的重载和!运算符的重载*运算符的重载->运算符的重载引入模板第二个和第三个参数 三、list的模拟实现3.1 默认成员函数构…...
Spring MVC 拦截器(Interceptor)与过滤器(Filter)的区别?
1、两者概述 拦截器(Interceptor): 只会拦截那些被 Controller 或 RestController 标注的类中的方法处理的请求,也就是那些由 Spring MVC 调度的请求。过滤器(Filter): 会拦截所有类型的 HTTP …...
MySQL查询主从同步状态
在MySQL中,监控和检查主从复制(Master-Slave replication)的状态是非常重要的,这有助于确保数据的一致性和完整性。以下是一些常用的方法,可以帮助你查询MySQL的主从数据同步状态: 1. 查看主服务器状态 首…...
docker 安装 --在线方式
第一步: #!/bin/bash sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo sudo sed -i -e /mirrors.cloud.aliyuncs.com/d -e /mirrors.aliyuncs.com/d /etc/yum.repos.d/CentOS-Base.repo sudo curl -o /etc/yum.repo…...
Linux系统-centos防火墙firewalld详解
Linux系统-centos7.6 防火墙firewalld详解 1 firewalld了解 CentOS 7.6默认的防火墙管理工具是firewalld,它取代了之前的iptables防火墙。firewalld属于典型的包过滤防火墙或称之为网络层防火墙,与iptables一样,都是用来管理防火墙的工具&a…...
物联网软件开发与应用方向应该怎样学习,学习哪些内容,就业方向是怎样?(文末领取整套学习视频,课件)物联网硬件开发与嵌入式系统
随着物联网技术的飞速发展,物联网软件开发与应用方向成为了众多开发者关注的焦点。那么,如何在这个领域中脱颖而出呢?本文将为你提供一份详细的学习指南,帮助你从零开始,逐步掌握物联网软件开发与应用的核心技能。 一…...
【大模型】DeepSeek与chatGPT的区别以及自身的优势
目录 一、前言二、核心技术对比2.1 模型架构设计2.1.1 ChatGPT的Transformer架构2.1.2 DeepSeek的混合架构 2.2 训练数据体系2.2.1 ChatGPT的数据特征2.2.2 DeepSeek的数据策略 三、应用场景对比3.1 通用场景表现3.1.1 ChatGPT的强项领域3.2.2 DeepSeek的专项突破 3.3 响应效率…...
常用的python库-安装与使用
常用的python库函数 yield关键字openslide库openslide库的安装-linuxopenslide的使用openslide对象的常用属性 cv2库numpy库ASAP库-multiresolutionimageinterface库ASAP库的安装ASAP库的使用 concurrent.futures.ThreadPoolExecutorxml.etree.ElementTree库skimage库PIL.Image…...
qt widget和qml界面集成到一起
将 Qt Widgets 和 QML 界面集成在一起可以利用 QQuickWidget 或 QQuickView。以下是基本步骤: 使用 QQuickWidget 创建 Qt Widgets 项目: 创建一个基于 Widgets 的应用程序。添加 QQuickWidget: 在你的窗口或布局中添加 QQuickWidget。 例如,可以在 QMainWindow 中使用: …...
mybatis 是否支持延迟加载?延迟加载的原理是什么?
1. MyBatis 是否支持延迟加载? 是的,MyBatis 支持延迟加载。延迟加载的主要功能是推迟数据加载的时机,直到真正需要时再去加载。这种方式能提高性能,尤其是在处理关系型数据时,可以避免不必要的数据库查询。 具体来说…...
MariaDB MaxScale实现mysql8主从同步读写分离
一、MaxScale基本介绍 MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 二、MaxScale实验环境 中间件192.168.121.51MaxScale…...
【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案
建筑设计公司在项目执行过程中,会产生大量的设计图纸、效果图、实景照片等图片资料。这些资料按照项目名称、阶段、专业等维度存放在多个文件夹和子文件夹中。 操作需求:为了方便内部管理和向客户交付完整的设计方案,公司需要将每个项目文件…...
基于logback+fastjson实现日志脱敏
一、需求背景 日常工作中,必不可免的会将一些敏感信息,如用户名、密码、手机号、身份证号、银行账号等等打印出来,但往往为了安全,这些信息都需要进行脱敏。脱敏实际就是用一些特殊字符来替换部分值。 JSON 和 JSONObject Fastj…...
13.10 统一配置管理中心:TranslationChain 架构的简洁配置管理方案
统一配置管理中心:TranslationChain 架构的简洁配置管理方案 1. 集中式配置文件设计 config/settings.yaml: # 多环境配置开关 env: production # development|test|production# 模型管理中心 models:openai:class: langchain_openai.ChatOpenAIparams...
deepseek大模型集成到idea
1 下载插件 安装CodeGPT打开 IntelliJ IDEA,鼠标点击左上角导航栏,File --> Setting 2 申请API key 3 配置deepseek 在 Settings 界面中的搜索框中,搜索 CodeGPT,路径 Tools --> CodeGPT --> Providers --> 如下一…...
Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒,如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡
Cocos2d-x 游戏开发-打包apk被默认自带了很多不必要的权限导致apk被报毒,如何在Cocos 2d-x中强制去掉不必要的权限-优雅草卓伊凡 实战操作 去除权限 要在 Cocos2d-x 开发的游戏中去掉 APK 自带权限,可以按照以下步骤操作: 编辑 AndroidMa…...
gitlab多项目流水线
背景是我有多个项目,希望其中一个项目被触发的时候,联动另外一个项目自动打包。然后我就看文档尝试操作了一下,所以有本文。 官方文档参考:https://gitlab.cn/docs/14.5/jh/ci/pipelines/multi_project_pipelines.html 不知道是不…...
GWO优化决策树回归预测matlab
灰狼优化算法(Grey Wolf Optimizer,简称 GWO)是一种群智能优化算法,由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为,核心思想是模仿灰狼社会的结构与行为模式。 在本…...
2025影视泛目录站群程序设计_源码二次开发新版本无缓存刷新不变实现原理
1. 引言 本设站群程序计书旨在详细阐述苹果CMS泛目录的创新设计与实现,介绍无缓存刷新技术、数据统一化、局部URL控制及性能优化等核心功能,以提升网站访问速度和用户体验。 2. 技术概述 2.1 无缓存刷新技术 功能特点: 内容不变性&#x…...
在Linux上创建虚拟网卡
在 Linux 上创建虚拟网卡可以通过多种方式进行,常见的方式是使用 ip 命令来配置虚拟网卡。以下是一个简单的步骤指南,用于创建虚拟网卡: 步骤 1: 查看现有的网络接口 首先,查看当前网络接口的状态,可以使用以下命令&…...
JVM 类加载子系统在干什么?
JVM 类加载子系统是什么? 类加载子系统(Class Loader Subsystem)是 JVM 负责 加载、链接和初始化 .class 文件的组件。它的主要作用是将字节码文件加载进 JVM 并准备执行。 类加载器(ClassLoader)是 字节码的搬运工&…...
STM32的HAL库开发---高级定时器---互补输出带死区实验
一、互补输出简介 互补输出:OCx输出高电平,则互补通道OCxN输出低电平。OCx输出低电平,则互补通道OCxN输出高电平。 带死区控制的互补输出:OCx输出高电平时,则互补通道OCxN过一会再输出输出低电平。这个时间里输出的电…...
AntDesign X 报错:Cannot read properties of undefined (reading ‘_context‘)
解决: Cannot read properties of undefined (reading _context) 报错问题 我是基于umi的前端工程,react版本18.2, package.json,全部安装完之后的 "react": "^18.2.0", "ant-design/x": "^1…...
Day62_补20250210_图论part6_108冗余连接|109.冗余连接II
Day62_20250210_图论part6_108冗余连接|109.冗余连接II 108冗余连接 【把题意转化为并查集问题】 题目 有一个图,它是一棵树,他是拥有 n 个节点(节点编号1到n)和 n - 1 条边的连通无环无向图(其实就是一个线形图&am…...
06排序 + 查找(D2_查找(D1_基础学习))
目录 温故而知新 -------------------------------- 讲解一:基础理论 一、什么是查找 二、为什么需要查找 -------------------------------- 讲解二:代码学习 一、顺序查找 1. 算法原理 2. 算法步骤 3. Java代码实现 4. 适用场景 5. 知识小…...
SystemVerilog基础:disable fork语句
相关阅读 SystemVerilog基础https://blog.csdn.net/weixin_45791458/category_12517449.html?spm1001.2014.3001.5482 一、进程的概念 在学习disable fork语句之前,首先的了解SystemVerilog中的进程概念:进程是一系列可以独立执行的一个或多个表达式。…...
基于钉钉API的连接器实现:企业数据集成与自动化管理
文章目录 概要背景与需求钉钉API概述连接器实现小结 概要 在当今数字化时代,企业面临着海量数据的管理与整合挑战。钉钉作为国内广泛使用的办公协作平台,提供了丰富的API接口,支持企业进行数据集成与自动化管理。本文将介绍如何通过钉钉API实…...
windows server独立部署Qwen2.5-vl-7B
服务器配置信息 CPU:64G GPU:48G(RTX 4090) 一、使用conda下载模型 Qwen2.5-VL-7B-Instruct conda下载 conda create --name qwen python3.11 conda activate qwen 魔塔社区下载模型 pip install modelscope modelscope downl…...
nginx安装并部署前端项目【包括Linux与Windows系统】
nginx安装并部署前端项目 一、 nginx下载与安装二、 前端项目部署三、 常用命令&注意事项四、 常见问题【持续更新】 一、 nginx下载与安装 ① 下载地址:https://nginx.org/en/download.html ② 下载教程:根据不同操作系统(Linux或者Wi…...
pytest生成报告no tests ran in 0.01s
除了基本的环境配置、用例名要以test_开头,有个地方是我自己忽略了,在执行时没有指定用例文件,所以没有找到。 if __name__ __main__:pytest.main(["testcases/test_demo.py","-svq", __file__, --alluredir./allure-r…...
前后端服务配置
1、安装虚拟机(VirtualBox或者vmware),在虚拟机上配置centos(选择你需要的Linux版本),配置如nginx服务器等 1.1 VMware 下载路径Sign In注册下载 1.2 VirtualBox 下载路径https://www.virtualbox.org/wiki/Downloads 2、配置服…...
一文学会:用DeepSeek R1/V3 + AnythingLLM + Ollama 打造本地化部署的个人/企业知识库,无须担心数据上传云端的泄露问题
文章目录 前言一、AnythingLLM 简介&基础应用1.主要特性2.下载与安装3.配置 LLM 提供商4.AnythingLLM 工作区&对话 二、AnythingLLM 进阶应用:知识增强使用三、AnythingLLM 的 API 访问四、小结1.聊天模式2.本地存储&向量数据库 前言 如果你不知道Olla…...
[学习笔记] Kotlin Compose-Multiplatform
Compose-Multiplatform 原文:https://github.com/zimoyin/StudyNotes-master/blob/master/compose-multiplatform/compose.md Compose Multiplatform 是 JetBrains 为桌面平台(macOS,Linux,Windows)和Web编写Kotlin UI…...
202406 青少年软件编程等级考试C/C++ 三级真题答案及解析(电子学会)
第 1 题 谷歌的招聘 2004年7月,谷歌在硅谷的101号公路边竖立了一块巨大的广告牌用于招聘。内容超级简单,就是一个以.com 结尾的网址,而前面的网址是一个 10位素数,这个素数是自然常数e中最早出现的 10 位连续数字。能找出这个素数的人,就可以通过访问谷歌的这个网站进入…...
如何在Vue中实现事件处理
在Vue中,事件处理是一个核心概念,它让我们能够响应用户的操作,比如点击按钮、输入文本等。Vue提供了一个简洁而强大的方式来绑定事件和处理事件。本文将介绍如何在Vue中实现事件处理,覆盖事件绑定、事件修饰符以及事件处理函数等内…...
从零到一:基于Rook构建云原生Ceph存储的全面指南(下)
接上篇:《从零到一:基于Rook构建云原生Ceph存储的全面指南(上)》 链接: link 六.Rook部署云原生CephFS文件系统 6.1 部署cephfs storageclass cephfs文件系统与RBD服务类似,要想在kubernetes pod里使用cephfs&#…...
结合实际讲NR系列2—— SIB1
这是在基站抓取的sib1的一条信令 L3MessageContent BCCH-DL-SCH-Messagemessagec1systemInformationBlockType1cellSelectionInfoq-RxLevMin: -64q-QualMin: -19cellAccessRelatedInfoplmn-IdentityListPLMN-IdentityInfoplmn-IdentityListPLMN-IdentitymccMCC-MNC-Digit: 4MC…...
git rebase 和 git merge的区别
Rebase 可使提交树变得很干净, 所有的提交都在一条线上。 Merge 则是包含所有的调试记录,合并之后,父级的所有信息都会合并在一起 Rebase 修改了提交树的历史 比如, 提交 C1 可以被 rebase 到 C3 之后。这看起来 C1 中的工作是在 C3 之后进行的…...
JavaScript字符串类型详解
目录 一、创建字符串 1. 字面量方式 2. 使用 String 构造函数 二、字符串的不可变性 三、字符串的长度与索引 四、字符串的拼接 1. 使用加号 () 2. 使用模板字符串(ES6) 五、字符串的常用方法 1. 获取子串 substring(start, end) slice(start…...
Hdoop之MapReduce的原理
简单版本 AppMaster: 整个Job任务的核心协调工具 MapTask: 主要用于Map任务的执行 ReduceTask: 主要用于Reduce任务的执行 一个任务提交Job --> AppMaster(项目经理)--> 根据切片的数量统计出需要多少个MapTask任务 --> 向ResourceManager(Yarn平台的老大)索要资源 --…...
数据仓库和商务智能:洞察数据,驱动决策
在数据管理的众多领域中,数据仓库和商务智能(BI)是将数据转化为洞察力、支持决策制定的关键环节。它们通过整合、存储和分析数据,帮助组织更好地理解业务运营,预测市场趋势,从而制定出更明智的战略。今天&a…...
可视化工作流编排参数配置完整方案设计文档
一、背景及需求分析 1. 背景 在复杂的工作流程中,后续程序需要动态构造输入参数,这些参数源自多个前序程序的 JSON 数据输出。为了增强系统的灵活性和可扩展性,配置文件需要支持以下功能: 灵活映射前序程序的 JSON 数据。…...
Linux sysfs虚拟文件系统
文章目录 简介sysfs接口sysfs和procfs参考 本文拟对Linux sysfs虚拟文件系统进行简单的介绍和原理分析 简介 测试环境:Linux dev-PC 5.18.17-amd64-desktop-hwe #20.01.00.10 SMP PREEMPT_DYNAMIC Thu Jun 15 16:17:50 CST 2023 x86_64 GNU/Linux sysfs虚拟文件系统…...
C++ 设计模式 - 访问者模式
一:概述 访问者模式将作用于对象层次结构的操作封装为一个对象,并使其能够在不修改对象层次结构的情况下定义新的操作。 《设计模式:可复用面向对象软件的基础》一书中的访问者模式因两个原因而具有传奇色彩:一是因为它的复杂性&a…...
微软编程之C#如何学习,C#学习路线:从入门到精通
引言 C# 是一种由微软开发的面向对象编程语言,广泛应用于 Windows 应用程序开发、游戏开发(Unity)、Web 开发(ASP.NET)等领域。对于初学者来说,掌握 C# 不仅能够打开编程世界的大门,还能为未来…...
PromptSource官方文档翻译
目录 核心概念解析 提示模板(Prompt Template) P3数据集 安装指南 基础安装(仅使用提示) 开发环境安装(需创建提示) API使用详解 基本用法 子数据集处理 批量操作 提示创建流程 Web界面操作 手…...
深入理解QT的View-Model-Delegate机制和用法
文章目录 Model-View-Delegate机制Model(数据模型)设置模型属性访问元素操作元素数据排序封装好的模型View(视图)显示数据数据选择Delegate(代理)数据选择易用封装类QListWidgetQTreeWidgetQTableWidget元素拖拽代理模型参考示例Model-View-Delegate机制 Qt的View/Model/Deleg…...
【JavaScript】JavaScript 运行原理
执行上下文 JavaScript引擎会在执行代码之前,会在堆内存中创建一个全局对像:Global Object(GO) 该对象所有的作用域(scope)都可以访问,在浏览器中这个对象就是window;里面会包含Date、Array、StringNumber、setTimeout、setInte…...