目錄
- 一、說明
- 1.1 背景說明
- 1.2 PowerShell是什么
- 二、PowerShell使用
- 2.1 啟動PowerShell
- 2.2.1 get-help查看幫助
- 2.2.2 get-command查看有哪些命令
- 2.2.3 get-command縮小范圍
- 2.2.4 get-process查找進程
- 2.2.5 stop-process殺除進程
一、說明
1.1 背景說明
個人對PowerShell也不是很熟悉,開始的時候就突然看到開始菜單中多了個叫PowerShell的文件夾,后來一點就看到某個教程視頻說PowerShell很厲害但也沒怎么聽,再后來就看到kali也有了一些PowerShell的腳本這才意識到PowerShell應該確實有獨到之處而且正在逐漸受到認可,不過我使用PowerShell是不久前網上看到篇文章說PowerShell可以算數所以常當個計算器使用。直到昨天看了《Windows PowerShell實戰指南》才算有了比較完整的了解。

1.2 PowerShell是什么
很多人上來就什么基于.Net強無敵,首先作為用戶我不關心你是什么技術,我首先想知道的是你提供的是什么東西、怎么用。
PowerShell,從名字可以知道,他首先是一個shell,shell的意思就是和Linux的bash等一樣、和原來的cmd一樣就是在里邊敲命令(可執行文件)使用;
而Power就意味他是一個功能強大的shell,從面向用戶而言,個人覺得其功能強大體現在以下幾方面:
(1) 微軟態度。微軟是真正的在推行PowerShell,包括Office等更多自家軟件,底層都是調用PowerShell來實現。
(2) 兼容性cmd。PowerShell包含原先cmd的所有命令,原先命令使用形式不變,在是在其基礎上添加命令。
(3) 對標Linux。PowerShell使用了Linux Shell的思想,也就是所有的系統操作、配置,都可以在shell中敲寫命令實現。
(4) 統一的命令格式和自包含的文檔。基于前3點我們即可以說PowerShell已可與Linux Bash等一較高下,如果再加上后發優勢那就可以讓人相信PowerShell可以成功。對于bash等shell你覺得最大的缺點是什么?從我角度而言我覺得是成本很高,最開始是我不知道用什么命令不太記得使用什么命令我需要百度一下,二是我經常忘記命令參數格式怎么寫要在良莠不齊的網上百度半天(man手冊?對不起我真的經常沒看懂,我博客之前寫了不少關于shell命令的文章就是備忘用,網上那么多關于shell命令的文章也說明不是因為我特別蠢)。而這就是PowerShell的兩個優點:第一點是PowerShell所有命令使用統一的cmdlet命令格式(也就是“動詞-名詞”的格式,比如get-process)會使人很容易記住;第二點這里所謂自包含是指你要干一件事你可以逐步找到要做的事所需的所有命令,即便你記不得命令你也可以很容易找到,你找到命令看文檔就很容易知道怎么使用。
當然powershell很好但也有著其劣勢:
(1)Linux和Windows系統本身定位的差異。Linux的免費穩定使其牢牢占據了服務器領域,Linux Shell命令是沒有很多統一格式的因此工程師們要費很大的勁去學習,而當Linux占據工程師的大部分精力并塑造完他們的習慣后,工程師們也許并沒有那么多精神和動力去學powershell。
(2)來自Windows GUI的競爭。Windows上命令能干的事GUI也都能干也許效率慢一些但普通用戶可不想去黑漆漆的界面敲感覺不受控制的命令。
Linux占據了服務器工程師的日常,而Windows自身強大的GUI對普通用戶有天然的親和力,所以powershell能期望的目標用戶是誰呢,Windows服務器運維工程師好像沒見過專門設有這職位。
二、PowerShell使用
下邊我們將假設我們對powershell一無所知,通過殺除一個notepad進程的操作過程,來看一下什么叫powershell的“統一的命令格式和自包含的文檔”。
我這里并不介紹一堆命令----命令是介紹不過來的我這里是win7到了win10你會看到多出一倍不止的命令,以后還會更多----而是介紹powershell的使用思路,其他工作都可借助類似的思路來進行。
2.1 啟動PowerShell
方法一: 直接在cmd中執行powershell,切換為powershell

方法二: 開始菜單中輸入powershell啟動powershell
方法三: 開始菜單----附件----powershell啟動
帶x86的是32位的,不帶的是64位的;帶ies的是簡單的ide

2.2 使用powershell
powershell啟動后界面如下

2.2.1 get-help查看幫助
我們一無所知,所以我們輸入help試一下,很好,powershell確實支持help
(不過我們前邊說過powershell命令是cmdlet格式,help也使用cmdlet格式,help只是get-help的一個別名)

2.2.2 get-command查看有哪些命令
在確定powershell支持get-help之后,首先我們需要知道powershell支持哪些命令,在上圖get-help中可以看到可以使用get-command查看powershell支持的命令
CommandType列,表示命令類型,Alias是別名、Cmdlet是powershell格式的命令、Function是函數
Name列,就是命令
Definition列,命令功能的簡單描述

2.2.3 get-command縮小范圍
上面的命令太多了,我們需要縮小范圍以確定類似ps功能的命令在powershell中是什么(當然我們說過powershell兼容cmd所以可以直接用ps,但這不是我們這里想要的)
查看信息都是get-開頭,所以我們猜測查看進程的命令也以get-開頭,執行get-command get-*試一下
結果如下圖所示,列出了所有get開頭的命令,其中我們看到有一個叫get-process的命令,一看就是獲取進程信息的

2.2.4 get-process查找進程
我們將命令鎖定在了get-process但是我們不知道這個命令怎么用,2.2.1中說可以通過get-help command的形式查看幫助,我們也試一下

可以看到所有選項都是帶中括號的,所以直接執行get-process就可以了
但是可以猜測,沒有任何過濾條件返回的肯定是所有進程列表這需要過濾,可以看到-name參數可以過濾進程名,為保險起見我們還加上*號通配符
整個要執行的命令就是:get-process -name *notepad*

2.2.5 stop-process殺除進程
第一個思路是:在get-help get-process中已看到相關鏈接中有stop-process,這大概率是殺除進程的命令
第二個思路是:獲取進程是get-process,那么殺除進程也大概率是xxx-process
執行:get-command *process

可以看到就5個命令,而其中只有stop-process比較像,一樣使用get-help來查看幫助順便確認是不是

顯而易見確實是,而且殺除命令就是:stop-process -id pid

以上就是PowerShell的基本使用的詳細內容,更多關于PowerShell使用的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- PowerShell 指令操作集合(小結)
- 如何利用PowerShell監控Win-Server性能詳解
- PowerShell中Job相關命令及并行執行任務詳解
- 基于PowerShell在Ubuntu系統的使用詳解
- PowerShell 遠程執行任務的方法步驟
- powershell玩轉SQL SERVER所有版本的方法
- 如何在power shell添加vim實現代碼示例