Kali 软件管理
kali 更新
1. 查看发行版本
┌──(root㉿kali)-[~]
└─# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2023.2
Codename: kali-rolling
2. 查看内核版本
┌──(root㉿kali)-[~]
└─# uname -r
6.3.0-kali1-amd64
3. 软件仓库配置文件(.list结尾)
软件存储库存储在 /etc/apt/sources.list 文件中
还可以把一些自定义或单独的应用配置文件放在 /etc/apt/sources.list.d/*.list 中
4. 更新工具(apt-get 命令)
──(root㉿kali)-[~]
└─# apt-get -h
apt 2.6.1 (amd64)
用法: apt-get [选项] 命令apt-get [选项] install|remove 软件包1 [软件包2 ...]apt-get [选项] source 软件包1 [软件包2 ...]apt-get 可以从认证软件源下载软件包及相关信息,以便安装和升级软件包,
或者用于移除软件包。在这些过程中,软件包依赖会被妥善处理。常用命令:update - 取回更新的软件包列表信息upgrade - 进行一次升级install - 安装新的软件包(注:软件包名称应当类似 libc6 而非 libc6.deb)reinstall - 重新安装软件包(注:软件包名称应当类似 libc6 而非 libc6.deb)remove - 卸载软件包purge - 卸载并清除软件包的配置autoremove - 卸载所有自动安装且不再使用的软件包dist-upgrade - 发行版升级,见 apt-get(8)dselect-upgrade - 根据 dselect 的选择来进行升级build-dep - 为源码包配置所需的编译依赖关系satisfy - 使系统满足依赖关系字符串clean - 删除所有已下载的包文件autoclean - 删除已下载的旧包文件check - 核对以确认系统的依赖关系的完整性source - 下载源码包文件download - 下载指定的二进制包到当前目录changelog - 下载指定软件包,并显示其变更日志(changelog)
Kali 的更新步骤:
1. apt-get update 更新软件包的列表 (索引)
解决更新软件包列表失败: apt-get update --fix-missing
┌──(root㉿kali)-[~]
└─# apt-get update
获取:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease [41.2 kB]
获取:2 http://mirrors.ustc.edu.cn/kali kali-rolling/main Sources [15.8 MB]
获取:3 http://mirrors.ustc.edu.cn/kali kali-rolling/contrib Sources [78.0 kB]
获取:4 http://mirrors.ustc.edu.cn/kali kali-rolling/non-free Sources [129 kB]
获取:5 http://mirrors.ustc.edu.cn/kali kali-rolling/main amd64 Packages [19.4 MB]
获取:6 http://mirrors.ustc.edu.cn/kali kali-rolling/main amd64 Contents (deb) [45.7 MB]
获取:7 http://mirrors.ustc.edu.cn/kali kali-rolling/non-free amd64 Packages [218 kB]
获取:8 http://mirrors.ustc.edu.cn/kali kali-rolling/non-free amd64 Contents (deb) [907 kB]
获取:9 http://mirrors.ustc.edu.cn/kali kali-rolling/contrib amd64 Packages [115 kB]
获取:10 http://mirrors.ustc.edu.cn/kali kali-rolling/contrib amd64 Contents (deb) [220 kB]
已下载 82.6 MB,耗时 4分 14秒 (325 kB/s)
正在读取软件包列表... 完成
2. apt-get upgrade更新软件包(进行一次升级)
┌──(root㉿kali)-[~]
└─# apt-get upgrade
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
正在计算更新... 完成
下列软件包是自动安装的并且现在不需要了:
3. apt-get dist-upgrade将系统升级到最新版本
┌──(root㉿kali)-[~]
└─# apt-get dist-upgrade
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
正在计算更新... 完成
4. apt-get clean #清除更新痕迹//可选
搜索 - 安装 - 删除软件
Advanced Packaging Tool, or apt 主要的命令就是apt-get,通过软件仓库实现对软件包的管理,可以很好地解决软件包之间的相互依赖关系
1. 搜索
apt-cache 可以查询和显示已安装和可安装软件包的可用信息它专门工作在本地的数据缓存上,而这些缓存可以通过比如apt-get 的“update’命令来更新
┌──(root㉿kali)-[~]
└─# apt-cache -h
apt 2.7.3 (amd64)
用法: apt-cache [选项] 命令apt-cache [选项] show 软件包1 [软件包2 ...]apt-cache 可以查询和显示已安装和可安装软件包的可用信息。
它专门工作在本地的数据缓存上,而这些缓存可以通过比如
apt-get 的 'update' 命令来更新。如果距离上一次更新的时间太久,
那么它显示的信息可能就会过时。不过作为交换,apt-cache 不依赖
当前软件源的可用性(比如:离线状态)。常用命令:showsrc - 显示源文件的各项记录search - 根据正则表达式搜索软件包列表depends - 显示该软件包的依赖关系信息rdepends - 显示所有依赖于该软件包的软件包名字show - 以便于阅读的格式介绍该软件包pkgnames - 列出所有软件包的名字policy - 显示软件包的安装设置状态
常用的命令选项
- search- 根据正则表达式搜索软件包列表
- show-以便于阅读的格式介绍该软件包
┌──(root㉿kali)-[~]
└─# apt-cache search vsftpd
ccze - robust, modular log coloriser
resource-agents - Cluster Resource Agents
vsftpd - lightweight, efficient FTP server written for security
vsftpd-dbg - lightweight, efficient FTP server written for security (debug)
yasat - simple stupid audit tool## 正则表达式
┌──(root㉿kali)-[~] ## ^ 开始
└─# apt-cache search ^vsftpd
vsftpd - lightweight, efficient FTP server written for security
vsftpd-dbg - lightweight, efficient FTP server written for security (debug)┌──(root㉿kali)-[~] ## 查看
└─# apt-cache show vsftpd
Package: vsftpd
Source: vsftpd (3.0.3-13)
Version: 3.0.3-13+b2
Installed-Size: 343
Maintainer: Keng-Yu Lin <kengyu@debian.org>
Architecture: amd64
Replaces: ftp-server
Provides: ftp-server
Depends: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.34), libcap2 (>= 1:2.10), libpam0g (>= 0.99.7.1), libssl3 (>= 3.0.0), libwrap0 (>= 7.6-4~), adduser, libpam-modules, lsb-base (>= 3.0-6), netbase, procps, sysvinit-utils (>= 2.96)
管理工具 dpkg
Debian的软件包格式 *.deb (管理工具是dpkg) dpkg - package manager for
┌──(root㉿kali)-[~]
└─# dpkg --help
用法:dpkg [<选项>...] <命令>命令:-i|--install <.deb 文件名> ... | -R|--recursive <目录> ...--unpack <.deb 文件名> ... | -R|--recursive <目录> ...-A|--record-avail <.deb 文件名> ... | -R|--recursive <目录> ...--configure <软件包名> ... | -a|--pending--triggers-only <软件包名> ... | -a|--pending-r|--remove <软件包名> ... | -a|--pending-P|--purge <软件包名> ... | -a|--pending-V|--verify <软件包名> ... 检查包的完整性。--get-selections [<表达式> ...] 把已选中的软件包列表打印到标准输出。--set-selections 从标准输入里读出要选择的软件。--clear-selections 取消选中所有非必需的软件包。--update-avail <软件包文件> 替换现有可安装的软件包信息。--merge-avail <软件包文件> 把文件中的信息合并到系统中。--clear-avail 清除现有的软件包信息。--forget-old-unavail 忘却已被卸载的不可安装的软件包。-s|--status <软件包名> ... 显示指定软件包的详细状态。-p|--print-avail <软件包名> ... 显示可供安装的软件版本。-L|--listfiles <软件包名> ... 列出属于指定软件包的文件。-l|--list [<表达式> ...] 简明地列出软件包的状态。-S|--search <表达式> ... 搜索含有指定文件的软件包。-C|--audit [<表达式> ...] 检查是否有软件包残损。--yet-to-unpack 列出标记为待解压的软件包。--predep-package 列出待解压的预依赖。--add-architecture <体系结构> 添加 <体系结构> 到体系结构列表。--remove-architecture <体系结构> 从体系结构列表中移除 <体系结构>。--print-architecture 显示 dpkg 体系结构。--print-foreign-architectures 显示已启用的异质体系结构。--assert-<特性> 对指定特性启用断言支持。--validate-<属性> <字符串> 验证一个 <属性>的 <字符串>。--compare-versions <a> <关系> <b> 比较版本号 - 见下。--force-help 显示本强制选项的帮助信息。-Dh|--debug=help 显示有关出错调试的帮助信息。-?, --help 显示本帮助信息。--version 显示版本信息。可验证的属性:pkgname, archname, trigname, version.调用 dpkg 并带参数 -b, --build, -c, --contents, -e, --control, -I, --info,-f, --field, -x, --extract, -X, --vextract, --ctrl-tarfile, --fsys-tarfile
是针对归档文件的。 (输入 dpkg-deb --help 获取帮助)选项:--admindir=<目录> 使用指定 <目录> 而非 /var/lib/dpkg。--root=<目录> 安装到另一个根目录下。--instdir=<目录> 改变安装目录的同时保持管理目录不变。--pre-invoke=<命令> 设置调用前钩子。--post-invoke=<命令> 设置调用后钩子。--path-exclude=<表达式> 不要安装匹配Shell表达式的路径。--path-include=<表达式> 在排除模式后再包含一个模式。-O|--selected-only 跳过没有被选中安装或升级的软件包。-E|--skip-same-version 跳过版本与已安装软件版本相同的软件包。-G|--refuse-downgrade 跳过版本早于已安装软件版本的的软件包。-B|--auto-deconfigure 就算会损坏其他软件包,也要安装。--[no-]triggers 跳过或强制随之发生的触发器处理。--verify-format=<格式> 检查输出格式(支持的值:'rpm')--no-pager 禁用任何分页器。--no-debsig 不去尝试验证软件包的签名。--no-act|--dry-run|--simulate仅报告要执行的操作 - 但是不执行。-D|--debug=<八进制数> 开启调试(参见 -Dhelp 或者 --debug=help)。--status-fd <n> 发送状态更新到文件描述符<n>。--status-logger=<命令> 发送状态更新到 <命令> 的标准输入。--log=<文件名> 将状态更新和操作信息到 <文件名>。--ignore-depends=<软件包>[,...]忽略关于 <软件包> 的所有依赖关系。--force-<项目>... 忽视遇到的问题(参见 --force-help)。--no-force-<项目>[,...] 遇到指定问题时停止。--refuse-<项目>[,...] 同上。--abort-after <n> 累计遇到 <n> 个错误后中止。--robot 对某些命令使用机器可读的输出。可供--compare-versions 使用的比较运算符有:lt le eq ne ge gt (如果版本号为空,那么就认为它先于任意版本号);lt-nl le-nl ge-nl gt-nl (如果版本号为空,那么就认为它后于任意版本号);< << <= = >= >> > (仅仅是为了与主控文件的语法兼容)。'apt' 和 'aptitude' 提供了更为便利的软件包管理。
DebianCentos、RedHat的软件包格式*.rpm (管理工具是rpm)
┌──(root㉿kali)-[~]
└─# dpkg -l
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触 >
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称 版本 体系结>
+++-==============================================-====================================-======>
ii acl 2.3.1-3 amd64 >
ii adduser 3.137 all >
ii adwaita-icon-theme 43-1 all >
ii aircrack-ng 1:1.7-5 amd64 >
ii alsa-topology-conf 1.2.5.1-2 all >
ii alsa-ucm-conf 1.2.9-1 all >
ii amass 4.1.0-0kali1 amd64 >
ii amass-common 4.1.0-0kali1 all >
ii amd64-microcode 3.20230808.1.1 amd64 >
ii apache2 2.4.57-2 amd64 >
ii apache2-bin 2.4.57-2 amd64 >
ii apache2-data 2.4.57-2 all >
ii apache2-utils 2.4.57-2 amd64 >
ii apparmor 3.0.8-3 amd64 >
ii apt 2.7.3 amd64 >## 查询 dpkg -l | grep less┌──(root㉿kali)-[~]
└─# dpkg -l | grep less
ii aircrack-ng 1:1.7-5 amd64 wireless WEP/WPA cracking utilities
ii default-jre-headless 2:1.17-74 amd64 Standard Java or Java compatible Runtime (headless)
ii firmware-ath9k-htc 1.4.0-108-gd856466+dfsg1-2+kali2 all firmware for AR7010 and AR9271 USB wireless adapters
ii firmware-atheros 20230515-3+kali1 all Binary firmware for Qualcomm Atheros wireless cards
ii firmware-brcm80211 20230515-3+kali1 all Binary firmware for Broadcom/Cypress 802.11 wireless cards
ii firmware-iwlwifi 20230515-3+kali1 all Binary firmware for Intel Wireless cards
ii firmware-libertas 20230515-3+kali1 all Binary firmware for Marvell wireless cards
2. 安装软件
## 查询 dpkg -l | grep vsftpd
┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd## 安装 apt-get install vsftpd
┌──(root㉿kali)-[~]
└─# apt-get install vsftpd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成 ┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd
ii vsftpd 3.0.3-13+b2 amd64 lightweight, efficient FTP server written for security
3. 删除软件包
ot㉿kali)-[~]
└─# apt-get remove vsftpd## 以上命令删除 软件后还会存在配置文件
┌──(root㉿kali)-[~]
└─# dpkg -L vsftpd
/etc
/etc/ftpusers
/etc/init.d
/etc/init.d/vsftpd
/etc/logrotate.d
/etc/logrotate.d/vsftpd
/etc/pam.d
/etc/pam.d/vsftpd
/etc/vsftpd.conf┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd
rc vsftpd 3.0.3-13+b2 amd64 lightweight, efficient FTP server written for security## 删除2 apt-get purge vsftpd
┌──(root㉿kali)-[~]
└─# apt-get purge vsftpd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了 ┌──(root㉿kali)-[~]
└─# dpkg -L vsftpd
dpkg-query: 软件包 vsftpd 没有被安装
通过 dpkg --contents (= dpkg-deb --contents) 来列出档案文件清单。┌──(root㉿kali)-[~]
└─# dpkg -l | grep vsftpd
4. 搜索 apt-file
apt-file 可以根据命令搜索软件包
┌──(root㉿kali)-[~]
└─# apt-file -h apt-file [options] action [pattern]
apt-file [options] -f action <file>
apt-file [options] -D action <debfile>Pattern options:
================--fixed-string -F Do not expand pattern--from-deb -D Use file list of .deb package(s) aspatterns; implies -F--from-file -f Read patterns from file(s), one per line(use '-' for stdin)--ignore-case -i Ignore case distinctions--regexp -x pattern is a regular expression--substring-match pattern is a substring (no glob/regex)Search filter options:
======================--architecture -a <arch> Use specific architecture [L]--index-names -I <names> Only search indices listed in <names> [L]--filter-suites <suites> Only search indices for the listed <suites> [L](E.g. "unstable")--filter-origins <origins> Only search indices from <origins> [L](E.g. "Debian")Other options:
==============--config -c <file> Parse the given APT config file [R]--option -o <A::B>=<V> Set the APT config option A::B to "V" [R]--package-only -l Only display packages name--stream-results Emit results immediately (without deduplication)--verbose -v run in verbose mode [R]--help -h Show this help.-- End of options (necessary if patternstarts with a '-')[L]: Takes a comma-separated list of values.
[R]: The option can be used repeatedlyAction:list|show <pattern> List files in packageslist-indices List indices configured in APT.search|find <pattern> Search files in packagesupdate Fetch Contents files from apt-sources.
-
Step0: apt-get install apt-file .
-
Step1: 更新缓存:apt-file update
┌──(root㉿kali)-[~]
└─# apt-file update
命中:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
所有软件包均为最新。
- Step2: 举例 :apt-file search arpspoof.//搜索 arpspoof 命令由哪个软件包提供
┌──(root㉿kali)-[~]
└─# apt-file search arpspoof
bash-completion: /usr/share/bash-completion/completions/arpspoof
dsniff: /usr/sbin/arpspoof
dsniff: /usr/share/man/man8/arpspoof.8.gz
Ps: arpspoof ,arp 欺骗的工具
正则表达式
正则表达式(regular expression),可简写为 regex或re,是一种指定字符串模式的简洁方式即一种用来描述文本模式的特殊语法。由普通字符(例如字符 a 到2)以及特殊字符(称为元字符,如/、*、?等) 组成,常用于字符串的搜索与替换操作。.例如,下面的一组字符串
-
例如:
- 作为正则表达式,可以使用 xiao[123]表示:
xiao1 、xiao2 、xiao3 .
- 作为正则表达式,可以使用 xiao[123]表示:
-
很多UNIX工具都使用正则表达式来强化其自身的功能,例如:
- (1)查找匹配文本的grep 家族(grep/egrep/agrep)
- (2)大名鼎鼎的流编辑器 sed
- (3)字符串程序处理语言 awk、perl 等
- (4)文本查看程序,例如 more、less 等
- (5)文本编辑器,例如 vi、emacs、jed 等
-
特殊的元字符
- . :除新行(如换行)字符外,匹配任意的单个字符,即一定有一个任意字符
- ^ :锚:匹配行的开头
- $ :锚:匹配行的末尾
- \< :锚:匹配单词的开头 (\b)
- \> :锚:匹配单词的末尾 (\b)
- [list] :字符类:匹配 list 列表中的任一字符字符类
- [^list] :字符类:匹配不在 list 列表中的任何字符
- ( ) :分组:视为一个单独的单元
- | :交替:匹配选择之一,为 ERE 运算符里优先级最低
- \ :引用:从字面上解释元字符,通常用以关闭后续字符的特殊含义。
- * :匹配在它之前的任何数目《或没有)的单个字符,重复前一个0到无穷多注
注 1:锚(anchor), 用来匹配在字符串的开头或末尾的位置。
注 2:分组,由于()–圆括号提供分组功能,让运算符可以被应用到“前置的正则表达式”
相关文章:
Kali 软件管理
kali 更新 1. 查看发行版本 ┌──(root㉿kali)-[~] └─# lsb_release -a No LSB modules are available. Distributor ID: Kali Description: Kali GNU/Linux Rolling Release: 2023.2 Codename: kali-rolling2. 查看内核版本 ┌──(root㉿kali)-[~] └─…...
加油站【贪心算法】
加油站 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和…...
java八股文面试[多线程]——死锁、活锁、饥饿
DCL双重锁:TODO 如何预防死锁: 如何查看线程死锁: 知识来源: 【2023年面试】描述一下线程安全活跃态问题,以及竞态条件_哔哩哔哩_bilibili 【2023年面试】如何预防死锁_哔哩哔哩_bilibili 【并发与线程】阿里一面&…...
设计模式——装饰器模式
装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 装饰器模式通过将对象包装在装饰器类中,以便动态…...
①matlab的命令掌握
目录 输入命令 命名变量 保存和加载变量 使用内置的函数和常量 输入命令 1.您可以通过在命令行窗口中 MATLAB 提示符 (>>) 后输入命令 任务 使用命令 3*5 将数值 3 和 5 相乘。 答案 3*5 2.除非另有指定,否则 MATLAB 会将计算结果存储在一个名为 ans…...
MySQL----索引
一、索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该…...
秒杀系统的业务流程以及优化方案(实现异步秒杀)
先看基本的业务流程 那么我们可以看到整个流程都是一个线程来完成的,这样的话耗时还是很长的,那么可不可以采用多线程去实现呢? 首先我们要思考怎么对业务进行拆分,可以想象一个我们去饭店点餐,会有前台接待ÿ…...
Java实现根据商品ID获取1688商品详情跨境属性数据,1688商品重量数据接口,1688API接口封装方法
要通过1688的API获取商品详情跨境属性数据,您可以使用1688开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例,展示如何通过1688开放平台API获取商品详情属性数据接口: 首先,确保您已注册成为1688开放平台的开发者…...
前端面试的性能优化部分(14)每天10个小知识点
目录 系列文章目录前端面试的性能优化部分(1)每天10个小知识点前端面试的性能优化部分(2)每天10个小知识点前端面试的性能优化部分(3)每天10个小知识点前端面试的性能优化部分(4)每天…...
Uniapp笔记(六)uniapp基础
一、腾讯地图 1、uniapp地图渲染 <template><view><map class"map" :longitude"longitude" :latitude"latitude"></map></view> </template> <script>export default {data() {return {longitude:1…...
C++ sort函数用法
sort函数是C标准库中的一个排序算法,头文件是algorithm,用于对容器中的元素进行排序。它可以对任何可排序的容器(如数组、向量、列表等)进行排序。 有以下四个基本用法: 1. 自定义排序规则:可以通过提供自…...
电子仓库预测水浸事件,他怎么做到的?
仓库环境中水浸事件可能导致严重的损失,不仅对货物造成损害,还可能影响设备的正常运行甚至威胁安全。 因此,为了应对这一挑战,引入一套完善的仓库水浸监控系统成为了不可或缺的措施。 客户案例 广东某电子公司是一家领先的电子设…...
CMake调用第三方库的两种方法
为了让连接器搜索到库路径,一般有两种方法 link_directories命令 使用步骤## 在add_executable或add_library前引入第三方库 # 1.引入第三方库,${THIRD_PARTY_PREFIX}为用户定义的第三方库目录 link_directories(${THIRD_PARTY_PREFIX}/lib) # 2.增加第三方库头文…...
Django基础7——用户认证系统、Session管理、CSRF安全防护机制
文章目录 一、用户认证系统二、案例:登陆认证2.1 平台登入2.2 平台登出2.3 login_required装饰器 三、Django Session管理3.1 Django使用Session3.1.1 Cookie用法3.1.2 Session用法 3.2 案例:用户登录认证 四、Django CSRF安全防护机制 一、用户认证系统…...
基于流计算 Oceanus(Flink) CDC 做好数据集成场景
由于第一次做实时,所以踩坑比较多,见谅(测试环境用的flink),小公司没有用到hadoop组件 一、踩坑记录 1:本地代码的flink版本是flink1.15.4,生产环境是flink1.16.1,在使用侧输出流时报错,需要使用以下写法,需要使用Si…...
MySQL8.Xx安装控制台未生成随机密码解决方案
MySQL8.xx一主两从复制安装与配置 MySQL8.XX随未生成随机密码解决方案 MySQL8.0.30一主两从复制与配置(一) 一: Mysql 安装时控制台未生成密码 安装过程中解压或者安装时报错等,这种情况一般是因网络等其他原因导致下载的安装包不完整, 重新下载安装即可; 二:…...
安装VS2005时提示:请插入磁盘:visual studio 2005 DVD
安装VS2005时提示:请插入磁盘:visual studio 2005 DVD 修改卷标为 "DVD1"...
OpenVINO2023使用简介
1 下载安装 先在anaconda中创建一个虚拟环境,该环境的python版本为3.7,之所以使用python3.7,是因为我在3.9上安装过程中出现不少bug,后面新建了一个3.7的环境才解决,我不知道是否由于和我已有环境中某些包不兼容&…...
基于React实现无限滚动的日历详细教程,附源码【手写日历教程第二篇】
前言 最常见的日历大部分都是滚动去加载更多的月份,而不是让用户手动点击按钮切换日历月份。滚动加载的交互方式对于用户而言是更加丝滑和舒适的,没有明显的操作割裂感。 那么现在需要做一个这样的无限滚动的日历,前端开发者应该如何去思考…...
68、使用aws官方的demo和配置aws服务,进行视频流上传播放
基本思想:参考官方视频,进行了配置aws,测试了视频推流,rtsp和mp4格式的视频貌似有问题,待调研和解决 第一步:1) 进入aws的网站,然后进入ioT Core 2)先配置 Thing types & Thing,选择香港的节点,然后AWS ioT--->Manage---> Thing type 然后输入名字,创建Th…...
数据库
表 记录:行 字段(属性): 列 以行列的形式就组成了表(数据存储在表中) 关系数据库的表由记录组成,记录由字段组成,字段由字符或数字组成。它可以供各种用户共享, 具有最小冗余度和较高…...
深入了解fcntl函数:Linux系统编程中的文件控制
文章目录 概述介绍函数原型与参数 拓展:fcntl改文件属性总结 概述 摘要: fcntl函数是Linux系统编程中一个重要的函数,用于对文件描述符进行各种控制操作。本文将详细介绍fcntl函数的原型、各个参数的用法,以及阻塞和非阻塞模式切换的方法&am…...
汇川技术内推码
[庆祝]不一样的内推码[庆祝]:IVSM2R 投递了可以评论下名字,我会帮忙留意进度。 汇尔成川,共赴星海,欢迎加入,职等你来。 嵌入式软硬件,机器人算法,电机控制,通信软件,PLC…...
nacos服务器启动报错集合
报错1 Error creating bean with name ‘user‘: Unsatisfied dependency expressed through field ‘jwtTokenManage 开启鉴权之后,你可以自定义用于生成JWT令牌的密钥,application.properties中的配置信息为: ### Since 1.4.1, worked when…...
C语言_分支和循环语句(2)
文章目录 前言一、for 循环1.1语法1.2 for 语句的循环控制变量1.3 一些 for 循环的变种 二、do ... while()循环2.1 do 语句的语法2.2 do ... while 循环中的 break 和 continue2.3 练习1 **- 计算n的阶乘**2. - **在一个有序数组中查找具体的某个数字 n** 二分查找算法&#x…...
JMeter 接口自动化测试:从入门到精通的完全指南
JMeter 是一个开源的负载测试工具,它可以模拟多种协议和应用程序的负载,包括 HTTP、FTP、SMTP、JMS、SOAP 和 JDBC 等。在进行接口自动化测试时,使用 JMeter 可以帮助我们快速地构建测试用例,模拟多种场景,发现接口的性…...
【Java】集合List的toArray()方法及其重载
在Java中,集合(List 接口的实现类)提供了一个名为 toArray 的方法,用于将集合中的元素转换成数组。该方法有两个主要的重载形式,分别用于不同的情况。 toArray()重载方法1 <T> T[] toArray(T[] a)这个方法将集…...
Python学习笔记:Requests库安装、通过url下载文件
1.下载安装requests库 在pipy或者github下载,通常是个zip,解压缩后在路径输入cmd,并运行以下代码 Python setup.py install 安装完成后,输入python再输入import requests得到可以判断时候完成安装 2.通过url下载文件 使用的是u…...
git pull --rebase 用法
git pull --rebase git pull --rebase 是 Git 命令中的一个选项,它的作用是在从远程仓库拉取更新时使用 rebase 而不是默认的合并方式。使用这个命令会使您的提交历史更加整洁,因为它将您的本地提交在远程更新之前重新应用到新的提交之上。 这个命令的…...
react antd框架中的徽标获取数据对应状态的数量
实现思路:获取数量的思路是通过filter过滤符合数据来实现。 列表数组.filter(item > item.status 值).length; 例子:以下这个例子是判断data数组中的status中在职的数量。 data.filter((item) > item.status 在职).length 效果展示ÿ…...
【多线程】Thread类的用法
文章目录 1. Thread类的创建1.1 自己创建类继承Thread类1.2 实现Runnable接口1.3 使用匿名内部类创建Thread子类对象1.4 使用匿名内部类创建Runnable子类对象1.5 使用lambda创建 2. Thread常见的构造方法2.1 Thread()2.2 Thread(Runnable target)2.3 Thread(String name)2.4 Th…...
第八章 贪心算法 part03 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果 (day34补)
本文章代码以c为例! 一、力扣第1005题:K 次取反后最大化的数组和 题目: 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择…...
Android Activity启动过程一:从Intent到Activity创建
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、概览二、应用内启动源码流程 (startActivity)2.1 startActivit…...
第9章:聚类
聚类任务 性能度量 距离度量 非度量距离 原型聚类 有很好的统计学上的意义,但是只能找到椭球形的聚类。 密度聚类 层次聚类...
程序员为什么要写bug,不能一次性写好吗?
仅仅听到“Bug”这个词就会让你作为一个开发人员感到畏缩。我们相信,优秀的程序员是那些编写无错误代码的人。随着一些开发人员强调要成为一名零错误程序员,我们进行了更深刻的思考,并发现事实的准确性。 所有制作的软件都应该没有错误。对此…...
Nginx反向代理其他服务
Nginx反向代理 嘿,你的网络遇到了限制,不能直接通过服务的端口进行访问?别担心,我们可以借助Nginx这个超级英雄来解决这个问题!让我给你讲讲关于Nginx反向代理的故事吧。 首先,让我们明确一下反向代理的概…...
MQ 简介-RabbitMQ
一. MQ 简介 消息队列作为高并发系统的核心组件之一,能够帮助业务系统结构提升开发效率和系统 稳定性,消息队列主要具有以下特点: 削峰填谷:主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题系统解耦:解决不同重要程度、不…...
强化学习(2)
强化学习(1) 1.多智能体深度强化学习重要性采样 多智能体深度强化学习(Multi-Agent Deep Reinforcement Learning,MADRL)是指在多智能体环境下使用深度强化学习算法进行协同学习。重要性采样(Importance Sampling)是…...
Visual Studio 2022的MFC框架——theApp全局对象
我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 MFC中的WinMain函数是如何与MFC程序中的各个类组织在一起的呢?MFC程序中的类是如何与WinMain函数关联起来的呢?…...
SpringBoot Cache
一、基本概念 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如: • EHCache • Caffeine …...
vue 简单实验 自定义组件 component
1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"components-demo"><button-counter></button-counter> </div> <script> // 创建一个Vue 应用 const ap…...
C++ 改善程序的具体做法 学习笔记
1、尽量用const enum inline替换#define 因为#define是做预处理操作,编译器从未看见该常量,编译器刚开始编译,它就被预处理器移走了,而#define的本质就是做替换,它可能从来未进入记号表 解决方法是用常量替换宏 语言…...
Unity 之 GameObject.Find()在场景中查找指定名称的游戏对象
文章目录 GameObject.Find 是 Unity 中的一个函数,用于在场景中查找指定名称的游戏对象。这个函数的主要作用是根据游戏对象的名称来查找并返回一个引用,使您能够在代码中操作该对象。以下是有关 GameObject.Find 的详细介绍: 函数签名&…...
flink on yarn with kerberos 边缘提交
flink on yarn 带kerberos 远程提交 实现 flink kerberos 配置 先使用ugi进行一次认证正常提交 import com.google.common.io.Files; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.apache.flink.client.cli.CliFrontend; import o…...
NodeJS的简介以及下载和安装
本章节会带大家下载并安装NodeJs 以及简单的入门,配有超详细的图片,一步步带大家进行下载与安装 NodeJs简介关于前端与后端Node是什么?为什么要学习NodeNodeJS的优点: NodeJS的下载与安装NodeJS的下载: NodeJS的快速入…...
量化面试-概率题
文章目录 一、题目1.糖果罐(绿皮书79页)2 折木棍(绿皮书89页)3 第一张ACE(绿皮书95页)4 n个均匀分布之和(绿皮书95页) 二、答案1. 糖果罐2 折木棍3 第一张ACE4 n个均匀分布之和 一、…...
【spark】java类在spark中的传递,scala object在spark中的传递
记录一个比较典型的问题,先讲一下背景,有这么一个用java写的类 public class JavaClass0 implements Serializable {private static String name;public static JavaClass0 getName(String str) {if (name null) {namestr;}return name;}... }然后在sp…...
php 文字生成图片保存到本地
你可以使用PHP的GD库来生成图片并保存到本地。首先,你需要确保你的PHP环境已经安装了GD库。然后,你可以使用GD库的函数来创建一个画布,并在上面绘制文字。最后,使用imagepng或imagejpeg函数将画布保存为PNG或JPEG格式的图片文件。…...
面试手撕—二叉搜索树及其后序遍历
一、引言 在面试地平线的时候,聊到了二叉搜索树,让手撕二叉搜索树,以下是要求 1、用类模板实现二叉搜索树 2、写一个函数,实现给一个vector数组,转换成二叉搜索树 3、写出二叉搜索树的后序遍历 二、代码实现 #inc…...
Java数据结构面试题以及答案
本专栏记录Java后端开发相关的面试题,欢迎大家阅读专栏的其他文章。 目录 1.B树和B树的区别?B树和B树的优点分别是? 2.排序算法的种类和复杂度 3.HashMap和Hashtable的原理、区别、应用场景 4.ConcurrentHashMap的原理、应用场景 5.Arra…...