《Windows PowerShell实战指南(第2版)》——3.4 使用帮助找命令

简介: 我们前面提到过Help命令并不是为了搜索Cmdlet命令,而是为了搜索帮助主题。因为每个Cmdlet都有一个帮助文件,我们可以说,这些搜索是检索相同的结果集。但是你也可以直接使用Get-Command命令来搜索Cmdlet命令(或者它的别名Gcm)。

本节书摘来自异步社区《Windows PowerShell实战指南(第2版)》一书中的第3章,第3.4节,作者:【美】Don Jones(道·琼斯) , Jeffery Hicks(杰弗瑞·希克斯)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

3.4 使用帮助找命令

从技术上来说,帮助系统不知道Shell中存在哪些命令。它只知道有哪些可用的帮助主题。某些命令可能并没有帮助文档,这会导致帮助系统不能确认这个命令是否存在。幸好微软几乎每个发布的Cmdlet都包含一个帮助主题,这意味着你通常不会发现不同。另外,帮助系统也包含了除特定Cmdlet之外的其他信息,包括背景概念和其他基础信息。

跟大多数命令一样,Get-Help(等同于Help)有几个参数。其中一个最为重要的参数是-Name。这个参数指定你想要访问帮助的主题名称,并且它是一个定位参数,所以你不用必须输入-Name,可以只提供需要查看命令的名称。它也支持通配符,这让帮助系统更加容易找到命令。

例如,你想操作系统事件日志,但是你却不知道使用什么命令,你决定搜索帮助主题包含的事件日志,可以运行下面两个命令中的任何一个。

Help *log* 
Help *event*

第一个命令在你的计算机返回如下列表:

Name               Category     Module
----               --------     ------ 
Clear-EventLog         Cmdlet      Microsoft.PowerShell.M...
Get-EventLog           Cmdlet       Microsoft.PowerShell.M... 
Limit-EventLog          Cmdlet       Microsoft.PowerShell.M... 
New-EventLog           Cmdlet      Microsoft.PowerShell.M... 
Remove-EventLog         Cmdlet      Microsoft.PowerShell.M...
Show-EventLog           Cmdlet       Microsoft.PowerShell.M...
Write-EventLog           Cmdlet       Microsoft.PowerShell.M...
Get-AppxLog           Function     Appx 
Get-DtcLog            Function     MsDtc 
Reset-DtcLog           Function     MsDtc
Set-DtcLog            Function     MsDtc 
Get-LogProperties        Function     PSDiagnostics
Set-LogProperties        Function     PSDiagnostics
about_Eventlogs         HelpFile
about_Logical_Operators    HelpFile

注意:
你可以注意到,前面的这个列表的Appx、MsDtc模块包含命令(和函数)等。即使你还没有加载这些模块扩展到内存,帮助系统也一样会显示所有模块。这可以帮助你发现电脑上被遗漏的命令。它可以发现那些安装在适当位置所有扩展中的命令。对此,我们会在第7章进行讨论。
前面的列表中有许多关于事件日志的函数,它们都基于“动词-名词”这个命名格式,但是最后出现了两个关于帮助主题的特殊Cmdlets命令。这两个“about”主题提供了关于某个命令的背景信息。最后一个看起来跟事件日志没有什么关系,但是它被搜索到是因为其中有一个单词“logical”的其中一部分包含了“log”。只要有可能,我们尽量使用“event”或者“log”来搜索,而不是使用“eventlog”,因为我们可以返回尽可能多的结果。

一旦发现从名称看起来可能是你所需的Cmdlet时(比如说,后面示例中Get-EventLog看起来就是做这件事的),你就可以查看该Cmdlet的帮助文档进行确认。

Help Get-EventLog 
不要忘记使用Tab键来补全命令!它可以让你只输入部分命令名,按下Tab键,接着Shell会完成与你刚刚输入最为接近匹配的命令。你可以连续按Tab键来选择其他匹配的命令。

