GNU/Linux >> Znalost Linux >  >> Linux

Zjistěte verzi OS, Linux a Windows z Powershell

Protože PowerShell verze 6.1 na Windows/Linux/OSX přešel na GA, můžete použít nové vlastnosti $PSVersionTable , OS , Platform a GitCommitId

Aktualizovat Ve verzi 6.0.0-beta.3 existuje několik breaking changes :

  • Změňte poziční parametr pro powershell.exe z -Command na -File

$PSVersionTable dne :

Platforma Win32NT OS Microsoft Windows 10.0.15063

PS C:\Users\LotPings> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Microsoft Windows 10.0.17134
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Platforma Unix OS Linux (ubuntu)

PS /home/LotPings> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Linux 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Platforma Unix OS Darwin

PS /Users/LotPings> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RE...
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Ve skutečnosti by měly být globální proměnné přidány samotnou konzolí PowerShell – nejsou však považovány za proměnné prostředí, a proto by se při použití dir env: nezobrazovaly. získat seznam. Ty specifické pro operační systém, které nyní vidím, jsou $IsLinux , IsMacOS a $IsWindows . Toto je minimálně PowerShell verze 6.0.0-rc a vyšší pro Mac/Linux.

Seznam toho, co je k dispozici, můžete zobrazit pomocí pouhého Get-Variable (v nové relaci bez načítání vašeho profilu, pokud chcete pouze to, co je standardně integrováno).


Pro PowerShell Core (Powershell verze 6.0+) můžete použít automatické proměnné:$IsLinux , $IsMacOS a $IsWindows .

Například,

if ($IsLinux) {
    Write-Host "Linux"
}
elseif ($IsMacOS) {
    Write-Host "macOS"
}
elseif ($IsWindows) {
    Write-Host "Windows"
}

Nejsou nějaké proměnné prostředí, které můžete zobrazit na jiných platformách pro OS?

Get-ChildItem -Path Env:

Zejména v systému Windows existuje proměnná prostředí OS, takže byste měli být schopni toho dosáhnout pomocí $Env:OS .

Uplynul nějaký čas a jádro PowerShell (v6) je nyní produkt GA (jádro branding byl zrušen od verze 7), můžete svou platformu přesněji určit na základě následujících automatických booleovských proměnných:

$IsMacOS
$IsLinux
$IsWindows

Linux
  1. Jak zkontrolovat verzi OS a Linuxu

  2. Určete název bezdrátové sítě z příkazového řádku v systému Linux

  3. Existuje způsob, jak získat verzi systému BIOS z Linuxu?

  1. Jak duální bootování Linuxu a Windows

  2. Zobrazit servisní štítek DELL a kód expresní služby z Linuxu a Windows

  3. Jaká jsou nativní volání OS/systému Windows a Linuxu prováděná z malloc()?

  1. Linux na sálovém počítači:dříve a nyní

  2. Jak vymazat (vyprázdnit) mezipaměť DNS v systémech Windows, MacOS a Linux

  3. Jak zkontrolovat verzi jádra v Linuxu