GNU/Linux >> Linux Esercitazione >  >> Linux

Determina la versione del sistema operativo, Linux e Windows da Powershell

Poiché le versioni 6.1 di PowerShell su Windows/Linux/OSX sono passate a GA, puoi utilizzare le nuove proprietà di $PSVersionTable , OS , Platform e GitCommitId

Aggiorna Nella v6.0.0-beta.3 ci sono alcuni breaking changes :

  • Modifica il parametro posizionale per powershell.exe da -Command a -File

$PSVersionTable su :

Piattaforma 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

Piattaforma 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

Piattaforma Unix Sistema operativo 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

In realtà, dovrebbero esserci delle variabili globali aggiunte dalla console di PowerShell stessa, ma non sono considerate variabili di ambiente, motivo per cui non verrebbero visualizzate quando si utilizza dir env: per ottenere un elenco. Quelli specifici del sistema operativo che vedo per ora sono $IsLinux , IsMacOS e $IsWindows . Questo è almeno della versione 6.0.0-rc di PowerShell e successive per Mac/Linux.

Puoi vedere un elenco di ciò che è disponibile usando solo Get-Variable (in una nuova sessione senza caricare il tuo profilo, se vuoi solo ciò che viene integrato per impostazione predefinita).


Per PowerShell Core (Powershell versione 6.0+), puoi utilizzare le variabili automatiche:$IsLinux , $IsMacOS e $IsWindows .

Ad esempio,

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

Non ci sono variabili di ambiente che puoi visualizzare sulle altre piattaforme per il sistema operativo?

Get-ChildItem -Path Env:

In particolare, almeno su Windows, esiste una variabile di ambiente del sistema operativo, quindi dovresti essere in grado di farlo usando $Env:OS .

Da qualche tempo è passato e il PowerShell Core (v6) ora è GA (il prodotto Core il branding è stato abbandonato a partire dalla v7), puoi determinare con maggiore precisione la tua piattaforma in base alle seguenti variabili booleane automatiche:

$IsMacOS
$IsLinux
$IsWindows

Linux
  1. Come controllare la versione del sistema operativo e di Linux

  2. Visualizza il codice di servizio DELL e il codice di servizio espresso da Linux e Windows

  3. Quali sono le chiamate al sistema operativo/sistema nativo di Windows e Linux effettuate da malloc()?

  4. Determina il nome della rete wireless dalla riga di comando in Linux

  5. C'è un modo per ottenere la versione del BIOS da Linux?

Trova l'ambiente desktop corrente e la sua versione su Linux Mint 20

Come mi collego a Linux VPS tramite SSH da Linux e Windows OS?

Un ragazzo Windows in un mondo Linux:YaST e il desktop

L'anno di Linux sul desktop (Windows) - Suggerimenti e trucchi WSL

Ubuntu ora in Windows Store:aggiornamenti a Linux su Windows 10 e suggerimenti importanti

Scrittura e debug di applicazioni C++ Linux da Visual Studio usando il sottosistema Windows per Linux