PowerShell 学习笔记——运行命令

谈到“Shell”,很容易与脚本、编程语言等联系起来,这也是很多ITPro不去钻研PowerShell的原因。很多ITPro们认为用好PowerShell就要涉及到复杂的函数、变量、脚本,这或许是一种误解。其实,PowerShell设计的初衷是作为一个高级管理工具,提供给系统管理员使用的。因此,运行命令以达到管理系统的目的,是我们学习PowerShell的开端。

一、什么是Cmdlet

Cmdlet 是一个原生的 PowerShell 命令行工具,虽然它表面上看与普通的 Dos 命令行工具很相似,却有着本质的不同。Cmdlet 比纯 Dos 命令行命令要复杂很多。在 PowerShell 的控制台窗口中可以执行 Dos 命令行命令,反之则不行。

以上截图是分别在 PowerShell 控制台和 Dos 控制台中执行“get-command” 命令的结果。大家可以看到,左边窗口有结果反馈,而右边的 Dos 窗口是找不到命令的信息。如果我们尝试执行一个 Dos 命令的话,结果会如何呢?

二、Cmdlet的命名惯例

没有规矩不成方圆,PowerShell 的 Cmdlet 也是如此。所有的 Cmdlet 命令都是由“动词”+“-”+“名词(单数形式)”组成的,例如:get(动词)-(破折号)command(名词)。可以通过运行 Get-Verb 来查看允许使用的动词列表。

PowerShell 允许自定义名词,因此并不存在 Get-Noun 的 Cmdlet 来显示所有名词。需要注意的是,并不是所有的动词位置的词都是动词,例如:New、Where,这些词是一些带有动词性质的名词(如果你不理解,请补英文课程)。

这种命名规范最大的好处是:可以预先猜测命令,之后可以用帮助系统或者 Get-Command 命令验证。

三、别名

虽然我们掌握了 PowerShell 的命名规范,但在使用中会发现有些命令实在是太长了,以至于用命令补齐的方式也还是嫌它长,这就是需要“别名”的原因。要想知道一个 Cmdlet 命令是否有别名,请执行如下命令:Get-Alias -Definition "Get-Service"

从上图可以看到 Gsv 是 Get-Service 的别名。也可以用 New-Alias 命令创建自定义的别名,但如果你不导出的话,其生命周期仅限于本次会话。

四、一些术语

【Cmdlet】:原生的 PowerShell 命令行工具,仅存在于 PowerShell 和类似 C# 的.Net Framework 语言中。读音:command-let。

【函数(Function)】:与 Cmdlet 类似,是以 PowerShell 自己的脚本语言编写的。

【工作流(workflow)】:是嵌入 PowerShell 的工作流执行系统的一类特殊函数。

【应用程序】:是任意类型的外部可执行程序,包括类似 Ping、ipconfig 等命令行工具。

【命令】:是一个通用术语,代表任何或所有上面提到的术语。

时间: 2024-10-31 09:06:02

PowerShell 学习笔记——运行命令的相关文章

PowerShell 学习笔记5

可重用的远程管理会话: TCP Joke: ICM进行的会话在结束之后,会话在目标计算机上进行的会话就全部销毁了. 建立Session与查看Session $Session = New-PSSession –computerName dc Get-PSSession icm –session $sessions {$var =2} 这个$Session可以被重用(Powershell V3) 测试脚本执行时间: Measure-Command { scriptblock} 重用Session的脚

c/c++unix/linux基础学习笔记-常用命令和vi的使用

linux 基本命令的使用-命令在ubuntu下面执行,有些命令通用其他linux,有些不通用. 多条命令间用;号隔开,回车后可以一起执行. clear-前屏,pwd显示当前目录,cd跳转目录. sudo [命令]  -ubuntu 下以管理员身份运行命令. 一般情况下,运行当前目录下的程序,要用 ./文件名 执行. 查看当前shell名称:ps 进入另外一个shell,直接输入shell名称:ksh/tcsh/sh/bash,退出一个shell用:exit. 切换shell命令,如:exec

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来

memcached学习笔记——存储命令源码分析下篇

上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制. 本文是延续上一篇,继续分析存储命令的源码.接上一篇内存分配成功后,本文主要讲解:1.memcached存储方式:2.add和set命令的区别. memcached存储方式 哈希表(HashTable) 哈希表在实践中使用的非常广泛,例如编译器通常会维护的一个符号表来保存标记,很多高级语言中也显式的支持哈希

memcached学习笔记——存储命令源码分析上

原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command函数,探究memcached客户端的set命令,解读memcached是如何解析客户端文本命令,剖析memcached的内存管理,LRU算法是如何工作等等. 解析客户端文本命令 客户端向memcached server发出set操作,memcached server读取客户端的命令,客户端的连接状态

PowerShell 学习笔记——PS On MacOS

? PowerShell 学习笔记--PS On MacOS ? I remember that there is a command line tool on Mac OS X using for connecting to Microsoft Azure.  But now, Microsoft is developing MacOS version PowerShell – PowerShell for MacOS v6.0 alpha.  Let's see it. 1. Downloa

MOOS学习笔记3——命令行

MOOS学习笔记3--命令行 例程 /** * @code A simple example showing how to use a comms client问问怎么样 */ #include "MOOS/libMOOS/Comms/MOOSAsyncCommClient.h" #include "MOOS/libMOOS/Utils/CommandLineParser.h" bool OnConnect ( void *pParam ) { CMOOSCommC

Linux学习笔记——bash命令及shell变量简介

bash 及其特性 shell  外壳 GUI :Gnome  KDE  xface CLI :shell  csh  ksh  bash 程序,进程 进程:每个进程看来,当前主机上只存在内核和当前进程 进程是程序的副本,进程是程序执行实例 用户的工作环境: bash: #   root用户 $   普通用户 shell  ,子shell bash : 1.命令历史 2.管道,重定向 3.命令行编辑 4.命令别名 5.命令行展开 6.文件名通配 7.变量 8.编程 命令行使用技巧: Ctrl +

PowerShell 学习笔记——管道

对于命令行管理工具而言,"管道"是一个重要概念.PowerShell 同样提供了管道功能,可以在一个序列行中将多个命令连接起来,以实现一些较为复杂的任务. 一.输出结果到CSV或XML文件 作为系统管理员,经常会查看一些系统状态,比如:系统目前的进程情况.服务运行情况等.虽然我们可以通过 GUI 的应用程序来查看,但是有时候通过命令行查看后输出到CSV或XML文件,再进行一些分析.比较,也是需要掌握的技能. [输出到CSV]:Get-Process | Export-CSV 用记事本查