当前位置: 首页 > news >正文

泷羽sec----学会并玩转powershell【基础1-2】

声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec

前言

PowerShell 是一种跨平台的任务自动化和配置管理框架,由微软开发。它包含了一个命令行 shell 和一种脚本语言。

特点

强大的命令行功能

  • 它提供了丰富的命令(称为 cmdlets),这些 cmdlets 遵循动词 - 名词的命名规范,例如Get-Service(用于获取系统服务相关信息)、Set-Item(用于设置项目,如文件或注册表项的值)等。这种命名方式使得命令的功能直观易懂,用户可以很容易地猜到命令的大致用途。

  • PowerShell 对 Windows 系统管理有着与生俱来的深度集成。它可以直接操作 Windows 系统的各种组件,如服务(通过Get-ServiceSet-Service等命令)、注册表(使用Get-ItemPropertySet-ItemProperty等命令来读取和修改注册表项)等。例如,在配置 Windows 系统的安全策略相关的注册表项时,PowerShell 可以很方便地定位到相应的键值并进行修改。

  • 支持管道(Pipeline)操作,这是 PowerShell 的一个核心特性。用户可以将一个命令的输出作为另一个命令的输入,就像在 Unix/Linux 中的管道操作一样。例如,Get-Process | Where-Object {$_.CPU -gt 10}可以获取 CPU 使用率大于 10 的进程。其中Get-Process获取所有进程信息,通过管道将这些信息传递给Where-Object,后者根据指定的条件({$_.CPU -gt 10},这里$_表示管道中传递过来的当前对象)进行筛选。

  • PowerShell 中的所有输出都是对象,这使得在处理系统资源等操作时更加方便。例如,当获取系统进程信息(Get-Process)时,返回的进程对象包含了丰富的属性(如进程 ID、进程名、CPU 使用率、内存使用量等)和方法(如终止进程的Kill方法)。可以直接通过对象操作来完成复杂的任务,像(Get-Process -Name "notepad").Kill()就能直接终止名为 notepad 的进程。

  • PowerShell 脚本使用.ps1作为文件扩展名。用户可以将一系列的 PowerShell 命令组合在一个脚本文件中,实现自动化任务。例如,创建一个脚本用于自动备份指定文件夹中的文件到另一个位置。

  • 它支持变量、函数、条件语句(如if-else)、循环语句(如for循环、foreach循环)等编程结构。

  • 脚本还可以接受参数,使得脚本更加灵活和通用。例如,可以创建一个脚本,它接受一个文件夹路径作为参数,然后在该文件夹中查找特定类型的文件。

与 Shell 脚本(如 Bash)相比的优势

  • 跨平台和功能扩展性
    • PowerShell 是跨平台的,支持 Windows、Linux 和 macOS 等多种操作系统。而传统的 Shell 脚本(如 Bash)主要用于类 Unix 系统。并且 PowerShell 基于.NET Framework,这为它提供了强大的功能扩展性。可以直接使用.NET 库中的各种类和方法来实现复杂的功能,如复杂的文件加密算法、高级的网络通信功能等。Bash 脚本主要依赖于 Unix 系统提供的工具和命令,功能扩展相对有限。
    • 例如,在进行网络编程方面,PowerShell 可以利用.NET 的网络库来创建复杂的网络客户端和服务器程序,而 Bash 脚本在这方面更多地依赖于外部工具(如netcat等)且功能实现相对复杂。
  • 数据处理的灵活性
    • PowerShell 对数据的处理是基于对象的,它可以方便地处理结构化的数据。在处理文件内容、系统配置数据等方面,可以通过对象的属性和方法来灵活操作。例如,在解析 XML 或 JSON 格式的配置文件时,PowerShell 可以将其转换为对象后,方便地读取和修改其中的元素。Bash 脚本在处理这类结构化数据时,往往需要借助外部工具(如jq用于 JSON 处理),并且操作相对繁琐。
  • 安全性和权限管理
    • PowerShell 在 Windows 环境下与系统的安全机制紧密结合。它可以方便地处理用户权限、安全策略等相关内容。例如,可以通过 PowerShell 命令来配置用户的访问控制列表(ACL)权限,检查用户是否具有特定的权限等。Bash 脚本在类 Unix 系统中的安全管理主要依赖于系统的文件权限设置和用户管理工具(如chmoduseradd等),在权限管理的精细化程度和与系统安全机制的集成度上相对较弱。

