声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队 的教学
一、Powershell介绍
PowerShell 是微软开发的一种命令行 shell 和脚本语言,用于系统管理自动化。它首次发布于2006年,设计用于帮助IT专业人员和系统管理员控制和自动化Windows操作系统的管理和配置。
1.进入Powershell的方法有两个
(1)win+R输入Powershell可以直接进入到Powershell
(2)win+R输入cmd,在cmd中输入powershell,进入Powershell
2.Powershell版本
一般来说,同版本的Windows可能支持不同版本的PowerShell。例如,Windows 10和Windows Server 2016支持PowerShell 5.1,而Windows 11和Windows Server 2022支持PowerShell 7。低版本的Powershell是支持升级的
查看Powershell版本信息,通过打印 $psversiontable 可以显示版本信息
二、Powershell为什么强大
1.对单位的计量,数学运算等十分方便
(1)单位计量
输入1GB,回显1GB有多少字节,以此类推
(2)数学运算
(3)逻辑运算
(4)进制换算
示例为十六进制转换为十进制
2.命令丰富,功能强大
命令的命名支持动词-名词
的形式,对初学者来说十分友好,方便记忆并使用。
比如,Get-service
命令是一个Powershell命令,用于获取计算机上服务的相关信息,包括服务名称,显示名称,状态和启动类型等。而在cmd上获取会比较麻烦,cmd无法直接打印,只能输入services.msc打开图形化界面
示例:
Powershell输入Get-service
cmd输入services无法打印,只能输入services.msc
3.Powershell是面向对象的
编程语言一般分为面向对象和面向过程,而powershell是面向对象的
(1)面向对象与面向过程的区别:
面向过程编程:以过程为中心,将任务分解为步骤按顺序执行。
面向对象编程:以对象为中心,对象包含数据和操作数据的方法。
(2)面向对象的编程语言
C++,Java,Python都是面向对象,一般的脚本语言是不支持面向对象的
(3)面向过程的编程语言
C语言:
- C语言是一种典型的面向过程的编程语言,它不直接支持面向对象编程的概念。
- C语言中没有类(class)和对象(object)的语法结构,但可以通过一些编程技巧来模拟面向对象的特性,如使用结构体(struct)来封装数据,并通过函数指针来模拟方法。
- 这种方式相对复杂,没有面向对象语言中直接的继承、多态等特性。
汇编语言:
- 汇编语言是一种低级编程语言,主要面向机器,与硬件的关联非常紧密。
- 汇编语言不支持面向对象编程,它通过操作寄存器、内存地址等来完成任务。
- 汇编语言更关注指令的执行顺序和数据在内存中的存储和操作方式,例如在x86汇编语言中,程序员需要编写如MOV(数据传送指令)、ADD(加法指令)等指令来操作数据,而不是通过对象的方式。
4.与.NET平台的绑定
PowerShell与微软的.NET框架紧密结合,这意味着它可以利用.NET的强大库来执行各种操作和实现多种功能,执行复杂的数据处理和对象操作。
5.兼容性
PowerShell可以与VBScript(VBS)和命令提示符(CMD)互相调用,这表明它具有良好的兼容性,能够与现有的脚本和命令行工具协同工作。
6.扩展性
PowerShell不仅能够管理Windows系统,还能管理活动目录、虚拟机以及虚拟化产品,如Office 365。这显示了PowerShell在不同管理任务中的广泛应用和强大的可拓展性。
三、Powershell操作
1.Powershell控制台
(1)自定义PowerShell控制台属性:
用户可以通过右键点击PowerShell窗口,选择"属性"来自定义控制台的外观和行为。在属性设置中,用户可以调整字体大小、字体颜色、光标大小等。还可以设置窗口的颜色、窗口大小、透明度等参数,以满足个人喜好。
(2)PowerShell编辑模式:
PowerShell支持两种编辑模式:快速编辑模式和标准编辑模式。
快速编辑模式提供了一种更快捷的方式来编辑命令,而标准编辑模式则提供了更传统的命令行编辑体验。用户可以通过右键点击来切换或设置编辑模式。
2.Powershell快捷键
PowerShell 提供了许多快捷键来提高命令行操作的效率。以下是一些常用的 PowerShell 快捷键:
-
Ctrl + C:终止当前运行的命令或脚本。
-
Ctrl + V:在 PowerShell 中,这会将剪贴板中的内容作为命令插入,而不是作为文本。
-
Ctrl + Shift + C:复制整个命令行。
-
Ctrl + Shift + V:将剪贴板中的内容作为文本插入,而不是作为命令。
-
Ctrl + A:选择命令行中的所有文本。
-
Ctrl + E:将光标移动到命令行的末尾。
-
Ctrl + M:执行命令行中的命令。
-
Ctrl + Z:将命令行中的命令发送到 PowerShell 历史记录中,但不执行它。
-
Ctrl + Y:将最近使用 Ctrl + Z 取消的命令重新添加到命令行。
-
Ctrl + Shift + F:在当前 PowerShell 窗口中打开搜索功能。
-
Ctrl + Shift + H:显示最近使用的命令历史记录。
-
Ctrl + Shift + P:打开 PowerShell 集成脚本环境(ISE)。
-
Tab:自动完成命令、参数或路径。
-
F1:显示帮助信息。
-
F2:在命令行中编辑命令。
-
F3:在命令历史记录中向上搜索。
-
F4:在命令历史记录中向下搜索。
-
F7:显示命令历史记录。
-
F8:在命令历史记录中逐条执行命令。
-
Alt + F7:清除命令历史记录。
-
Alt + F8:在命令历史记录中搜索命令。
-
Alt + F9:执行命令历史记录中的最后一个命令。
-
Alt + .:显示最近使用的命令。
-
Shift + F10:打开上下文菜单。
-
Shift + F11:打开脚本调试控制台。
这些快捷键可以帮助用户更快地执行命令、浏览历史记录以及在 PowerShell 中进行其他操作。记住这些快捷键可以显著提高在 PowerShell 中的工作效率。
3.管道和重定向
(1)管道和重定向的概念:
- 管道 :在 PowerShell 中,管道操作符
|
用于将一个命令的输出作为下一个命令的输入。这允许用户将多个命令链接起来,以创建复杂的数据处理流程。 - 重定向 :重定向操作符
>
用于将命令的输出结果保存到文件中,覆盖文件的原有内容。如果使用>>
,则会在文件的现有内容后追加输出。
(2)跨平台兼容性:
PowerShell 支持跨平台使用,这意味着它不仅支持 Windows 命令,还支持许多 Linux 命令,如 ls
(列出目录内容)。
(3)基于对象的处理:
PowerShell 是基于对象的,这意味着它处理的是对象而不是简单的文本,可以处理来自不同平台的命令输出。这与传统的 CMD 环境不同,后者主要处理文本。
示例命令:
ls | format-table Mode,name
:这个命令使用管道将ls
命令的输出传递给format-table
命令,后者将输出格式化为表格,只显示文件的模式(Mode)和名称(name)。ls | format-table Mode,name > a.txt
:这个命令将上述格式化后的输出重定向到名为a.txt
的文件中,覆盖文件的原有内容。type a.txt
或cat a.txt
:这两个命令用于显示a.txt
文件的内容。