吃饭的时候吃饭,睡觉的时候睡觉,工作的时候工作,学习的时候学习......
❝ UNIX/Linux有Shell,Windows也有PowerShell ❞
作者:彭新 日期:2014-05-18 分类:Windows 点击: 来源:www.wo81.com

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源,谢谢 !

UNIX/Linux有Shell,Windows也有了PowerShell,而且 Windows8.1上已经自带了PowerShell4.0。这倒是一个挺强大的工具,我觉得这是Windows运维工程师需要掌握的一个好工具。下面看一些介绍。PowerShell将对象作为基本的操作单元,而Unix Shell将字符串作为基本单元,这是它们最大的区别。下来看一些PowerShell的例子。

1、自动补齐功能

和Linux一样,使用Tab键,区别就是如果有多个匹配,按一次Tab自动向后匹配一个。

2、查询进程

UNIX Shell对比:ps 命令

PowerShell:查看所有进程:Get-Process(别名ps,gps)

查看360浏览器的进程:Get-Process 360se

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName

-------  ------    -----      ----- -----   ------     -- -----------

    986     119    75436     107596   408     7.14   5616 360se

    145      23    40892      45780   162     1.38   5844 360se

    141      19    25916      29596   151     0.58   6176 360se

    241      24    11256      21272   181     0.38   6568 360se

查看包含vm的进程:Get-Process *vm*

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName

-------  ------    -----      ----- -----   ------     -- -----------

    107      13     4132       2744    66            2072 vmnat

     48       6     7332       8152    28            2164 vmnetdhcp

    463      18     8548       4296    96            2280 vmware-authd

    493      40    35188      16308   186            2572 vmware-hostd

    165      12     1988       2016    66            2244 vmware-usbarbitrator64

查看内存占用超过100MB的进程

 Get-Process | where {$_.WS -gt 100MB}

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName

-------  ------    -----      ----- -----   ------     -- -----------

    988     118    75536     107784   405     7.17   5616 360se

   2295    2215   152452     303452  1351   432.84   3204 explorer

 

   1240      89   105120     153088   500   262.14   2832 SogouExplorer

3、结束任务(进程)

UNIX Shell对比:ps -e | grep "360se" | awk '{ print $1 }' | xargs kill

PowerShell:杀进程:Stop-Process ,别名 kill,spps

结束360浏览器进程:Get-Process 360se | Stop-Process

4、列出目录下的子目录和文件

PowerShell:get-childitem 或者 dir  或者 ls (结果一样),结果有四列,如下,其中Length为字节数(目录Length为空),Name为文件或者目录名

Mode                LastWriteTime     Length Name

----                -------------     ------ ----

d----         2014/5/18     20:55            1

-a---         2014/5/18     20:58       8840 abc.xlsx

5、计算对象的数字属性以及字符串对象(如文本文件)中的字符数、单词数和行数

UNIX Shell对比:wc

PowerShell:Measure-Object,别名:measure

计算目录下文件或者目录数:dir |measure

Count    : 2

Average  :

Sum      :

Maximum  :

Minimum  :

 

Property :

计算目录下所有文件字节数:dir|measure-object -Property Length -sum

Count    : 1

Average  :

Sum      : 8840

Maximum  :

Minimum  :

Property : Length

6、大小写转换

UNIX Shell对比:小写转大写:echo "this is a string" | tr [:lower:] [:upper:]   大写转小写:echo "This is A String" | tr [:upper:] [:lower:]  

                               小写转大写: echo "this is a string" | tr '[a-z]' '[A-Z]'   大写转小写:echo "this is A sTring" | tr '[A-Z]' '[a-z]'

PowerShell:转大写:.ToUpper(),转小写:ToLower()。

"this is A sTring".ToUpper();

"this is A sTring".ToLower();

echo "this is A sTring".ToUpper();

echo "this is A sTring".ToLower();

7、在字符串中插入字符

UNIX Shell对比:使用sed命令,比如echo "string" | sed "s|\(.\)\(.*)|\1ABC\2|"

PowerShell:-replace 或者 .Insert方法

"string" -replace '(.)(.*)','$1ABC$2'

推荐:"string".Insert(1,"ABC")

8、文件管理

新建文件New-Item,别名 ni :New-Item -ItemType f aa.txt;

支持 echo "abc">abc.txt 和 "abcc">abcc.txt;

创建目录:mkdir  dd 或者 New-Item -ItemType d dd

删除文件 或 目录:Remove-Item,别名:ri,rm,rmdir,del,erase,rd

文件编辑工具:notepad(vim替代品),比如notepad abc.txt

查看文件:cat aaa.txt  或 more aaa.txt

想了解更多的,请参考官网资料:http://technet.microsoft.com/zh-cn/scriptcenter/powershell.aspx

初学的话,可以把PowerShell当做CMD来用,遇到新的问题,可以尝试用它来实现,自然就会越来越熟悉了。

本文链接:UNIX/Linux有Shell,Windows也有PowerShell

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源,谢谢 !