对于安装powershell可以参考官方给出的方式,并且现在的版本已经是7了

在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn

进入powershell的方式

  • 进入该终端方式有很多,最快捷的,是按着win+r键,输入powershell即可进入

  • 或者在资源管理器中,直接在地址栏输入powershell也行,不过这时候,其默认地址会在当前资源管理器所在目录

  • 还有点击开始按钮,然后输入powershell,然后可以选择普通打开或者以管理员执行

补充一下,前面两种打开方式,都是以普通权限打开的

还有当打开cmd终端时,直接输入命令powershell也是可以进入的,并且与cmd所在路径是一致的

相关设置等

在打开powershell终端后,标签出有+符号,这时候点击可以看到设置以及其他选项

点击设置后,在这里可以对这个终端进行相关设置,比如:窗口大小、文字大小、配色方案、启动时怎么启动、呈现方式以及操作等等,也可以直接点击powershell,只对其进行设置

还可以点击外观,进行相关设置

在下面还可以设置背景图片

然后点击保存后,可以返回终端看到效果

在设置中的操作界面,有许多快捷键,可以稍微记一下

powershell中,对于复制和粘贴,可以使用鼠标右键进行操作,选中要复制的内容后,鼠标右击。然后就复制内容到剪切板了。如果要粘贴的地方是在powershell终端的话,只需要右击,就可以把剪切板中的内容粘贴到终端上。

在命令面板中,还有其他许多操作,可以通过点击选择命令面板进行查看,或者使用快捷键ctrl+shift+p

这里有拆分窗口等操作,左右或者上下拆分,当然这里也是有默认的快捷键的

右拆分窗格alt + shift + +就是三个键,altshift+

下拆分窗格alt + shift + -也是三个键,这里是-

然后关闭当前窗格可以使用ctrl + shift + w

关闭所有,也就是关闭当前终端,alt + f4

当然,也有配合鼠标的操作,alt加上点击+就会右拆分一个窗格的,shift加上点击+会新打开一个窗口

还有这里可以配合ctrl以管理员的权限打开一个新窗口

总之,很多方便处理的,大家感兴趣可以自己再去深入了解,这里在设置中其实都有的

简单的命令实践

powershell版本信息

这里在cmd可用的命令,在powershell都可以使用

查看当前powershell的版本,可以采用命令$psversiontable

该命令就是一种英文组合,并把powershell简写为ps

拆解就是psversiontable表展示

进行数值计算时,可以直接输入计算式,回车后,会显示结果

获取服务信息

获取计算机上服务的相关信息,可以使用get-service命令,前言说过,命名命令的名称是 动词-名词的形式

如果看这个不够清晰,毕竟在windows上可能习惯图形化,可以输入命令services.msc来启动图形化界面

并且,其可以使用tab键进行补全操作的

快捷键

建议去我前面所说的命令面板或设置中去查看,那里更多

快捷键作用
alt+f7清除命令的历史记录,不过是指当前的,也就是使用是没有记录了
esc清空当前输入的字符,就是还未执行,但是在终端输入的时候
ctrl+c取消执行,也就是进行中断
tab进行补全,可以是命令,也可以是文件等名称
管道符和重定向

管道符|,这个在cmd中是无法使用的,但是powershell可以,因为它是跨平台的

其作用是和linux中一样的,把前面的输出作为后面的输入

配合使用,假设这里采用ls或者dirgci进行操作

这里可以使用man + 命令查看用法等,如这里使用man ls

使用ls查看,可以看到当前目录下的属性

