首頁 > 軟體

PowerShell基本使用教學

2020-09-23 15:01:58

一、說明

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使用的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com