Powershell学习1_初识powershell
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()
函数。
结果看似文本,实际上是数组,每个数组的元素又是Process
类型的对象。Powershell
中所有的类都是继承自Object
,且支持GetType()
函数。