配合管道符,输出特定属性

ls | Format-Table -Property mode,name
#Format-Table 表示把输出格式化为表格进行输出
#通过-Property参数来指定要展示的属性列,且属性名需要以正确的格式来写或者直接
ls | Format-Table mode,name

重定向>,这个与linux还是一样的

ls | Format-Table mode,name > a.txt	#重定向到文件a.txt
ls a.txt							#查看a.txt文件的属性
cat a.txt							#查看a.txt文件内容,可以使用cat的
type a.txt							#或者type也是可以进行查看的

>是覆盖的写入,>>可以追加

数值和逻辑运算

对于数值运算,这里补充一下,只能进行简单的运算,加、减、乘、除、取模以及这些组合起来的复杂式子

而且对于带有单位的,如这里的计算机中的字节等

还有一些逻辑运算,这里进行逻辑判断的,和linux中一样,采用-gt、-lt、-eq、-ge、-le

进制转换

进制转换,对于这个十六进制,直接输入,会默认转变为10进制的

或者使用函数[System.Convert]::To编码转换(),为什么这样写,因为有很多,这里就可以使用tab补全进行查看

#这里的[System.Convert]可以简写为[convert]
[System.Convert]::ToInt16()
[System.Convert]::ToInt32(转变的字符,指定前面的字符是什么进制)
[System.Convert]::ToInt64()
#前面三个用法一样的,只是字节大小问题
#都是把前面的字符转变为10进制[System.Convert]::ToString()
#这个可以指定转变成什么进制

打开环境变量中或环境变量外的应用

对于cmd或者powershell来说,为什么使用start xxx有时候可以直接打开应用呢,尤其是安装系统时就有的应用,如notepad,下图所示

因为环境变量,在linux中有的命令为什么可以不需要指定路径就可以直接运行,就是因为环境变量配置了其所在的目录,那么在进行执行的时候,系统会去环境变量中去寻找,若找到对应的就会执行

windows中也是一样的,为什么notepad可以被执行,就是因为其所在的目录C:\Windows\System32,是在系统环境变量中的

可以通过命令或者图形化界面查看环境变量,这里是图形化

使用命令Get-ChildItem Env:或者gci env:(这个是别名)

gci,在前面查看man ls时,发现,Get-ChildItem别名有三个ls、dir、gci

那么这里三个别名都行,查看,不过这里长度有限制,所以path显示不完全,不过,还可以使用$env:path来查看

不过对于powershell中打开应用,可以使用& "应用名",如& "notepad"

那么对于未在环境变量中的应用,就需要进行改变了,需要加上路径,也就是在""号中添加路径已经路径下的应用名进行打开了

powershell命令集

get-xxxx系列

  • get-command获取可用命令,这个很多的,不过这里的命令是有其类型的,可以通过这个进行过滤

配合findstr过滤选项,当然这里只要知道大概映像,都是比原本的要多。这里的findstr相当于linux中的grep

  • get-help获取帮助,这个命令与man是一样的效果,或者man可能是其别名。可以使用这个查看get-command的一些帮助文档、用法

这里发现get-command有别名gcm这个别名效果与原名称是一样的效果的,并且get-help还可以加上-online,查看网上帮助,会自动打开浏览器,也就是这个命令所在的微软官方手册

get-help get-command -online

  • get-process获取进程信息,执行效果太多了,截取也没什么效果,不过这里查看帮助,大概就知道获取到什么了,这里的别名ps,就是和linux一样的效果

  • get-alias获取当前会话的别名信息,不过这条命令的别名是gal,可以用上面的方式进行查看

  • get-history,获取命令的历史记录信息,别名有三个history、ghy、h。哇,这里的h别名真的爱了

  • get-date获取当前时间,也是当前计算机的当前时间

别名相关操作

上面涉及的get-xxx系列,大部分都有其别名,知道了从原名称获取别名的方法,那么如果是不熟悉的别名,怎么获取其原名称呢

