Windows PowerShell是专门为系统管理员设计的Windows命令行Shell。PowerShell包括可以单独或组合使用的交互提示和脚本编写环境。Windows PowerShell引入了cmdlet的概念,内置于shell的命令行工具,可以分别使用每个cmdlet。Windows PowerShell包括100多个基本核心cmdlet,允许访问计算机上的文件系统。
Powershell是什么
- 微软态度。微软在推行powershell,包括office在内的多款自家软件,底层都是调用powershell来实现。
- 兼容cmd。原先cmd的所有命令在powershell中都能够使用,在其基础上添加命令
- 统一的命令格式和自包含文档,
动词-名词的形式,如Get-Command,Get-Process,Get-Help。 -
powershell命令统一使用cmdlet的格式,相对于shell中的命令更容易记住;
Powershell功能及启动
功能
- 与标准的windows命令和程序兼容
- 全新的命令格式:cmdlets
- 支持对象和面向对象
- 适合管理员应用
- 多语言支持
启动
1、cmd -——> powershell
2、start ——>All Program ——>附件——>Windows PowerShell——>Windows PowerShell
Powershell 重要概念
-
PowerShell快速编辑模式和标准模式
标准模式:鼠标右击选择标记后才能实现复制和粘切功能。
快速编辑模式:可以通过鼠标左键选择任意矩形区域内的文本,并且鼠标右击实现复制功能。
- 输出是基于对象的:
powershell cmdlet旨在处理对象,对象是结构化信息,不仅是屏幕上出现的字符串,还包含一些额外信息。
- 命令系列是可扩展的:
以往cmd相对于shell有很多的不足,比如命令偏少、部分命令功能偏弱,对正则表达式不支持等。现在PowerShell 中的本机命令称为 cmdlet(command-let)。 可以使用编译的代码或脚本创建自己的 cmdlet 模块和函数。 模块可以向 shell 添加 cmdlet 和提供程序。 PowerShell 还支持类似于 UNIX shell 脚本和 cmd.exe 批处理文件的脚本。
- 处理控制台输入和显示
当键入命令时,会直接处理命令行输入。 PowerShell 还会对你在屏幕上看到的输出进行格式设置。
Powershell快捷键
| 快捷键 | 作用 |
|---|---|
| ALT+F7 | 清除命令的历史记录 |
| End | 将光标移动到命令的末尾 |
| Del | 从右开始删除输入的命令字符 |
| Esc | 清空当前命令行 |
| F2 | 自动补充历史命令至指定字符 |
| F4 | 删除命令行至光标右边指定字符 |
| F7 | 对话框显示命令行历史记录 |
| F8 | 检索包含指定字符命令行历史记录 |
| F9 | 根据命令行的历史记录编号选择命令 |
| Home | 光标移动至命令行最左端 |
| Backspace | 从右删除命令行字符 |
| Ctrl + Home | 删除光标最左端的所有字符 |
| Tab | 自动补全命令或文件名 |
常用命令
- 查看powershell版本
get-host # 完整信息
$host.version # powershell版本号
$PSVersionTable.PSVERSION # 同上版本号
- 查看命令用法
Get-Help -Name command(Get-Process)
- 新建目录
New-Item test -type Directory
- 新建文件
New-Item test
管道和重定向
-
管道:将上条命令的输出作为下条命令的输入
-
重定向:将命令的输出保存到文件中,
>代表覆盖 、>>代表追加
面向对象
-
Linux的设计思想决定所有的输入和输出都尽可能是文本格式,这样可以方便各进程间的合作,要求各个程序提供一定强度的文本解析能力。 -
Windows的思想与此不同,PowerShell中很多输入输出都不是普通的文本plain text,而是一个个对象objects。因此,PowerShell不仅是一种交互环境,也是强大语言的Runtime,而这种语言甚至是面向对象的。 - 命令执行结果
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
2852 550 107332 39376 2908 0 360EntClient
1384 126 178740 24636 13,438.73 12016 1 360EntClient
959 124 86552 15472 192.17 11972 1 360tray
757 64 245852 9284 22.78 13860 1 AcroRd32
...
结果看似文本,实际上是数组,每个数组的元素又是Process类型的对象。Powershell中所有的类都是继承自Object,且支持GetType()函数。
image.png
结果看似文本,实际上是数组,每个数组的元素又是Process类型的对象。Powershell中所有的类都是继承自Object,且支持GetType()函数。
image.png









网友评论