Windows ユーザー用 Azure Cloud Shell 内の PowerShell

2018 年 5 月、Azure Cloud Shell 内の PowerShell の変更が発表されました。 Azure Cloud Shell の PowerShell エクスペリエンスは、Linux 環境で PowerShell Core 6 として利用できるようになりました。 この変更により、Cloud Shell の PowerShell エクスペリエンスと、Windows PowerShell エクスペリエンスで期待される機能を比較すると、いくつか違いが生じる場合があります。

ファイル システムの大文字と小文字の区別

Windows ファイル システムでは大文字と小文字が区別されませんが、Linux ファイル システムでは大文字と小文字が区別されます。 file.txtFILE.txt は以前は同じファイルとみなされていましたが、今後は別々のファイルとみなされるようになります。 ファイル システムで tab-completing の実行時は、大文字と小文字を適切に区別する必要があります。 tab-completing コマンドレット名、パラメーター、値など、PowerShell 固有のエクスペリエンスでは大文字と小文字は区別されません。

Windows PowerShell エイリアスと Linux ユーティリティ

既存の PowerShell エイリアスの一部は、catlssortsleep などの組み込みの Linux コマンドと名前が同じです。PowerShell Core 6 では、組み込みの Linux コマンドと衝突するエイリアスは削除されました。 以下は、削除された共通のエイリアスと、その同等のコマンドです。

削除されるエイリアス 同等のコマンド
cat Get-Content
curl Invoke-WebRequest
diff Compare-Object
ls dir
Get-ChildItem
mv Move-Item
rm Remove-Item
sleep Start-Sleep
sort Sort-Object
wget Invoke-WebRequest

$HOME の永続化

以前のユーザーは、スクリプトやその他のファイルを永続化するには、クラウド ドライブを使用する必要がありました。 ユーザーの $HOME ディレクトリもセッション全体で永続化されるようになりました。

PowerShell プロファイル

既定では、ユーザーの PowerShell プロファイルは作成されません。 プロファイルを作成するには、$HOME/.config 下に PowerShell ディレクトリを作成します。

mkdir (Split-Path $profile.CurrentUserAllHosts)

$HOME/.config/PowerShell 以下にプロファイル ファイル (profile.ps1Microsoft.PowerShell_profile.ps1、またはその両方) を作成できます。

PowerShell Core 6 の新機能

PowerShell Core 6 の新機能の詳細については、PowerShell ドキュメントおよび「Getting Started with PowerShell Core」(PowerShell Core の概要) のブログ記事を参照してください。