从本文开始,我会陆续分享Powershell在实践开发中的经验,从基础知识,到实战技能,再到企业级应用。
本文会包含以下三个知识点
- 什么是Powershell ?
- 学习Powershell有什么好处?
- 学习Powershell需要哪些条件?
什么是Powershell ?
Powershell(Windows Powershell)是Microsoft为Windows设计的新的命令行程序,这个Windows内置的命令行shell包括交互式提示和脚本环境,它们可以独立使用也可以交互使用。
我们平时所见的大多数的脚本(bat,perl,bash,sh),接受(输入)和返回(输出)的都是文本。Powershell是在 .Net公共语言运行时(CLR-Common Language Runtime)和.Net Framework的基础上构建的,所以Powershell可以接受和返回.Net对象。也就是说,Powershell是面向对象的脚本语言。
举个例子,如果其它的脚本语言是C语言(低级),那么Powershell就是Java或是C#(高级)。面向对象的能力使Powershell相比其它脚本语言有更高的开发效率,脚本更容易维护,更容易实现模块化和复用。
PowerShell 引入了 cmdlet的概念(cmdlet读作“command-let”,一看就是cmd的超集,事实也是如此,所有cmd命令都可以在Powershell中执行),这是内置到 shell 中的一个简单的单一功能命令行工具。相比其它shell,PowerShell 除了可以对计算机上文件系统的访问。还可以访问其他数据存储,如注册表和数字签名证书存储,就像访问文件系统一样容易。
Powershell提供了丰富的内置命令,相比其它shell尤其独特的优势:你不必抛弃自己惯用的工具、命令,在Powershell中可以使用所有的cmd命令。
- Powershell不处理文本(不把文本当做文本处理,当做.Net对象处理),相反,它处理基于.Net Framework平台的对象。
- Powershell附带了具有一致格式(动词-名词)的大量内置命令。
- 所有的Powershell命令都使用同一命令分析程序,而不是每个工具(命令)使用不同的分析程序,可以同时学习大量的命令。
学习Powershell有什么好处 ?
Powershell的设计初衷是为方便系统管理员进行大批量重复性的操作,但是对于开发人员,同样可以极大地提高生产效率
- 开发人员也会遇到关键字的搜索,定位,剔除,复制(一对一,一对多),发送(一对一,一对多)等可以自动化执行的任务。
- 是开发工具箱中的"瑞士军刀"。
- 可以在Powershell中调用cmd、exe、dll等程序,可以借助C#等.Net平台语言实现复杂的业务逻辑。
学习Powershell有什么条件 ?
- PC一台,最好Win7以上的系统,XP只支持Powershell 2.0,命令自带补全的功能在2.0中的支持并不好。
- 有一定的计算机基础,有面向对象语言Java、C#开发经验的更佳。
- Powershell技术本身已很成熟,资源丰富。
江湖传言,Win10会去掉cmd命令窗口,取而代之的是Powershell,对于真正的高手而言,命令行是不可或缺的。有的时候,一行命令所具有的威力也绝非可视化的窗体中的鼠标点点和拖拽可以比拟的。Powershell可以极大的提高工作效率,如果job脚本是Powershell,或是经常出现重复性的工作,比如文件关键字的查找,磁盘空间的监视,log文件的清除等,那么是时候学习点Powershell。