基础运维(一)YUM仓库
一 自定义YUM仓库
1 Yum仓库特点
作为yum源需要准备的内容
- 大量的rpm 软件安装包文件
- 针对这些软件包的 repodata/ 仓库档案
repodata/ 仓库档案数据
- filelists.xml.gz // 软件包的文件安装清单
- primary.xml.gz // 软件包的基本/主要信息
- other.xml.gz // 软件包的其他信息
- repomd.xml // 提供. xml.gz下载和校验信息
2 使用第三方RPM包建库
需要额外创建 repodata/档案,将搜集的.rpm 包文件集中到指定目录
[student@server1 ~]$ ls /linux-soft/s1# 准备从互联网下载的软件包传递到虚拟机中
[student@server1 ~]$ scp /linux-soft/s1/tools.tar.gz root@192.168.88.240:/root# 虚拟机A进行tar解包
[root@server ~]# tar -xf /root/tools.tar.gz -C
[root@server ~]# ls /tools
[root@server ~]# ls /tools/other# 生成仓库数据文件
[root@server ~]# createrepo /tools/other
[root@server ~]# ls /tools/other/
[root@server ~]# vim /etc/yum.repos.d/mydvd.repo
……此处省略一万字
[myrpm] # 唯一标识
baseurl=file:///tools/other # 指定Yum仓库的路径
gpgcheck=0
[root@server ~]# yum repoinfo# 测试软件安装
[root@server ~]# yum -y install sl
[root@server ~]# yum -y install cmatrix
3 自定义Yum仓库的更新:更新的顺序不能颠倒
- 仓库数据文件的更新
- Yum仓库缓存的更新
[root@server ~]# mv /tools/other/sl-5.02-1.el7.x86_64.rpm /root
[root@server ~]# ls /tools/other/# 更新仓库数据文件
[root@server ~]# createrepo --update /tools/other # 更新缓存数据
[root@server ~]# yum makecache
[root@server ~]# yum repoinfo
二 网络Yum仓库
1 FTP服务方式
虚拟机A:提供仓库内容(FTP服务)1.构建FTP服务
[root@server ~]# yum -y install vsftpd
[root@server ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES # 开启无需密码验证功能
[root@server ~]# systemctl restart vsftpd # 重启服务
[root@server ~]# systemctl enable vsftpd # 设置开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
2.通过FTP提供仓库内容
[root@server ~]# cp -r /tools/other /var/ftp/rpms虚拟机B:进行访问仓库内容[root@pc2 ~]# vim /etc/yum.repos.d/mydvd.repo
……此处省略一万字
[haha]
baseurl=ftp://192.168.88.240/rpms
gpgcheck=0
[root@pc2 ~]# yum clean all # 清空Yum的缓存
[root@pc2 ~]# yum repoinfo
虚拟机A:提供仓库内容(FTP服务)[root@server ~]# mkdir /var/ftp/dvd
[root@server ~]# mount /dev/cdrom /var/ftp/dvd
[root@server ~]# curl ftp://192.168.88.240/dvd/
[root@server /]# vim /etc/fstab # 修改配置
/dev/cdrom /var/ftp/dvd iso9660 defaults 0 0
[root@server /]# umount /var/ftp/dvd
[root@server /]# ls /var/ftp/dvd
[root@server /]# mount -a
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server /]# ls /var/ftp/dvd
........
[root@server /]# vim /etc/yum.repos.d/mydvd.repo
[aa]
baseurl=ftp://192.168.88.240/dvd/AppStream
gpgcheck=0
[bb]
baseurl=ftp://192.168.88.240/dvd/BaseOS
gpgcheck=0
[myrpm]
baseurl=ftp://192.168.88.240/rpms
gpgcheck=0
[root@server ~]# yum clean all # 清空Yum的缓存
[root@server ~]# yum repoinfo
虚拟机B:进行访问仓库内容[root@pc2 ~]# vim /etc/yum.repos.d/mydvd.repo
[aa]
baseurl=ftp://192.168.88.240/dvd/AppStream
gpgcheck=0
[bb]
baseurl=ftp://192.168.88.240/dvd/BaseOS
gpgcheck=0
[myrpm]
baseurl=ftp://192.168.88.240/rpms
gpgcheck=0
[root@pc2 ~]# yum clean all # 清空Yum的缓存
[root@pc2 ~]# yum repoinfo
2 Web服务方式
虚拟机A:提供仓库内容(Web服务)1.构建Web服务
[root@server ~]# yum -y install httpd
[root@server ~]# systemctl restart httpd
[root@server ~]# systemctl enable httpd2.通过Web提供仓库内容
[root@server ~]# mkdir /var/www/html/dvd
[root@server ~]# mount /dev/cdrom /var/www/html/dvd虚拟机B:进行访问仓库内容[root@pc2 ~]# vim /etc/yum.repos.d/mydvd.repo
[aa]
baseurl=http://192.168.88.240/dvd/AppStream
gpgcheck=0
[bb]
baseurl=http://192.168.88.240/dvd/BaseOS
gpgcheck=0
[root@pc2 ~]# yum repoinfo虚拟Web主机:[root@server ~]# vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>ServerName www.qq.comDocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost *:80>ServerName www.baidu.comDocumentRoot /var/www/baidu
</VirtualHost>
<Directory "/var/www/qq">Options Indexes FollowSymLinks #显示目录内容
</Directory>
[root@server ~]# mkdir /var/www/qq /var/www/baidu
[root@server ~]# echo wo shi QQ > /var/www/qq/index.html
[root@server ~]# echo wo shi baidu > /var/www/baidu/index.html
[root@server ~]# systemctl restart httpd
[root@server ~]# mkdir /var/www/qq/dvd
[root@server ~]# mount /dev/cdrom /var/www/qq/dvd
三 DNS服务器基础
1 DNS工作原理
DNS解析的作用
为什么需要DNS系统
www.baidu.com 与 119.75.217.56,哪个更好记?
互联网中的114查号台/导航员
DNS服务器的功能
- 正向解析:根据注册的域名查找其对应的IP地址
- 反向解析:根据IP地址查找对应的注册域名,不常用
DNS的分布式结构
常见的顶级/一级域名
- 国家/地区域:.cn、.us、.kr、.hk、.tw、……
- 组织域: .com、.net、.edu、.org、.gov、.mil、……
DNS域名管理
IANA,互联网数字分配机构
Internet Assigned Numbers Authority
整个域名系统的最高权威机构
CNNIC,中国互联网络信息中心
China Internet Network Information Center
主管国家顶级域 .cn
域名注册/购买服务商
阿里云,https://www.aliyun.com/
华为云,https://www.huaweicloud.com/
腾讯云,https://cloud.tencent.com/
2 BIND服务分析
BIND (Berkeley Internet Name Daemon
伯克利Internet 域名服务
官方站点:https://www.isc.org/
[root@server ~]# yum -y install bind bind-chroot
bind(主程序) // 域名服务包
bind-chroot(提供牢笼政策) // 提供虚拟根支持
BIND服务器端程序
主要执行程序:/usr/sbin/named
系统服务:named
默认端口:TCP/UDP 53
运行时的虚拟根环境:/var/named/chroot/
主配置文件:/etc/named.conf
地址库文件:/var/named/
named,conf 配置文件
全局配置部分
设置监听地址/端口、地址库存放位置等
options (listen-on port 53[192.168.88.1; // 监听地址和端口directory"/var/named"; // 地址文件的默认位置allow-query {any;l}; // 允许任何客户机查询……//listen-on-v6 port 53 [ ::1; };//Include"/etc/named.rfc1912.zones"; //可载入其他配置清理元余配置,三种注释方法:
# 注释一整行或行内的部分文字
// 注释一整行或行内的部分文字
/* */ 可注释连续的多行文字
区域配置部分
定义DNS区域、类型、地址文件路径等
关键词IN 表示Internet,可省略
zone "baidu.cn" IN { // 定义正向区域type master; // 区域类型为主DNSfile "baidu.cn.zone"; // 地址库文件
};
检查配置语法
格式:named-checkconf[配置文件]
[root@svr1~]# named-checkconf /etc/named.conf
etc/named.conf:3: expected quoted string near[root@svr1 ~]# vim etc/named.conf // 如果有错,则修正错误
[root@svr1 ~]# named-checkconf /etc/named.conf
[root@svr1~]# // 无错误,无输出
地址库文件
全局TTL配置项及SOA记录
$TTL (Time To Live,生存时间)
SOA (Start of Authority,授权信息开始)
分号“;”开始的部分表示注释
# 在当前文件内,本区域名可简写为 @
IN SOA 区域名,区域管理邮箱.(
……
)
NS,域名服务器 (Name Server) 记录
A,地址 (Address) 记录,仅用于正向解析区域
NS server # 声明DNS服务器为server
server A 192.168.88.240 # server解析结果为192.168.88.240
www A 1.1.1.1
ftp A 2.2.2.2
案列
虚拟机A:构建DNS服务器
1.安装软件包
2.修改主配置文件
[root@server ~]# cp -p /etc/named.conf /root # 备份数据
[root@server ~]# ls -l /root/named.conf
[root@server ~]# vim /etc/named.conf # 大致浏览内容
[root@server ~]# vim /etc/named.conf
options { directory "/var/named"; # 定义地址库文件存放路径
};
zone "tedu.cn" IN { # 定义负责的解析tedu.cn域名type master; # 权威主DNS服务器file "tedu.cn.zone"; # 地址库文件名称
};
3.建立地址库文件
保证named用户对地址库文件有读取权限
如果没有以点作为结尾,那么默认补全本地库文件负责的域名
[root@server ~]# cd /var/named/
[root@server ~]# cp -p named.localhost tedu.cn.zone # 保持权限不变
[root@server ~]# ls -l tedu.cn.zone
[root@server ~]# vim tedu.cn.zone
……此处省略一万字
NS server # 声明DNS服务器为server
server A 192.168.88.240 # server解析结果为192.168.88.240
www A 1.1.1.1
ftp A 2.2.2.2
[root@server named]# systemctl restart named
虚拟机B:测试DNS服务器
1.指定DNS服务器地址
[root@server ~]# echo nameserver 192.168.88.240 > /etc/resolv.conf
[root@server ~]# cat /etc/resolv.conf
2.命令测试域名解析
[root@server ~]# nslookup www.tedu.cn
[root@server ~]# host ftp.tedu.cn
/etc/hosts文件与/etc/resolv.conf文件
1./etc/hosts文件域名解析最高优先级
2./etc/resolv.conf文件指定DNS服务器地址
3 特殊解析
DNS的泛域名解析
虚拟机A:
[root@server /]# vim /var/named/tedu.cn.zone
……此处省略一万字NS server
server A 192.168.88.240
www A 1.1.1.1
ftp A 2.2.2.2
* A 6.6.6.6
tedu.cn. A 7.7.7.7
[root@server /]# systemctl restart named
虚拟机B测试:
[root@pc2 /]# nslookup wwwwww.tedu.cn
[root@pc2 /]# nslookup tedu.cn
•DNS有规律的泛域名解析
stu1.tedu.cn-------->192.168.1.1
stu2.tedu.cn-------->192.168.1.2
stu3.tedu.cn-------->192.168.1.3
stu4.tedu.cn-------->192.168.1.4
.........
stu50.tedu.cn-------->192.168.1.50
内置函数:$GENERATE 制造连续的数字
虚拟机A:
[root@server /]# vim /var/named/tedu.cn.zone
……此处省略一万字NS server
server A 192.168.88.240
www A 1.1.1.1
$GENERATE 1-50 stu$ A 192.168.1.$
[root@server /]# systemctl restart named
虚拟机B测试:
[root@pc2 /]# nslookup stu1.tedu.cn
[root@pc2 /]# nslookup stu23.tedu.cn
DNS的解析记录的别名
虚拟机A:
[root@server /]# vim /var/named/tedu.cn.zone
……此处省略一万字NS server
server A 192.168.88.240
www A 192.168.4.20
ftp A 2.2.2.2
vip CNAME ftp #vip解析结果与ftp解析结果一致
[root@server /]# systemctl restart named
虚拟机B:测试
[root@pc2 ~]# nslookup vip.tedu.cn
DNS服务器资源解析记录的类型:
NS:DNS服务器声明记录
A:正向解析记录
CNAME:解析记录的别名
4 递归查询(递归解析)与迭代查询(迭代解析)
递归查询:客户端发送请求给首选DNS服务器,首选DNS服务器与其他的DNS服务器交流,最终将解析结果带回来过程
迭代查询:客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址
四 邮件服务器
电子邮件服务器的基本功能
为用户提供电子邮箱存储空间(用户名@邮件域名)
处理用户发出的邮件 —— 传递给收件服务器
处理用户收到的邮件 —— 投递到邮箱
[root@server /]# yum -y install postfix
[root@server /]# rpm -q postfix #提供邮件功能的软件
postfix-2.10.1-9.el7.x86_64
[root@server /]# systemctl status postfix
[root@server /]# useradd yg
[root@server /]# useradd xln
mail 发信操作: mail -s '邮件标题' -r 发件人 收件人
[root@server /]# yum -y install mailx #提供mail命令软件
[root@server /]# mail -s 'test01' -r yg xln
hahaxixiehehelele
. #一行只有一个点表示提交
EOT
mail 收信操作: mail [-u 用户名]
[root@server /]# mail -u xln
>N 1 yg@server.tedu.cn Fri Sep 18 17:24 18/510
& 1 #输入邮件编号
& quit #退出
非交互式发邮件:
[root@server ~]# echo 123456 | mail -s 'test02' -r yg xln
[root@server ~]# mail -u xln
五 NTP时间服务器
作用:提供标准时间
Network Time Protocol(网络时间协议)
它用来同步网络中各个计算机的时间的协议
210.72.145.39 (国家授时中心服务器IP地址)
Stratum(分层设计)
Stratum层的总数限制在15以内(包括15)
虚拟机A:时间服务器
1.安装软件包chrony
[root@server /]# yum -y install chrony
[root@server /]# rpm -q chrony
2.修改配置文件
[root@server /]# vim /etc/chrony.conf
#pool 2.pool.ntp.org iburst # 与谁同步时间,iburst表示快速同步
allow all # 开头的#去掉,修改为允许所有客户端
local stratum 10 # 开头的#去掉,本机为第10层的时间服务器
3.重启时间服务
[root@server /]# systemctl restart chronyd
虚拟机B:客户端
1.安装软件包chrony
[root@pc2 /]# yum -y install chrony
2.修改配置文件
[root@pc2 /]# vim /etc/chrony.conf
server 192.168.88.240 iburst #与192.168.88.240同步时间
3.重启时间服务
[root@pc2 /]# systemctl restart chronyd
虚拟机B:
4.测试:
[root@pc2 /]# date -s "2008-1-1"
[root@pc2 /]# date
[root@pc2 /]# systemctl restart chronyd
[root@pc2 /]# date
[root@pc2 /]# date
六 常见DNS工单要求
DNS服务器搭建要求:
实现DNS服务器,在192.168.88.240上构建
负责域名为sina.com,实现站点名www的解析
实现www.sina.com解析结果为192.188.16.17
虚拟机A
1.安装软件包bind与bind-chroot
2.修改主配置文件
[root@server /]# vim /etc/named.conf
........此处省略一万字
zone "sina.com" IN {type master;file "sina.com.zone";
};
3.建立地址库文件
[root@server ~]# cd /var/named/
[root@server ~]# cp -p named.localhost sina.com.zone
[root@server ~]# vim sina.com.zone
........此处省略一万字NS server
server A 192.168.88.240
www A 192.188.16.17
[root@server /]# systemctl restart named
案例:搭建单区域DNS服务器
1 问题
本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站。测试阶段主要提供以下正向记录:
- svr1.tedu.cn ---> 192.168.88.240
- pc2.tedu.cn ---> 192.168.88.2
- www.tedu.cn ---> 192.168.4.100
配置完成后在客户机上验证查询结果。
2 方案
快速构建DNS服务器的基本过程:
- 安装 bind、bind-chroot 包
- 建立主配置文件 /etc/named.conf
- 建立地址库文件 /var/named/.. ..
- 启动 named 服务
配置及使用DNS客户端的基本过程:
- 修改配置文件/etc/resolv.conf,添加nameserver=DNS服务器地址
- 使用host命令查询,提供目标域名作为参数
3 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置DNS服务器svr1
1)安装 bind、bind-chroot 包[root@svr1 ~]# yum -y install bind bind-chroot
.. ..
2)建立主配置文件 /etc/named.conf[root@svr1 ~]# mv /etc/named.conf /etc/named.conf.origin //备份默认配置
[root@svr1 ~]# vim /etc/named.conf //建立新配置
options {directory "/var/named"; //地址库默认存放位置
};
zone "tedu.cn" { //定义正向DNS区域type master; //主区域file "tedu.cn.zone"; //自定义地址库文件名
};
3)建立地址库文件 /var/named/tedu.cn.zone[root@svr1 ~]# cd /var/named/ //进地址库目录
[root@svr1 named]# cp -p named.localhost tedu.cn.zone //参考范本建地址库文件
[root@svr1 named]# vim tedu.cn.zone //修订地址库记录
$TTL 1D //文件开头部分可保持不改
@ IN SOA @ rname.invalid. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
@ NS svr1 //本区域DNS服务器的FQDN
svr1 A 192.168.88.240 //为NS主机提供A记录
pc2 A 192.168.88.2 //其他正向地址记录.. ..
www A 192.168.4.100
4)启动 named 服务,并设置开机自启[root@svr1 named]# systemctl restart named
[root@svr1 named]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
步骤二:配置DNS客户机pc2并测试
1)修改配置文件/etc/resolv.conf,指定默认使用哪一台DNS服务器[root@pc2 ~]# vim /etc/resolv.conf
nameserver 192.168.88.1
.. ..
2)使用host命令查询,提供目标域名作为参数[root@pc2 ~]# host svr1.tedu.cn
svr1.tedu.cn has address 192.168.88.240
[root@pc2 ~]# host pc2.tedu.cn
pc2.tedu.cn has address 192.168.88.2
[root@pc2 ~]# host www.tedu.cn
www.tedu.cn has address 192.168.4.100
使用host测试DNS查询结果时,如果不方便修改/etc/resolv.conf文件,也可以采用“host 目标域名 DNS服务器地址”形式临时指定使用哪一台DNS服务器。[root@pc2 ~]# host pc2.tedu.cn 192.168.88.240
Using domain server:
Name: 192.168.88.1
Address: 192.168.88.1#53
Aliases:
pc2.tedu.cn has address 192.168.88.2
案例:NTP时间同步
1 问题
本例要求配置一台NTP时间服务器,需要完成下列任务:
- 部署一台NTP时间服务器
- 设置时间服务器上层与0.centos.pool.ntp.org同步
- 设置本地服务器层级数量为10
- 允许192.168.88.0/24网络的主机同步时间
- 客户端验证时间是否同步
2 步骤
实现此案例需要按照如下步骤进行。
步骤一:虚拟机A构建NTP时间服务器
1)使用yum安装bind、bind-chroot软件包[root@svr1 ~]# yum -y install chrony
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
dvd | 3.6 kB 00:00
软件包 chrony-3.2-2.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@svr1 ~]# rpm -q chrony
chrony-3.2-2.el7.x86_64
[root@svr1 ~]#
2)修改配置文件/etc/chrony.conf[root@proxy ~]# vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst //server用户客户端指向上层NTP服务器
allow 192.168.88.0/24 //允许那个IP或网络访问NTP
local stratum 10 //设置NTP服务器的层数量
.. ..
3)重启chronyd服务[root@mail ~]# systemctl restart chronyd
步骤二:虚拟机B构建NTP时间同步的客户端
1)修改/etc/chrony.conf文件[root@pc2 ~]# vim /etc/chrony.conf
server 192.168.88.240 iburst
2)重启chronyd服务[root@pc2 ~]# systemctl restart chronyd
3)修改时间进行测试[root@pc2 ~]# date -s "2008-9-1"
2008年 09月 01日 星期一 00:00:00 CST
[root@pc2 ~]# date
2008年 09月 01日 星期一 00:00:01 CST
[root@pc2 ~]# systemctl restart chronyd
[root@pc2 ~]# date
2008年 09月 01日 星期一 00:01:42 CST
[root@pc2 ~]# date
2020年 04月 13日 星期一 18:44:56 CST
相关文章:

基础运维(一)YUM仓库
一 自定义YUM仓库 1 Yum仓库特点 作为yum源需要准备的内容 大量的rpm 软件安装包文件针对这些软件包的 repodata/ 仓库档案 repodata/ 仓库档案数据 filelists.xml.gz // 软件包的文件安装清单primary.xml.gz // 软件包的基本/主要信息other.xml.gz // 软件包…...

递归算法讲解,深度理解递归
首先最重要的就是要说明递归思想的作用,在后面学习的高级数据接口,树和图中,都需要用到递归,即深度优先搜索,如果递归掌握的不好,后面的数据结构将举步为艰。 加油 首先看下如何下面两个方法有什么区别&a…...

网络通信(套接字通信)(C/C++)
1.网络编程必知概念 1.广域网和局域网 广域网:又称外网、公网。是连接不同地区局域网或城域网进行计算机通信的远程公共网络。 局域网:在一定的通信范围内,有很个多计算机组成的私有网络就叫局域网。(这些计算机相互之间是可以通信的,但是不能直接访问外网(可以通过网线…...

anaconda navigator启动时一直卡在 loading applications 页面
anaconda navigator启动时一直卡在 loading applications 页面 方法1 在安装目录找到D:\anaconda\Lib\site-packages\anaconda_navigator\api 然后打开conda_api.py, 在1358行找到data yaml.load(f),将其改为data yaml.safeload(f) 猜测为保证代码…...

力扣刷题-链表-删除链表的倒数第N个节点
19.删除链表的倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2:输入:head [1], n 1 输出&…...

Blender DreamUV插件使用简明教程
DreamUV 是一个可让你在Blender的 3D 视口中操纵 UV的工具集合。 该工具集设计用于可重复使用的纹理,例如平铺纹理、装饰表和纹理图集。 其目的是让你无需退出 3D 视图即可对几何体进行纹理处理,从而节省时间并提高灵活性。 1、安装DreamUV 首先下载为…...

AI在线工具分享
1、ChatGPT ChatGPT是一种由OpenAI训练的大型语言模型。它的原理是基于Transformer架构,通过预训练大量文本数据来学习如何生成人类可读的文本,然后通过接受输入并生成输出来实现对话。 ChatGPT的用途非常广泛,可以用于自然语言处理…...
Matlab批量处理测试数据的方法:以VCO的调谐测试曲线处理为例
我们都知道得到的VCO调谐曲线是一根一根扫出来的,如果要手动对数据进行处理很麻烦。 (当然最好是搭建一个自动化测试平台,一边测试一边把数据抓取了,这个以后可以搞一下再更新) 目前还是手动测量的情况下,…...

VScode断点调试vue
VScode断点调试vue 1、修改launch.js文件(没有这个文件就新建)。 {// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlin…...
20吨屠宰鸡鸭鹅一体化污水处理设备加工厂家
20吨屠宰鸡鸭鹅一体化污水处理设备加工厂家 溶气气浮机主要构造说明 气浮系统气浮系统集进水、絮凝、分离、集水、出水于一体,与传统气浮设备类似,设有一个稳流室、溶气释放室,使处理性能更稳定,效果更优越。 稳定室:通…...
android被杀以后fragments缓存重建问题和测试方法
这个问题,其实不是太好复现。因为在android的缓存Fragment机制是写在androidx的库中。 主要的原因是android Framework机制: framework at yourpackage.onSaveInstanceState(XXXActivity.kt:118) at android.app.Activity.performSaveInstanceState(A…...

Visual Studio 2017 安装
C自学精简实践教程 目录(必读) 这篇文章会保证你第一次安装VS2017就成功运行Hello World! 下载Visual Studio Installer Gitee 下载 VS2017/vs2017_Community.exe CalmReason/VisualStudio - 码云 - 开源中国 (gitee.com) 百度云下载 链接:https://pan.baidu…...
day5|242.有效的字母异位词、349. 两个数组的交集
242.有效的字母异位词 题目链接:https://leetcode.cn/problems/valid-anagram/ 文章链接:https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html 视频链接:https://www.bilibili.…...

【Python基础】常用模块学习:sys|os|pytest
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...

【煤矿虚拟仿真体验】VR采煤机技能培训有效提高训练效果
在我们的社会中,能源是至关重要的。它是推动我们日常生活和工作的主要动力。然而,我们在获取这种能源的过程中,也带来了许多环境问题。煤矿开采是其中的一个重要部分,因此我们需要寻找更环保、更安全的方式来进行煤矿开采。VR&…...

渲染路径RenderingPath
文章目录 前言一、什么是渲染路径二、渲染路径有哪些1、前向渲染路径2、延迟渲染路径3、顶点照明渲染路径(已过时)4、旧的渲染路径(已过时) 前言 渲染路径RenderingPath 一、什么是渲染路径 为进行光照计算而设计的渲染方式 二、渲染路径有哪些 1、前向…...
【Java】泛型 之 extends通配符
我们前面已经讲到了泛型的继承关系:Pair<Integer>不是Pair<Number>的子类。 假设我们定义了Pair<T>: public class Pair<T> { ... }然后,我们又针对Pair<Number>类型写了一个静态方法,它接收的参…...

光谱-空间特征分割提取:多光谱图像压缩
Spectral–Spatial Feature Partitioned Extraction Based on CNN for Multispectral Image Compression (基于CNN的光谱-空间特征分割提取多光谱图像压缩) 近年来,多光谱成像技术的迅速发展引起了各领域的高度重视,这就不可避免…...

绝缘子主要尺寸
声明 本文是学习GB-T 1000-2016 高压线路针式瓷绝缘子尺寸与特性. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了高压线路针式瓷绝缘子的结构型式、尺寸、机械特性和电气特性。 本标准适用于标称电压为10 kV 及以下、频率不高于…...
什么是哈希表?如何使用哈希表进行数据存储和查找?
什么是哈希表? 哈希表(Hash Table),也被称为散列表,是一种用于存储键值对数据的数据结构。它是一种非常高效的数据结构,可以实现快速的数据插入、查找和删除操作。哈希表的核心思想是通过将键(…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...