动手实验:输入Help Get-Ev,接着按下Tab键。第一次匹配到的是Get-Event,这并不是你想要的;再次按下Tab键就匹配到Get-EventLog,这就是你想要的命令。你可以敲回车键来确认这个命令并显示这个命令对应的帮助信息。如果你使用ISE,你不需要敲Tab键。所有匹配的命令都会以列表的形式呈现,你可以选择其中一个并敲回车键,这样就完成了命令的输入。
你也可以使用最为重要的“*”通配符,它可以在Help后面占用零个或多个字符。如果PowerShell只找到一个匹配你输入的命令,它并不是以列表的形式返回这个单一项,而是直接显示这一单项的具体帮助内容。

动手实验:运行Help Get-EventL*命令,你应该可以看到关于Get-EventLog的帮助信息,而不是返回一个匹配的帮助主题列表。
如果你一直跟随本书的示例进行实验,那么现在你就应该在看Get-Eventlog的帮助文档了。这个文档被称为概要帮助,这意味着它只有简单的命令描述和语法提示。这些信息是非常有用的,当你需要快速认识一个命令的使用,并且我们通过这个帮助文档来进行示例讲解。

补充说明

有些时候,我们想分享的信息虽然不错,但不是至关重要的Shell知识。我们将把这些信息放到“超越自我”部分,正如现在这个部分。如果你跳过这段,你并没有什么损失,但是如果你阅读了,你通常会学会以另外一种方式来解决问题,或者得到额外深入理解PowerShell的机会。

我们前面提到过Help命令并不是为了搜索Cmdlet命令,而是为了搜索帮助主题。因为每个Cmdlet都有一个帮助文件,我们可以说,这些搜索是检索相同的结果集。但是你也可以直接使用Get-Command命令来搜索Cmdlet命令(或者它的别名Gcm)。

跟Help这个命令一样,Get-Command接受通配符,意味着你可以运行Gcm event 来查看所有名称包含“event”的命令。不管怎么样,这个返回的列表将包含不止Cmdlet命令,还会包含一些不一定有用的外部命令,如netevent.dll。

一个比较好的方式是使用“-名词”或者“-动词”参数。因为只有Cmdlet名的名称有名词和动词,返回的结果将会限制为Cmdlet命令。Get-Command -noun event将会返回一个关于事件命令的列表;Get-Command-verb Get将会返回一个具有检索能力的列表。你也可以使用-CommandType参数来指定命令的类型。比如,Get-Command log -type Cmdlet将会返回一个所有命令名称包含“log”的命令列表,并且这个列表不会包括任何其他扩展应用程序或者扩展命令。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
1131 16
|
网络协议 数据建模 数据安全/隐私保护
网安快速入门之Windows命令
本文简要介绍了Windows命令行中常用的11个命令,帮助快速入门网络安全和系统管理。这些命令包括:`help`(获取命令帮助)、`copy`(复制文件)、`dir`(显示目录内容)、`cd`(更改当前目录)、`type`(显示文本文件内容)、`del`(删除文件)、`ipconfig`(查看网络配置)、`net`(用户和组管理)、`netstat`(显示网络连接)、`tasklist`(显示进程信息)和`sc`(服务控制)。每个命令都有其特定用途,掌握它们可以大大提高工作效率和系统维护能力。
|
存储 安全 数据库
适用于 Windows 的管理命令
以下命令可用于管理 Rational® Synergy。
326 1
|
人工智能 监控 安全
掌握Windows管理利器:WMI命令实战
本文介绍了Windows Management Instrumentation (WMI) 的基本概念和用途,通过多个实用的`wmic`命令示例,如获取CPU信息、查看操作系统详情、管理服务、检查磁盘空间等,展示了WMI在系统维护中的强大功能。适合IT专业人士学习和参考。
1694 4
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
901 0
|
缓存 监控 网络协议
计算机网络的常用的网络通信命令(Windows)
本文介绍了网络技术中常用的命令,如ping用于检测网络连通性,ipconfig查看TCP/IP配置,netstat监控网络状态,arp显示和修改ARP缓存,at安排任务执行,tracert追踪路由,以及nbtstat获取NetBIOS信息。
552 1
|
Windows
Windows系统命令dir使用详解
Windows系统命令dir使用详解
2899 2
7-3|windows删除目录下的所有文件的命令
7-3|windows删除目录下的所有文件的命令
|
监控 网络安全 Windows
Windows系统命令
Windows系统命令
315 1
windows 下面的 cmd命令
windows 下面的 cmd命令