借助get-alias,因为其本身就是获取别名信息的,其中的信息包括原名称的

get-alias -name 别名

想要玩转powershell,命令是一定要知道的,所以别名以及原名称能够用好,很重要,对于大部分与linux相同的别名,直接使用即可,啧,果然linux基础重要啊

那么在查询别名的时候,进行一个筛选,这里筛选字符中以Remove开头的,这里对大小写是严谨的。

get-alias | where {$_.definition.startswith("Remove")}#Where-Object(常简写为 where):这是一个用于筛选对象集合的命令,它依据给定的条件(写在花括号 {} 内的脚本块),从输入的众多对象中挑选出符合特定条件的对象
#$_.Definition 代表的是当前正在被处理的别名对象(也就是 Get-Alias 所获取到的一个个别名个体)的 Definition 属性,该属性存储了这个别名对应的实际命令的具体内容。
#StartsWith("Remove") 则是对这个实际命令内容的字符串调用 .StartsWith() 方法,以此来判断其是否是以 “Remove” 开头,满足这个判断条件的别名对象就会被筛选出来展示在最终结果中

还可以把那些具有多个别名的以组的形式展示,这样也方便查看,然后再用sort进行排序

get-alias | group-object definition | sort-object -descending count
gal | group definition | sort -descending count	#Group-Object 命令的功能是对输入的对象集合按照指定的属性进行分组。在这里,它按照别名对象的 Definition 属性(也就是别名对应的实际命令内容)来分组。比如,所有对应实际命令是 Get-ChildItem 的别名(像 ls、gci 等)会被分到同一组中,这样经过分组后,就形成了多个以不同实际命令为依据划分的组。
#Sort-Object 命令用于对对象集合进行排序操作。-Descending 参数表示按照降序排列,Count 是指要依据对象的 Count 属性来排序。

为什么以这个definnition进行分组,是因为在这个get-alias获取别名的信息中,这个属性显示的是其原本的名称,而一个原本的名称可能有多个别名,所以采用这个进行分组

采用这个命令执行后,会更清晰的看出关系所在

gal -name ls | Format-Table definition

set-alias设置别名

对于一些命令如果记不住,可以通过自己自定义别名,然后再使用别名是一样的效果

注意,这种方式只是临时的,也就是在当前窗口是可以的,与linux中的export一样

set-alias -name [别名名称] -value [原本的名称]set-alias -name pad -value notepad
#这里以notepad进行设置别名

删除别名的操作

del alias:pad

别名的导入与导出
#导出当前的所有别名为一个ps脚本
export-alias demo.ps1		#.ps1是powershell脚本的格式dir
type demo.ps1
#导入一个ps脚本,确定其中是别名的文件
import-alias -force demo.ps1

这里我先把上面的自定义的一个别名pad,然后导出

这时候,退出当前的窗口,重新进入powershell,这时候发现,没有别名pad,也就是临时失效

这时候,把之前导出的demo.ps1强制导入,即可使用,不过注意,这里的导入,也是临时的,仅用于当前窗口的

未完…待续

相关文章:

泷羽sec----学会并玩转powershell【基础1-2】

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...

2 逻辑符号

在文件和目录的判断或者其他情况中,可以组合使用多个条件。 逻辑与 (&&) 逻辑与运算符 && 用于在多个条件都为真时执行某个操作。 # 判断文件是否存在且可读 if [ -f "$file" ] && [ -r "$file" ]; thenecho "…...

Android基于回调的事件处理

Android 中的回调机制:基于回调的事件处理详解 在 Android 开发中,回调(Callback)是一种常见的事件处理机制,主要用于异步操作和事件通知。与传统的基于监听器的事件处理相比,回调机制更加灵活、通用&…...

跨界融合:人工智能与区块链如何重新定义数据安全?

引言:数据安全的挑战与现状 在信息化驱动的数字化时代,数据已成为企业和个人最重要的资产之一。然而,随着网络技术的逐步优化和数据量的爆发式增长,数据安全问题也愈变突出。 数据安全现状:– 数据泄露驱动相关事件驱…...

