既然之前有一篇文章讲到了微软在2018年初正式发布了PowerShell Core 6.0,它的一大特性是可以跨平台运行,那是不是不在跨平台系统上跑一下PowerShell Core 6.0岂不是可惜,今天我们就要看看如何在macOS中使用PowerShell。
在使用前,我们必须先要安装PowerShell Core吧,macOS中安装PowerShell Core十分的简单,安装的方式也很多,我就不详细解释了,这里我主要是通过macOS中的Homebrew包管理器来安装的,大家可以直接使用下面的方法。
# 先安装Homebre-Cask
brew tap caskroom/cask
# 直接开始安装PowerShell
brew cask install powershell
这里要提醒一点,微软因为会为PowerShell Core定期更新,所以当有更新版本出现时你直接下载安装的话,PowerShell Core并不能直接升级,它会以独立的版本存在。所以如果以后有更新的PowerShell Core的话,你可以使用如下方法直接重新安装来升级PowerShell Core。
brew update
brew cask reinstall powershell
当然虽然我在这里说的是在macOS上安装,你也可以在Linux上安装,方法也一样简单。直接贴出官方安装方法
使用PowerShell Core 6.0
无论你是在macOS还是Linux系统中,要启动PowerShell Core 6.0都必须在终端命令控制台中输入pwsh
这个命令来启动,启动成功后会出现PowerShell Code的启动信息。
接下来,我们可以试试输入Windows PowerShell里的内置系统变量$psversiontable
一切运行都正常,虽然我们之前说过Windows PowerShell里的一些命令(尤其包含涉及微软产品的一些命令)未必能正常兼容的运行在跨平台上,但是一些系统的常用命令都是能够无缝正常运行的。
不过微软也因此改变了一些命令输出细节, 比如你可以看到通过$psversiontable
输出的内容做了更改, 更改并更新了几个新的属性如:PSEdition
, GitCommitId
, Platform
, OS
PS /Users/Anders> $psversiontable
Name Value
---- -----
PSVersion 6.0.2
PSEdition Core
GitCommitId v6.0.2
OS Darwin 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
我们知道Shell命令是十分不好记的,正因为PowerShell Core 6.0能很好的跨平台操作,现在使用PowerShell命令就能很方便的达到一些Shell命令的功能。
用PowerShell方式管理文件
使用Get-Childitem
命令获得当前目录下的文件信息。
PS /Users/Anders> Get-ChildItem
Directory: /Users/Anders
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2016/9/24 下午5:10 Applications
d----- 2018/3/7 上午10:33 Desktop
d----- 2018/3/15 下午12:03 Documents
d----- 2018/3/17 下午6:06 Downloads
我们用New-Item
命令配合参数创建一个PowerShellFolder命令。
PS /Users/Anders> New-Item /Users/Anders/Downloads/PowerShellFolder -ItemType directory
Directory: /Users/Anders/Downloads
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/3/18 上午1:05 PowerShellFolder
并且在创建出来的PowerShellFolder下创建一个File.txt文本文件并且写入内容为test的内容。
PS /Users/Anders> New-Item /Users/Anders/Downloads/PowerShellFolder/File.txt -ItemType file -Value test
Directory: /Users/Anders/Downloads/PowerShellFolder
Mode LastWriteTime Length Name
---- ------------- ------ ----
------ 2018/3/18 上午1:06 4 File.txt
简直就和在Windows里操作一样的方便,甚至都让我忘记了去使用shell命令 :)