天天看點

從零開始powershell,認識一下目前最為強大的shell工具

作者:萊迪娜的風聲

首先我們按下鍵盤中的win徽标鍵+s按鍵,會彈出如下一個視窗,我們在搜尋那裡輸入 powershell,如果你有經常使用powershell的話,會在最近使用的軟體中看到了powershell的選項,我們直接點選就可以打開powershell

從零開始powershell,認識一下目前最為強大的shell工具

我們這裡選擇了 powershell 7 x64 這個選項,注意這裡的powershell7是powershel core,他是一個跨平台的shell ,可以在linux,mac os,windows系統同時使用,這意味着你編寫的腳本,可以同時在這三個系統中使用

從零開始powershell,認識一下目前最為強大的shell工具

進入microsoft的powershell官網,我們可以選擇多種方式來安裝powershell,這裡我們選擇msi包,這樣下載下傳安裝都在掌控内,比較友善一些

從零開始powershell,認識一下目前最為強大的shell工具

點選msi,會直接定位到下載下傳連結,共有兩個版本,一個是64位,一個是32位,我這裡兩個都下載下傳了,你那邊看情況

從零開始powershell,認識一下目前最為強大的shell工具

powershell x86 和 x64 下載下傳完成

從零開始powershell,認識一下目前最為強大的shell工具

因為我這邊已經安裝過,具體的安裝過程我不在詳細指導,但是可以告訴你的是,一路next,然後看到需要點選的框全部選擇即可。

從零開始powershell,認識一下目前最為強大的shell工具

之後我們會在桌面右鍵菜單中發現這兩個選項,一個32位,一個64位,用起來比較友善,我個人現在都是使用powershell 7 core,自己安裝的這個,而不是windows系統自帶的,因為windows系統自帶的有些時候可能會遇到編碼問題

從零開始powershell,認識一下目前最為強大的shell工具

接下來我們打開powershell,看下面的圖,可以看到在這條指令中我使用了echo指令,echo指令是屬于cmd的一個指令,在powershell中同樣可以使用,這是powershell的别名功能,很多cmd指令在powershell中都有别名,這樣友善哪些留戀批處理的人轉移到powershell之中

從零開始powershell,認識一下目前最為強大的shell工具

通過查詢echo的别名我們可以發現,echo的别名實際在powershell中是 write-output 的指令,也就是說,在powershell中我們可以使用echo 和 write-output 同樣完成輸出語句的功能,它們的功能完全一樣,隻是名字不同

從零開始powershell,認識一下目前最為強大的shell工具

好,上面那些都是開胃菜,接下來讓我們正式開始powershell,打開windows輸入框,我們輸入powershell,然後點選 Run As Administrator 以管理者方式打開,這樣你才可以擁有管理的功能

從零開始powershell,認識一下目前最為強大的shell工具

具有管理者功能的标志是在右上角有 Administrator 的字樣,這是我們尤其要注意到的一點。這個管理者功能非常重要,如果沒有上面沒有管理者标志,那麼我們在執行操作時可能會面臨操作無效的情況,而且通常它是沒有任何提示的。是以當出現任何問題時,檢查一下看看你的powershell是否處于管理者模式

從零開始powershell,認識一下目前最為強大的shell工具

我們要對powershell的字型進行一個調整,這樣做的目的在于設定一個更加舒适的控制台視窗,我們可以設定它的背景顔色以及字型顔色,在這裡我将powershell的字型調整為新宋體,并且設定了粗體

從零開始powershell,認識一下目前最為強大的shell工具

在顔色這裡,我将powershell的螢幕文字調整為綠色,螢幕背景設定為預設的黑色。這樣對眼睛比較舒适一些,你可以按照自己喜歡的顔色進行調整。

從零開始powershell,認識一下目前最為強大的shell工具

設定完成後,我們重新打開powershell就會發現powershell已經生效了,這是字型為新宋體 粗體 ,螢幕字型為綠色時的狀态

從零開始powershell,認識一下目前最為強大的shell工具

在前面我們講了在powershell可以直接使用cmd、dos指令,或者linux指令,這是由于get-alias gal 别名功能的存在,那麼我們如何查找對應的别名呢,下面這張圖檔可以給你答案,在這裡我們使用了get-alias指令的縮寫 gal 并且隻使用findstr顯示包含指定字元串的行

從零開始powershell,認識一下目前最為強大的shell工具

powershell的command指令,被稱為cmdlet,它通常是以動詞get set - 名詞的方式組合而成,據powershell的建立者所言,一開始他們有照搬linux的想法,linux的指令一切都是圍繞着檔案而來的。但是由于windows有所不同,windows有系統資料庫 wmi等等,是以完全使用linux指令是不可取的

從零開始powershell,認識一下目前最為強大的shell工具

在powershell中我們還可以擷取對象的類型,在powershell中,一切都是對象,那麼既然是對象,就必然有其類型和方法,常量等等,供我們查閱,調用,研究使用。powershell檢視對象的方法的方式是 object.getType 如下圖所示,一個Object數組類型和一個String類型

從零開始powershell,認識一下目前最為強大的shell工具

同樣還有對應的方法和成員屬性,這個我們可以通過get-member來擷取

從零開始powershell,認識一下目前最為強大的shell工具

圖中擷取了Object對象的屬性方法,分别為基準的ToString GetType GetHashCOde 以及 Equals 方法 ,經常使用Java的會感覺很熟悉,這是因為powershell是基于.net的,.net又以csharp為主,charp又是仿的Java,是以如果之前學過java會感覺很容易上手powershell

從零開始powershell,認識一下目前最為強大的shell工具

下面看個比較有意思的,在powershell中我們可以直接使用charp的類型建立一個對象,比如在下面這個示例中,我們建立了一個HashSet對象,并将值設定為at雙括号

從零開始powershell,認識一下目前最為強大的shell工具

但是我們需要注意到的是,将值設定為at雙括号的形式可能會引發一定的問題,是以雖然這種方式可行,不過并不推薦,合理的初始化的行為應該是指派為雙大括号,這樣我們就能夠擷取它的成員方法和屬性了

從零開始powershell,認識一下目前最為強大的shell工具

但是一雙大括号的方式建立的c# HashSet同樣存在一個問題,就是會有一個空内容出現,也就是說初始狀态下就有一個空内容填充到HashSet的對象中,是以考慮到這一點還是使用ait雙括号的方式建立HashSet對象比較妥當

從零開始powershell,認識一下目前最為強大的shell工具

前面我們講到powershell的cmdlet由 動詞 + “-” + 名詞的格式構成,下面這張圖涵蓋了powershell所有的動詞 英文單詞操作,相信會對大家有很大的幫助。就我接觸powershell這麼長一段時間而言,我感覺寫powershell就像寫c#一樣,不同的是powershell又将c#進行了一層封裝,更加友善調用

從零開始powershell,認識一下目前最為強大的shell工具