qml SpringAnimation详解

1. 概述 SpringAnimation 是 Qt Quick 中用于模拟弹簧效果的动画类。它通过模拟物体在弹簧力作用下的反应,产生一种振荡的动画效果,常用于模拟具有自然回弹、弹性和振动的动态行为。这种动画效果在 UI 中广泛应用,特别是在拖动、拉伸、回弹等…...

Qt 5.14.2 学习记录 —— 칠 QWidget 常用控件(2)

文章目录 1、Window Frame2、windowTitle3、windowIcon4、qrc机制5、windowOpacity 1、Window Frame 在运行Qt程序后,除了用户做的界面,最上面还有一个框,这就是window frame框。对于界面的元素,它们的原点是Qt界面的左上角或win…...

Windows service运行Django项目

系统:Windows Service 软件:nssm,nginx 配置Django项目 1、把Django项目的静态文件整理到staticfiles文件夹中 注:settings中的设置 STATIC_URL /static/ STATIC_ROOT os.path.join(BASE_DIR, staticfiles/) STATICFILES_DI…...

notebook主目录及pip镜像源修改

目录 一、notebook主目录修改二、pip镜像源修改 一、notebook主目录修改 在使用Jupyter Notebook进行数据分析时,生成的.ipynb文件默认会保存在Jupyter的主目录中。通常情况下,系统会将Jupyter的主目录设置为系统的文档目录,而文档目录通常位…...

Linux(Centos 7.6)命令详解:touch

1.命令作用 如果文件不存在将创建一个空文件;修改文件修改访问时间。 2.命令语法 Usage: touch [OPTION]... FILE... 3.参数详解 Usage: -a,access 只修改访问时间-c,不创建任何文件-d,--dateSTRING 解析STRING并使用它替代…...

ubuntu 下生成 core dump

在Ubuntu下,发现程序崩溃后不生成core dump文件, 即使设置了ulimit -c unlimited后仍然无效。 1.ulimit -c unlimited 输出的的含义是核心转储文件的大小限制,单位是blocks,默认是0,表示不生成core dump文件。 2. 重设core_pattern ulimit -c unlimited后,核心转储文件…...

大数据智能选课系统

1.产品介绍 产品名称:大数据智能选课系统 一、产品概述 随着信息技术的快速发展,大数据技术在教育领域的应用越来越广泛。针对当前高校选课过程中的繁琐操作、资源分配不均等问题,我们研发了一款基于大数据智能分析的选课系统。本系统旨在…...

HTTP-响应协议

HTTP的响应过程? 浏览器请求数据--》web服务器过程:请求过程 web服务器将响应数据-》到浏览器:响应过程 响应数据有哪些内容? 1.和请求数据类似。 2. 响应体中存储着web服务器返回给浏览器的响应数据。并且注意响应头和响应体之间…...

[离线数仓] 总结三、Hive数仓DIM层开发

5.9 数仓开发之DIM层 DIM层设计要点: (1)DIM层的设计依据是维度建模理论,该层存储维度模型的维度表。 (2)DIM层的数据存储格式为orc列式存储+snappy压缩。 (3)DIM层表名的命名规范为dim_表名_全量表或者拉链表标识(full/zip)。 -- 数仓开发之DIM层 -- DIM层设计要点:…...

搭建RK3588开发板Qt交叉编译环境

