自有服务与软件包
—— 小 峰 编 程
目录
编辑
一、自有服务概述
二、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服务…...
Python 鼠标轨迹 - 防止游戏检测
一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…...
BootstrapBlazor Table组件 使用的注入 数据服务 实现类:使用 EF Core
一、使用示例:UsersManager.razor 注:TLog 相关内容参见 .NET 9.0 的 Blazor Web App 项目、Bootstrap Blazor 组件库、自定义日志 TLog 使用备忘-CSDN博客 page "/Log/TLogManager"<Table TItem"TLogEntity" DataService&qu…...
chrome-mojo C++ Bindings API
概述 Mojo C 绑定 API 利用C 系统 API提供一组更自然的原语,用于通过 Mojo 消息管道进行通信。结合从Mojom IDL 和绑定生成器生成的代码,用户可以轻松地跨任意进程内和进程间边界连接接口客户端和实现。 本文档通过示例代码片段提供了绑定 API 用法的详…...
git如何把多个commit合成一个
在 Git 中,如果你想把多个提交(commit)合并成一个,可以使用 git rebase 或 git reset 来完成。下面是两种常用方法: 方法一:使用 git rebase(推荐) git rebase 是合并多个提交为一…...
java: framework from BLL、DAL、IDAL、MODEL、Factory using oracle
oracel 21c sql: -- 创建 School 表 CREATE TABLE School (SchoolId CHAR(5) NOT NULL,SchoolName NVARCHAR2(500) NOT NULL,SchoolTelNo VARCHAR2(8) NULL,PRIMARY KEY (SchoolId) );CREATE OR REPLACE PROCEDURE addschool(p_school_id IN CHAR,p_school_name IN NVARCHAR2,p…...
RPA与深度学习结合
什么是RPA RPA即机器人流程自动化(Robotic Process Automation),它是一种利用软件机器人模拟人类在计算机上的操作,按照预设的规则自动执行一系列重复性、规律性任务的技术。这些任务可以包括数据录入、文件处理、报表生成、系统…...
Ubuntu22.04部署deepseek大模型
Ollama 官方版 Ollama 官方版: https://ollama.com/ 若你的显卡是在Linux上面 可以使用如下命令安装 curl -fsSL https://ollama.com/install.sh | shollama命令查看 rootheyu-virtual-machine:~# ollama -h Large language model runnerUsage:ollama [flags]ollama [comman…...
如何设置Jsoup请求头模拟浏览器访问?
在使用 Jsoup 进行网络爬虫开发时,设置请求头以模拟浏览器访问是非常重要的。这不仅可以帮助我们更好地伪装爬虫,避免被目标网站识别,还可以确保请求的合法性。以下是如何设置 Jsoup 请求头以模拟浏览器访问的详细步骤和示例代码。 1. 设置请…...
JVM 类加载子系统在干什么?
JVM 类加载子系统是什么? 类加载子系统(Class Loader Subsystem)是 JVM 负责 加载、链接和初始化 .class 文件的组件。它的主要作用是将字节码文件加载进 JVM 并准备执行。 类加载器(ClassLoader)是 字节码的搬运工&…...
Redis数据库(二):Redis 常用的五种数据结构
Redis 能够做到高性能的原因主要有两个,一是它本身是内存型数据库,二是采用了多种适用于不同场景的底层数据结构。 Redis 常用的数据结构支持字符串、列表、哈希表、集合和有序集合。实现这些数据结构的底层数据结构有 6 种,分别是简单动态字…...
《量化绿皮书》Chapter 3 Calculus and Linear Algebra 微积分与线性代数(二)
《A Practical Guide To Quantitative Finance Interviews》,被称为量化绿皮书,是经典的量化求职刷题书籍之一,包含以下七章: Chapter 1 General Principles 通用技巧 Chapter 2 Brain Teasers 脑筋急转弯 Chapter 3 Calculus and…...
网络安全溯源 思路 网络安全原理
网络安全背景 网络就是实现不同主机之间的通讯。网络出现之初利用TCP/IP协议簇的相关协议概念,已经满足了互连两台主机之间可以进行通讯的目的,虽然看似简简单单几句话,就描述了网络概念与网络出现的目的,但是为了真正实现两台主机…...
BS架构(笔记整理)
楔子.基本概念 1.在网络架构中: 服务器通常是集中式计算资源,负责处理和存储数据;客户机是请求这些服务的终端设备,可能是个人电脑或移动设备;浏览器则是客户机上用来与服务器交互的工具,负责展示网页内容…...
06排序 + 查找(D2_查找(D2_刷题练习))
目录 1. 二分查找-I 1.1 题目描述 1.2 解题思路 方法:二分法(推荐使用) 2. 二维数组中的查找 2.1 题目描述 2.2 解题思路 方法一:二分查找(推荐使用) 3. 寻找峰值 3.1 题目描述 3.2 解题思路 方…...
客户端渲染和服务端渲染
二者本质的区别:是在哪完成了 HTML 的拼接,服务端渲染是在服务端拼接,客户端渲染是在客户端拼接。 服务端渲染的优缺点 优点 SEO 友好,服务端渲染更有利于爬虫爬取信息。 更快的首屏渲染,因为 HTML 已经在服务端生…...
C++ 设计模式 - 访问者模式
一:概述 访问者模式将作用于对象层次结构的操作封装为一个对象,并使其能够在不修改对象层次结构的情况下定义新的操作。 《设计模式:可复用面向对象软件的基础》一书中的访问者模式因两个原因而具有传奇色彩:一是因为它的复杂性&a…...
海云安开发者智能助手(D10)全面接入DeepSeek,赋能开发者安全高效编码新范式
海云安正式宣布完成与DeepSeek(深度求索)的深度技术融合,旗下核心产品D10开发者智能助手全面接入DeepSeek R1模型。此次合作标志着海云安在"AI驱动开发安全"领域实现重要突破。数据显示,通过DeepSeek R1模型的优化与蒸馏…...
服务器绑定 127.0.0.1 和 0.0.0.0 的区别
前言 IP 地址实际上并不是分配给计算机的,而是分配给网卡的,因此当计算机上存在多块网卡时,每一块网卡都会有自己的 IP 地址。 绑定 127.0.0.1 是绑定到 lookback 这个虚拟的本地回环接口,该接口只处理本机上的数据,…...
ML.NET库学习005:基于机器学习的客户细分实现与解析
文章目录 ML.NET库学习005:基于机器学习的客户细分实现与解析项目主要目的和原理目的原理 项目概述实现的主要功能主要流程步骤使用的主要函数方法关键技术 主要功能和步骤功能详细解读详细步骤解析 数据集及其处理步骤数据集处理步骤关键处理步骤原理1. 数据清洗与…...
分布式id探索
一、为什么要使用分布式id? 随着数据量增加,数据需要进行水平拆分,但表自增id无法满足唯一性; 二、分布式id的特点 1唯一性 2 趋势递增、单调递增(数据库中存放的数据结构数据从小到大有序排列)࿰…...
互联网协议套件中的服务类型(RFC 1349)技术解析与总结
1. 背景与核心目标 RFC 1349 是对 IP 协议头部 服务类型(Type of Service, TOS)字段语义的更新与澄清文档,发布于 1992 年。其主要目标包括: 重新定义 TOS 字段的用途:明确 TOS 字段的语义,解决历史标准中的…...
java-初识List
List: List 是一个接口,属于 java.util 包,用于表示有序的元素集合。List 允许存储重复元素,并且可以通过索引访问元素。它是 Java 集合框架(Java Collections Framework)的一部分 特点: 有序…...
【Linux系统】—— 简易进度条的实现
【Linux系统】—— 简易进度条的实现 1 回车和换行2 缓冲区3 进度条的准备代码4 第一版进度条5 第二版进度条 1 回车和换行 先问大家一个问题:回车换行是什么,或者说回车和换行是同一个概念吗? 可能大家对回车换行有一定的误解࿰…...
一文学会:用DeepSeek R1/V3 + AnythingLLM + Ollama 打造本地化部署的个人/企业知识库,无须担心数据上传云端的泄露问题
文章目录 前言一、AnythingLLM 简介&基础应用1.主要特性2.下载与安装3.配置 LLM 提供商4.AnythingLLM 工作区&对话 二、AnythingLLM 进阶应用:知识增强使用三、AnythingLLM 的 API 访问四、小结1.聊天模式2.本地存储&向量数据库 前言 如果你不知道Olla…...
开源身份和访问管理方案之keycloak(一)快速入门
文章目录 什么是IAM什么是keycloakKeycloak 的功能 核心概念client管理 OpenID Connect 客户端 Client Scoperealm roleAssigning role mappings分配角色映射Using default roles使用默认角色Role scope mappings角色范围映射 UsersGroupssessionsEventsKeycloak Policy创建策略…...
C++STL(六)——list模拟
目录 本次所需实现的三个类一、结点类的模拟实现构造函数 二、迭代器类的模拟实现为什么有迭代器类迭代器类的模板参数说明构造函数运算符的重载- -运算符的重载和!运算符的重载*运算符的重载->运算符的重载引入模板第二个和第三个参数 三、list的模拟实现3.1 默认成员函数构…...
HTML5--网页前端编程(下)
HTML5–网页前端编程(下) 9.常用标签下 (1)表格标签 用来展示数据,显示数据,规整条理,可读性好 基本语法 <table><tr> <td>单元格内的文字</td> <td>单元格内的文字</td>… </tr> <tr> <td>单元格内的文字&l…...
Spring 的 ResponseEntity 包装器使用详解
简介 在 Spring 中,ResponseEntity 是 HTTP 响应的包装器。它允许自定义响应的各个方面: HTTP 状态码 响应主体 HTTP 请求头 使用 ResponseEntity 允许完全控制 HTTP 响应,并且它通常用于 RESTful Web 服务中从控制器方法返回响应。 基…...
Git 分布式版本控制工具使用教程
1.关于Git 1.1 什么是Git Git是一款免费、开源的分布式版本控制工具,由Linux创始人Linus Torvalds于2005年开发。它被设计用来处理从很小到非常大的项目,速度和效率都非常高。Git允许多个开发者几乎同时处理同一个项目而不会互相干扰,并且在…...



















































