7、linux基础操作2
一、linux调度
1、crontab [选项]
1.1、了解
定时任务调度:指每隔指定的时间,执行特定的命令或程序。
基本语法:crontab [选项]
常用选项:
- e: 编辑定时任务
- l:查询定时任务
- r:删除当前用户的所有定时任务 例如:
crontab -e //然后输入调度内容在vim编译器里
*/1 * * * * ls -l /etc/ > /tmp/etc.txt
1.2、crontab的vim文件格式
* * * * * 要执行的命令
│ │ │ │ │
│ │ │ │ └── 星期几 (0-7, 0和7均代表周日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日 (1-31)
│ └──────── 小时 (0-23)
└────────── 分钟 (0-59)
注意:星期是0和7都为星期天。
2、at [选项] [时间]
- at命令是一次性定时执行任务计划,at的守护线程atd以后台的模式运行,检查作业队列来运行。
- 默认情况下,atd守护线程每60秒检查作业队列,有作业时会检查作业运行时间,如果时间与当前 时间匹配,则运行此作业。
- at命令是一次性定制的计划任务,执行完一个任务后就不再执行此任务了。
- 在使用at命令的时候,一定要保证atd进程的启动,可以用相关指令来查看
ps -ef | grep atd
。
- at [选项] [时间]
at [时间] 进入交互模式
at -l 查看任务id
at -r [任务id] 删除该任务
at -c [任务id] 查看任务id内容
at -v [任务id] 查看任务id的时间
-
时间格式:
-
例子
at now + 5 minutes
# 进入交互式输入(输入命令后按 Ctrl+D)
echo "Hello from at job" > ~/at_test.txt
<EOT> # 按 Ctrl+D 结束
at -l #查看任务ID号
二、磁盘分区
1、基础知识点
linux 会把一切都抽象成文件。
把设备等等分成一个子目录或文件等等,但是都由root管理,构成树结构。
- swap:交换分区
- boot:启动分区
- home:用户主目录
- 挂载就是把他们形成映射关系(简单理解:可以对应起来)。
- 挂载点就是对应的目录
查看分区信息:lsblk
在linux里面,硬盘有2种类型:
- IDE硬盘 hdx~
- hd:标识硬盘类型, IDE类型
- x:不同硬盘的分区(a基本盘,b基本从属盘,c辅助盘,d辅助从属盘)
- ~ 磁盘分区 1 2 3 4 5
- SCSI硬盘 sdx~
- sd:表示是SCSI硬盘
- x:代表是第几块硬盘(a:第一块 b:第二块 c:第3块硬盘 d:第4块硬盘)
- ~ 磁盘分区
NAME :驱动器标识
FSTYPE :文件系统类型
LABLE :文件系统 LABLE
UUID :分区唯一标识符,格式化磁盘后,会给分区分配一个32位的唯一的字符串
MOUNTPOINT :挂载点
2、查看磁盘列表与分区
2.1、查看列表、挂载和分区的普通方法
- ubuntu会有sudo 。
# 查看硬盘及分区详细信息(含型号、容量等)
sudo fdisk -l# 或使用现代替代工具
sudo parted -l#lsblk查看磁盘类型和挂载情况
lsblk
# lsblk -f 查看磁盘设备挂载情况
lsblk -f
3、新增硬盘
- vmvare里先启动你的centos或Ubuntu
启动
,然后可以点击虚拟机
,后再点击设置
, 选择硬件
添加硬盘
,选择磁盘类型
,点击创建新虚拟机磁盘
,设置大小,点击将虚拟机磁盘拆分成多个文件
。
- 打开虚拟机,会有一个设置。
4、给新增的硬盘分区
4.1、fdisk
fdisk 磁盘目录
例如创建了sdb,他在dev目录里
sudo fdisk /dev/sdb # 操作指定磁盘
- 交互命令
- m: 显示命令列表
- n: 新建分区(选择主/扩展分区)
- p: 查看当前分区表
- d: 删除分区
- w: 保存并退出
[root@kongchao03 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0xdf03b737 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):m
命令操作a toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partitiong create a new empty GPT partition tableG create an IRIX (SGI) partition tablel list known partition typesm print this menun add a new partitiono create a new empty DOS partition tablep print the partition tableq quit without saving changess create a new empty Sun disklabelt change a partition's system idu change display/entry unitsv verify the partition tablew write table to disk and exitx extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
5、格式化磁盘分区:为分区创建文件系统,准备存储数据。mkfs -t
mkfs -t ext4 /dev/sdb1 # 格式化
lsblk -f#查看分区详细信息
- 其中ext4是分区类型
6、挂载分区:将分区连接到操作系统的目录树,使其内容可以被访问。
6.1、mount方法【短暂挂载】
- 挂载语法:mount 设备名称 挂载目录 (挂载目录是任意的)
- 取消挂载:unmont 设备名或挂载点
- 比如 unmont /dev/sdb1
cd / #切换到根目录
mkdir newdir # 创建一个目录
mount /dev/sdb1 /newdisk/ #把sdb1与新目录进行挂载
lsblk -f #在MOUNTPOINT(挂载点)看是否成功
6.2、永久挂载
- 永久挂载就是可以自动挂载。
- vim打开
/etc/fstab
- 写入
/dev/sdb1 /newdir exit4 defaults
就行。/dev/sdb1
也可以换成UUID
。
- 写入
- 退出来后进行
mount -a
即可
7、磁盘情况查询
df -h #查看整个磁盘的占用情况
df -h [目录] #查询指定目录的磁盘占用情况
8、磁盘操作实用指令
- 统计opt文件夹下的文件个数
ls -l /opt | grep "^-" |wc -l
- 统计opt文件夹下的目录的个数
ls -l /opt | grep "^d" | wc -l # "^d" 以文件目录开头 wc -l 统 计个数
- 统计/opt文件下的文件的个数,包括子文件夹下的
ls -lR /opt | grep "^-" | wc -l # R 代表递归
- 统计/opt文件夹下的目录的个数,包括子文件夹下的
ls -lR /opt | grep "^d" | wc -l
- 以树状结构显示目录结构(如果没有tree,则使用 centos用yum install tree 安装,Ubuntu用apt代替install,并在root用户下安装)
yum install tree #安装tree tree 目录
三、网络
1、linux网络配置的指令
- ip addr 在linux查看ip地址[ip和addr之间有空格]
- ifconfig 在linux查看ip地址
- ping 是否ping通指定的ip地址
- ipconfig 在windows操作系统里面查看网络的ip地址
2、linux网络环境配置(固定ip的方式)
首先查看 ip是否是变化的。
那么进行固定。
- 第一步 编辑我们linux的网卡文件 这个网卡文件在/etc/sysconfig/network-scripts/ifcfg-ens33 打开这个文件,进行编辑
- 编辑网卡文件
- sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 打开
编辑
->虚拟网络编译器
->更改设置
->VMnet8
->DHCP设置
->查看ip地址的范围
->在ifcfg-ens33 添加IPADDR=“这里写的是ip地址范围内的随便一个”->添加子网掩码、网关到ifcfg-ens33
(网关在vmnet8的nat设置里)->最后加DNS1、DNS2
IPADDR=
NETMARSK=255.255.255.0
GETWAY=
DNS1=
DNS2=
3、设置主机名和host映射
查看主机名称方法
①hostname
②cat /etc/hostname
修改主机名
hostname new-hostname
也可以修改/etc/hostname指定主机名名称。注意,修改完成之后,需要重启linux系统才能生效。
在 Linux 中,/etc/hosts
文件用于将主机名映射到 IP 地址。这对于本地网络中的主机名解析非常有用。
思考:我们可以通过ping linux的ip地址能ping通linux。那么我们可不可以通过ping linux的主机名 来ping通linux呢,答案是不可以的。
下面图片是windows的cmd里面操作,按win+r键,再输入cmd就打开了
找到 找到 C:\Windows\System32\drivers\etc:
下面的hosts文件,进行相关的编辑:
输入一个ip和一个主机名。例如:
192.168.10.130 xq100 # ip地址是linux的ip地址
如何在linux里面通过本机的主机名来ping通主机呢?我们需要编辑/etc/hosts文件:
192.168.10.1 DESKTOP-EKI0P48 # ip是vmnet8的ip地址 后面的是windows的主机名称
四、linux服务管理
service(本质)就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如说 (mysql3306,sshd222,redis6379),因为我们又称为守护进程,在Linux中是重要的知识点。
1、service管理指令
service 服务名 [start|stop,reload,status]
- 在CentOs7.0后,很多服务不再使用Service,而是systemctl
systemctl [start|stop|restart|reload|status|enable|disable] 服务名
-
service 指令管理的服务在
/etc/init.d
查看
例如:我们可以简单使用一下,比如查看network服务的状态: -
要知道更多系统服务,可以使用setup命令 输入后选择
系统服务
选择系统服务,回车,我们可以看到系统服务的详细信息:
注意:
- [*] 代表这些系统服务会随着开机自启动而启动
- 如果我们想去掉星号或者加上星号,上下按键切换到对应的服务
按空格键
即可。 - 使用Tab键选择OK或Cancel.
2、systemctl服务管理指令
systemctl 指令管理的服务在/usr/lib/systemd/system
中查看。
- 服务启动/停止/重启/重载/查看状态: systemctl [start | stop | restart | status] 服务名
- 查看所有服务的自启动状态
- 防火墙例子
[root@xq100 system]# systemctl list-unit-files | grep firewall #得到服务名 firewalld.service enabled
[root@xq100 system]# systemctl status firewalld.service # 查看防火墙状态
[root@xq100 system]# systemctl stop firewalld.service # 停止防火墙状态
[root@xq100 system]# systemctl restart firewalld.service # 重启防火墙
- 服务的状态如下:
- masked 此服务禁止自启动
- static 该服务无法自启动,只能作为其他文件的依赖
- enabled 已配置为自启动
- disabled 未配置为自启动
- 查看某一服务是否自启动
[root@xq100 system]# systemctl is-enabled firewalld.service # 知道完整服务名 enabled
- 设置服务自启动 (服务运行级别 3、5)
[root@xq100 system]# systemctl enable firewalld.service
- 设置服务禁用自启动 (服务运行级别 3、5)
[root@xq100 system]# systemctl disable firewalld.service
五、日志
1、了解
- 日志可以理解成:记录了每天发生的事情。
- 一般在
var/log
下
2、日志服务类型、级别
- 第一个* :日志类型
- 第2个* :日志级别
注意:从上到下,日志级别从低到高,记录的信息也越来越少。
由日志服务rsyslogd记录的日志文件,日志文件的格式包含以下4列:
- 事件产生的时间
- 产生事件的服务器(主机名)
- 产生事件的服务名和程序名
- 事件的具体信息
3、自定义日志
- rsyslogd服务是处理日志的核心服务,为了防止日志服务出现问题,请确保下面两项:
- 第1个:
- rsyslogd服务处在启动状态
sudo ps -aux | grep "rsyslog" | grep -v "grep"
- 第2个:
- rsyslogd服务可以自启动(处在enabled状态)
systemctl is-enabled rsyslog
- 然后修改自定义日志文件的步骤
- 第1步:
- 修改配置日志文件
/etc/rsyslog.conf
- 修改配置日志文件
sudo vim /etc/rsyslog.conf
- 第2步:
- 增加一个新日志文件 xq.log
# add xq.log文件
*.* /var/log/xq.log #*就是什么类型都有,*什么级别都可以
- 第3步:
- 重新启动reboot
reboot
- 第4步:
- 查看日志
cat /var/log/xq.log
4、自定义日志轮替原则
- 是指把一些不需要的旧文件,按一定规则进行删除。
- 需要
/etc/logrotate.conf
这个配置文件进行管理。 - 打开
logrotate.conf
,我们可以看见 ,一些默认的参数。
vim /etc/logrotate.conf
- weekly:表示每周轮替一次
- rotate 4:表示同一个日志文件最多保存四个版本 多了会删除
- create:产生轮替之后生成一个新的空白的文件放在其后
- dateext:日志轮替文件名字的命名方式
- 如果配置文件中有dateext参数:日志会用日期作为日志文件的后缀,例如“message20220801”。
- 如果没用dateext:日志需要进行改名,当第一次日志轮替时,当前的“secure”改名为“secure.1”,然后新建“secure”日志用来保存新的日志。第二次日志轮替时,当前的
“secure.1”会自动更名为“secure.2”,“secure”更名为“secure.1”,新建“secure”以保存新的日志。以此类推。- include/etc/logrotate.d:可以将自定义的日志轮替规则写到这个文件里去。
- 例如:
日志文件地址{参数
}
- daily:轮替周期 每天
- weekly:轮替周期 每周
- monthly:轮替周期 每月
- rotate [num]:保存日志文件的个数
- compress:轮替时对旧日志进行压缩
- create mode owner group:建立新日志的同时指定权限 所有者 所属组
- mail address:日志轮替时输出内容通过邮件发送到指定的邮件地址
- missingok:如果日志不存在则忽略日志的警告信息
- notifempty:如果日志为空文件则不进行日志轮替
- minsize [size]:日志轮替的最小值 即超过该大小才会轮替 否则到达轮替周期也不会轮替
- size [size]:日志达到指定大小进行轮替 而不是按照轮替的时间周期
- dateext:使用日期作为日志轮替文件的后缀
- sharedscripts:在此关键字之后的脚本只执行一次
- prerotate/endscripts:在日志轮替之前执行脚本命令
- postrotate/endscripts:在日志轮替之后执行脚本命令
例子:自定义xq.log文件
5、linux中的内存日志
-
在linux中,有一部分日志信息是没有写到日志文件里面去的,而是写在内存中的。这些日志的特点是日
志信息都在随时发生变化。比如linux内核的日志信息。内存日志还有一个特点是linux系统在重新启动的时候,内存日志就会被清空。 -
journalctl查看所有的内存日志
-
journalctl -n 3查看最新3条
-
journalctl -p err查看报错日志
-
journalctl -o verbose日志详细内容
-
journalctl --since 15:00 --until 15:10查看区间时间内的日志 可加日期
相关文章:
7、linux基础操作2
一、linux调度 1、crontab [选项] 1.1、了解 定时任务调度:指每隔指定的时间,执行特定的命令或程序。 基本语法:crontab [选项] 常用选项: e: 编辑定时任务l:查询定时任务r:删除当前用户的所有定时任务…...
大数据管理专业想求职数据分析岗,如何提升面试通过率?
从技能到策略,解锁高薪岗位的六大核心逻辑 在数字化浪潮席卷全球的今天,数据分析岗位的竞争愈发激烈。对于大数据管理专业的学生而言,如何从众多求职者中脱颖而出?本文结合行业趋势与实战经验,提炼出提升面试通过率的…...
移动端六大语言速记:第15部分 - 其他方面
移动端六大语言速记:第15部分 - 其他方面 本文将对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言的其他重要特性,帮助开发者全面了解各语言的独特优势和应用场景。 15.1 语言特有功能 各语言特有功能对比: 语言特有功能描述Java注解(Annotat…...
3.1.3.4 Spring Boot使用使用Listener组件
在Spring Boot中,使用Listener组件可以监听和响应应用中的各种事件。首先,创建自定义事件类CustomEvent,继承自ApplicationEvent。然后,创建事件监听器CustomEventListener,使用EventListener注解标记监听方法。接下来…...
基于关键字定位的自动化PDF合同拆分
需求背景: 问题描述: 我有一份包含多份合同的PDF文件,需要将这些合同分开并进行解析。 传统方法(如以固定页数作为分割点)不够灵活,无法满足需求。 现有方法的不足: 网上找到的工具大多依赖手动…...
ssh连接远程Host key verification failed.
问题描述 在对已部署的项目进行维护过程中,遇到的一个小问题,记录一下。 SSH连接云服务器ssh xxx云服务器IP地址,提示: The authenticity of host xxxxxx (xx.xxx.123.321) cant be established. ECDSA key fingerprint is SHA…...
Matlab 汽车ABS的bangbang控制和模糊PID控制
1、内容简介 Matlab 197-汽车ABS的bangbang控制和模糊PID控制 可以交流、咨询、答疑 2、内容说明 略 摘要:本文旨在设计一种利用模糊控制理论优化的pid控制器,控制abs系统,达到对滑移率最佳控制范围的要求 ,所提出的方案采用级联…...
kotlin的takeIf使用
takeIf用于判断指定对象是否满足条件,满足就返回该对象自身,不满足返回null。因为可以返回对象自身,所以可以用作链式调用,以简化代码,又因takeIf可能返回空,所以常常和let结合使用,示例如下&am…...
MySQL 进阶 - 2 ( 9000 字详解)
一: SQL 优化 1.1 插入数据 1.1.1 批量插入 单条 INSERT 语句执行时,需经历语法解析、事务提交、磁盘 I/O 等多个步骤。批量插入将多条数据合并为一条 SQL,能够减少网络通信和事务开销。 -- 单条插入(低效) INSERT…...
Devops之GitOps:什么是Gitops,以及它有什么优势
GitOps 定义 GitOps 是一种基于版本控制系统(如 Git)的运维实践,将 Git 作为基础设施和应用程序的唯一事实来源。通过声明式配置,系统自动同步 Git 仓库中的期望状态到实际运行环境,实现持续交付和自动化运维。其核心…...
VSCode和Fitten Code
提示:本文为学习记录,若有错误,请联系作者。 文章目录 一、离线安装二、在线安装总结 一、离线安装 访问 Open VSX 镜像站 打开 https://open-vsx.org,搜索 Fitten Code 点击“从VSIX安装”,选择下载的VSIX即可。安装…...
在 Visual Studio Code 中安装 Python 环境
在 Visual Studio Code 中安装 Python 环境 1. 安装 Visual Studio Code 首先,下载并安装 Visual Studio Code(VS Code): 下载链接:Visual Studio Code 官网安装步骤:按照下载页面的说明进行安装。 2. …...
[问题帖] vscode 重启远程终端
原理 有的时候,在vscode 远程ssh连接到服务器的时候,可能遇到需要重启终端才能生效的配置,比如add group的时候,而此时无论你是关闭vscode终端重启,还是reload窗口都是没用的。 因为不管你本地是否连接了远程的vscode服…...
PostgreSQL技术大讲堂 - 第86讲:数据安全之--data_checksums天使与魔鬼
PostgreSQL技术大讲堂 - 第86讲,主题:数据安全之--data_checksums天使与魔鬼 1、data_checksums特性 2、避开DML规则,嫁接非法数据并合法化 3、避开约束规则,嫁接非法数据到表中 4、避开数据检查,读取坏块中的数据…...
No staged files match any configured task
我在拉取一个新项目的时候,进行 git commit 的时候就出现了这个问题 然后我现在来说一下我出现这个问题的解决思路 我们点击 “显示命令输出” 我们把第二行的错误 subject may not be empty [subject-empty] 复制搜索一下 这是其他人写的 博客:subje…...
Sqlite3 查看db文件
以下是一些 SQLite3 常用命令的整理,涵盖数据库操作、表管理、数据查询等场景: 1. 数据库连接与退出 打开/创建数据库:sqlite3 filename.db # 打开或创建数据库文件退出 SQLite3 命令行:.exit # 退出 .quit …...
【leetcode hot 100 152】乘积最大子数组
错误解法:db[i]表示以i结尾的最大的非空连续,动态规划:dp[i] Math.max(nums[i], nums[i] * dp[i - 1]); class Solution {public int maxProduct(int[] nums) {int n nums.length;int[] dp new int[n]; // db[i]表示以i结尾的最大的非空连…...
微信小程序实时日志记录-接口监控
文章目录 微信小程序如何抓取日志,分析用户异常问题可查看用户具体页面行为操作web体验分析 腾讯小程序平台,提供了非常好用的,。 web分析工…...
【C++刷题】二叉树基础OJ题
📝前言说明: 本专栏主要记录本人的基础算法学习以及刷题记录,使用语言为C。 每道题我会给出LeetCode上的题号(如果有题号),题目,以及最后通过的代码。没有题号的题目大多来自牛客网。对于题目的…...
CSS高级技巧
目录 一、精灵图 二、字体图标 三、CSS制作三角形 四、CSS用户界面样式 1、鼠标样式 cursor 2、轮廓线 outline 3、防止拖拽文本域 resize 五、vertical-align 属性 六、溢出的文字省略号显示 1、单行文本溢出显示省略号 2、多行文本溢出显示省略号 七、常见布局技…...
70. 爬楼梯:动态规划
题目来源 70. 爬楼梯 - 力扣(LeetCode) 题目描述 思路 1.观察每个较少的台阶的方法 2.dp[0,1,2,3,5,8,13]---->dp[i]表示爬上第i阶的方法数 3.观察dp:dp[i]dp[i-1]dp[i-2]; 代码 public int climbStairs(int n) {int[] dp new int…...
使用治疗前MR图像预测脑膜瘤Ki-67的多模态深度学习模型
大家好,我是带我去滑雪! 脑膜瘤是一种常见的脑部肿瘤,Ki-67作为肿瘤细胞增殖的标志物,对于评估肿瘤的生物学行为、预后以及治疗方案的制定具有至关重要的作用。然而,传统的Ki-67检测依赖于组织学切片和免疫组化染色等方…...
Skynet.socket 函数族使用详解
目录 Skynet.socket 函数族使用详解核心功能分类一、TCP 连接管理1. 监听端口2. 建立连接3. 关闭连接 二、数据读写操作1. 阻塞式读取2. 写入数据2.1 socket.write(fd, data) 的返回值2.2 示例代码2.3 关键注意事项2.4 与其他函数的区别2.5 底层原理2.6 总结 三、UDP 处理1. 创…...
Python signal 模块详解:优雅处理异步事件
诸神缄默不语-个人技术博文与视频目录 在 Linux 或类 Unix 系统中,信号(Signal)是一种用于进程间通信的机制,允许操作系统或其他进程向目标进程发送异步通知。 Python 的 signal 模块提供了对这些信号的访问和处理能力࿰…...
[LeetCode 189] 轮转数组
[LeetCode 189] 轮转数组 题目描述: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 示例 2: 输入:nums [-1,-100,3,99], k 2 …...
【Qt】qDebug() << “中文测试“; 乱码问题
环境 Qt Creator版本:4.7.1 编译器:MSVC2015_32bit 解法一 在.pro文件中添加 msvc:QMAKE_CXXFLAGS -execution-charset:utf-8注意: 1、需要清理项目,并重新qmake,然后构建。 测试项目下载:https://do…...
解析Java根基:Object类核心方法
Object类常见方法解析 在Java编程中,Object类是所有类的根类,它包含了许多实用的方法,这些方法在不同的场景下发挥着重要作用。下面我们来详细了解一下Object类中的一些常见方法。 1. toString方法 toString方法是用于将对象转换为字符串表…...
最近在工作中感受到了设计模式的重要性
之前了解设计模式:只是应付一下面试 在之前一年多的工作中也没遇到使用场景 最近在搭建验证环境的时候,才发现这玩意这么重要 首先是设计模式的使用场景一定是在很复杂繁琐的场景下进行的 之所以说是复杂/繁琐的场景,因为一些场景也许逻辑不难…...
Docker 镜像、容器与数据卷的高效管理:最佳实践与自动化脚本20250411
Docker 镜像、容器与数据卷的高效管理:最佳实践与自动化脚本 引言 在现代软件开发中,容器化技术正变得越来越重要。Docker 作为容器化的代表工具,在各大企业中得到了广泛的应用。然而,随着容器化应用的增多,如何高效…...
[UEC++]UE5C++各类变量相关知识及其API(更新中)
基础变量 UE自己定义的目的:1.跨平台;2.兼容反射;3.方便宏替换 FString 基础赋值与初始化 遍历与内存 迭代器访问 清除系列操作 合并 插入与移除 RemoveFromStart是从开头看,没有则移除失败返回false; RemoveFromEnd是…...
C++中的设计模式
设计模式是软件工程中用于解决常见问题的可复用解决方案。它们提供了一种标准化的方法来设计和实现软件系统,从而提高代码的可维护性、可扩展性和可重用性。C 是一种支持多种编程范式(如面向对象、泛型编程等)的语言,因此可以方便…...
Java 设计模式:装饰者模式详解
Java 设计模式:装饰者模式详解 装饰者模式(Decorator Pattern)是一种结构型设计模式,它通过动态地为对象添加新功能,扩展其行为,而无需修改原有类的代码。装饰者模式遵循“开闭原则”,提供了比…...
C++ 大数相加(简要版)
#include <algorithm> #include <iterator> class Solution { public:/*** 计算两个数之和* param s string字符串 表示第一个整数* param t string字符串 表示第二个整数* return string字符串*/string solve(string s, string t) {// 处理空字符串的情况…...
Spring IoC深度解析:掌控Bean存储艺术与分层架构的智慧
一、IoC的本质:从"造物主"到"使用者"的思维跃迁 在传统编程中,开发者像"造物主"一样亲手创建每个对象(new UserController()),并管理它们的依赖关系。这种方式导致代码高度耦合…...
8.4 容器2
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 8.4.3 TabControl(选项卡)控件 TabControl控件可以通过设置多个选项卡页(TabPage控件)…...
一组可能的机器学习问题列表
线性回归与多项式拟合的关系最小二乘法在机器学习中的应用梯度下降是如何实现的贝叶斯分类器的应用场景高斯分布与判定在哪里用到模型的评估有哪些参数误差中的偏差和方差定义训练集分组的快捷方式如何度量模型性能查准率查全率的定义roc,aux的含义正则化是什么意思k均值用来解…...
Android 权限列表
权限名称描述android.permission.ACCESS_CHECKIN_PROPERTIES访问登记属性读取或写入登记 check-in 数据库属性表的权限android.permission.ACCESS_COARSE_LOCATION获取粗略位置通过 WiFi 或移动基站的方式获取用户粗略的经纬度信息,定位精度大概误差在 30~1500 米an…...
探索在视频深度伪造中的细微的表情变化或对特定面部特征的小改动检测方法
概述 2019 年,美国众议院议长南希佩洛西成为了一次针对性的、技术含量相对较低的“深度伪造”式攻击的目标。真实的佩洛西视频被编辑,让她看起来像是喝醉了酒。这一不真实的事件在真相大白之前被分享了数百万次,而且在一些人没有关注后续报道…...
调用阿里云API实现身份证文字识别
TOC# 1.作者介绍 姚元帅,男,西安工程大学电子信息学院,2024级研究生 研究方向:机器视觉与人工智能 电子邮件:3183969029qq.com 乔幸荣,女,西安工程大学电子信息学院,2024级研究生&a…...
使用UFW+IPSET禁用海外IP配置持久化操作
上一章我们介绍了如何使用ufwipset禁用海外IP,但是如果服务器重启动,之前的配置就无效了,所以让配置持久化可以避免我们反复设置的麻烦。 IPSET配置持久化的方法有很多种,目前我配置成的是设置ipset后台服务,具体方法…...
深入Linux内核理解socket的本质
本文将从一个初学者的角度开始聊起,让大家了解 Socket 是什么以及它的原理和内核实现。 一、Socket 的概念 Socket 就如同我们日常生活中的插头与插座的连接关系。在网络编程中,Socket 是一种实现网络通信的接口或机制。 想象一下,插头插入…...
Python使用爬虫IP抓取数据过程
用户之前询问了不同语言的爬虫示例,特别是Python、Node.js和Ruby。现在他们希望详细扩展Python版本中使用代理IP的过程。 用户可能已经掌握了基本的爬虫编写,但遇到了IP被封的问题,或者想防止被封。他们需要知道如何集成代理IP到现有的代码中…...
通过MCP+数据库实现AI检索和分析
通过 MCP(Multi-Agent Collaboration Platform,多智能体协作平台) 数据库,实现一个AI检索和分析系统。 一、系统目标 实现通过 AI 多智能体对结构化(数据库)和非结构化(文档、文本)…...
51单片机烧录程序演示教程
51单片机烧录程序演示教程 51单片机是一种经典的8位单片机,广泛应用于嵌入式系统开发中。烧录程序是指将编译好的代码下载到单片机的存储器中,以便单片机能够按照程序运行。以下是详细的烧录流程和步骤。 所需工具和材料 硬件: 51单片机开发…...
06软件测试需求分析案例-添加用户
给职业顾问部的老师添加用户密码后,他们才能登录使用该软件。只有admin账户具有添加用户、修改用户信息、删除用户的权利。admin是经理或团队的第一个人的账号,后面招一个教师就添加一个账号。 通读需求是提取信息,提出问题,输出…...
Asp.NET Core WebApi IOptions<T>详解
IOptions<T> 是 ASP.NET Core 中用于访问配置数据的一个接口,它属于 Microsoft.Extensions.Options 命名空间。通过 IOptions<T>,你可以将配置绑定到强类型的类中,并在应用程序的不同部分中注入和使用这些配置。这种方式不仅使得…...
Gartner发布软件供应链安全市场指南:软件供应链安全工具的8个强制功能、9个通用功能及全球29家供应商
攻击者的目标是由开源和商业软件依赖项、第三方 API 和 DevOps 工具链组成的软件供应链。软件工程领导者可以使用软件供应链安全工具来保护他们的软件免受这些攻击的连锁影响。 主要发现 越来越多的软件工程团队现在负责解决软件供应链安全 (SSCS) 需求。 软件工件、开发人员身…...
(四十三)Dart 中的空安全与 `required` 关键字
Dart 中的空安全与 required 关键字 空安全(Null Safety) 空安全(Null Safety)是 Dart 语言的一项重要特性,旨在帮助开发者避免空指针异常(NullPointerException)。空安全通过在编译时检查变量…...
《解锁分布式软总线:构建智能设备统一管理平台》
智能设备的数量呈爆发式增长,从智能家居里的各类电器,到智能办公中的电脑、打印机,再到工业领域的各种自动化设备,不一而足。如何对这些纷繁复杂的智能设备进行有效管理,成为摆在我们面前的一道难题。分布式软总线技术…...
【android bluetooth 协议分析 01】【HCI 层介绍 1】【hci_packets.pdl 介绍】
在 AOSP 的蓝牙协议栈 (Gabeldorsche) 中,hci_packets.pdl 是一个 协议描述语言文件,用于定义 HCI (Host Controller Interface) 层的数据包结构和通信协议。以下是详细解析: 1. 文件作用 system/gd/hci/hci_packets.pdl 协议自动化生成&…...