一、开发环境 在虚拟机里安装Ubuntu20.04Qt5.14.2交叉编译器gcc-linaro-7.5.0 二、相关资料下载 在虚拟机里安装Ubuntu20.04 Ubuntu20.04镜像下载(https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/)安装Qt5.14.2 下载安装包和源码 安装包(http…...

【Rust自学】11.3. 自定义错误信息

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.3.1. 添加错误信息 在 11.2. 断言(Assert) 中我们学习了assert!、assert_eq!和assert_ne!这三个宏,而这篇文章讲的就是它…...

ROS核心概念解析:从Node到Master,再到roslaunch的全面指南

Node 在ROS中,最小的进程单元就是节点(node)。一个软件包里可以有多个可执行文件,可执行文件在运行之后就成了一个进程(process),这个进程在ROS中就叫做节点。 从程序角度来说,node就是一个可执行文件&…...

Autodl安装tensorflow2.10.0记录

首先租用新实例(我选的是3080*2卡),由于基础镜像中没有2.10.0版本,选miniconda3的基础环境 创建虚拟环境:conda create --name xxx python3.8(环境名)激活虚拟环境:conda activate x…...

Linux第一课:c语言 学习记录day06

四、数组 冒泡排序 两两比较,第 j 个和 j1 个比较 int a[5] {5, 4, 3, 2, 1}; 第一轮:i 0 n:n个数,比较 n-1-i 次 4 5 3 2 1 // 第一次比较 j 0 4 3 5 2 1 // 第二次比较 j 1 4 3 2 5 1 // 第三次比较 j 2 4 3 2 1 5 // …...

代码随想录day03

203 链表基础操作 class Solution { public:ListNode* removeElements(ListNode* head, int val) {while (head!NULL&&head->valval){ListNode* temphead;headhead->next;delete temp;}ListNode* curhead;while (cur!NULL&&cur->next!NULL){if(cur-…...

python-leetcode-无重复字符的最长子串

3. 无重复字符的最长子串 - 力扣(LeetCode) class Solution:def lengthOfLongestSubstring(self, s: str) -> int:char_set set()left 0max_length 0for right in range(len(s)):while s[right] in char_set:char_set.remove(s[left])left 1char_…...

30天开发操作系统 第 12 天 -- 定时器 v1.0

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单,只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器,CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…...

RNN之:LSTM 长短期记忆模型-结构-理论详解(Matlab向)

前言 递归!循环神经网络Recurrent Neural Network 循环神经网络(又称递归神经网络,Recurrent Neural Network,RNN)。是一种用于处理序列数据的神经网络结构,具有记忆功能,能够捕捉序列中的时间…...

vue的路由守卫逻辑处理不当导致部署在nginx上无法捕捉后端异步响应消息等问题

近期对前端的路由卫士有了更多的认识。 何为路由守卫?这可能是一种约定俗成的名称。就是VUE中的自定义函数,用来处理路由跳转。 import { createRouter, createWebHashHistory } from "vue-router";const router createRouter({history: cr…...

C++版的飞翔的小鸟

忙了几天,写了个小鸟游戏打发时间。 MINGWOPENGL 作者很懒,具体看readme.txt吧。 好吧,这就是个当网盘用的,没有售后服务的,而且还不怎么会上传文件。。。😂😂 顺便问下,这破玩意上…...

深入详解自然语言处理(NLP)中的语言模型:BERT、GPT及其他预训练模型的原理与应用

【自然语言处理】——深入详解自然语言处理(NLP)中的语言模型:BERT、GPT及其他预训练模型的原理与应用 自然语言处理(NLP)是人工智能(AI)领域中的重要分支,旨在通过计算机处理和分析…...

EFCore HasDefaultValueSql (续1 ValueGeneratedOnAdd)

前情:EFCore HasDefaultValueSql 小伙伴在使用 HasDefaultValueSql 时,对相关的 ValueGeneratedOnAdd 也有了疑问: ValueGeneratedOnAdd 和 HasDefaultValueSql 是 Entity Framework Core 中用于管理字段默认值的两种不同配置方式&#xff0…...

React PureComponent使用场景

1. 基本概念 1.1 什么是 PureComponent PureComponent 是 React 提供的一个优化类组件,它通过自动实现 shouldComponentUpdate 生命周期方法,对 props 和 state 进行浅比较来决定是否需要重新渲染组件。 1.2 与 Component 的区别 // 普通 Component …...

初学者如何利用AI辅助编程快速搭建软件原型

在当今这个快速发展的科技时代,AI辅助编程已成为软件开发领域的一大助力,尤其在搭建软件原型阶段,更是能帮助开发者快速探索众多想法,创造出新事物。吴恩达老师最近分享了关于搭建简单Web应用原型的一些最佳实践,其中重…...

六、Angular 发送请求/ HttpClient 模块

一、应用 HttpClient 模块 angular/common/http 中的 HttpClient 类基于浏览器提供的 XMLHttpRequest 接口。要想使用 HtpClient 模块,就要先导入 Anqular 的 HttpClientModule。大多数 Web 应用程序都会在根模块 AppModule 中导入它。 编辑 src/app/app.module.ts…...

11_Redis数据类型-Geo地理位置

1.Geo地理位置介绍 1.1 基本概念 Redis中的GEO(Geographic)是一种专门用于处理地理位置信息的功能模块,自Redis 3.2版本引入。它特别适合用于LBS(基于位置的服务)应用,如查找附近的餐馆、用户或兴趣点等。Redis GEO的实现依赖于有序集合(sorted set),并且利用了Geoh…...

电脑每次开机卡到windows图标界面进不去

我遇到的现象是: 可以正常开机,也可以重装系统,主板电池换过,硬盘,内存也没问题,但每次开机都会卡到这个界面不动,也不崩溃,也进不去系统。最后的解决方法:换CPU&#x…...

如何将 DotNetFramework 项目打包成 NuGet 包并发布

如何将 DotNetFramework 项目打包成 NuGet 包并发布 在软件开发过程中,将项目打包成 NuGet 包并发布到 NuGet 库,可以让其他开发者方便地引用和使用你的项目成果。以下是将 WixWPFWizardBA 项目打包成 NuGet 包并发布的详细步骤: 1. 创建 .n…...

7 分布式定时任务调度框架

先简单介绍下分布式定时任务调度框架的使用场景和功能和架构,然后再介绍世面上常见的产品 我们在大型的复杂的系统下,会有大量的跑批,定时任务的功能,如果在独立的子项目中单独去处理这些任务,随着业务的复杂度的提高…...

鸿蒙UI开发——日历选择器

1、概 述 在项目开发中,我们时常会用到日历选择器,效果如下: ArkUI已经为我们提供了组件,我们可以直接使用,下面针对日历组件做简单介绍。 2、CalendarPickerDialog 接口定义如下: // 定义日历选择器弹…...

【python基础——异常BUG】

什么是异常(BUG) 检测到错误,py编译器无法继续执行,反而出现错误提示 如果遇到错误能继续执行,那么就捕获(try) 1.得到异常:try的执行,try内只可以捕获一个异常 2.预案执行:except后面的语句 3.传入异常:except … as uestcprint(uestc) 4.没有异常:else… 5.鉴定完毕,收尾的语…...

【论文复现】量子海洋捕食者算法用于多级图像分割问题

目录 1.摘要2.海洋捕食者算法MPA原理3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 本文提出了一种基于量子理论的改进海洋捕食者算法(QMPA),专门用于解决多级图像分割问题。QMPA算法利用薛定谔波函数中的概率函数来确定任何时刻粒子的位…...

【python自写包模块的标准化方法】

目标: 自写一个包,提供关于字符串和文件的模块 要求对异常可以检测 str_tools.py: def str_reverse(s):""":param s: 传入的字符串:return: 反转后的字符串"""# i -1# j 0# s2 ""# while i > (-len(s)):# s2 s[i]# …...

STL——二叉搜索树

目录 二叉搜索树的概念 ⼆叉搜索树的性能分析 ⼆叉搜索树的插⼊ ⼆叉搜索树的查找 ⼆叉搜索树的删除 中序遍历结果为升序序列 二叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树 • 若它的左⼦树不为空&#…...

2025年XR行业展望:超越虚拟,融合现实

随着科技的飞速发展,扩展现实(XR)技术正逐渐从科幻走进日常生活。2025年,除了备受瞩目的AI百镜大战,XR行业同样充满期待,一系列创新产品和技术进步有望重塑我们对数字世界的体验。 Meta Quest 3S:VR行业的风向标 作为Meta旗下的拳头产品,Quest系列一直是VR市场的领军…...

python异常机制

异常是什么? 软件程序在运行过程中,非常可能遇到刚刚提到的这些问题,我们称之为异常,英文是Exception,意思是例外。遇到这些例外情况,或者交异常,我们怎么让写的程序做出合理的处理&#xff0c…...

JVM与Java体系结构

一、前言: Java语言和JVM简介: Java是目前最为广泛的软件开发平台之一。 JVM:跨语言的平台 随着Java7的正式发布,Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序。 Java虚拟机根本不关心运行在其内部的程序到底是使用何…...

【Python】Python与C的区别

文章目录 语句结束符代码块表示变量声明函数定义注释格式Python的标识符数据输入input()函数数据输出print()函数 语句结束符 C 语言 C 语言中每条语句必须以分号;结束。例如,int a 10;、printf("Hello, World!");。分号是语句的一部分,用于…...

怎么抓取ios 移动app的https请求?

怎么抓取IOS应用程序里面的https? 这个涉及到2个问题 1.电脑怎么抓到IOS手机流量? 2.HTTPS怎么解密? 部分app可以使用代理抓包的方式,但是正式点的app用代理抓包是抓不到的,例如pin检测,证书双向校验等…...

中学综合素质笔记3

第一章职业理念 第三节 教师观 考情提示: 单选题材料分析题 学习要求: 理解、 识记、 运用 (一)教师职业角色的转变(单选材料分析) 从教师与学生的关系看——对学生 新课程要求教师应该是学生学习的引…...

U盘加密软件哪个好用?免安装、安全、防复制

U盘作为一种便携式存储设备,因其携带方便、使用灵活而广受欢迎。然而,U盘的易失性也使其成为数据泄露的高风险载体。为了确保U盘中数据的安全性,使用专业的U盘加密软件是必不可少的。 免安装 更方便 《U盘超级加密3000》这款软件下载后直接…...

C++异常

1.C语言的错误处理方式 1.1直接终止程序 利用assert和exit都是直接终止程序。 1.2返回错误码 例如C语言程序的很对接口函数都会将错误信息存储在errno中表示错误。当我们自己设计函数时,函数返回值和返回错误码容易混淆,且如果函数调用栈较深时&…...

银河麒麟v10 arm版 鲲鹏 U盘安装 +解决 安装源 设置基础软件仓库时出错

人人为我,我为人人,分享出来,避免他人踩坑 U盘刻录 出现问题 进入系统安装界面,这里可以看到在“软件”-“安装源”选项上报错了,提示“设置基础软件仓库时出错” 2种解决办法 1. 有网的情况(注意自己查地址…...

[network]回顾:集线器(Hub)

集线器(Hub)的发明是计算机网络发展史上的一个重要里程碑。它最初的设计目的是为了解决局域网(LAN)中多台计算机共享网络资源的需求。 #mermaid-svg-OAmOmKYGAXoglS5z {font-family:"trebuchet ms",verdana,arial,sans-…...

【Vue.js 组件化】高效组件管理与自动化实践指南

文章目录 摘要引言组件命名规范与组织结构命名规范目录组织 依赖管理工具自动化组件文档生成构建自动引入和文档生成的组件化体系代码结构自动引入组件配置使用 Storybook 展示组件文档自动生成 代码详解QA 环节总结参考资料 摘要 在现代前端开发中,组件化管理是 V…...

打桩机:灾害救援中的 “应急尖兵”,稳固支撑的保障|鼎跃安全

在自然灾害或突发事故中,如地震、泥石流、洪涝灾害、山体滑坡等,地质条件的不稳定可能导致建筑物倒塌、道路损毁、堤坝决口等情况,严重威胁人员和财产安全。 打桩机是一种用于将桩打入地基的重型机械设备,其主要功能是提供支撑力&…...