Powershell学习笔记一:简介

简介
  Windows Powershell是专为系统管理员设计的全新Windows命令行界面外壳程序。可以说,它就是模仿了Linux的shell而设计的。与linux中的bash什么的一样,它也包含了交互式的提示和脚本环境。两者可以组合也可以独立使用。
 
  在Powershell中出现了一个叫cmdlet的概念,它是嵌入到外壳程序中的一个简单的单一功能命令行工具。每个cmdlet都可以单独使用,当然也可以用脚本让它们组合在一起使用。Powershell包含了一百多个基本的核心cmdlet,用户也可以自己编写cmdlet。其实,cmdlet可以简单的理解成内部命令。只是在Powershell中附带了更多的内部命令。
  这些cmdlet(全称是command-let)的格式都是一致的:“命令-对象”
 
  那么,与我们熟悉的cmd.exe、SH、KSH、CSH和BASH等外壳有什么不同呢?按官方文档的说法有:
  --Powershell不处理文本,仅针对于.net平台
  --附带大量一致界面的内置命令
  --所有命令使用同一命令分析程序,命令学习轻松。(就是说都是MS做的,而不像linux那样混乱,所以命令风格一致)
  另外,以前许多在cmd.exe下,或者bash下执行的命令,在powershell中也都可以执行(其实是转换成powershell中的类似命令执行)。

Powershell cmdlet
  cmdlet(读作"command-let")是powershell中,用于操作对象的单一功能命令。可以通过其名称格式识别,-前后分隔的分别是动词和名词,例如:get-help、get-process、start-service
  传统的外壳中,命令是从非常简单(例如attrib.exe)到非常复杂(如netsh.exe)的可执行程序。而在powershell中,多数cmdlet非常简单,它们设计为与其它cmdlet组合使用。例如"get"用于检索数据,"set"用于建立或修改数据,"format"仅设置数据格式,"out"仅将输出定向到指定的目标。

脚本语言
  powershell中使用新的脚本语言而不是重用现有语言。因为它是用于管理.net对象的,而且需要为cmdlet提供一致的环境,它要支持复杂的任务,要与.net中使用的高级语言(比如C#)一致。

  在powershell中可以运行以前所有的命令行程序,也可以启动图形界面的windows程序。还可以捕获程序生成的文本。

管道
  powershell中支持管道,与linux和cmd中的用法都一致。例如:ipconfig|findstr 字符
就可以把ipconfig输出的文字中包含指定字符串的行提取出来。但是要注意findstr对大小写是敏感的。
  大家可以试试:ipconfig|findstr Gateway

交换式环境与脚本
  与其它的shell程序相同,Powershell也支持完全交互式环境。在提示符下输入命令会执行,或按需求发送到其它命令或重定向到文件中。
同时,Powershell中也完全支持脚本。在Powershell中,脚本文件 的扩展名为.ps1,要运行脚本,在命令提示符下键入该脚本的名称即可。(脚本的扩展名是可选的)
例如:
c:\test\testscript.ps1
 
c:\test\testscript
 
  即使脚本在当前目录中,也必须指定脚本文件的完全限定路径。若要指示当前目录,请键入目录名称或使用点 (.) 表示当前目录(这一点与linux相同,而不同于cmd)。例如:
.\testscript.ps1
 
  虽然脚本在一些企业中非常有用 -- 甚至是必需的,但是它们可以用于传播恶意代码。因此,Windows PowerShell 中的安全策略(称为执行策略)允许您确定脚本是否可以运行,以及它们是否必须包括数字签名。
为了消除明显的风险,Windows PowerShell 中的执行策略都不允许通过双击脚本的图标来运行它。有关详细信息,请键入:
get-help about_signing
 
  Windows PowerShell 还包括一种非常丰富的脚本语言,使用该语言可以创建从最简单到非常复杂的脚本。它支持用于循环、条件、流控制和变量赋值的语言结构。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章