微軟愛(ài)上Linux:當(dāng)PowerShell來(lái)到Linux時(shí)
在微軟愛(ài)上 Linux 之后,PowerShell 這個(gè)原本只是 Windows 才能使用的組件,于 2016 年 8 月 18 日開(kāi)源并且成為跨平臺(tái)軟件,登陸了 Linux 和 macOS。
PowerShell 是一個(gè)微軟開(kāi)發(fā)的自動(dòng)化任務(wù)和配置管理系統(tǒng)。它基于 .NET 框架,由命令行語(yǔ)言解釋器(shell)和腳本語(yǔ)言組成。
PowerShell 提供對(duì) COM (組件對(duì)象模型Component Object Model) 和 WMI (Windows 管理規(guī)范Windows Management Instrumentation) 的完全訪問(wèn),從而允許系統(tǒng)管理員在本地或遠(yuǎn)程 Windows 系統(tǒng)中 執(zhí)行管理任務(wù),以及對(duì) WS-Management 和 CIM(公共信息模型Common Information Model)的訪問(wèn),實(shí)現(xiàn)對(duì)遠(yuǎn)程 Linux 系統(tǒng)和網(wǎng)絡(luò)設(shè)備的管理。
通過(guò)這個(gè)框架,管理任務(wù)基本上由稱為 cmdlets(發(fā)音 command-lets)的 .NET 類執(zhí)行。就像 Linux 的 shell 腳本一樣,用戶可以通過(guò)按照一定的規(guī)則將一組 cmdlets 寫(xiě)入文件來(lái)制作腳本或可執(zhí)行文件。這些腳本可以用作獨(dú)立的命令行程序或工具。
在 Linux 系統(tǒng)中安裝 PowerShell Core 6.0
要在 Linux 中安裝 PowerShell Core 6.0,我們將會(huì)用到微軟軟件倉(cāng)庫(kù),它允許我們通過(guò)***的 Linux 包管理器工具,如 apt-get、yum 等來(lái)安裝。
在 Ubuntu 16.04 中安裝
首先,導(dǎo)入該公共倉(cāng)庫(kù)的 GPG 密鑰,然后將 Microsoft Ubuntu 倉(cāng)庫(kù)注冊(cè)到 APT 的源中來(lái)安裝 PowerShell:
- $ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- $ curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list
- $ sudo apt-get update
- $ sudo apt-get install -y powershell
在 Ubuntu 14.04 中安裝
- $ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- $ curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list
- $ sudo apt-get update
- $ sudo apt-get install -y powershell
在 CentOS 7 中安裝
首先,將 Microsoft RedHat 倉(cāng)庫(kù)注冊(cè)到 YUM 包管理器倉(cāng)庫(kù)列表中,然后安裝 PowerShell:
- $ sudo curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/microsoft.repo
- $ sudo yum install -y powershell
如何在 Linux 中使用 PowerShell Core 6.0
在這一節(jié)中,我們將會(huì)簡(jiǎn)單介紹下 PowerShell;我們將會(huì)看到如何啟動(dòng) PowerShell,運(yùn)行一些基礎(chǔ)命令,操作文件、目錄和進(jìn)程。然后學(xué)習(xí)怎樣列出所有可用的命令、顯示命令幫助和別名。
輸入以下命令來(lái)啟動(dòng) PowerShell:
- $ powershell
你可以通過(guò)以下命令來(lái)查看 PowerShell 版本:
- $PSVersionTable
在 Linux 中運(yùn)行基本的 PowerShell 命令。
- get-date [# 顯示當(dāng)前日期]
- get-uptime [# 顯示開(kāi)機(jī)時(shí)間]
- get-location [# 顯示當(dāng)前工作目錄](méi)
在 PowerShell 中操作文件和目錄
1、 可以通過(guò)兩種方法創(chuàng)建空文件:
- new-item tecmint.tex
- 或者
- "">tecmint.tex
然后往里面添加內(nèi)容并查看文件內(nèi)容。
- set-content tecmint.tex -value "TecMint Linux How Tos Guides"
- get-content tecmint.tex
2、 在 PowerShell 中刪除一個(gè)文件
- remove-item tecmint.tex
- get-content tecmint.tex
3、 創(chuàng)建目錄
- mkdir tecmint-files
- cd tecmint-files
- “”>domains.list
- ls
4、 執(zhí)行長(zhǎng)格式的列表操作,列出文件/目錄詳細(xì)情況,包括模式(文件類型)、***修改時(shí)間等,使用以下命令:
- dir
5、 顯示系統(tǒng)中所有的進(jìn)程:
- get-process
6、 通過(guò)給定的名稱查看正在運(yùn)行的進(jìn)程/進(jìn)程組細(xì)節(jié),將進(jìn)程名作為參數(shù)傳給上面的命令,如下:
- get-process apache2
輸出中各部分的含義:
- NPM(K) – 進(jìn)程使用的非分頁(yè)內(nèi)存,單位:Kb。
- PM(K) – 進(jìn)程使用的可分頁(yè)內(nèi)存,單位:Kb。
- WS(K) – 進(jìn)程的工作集大小,單位:Kb,工作集由進(jìn)程所引用到的內(nèi)存頁(yè)組成。
- CPU(s) – 進(jìn)程在所有處理器上所占用的處理器時(shí)間,單位:秒。
- ID – 進(jìn)程 ID (PID).
- ProcessName – 進(jìn)程名稱。
7、 想要了解更多,獲取 PowerShell 命令列表:
- get-command
8、 想知道如何使用一個(gè)命令,查看它的幫助(類似于 Unix/Linux 中的 man);舉個(gè)例子,你可以這樣獲取命令 Describe 的幫助:
- get-help Describe
9、 顯示所有命令的別名,輸入:
- get-alias
10、 ***,不過(guò)也很重要,顯示命令歷史記錄(曾運(yùn)行過(guò)的命令的列表):
- history
就是這些了!在這篇文章里,我們展示了如何在 Linux 中安裝微軟的 PowerShell Core 6.0。在我看來(lái),與傳統(tǒng) Unix/Linux 的 shell 相比,PowerShell 還有很長(zhǎng)的路要走。目前看來(lái),PowerShell 還需要在命令行操作機(jī)器,更重要的是,編程(寫(xiě)腳本)等方面,提供更好、更多令人激動(dòng)和富有成效的特性。
作者簡(jiǎn)介:
Aaron Kili 是一個(gè) Linux 和 F.O.S.S 狂熱愛(ài)好者,將來(lái)的 Linux 系統(tǒng)管理員、web 開(kāi)發(fā)者,目前是 TecMint 的內(nèi)容編輯,是一個(gè)熱愛(ài)研究計(jì)算機(jī)與堅(jiān)定的分享知識(shí)的人。