ch01 基础入门
PowerShell
的名字来源于两处: 一个是命令行 shell, 另一个是脚本语言.
该 shell 自 win7 开始默认被安装在 win 上, 在 Linux 和 MacOS 中也有 PowerShell Core.
使用 powsh 可以将从开发到部署, 以及批量构建环境做成脚本, 进行自动化处理.
从本章开始, 首先介绍基本的命令, 然后进阶是各种函数, 脚本, 以及自定义模块. 本章介绍一些基本命令, 以及如何获取帮助.
打开 PowerShell 命令行
本书使用 v1.5 的版本. 不同版本不影响使用学习, 从 v2 开始, 基本语法没有大的变化.
我现在使用的是 7.4.0 (2024年1月9日).
作者打开的 PowerShell 还是蓝色屏幕的.
提示符 (prompt) PS>
表示从这里开始输入. 作者会右键标题栏, 以使用管理员运行, 来获得更高权限.
使用 DOS 命令
DOS 命令在 PowerShell 中完全兼容, 可以直接使用. 但是这些 DOS 命令并非真正的命令, 是 PowerShell 中命令的别名 (aliases) 或转换来的伪命令(pseudonym).
尝试一下切换目录, cd
命令是 change directory
的简称. dir
是查看当前目录下的内容.
PS> cd .\Windows\
PS> dir
使用
Tab
补全
- 命令不用输入完整, 出现开头的字符后, 可以使用
Tab
补全命令, 不唯一时会依次暂时后续的所有可用命令.Tab
不仅可以用在命令补全上, 还可以使用在 参数补全 上. 例如输入Get-Content -
后再按下Tab
则会补切换展示参数.Tab
是向后查找可用内容, 如果要向前回查, 使用Shift
+Tab
使用 cls
来清屏. 如果想要查看有哪些命令, 以及该命令与 PowerShell 的对应可以使用:
PS> Get-Alias
探索 PowerShell 命令
与其他语言一样, PowerShell 也有命令, 它是内置可执行的具名的表达式. 你也可以定义自己的命令. 如果命令不存在, 会出现红色报错提示. 例如:
可以使用 Get-Command
来查看命令
每一条命令都有一个命名范式: 动词-名词. 它是 PowerShell
的一个独有特征. 建议遵守. PowerShell
的命名基本上可以看出其作用.
Powershell
命令分为一下几类:
cmdlet
. 通常微软提供的内置命令多是cmdlet
, 大部分使用C#
编写.- 函数. 它是使用
Powershell
编写的命令. 函数与cmdlet
是Powershell
最常用的两种命令类型. - 别名
- 外部脚本
从 Get-Command
命令返回的第一列 CommandType
可以看到命令的类型.
PowerShell
中大多数命令都有参数, 用于定制命令的行为. 例如在 Get-Command
中过滤出动作 Get
的命令, 可以使用 Get-Command -Verb Get
. 可见输出依旧很多, 如果想要固定名词, 可以使用 Get-Command -Verb Get -Noun Content
:
可以组合使用 -Verb
和 -Noun
, 如果确定了完整名字, 可以使用 -Name
Get-Command -Name Get-Content
获取帮助
显示文档
类似于 Linux 中的 man 命令, PowerShell 提供了 help
命令和 Get-Help cmdlet
.
这两个命令的返回不完全一样.
help
命令更为详细.
返回的帮助信息分了几个块:
分别描述, 命令名字(NAME), 语法(SYNTAX), 别名(ALIASES), 以及一些说明(REMARK).
详细的说明可以使用 help
命令: help Get-Command
.
获取帮助的时候, -Name
的取值支持通配符 *
, 可以匹配一到多个字符.
更新文档
PowerShell
的文档是动态更新的. 使用命令 Update-Help
来更新.
注意, 文档不是全部公开的, 会有第三方的, 所以该命令可能会返回错误.