Features & tools for Azure Cloud Shell

Azure Cloud Shell is a browser-based shell experience to manage and develop Azure resources.

Cloud Shell offers a browser-accessible, pre-configured shell experience for managing Azure resources without the overhead of installing, versioning, and maintaining a machine yourself.

Cloud Shell allocates machines on a per-request basis and as a result machine state doesn't persist across sessions. Since Cloud Shell is built for interactive sessions, shells automatically terminate after 20 minutes of shell inactivity.

Azure Cloud Shell runs on Azure Linux, Microsoft's Linux distribution for cloud-infrastructure-edge products and services.

Microsoft internally compiles all the packages included in the Azure Linux repository to help guard against supply chain attacks. Tooling has been updated to reflect the new base image for Azure Linux. If these changes affected your Cloud Shell environment, contact Azure Support or create an issue in the Cloud Shell repository.

Features

Secure automatic authentication

Cloud Shell securely and automatically authenticates account access for the Azure CLI and Azure PowerShell.

$HOME persistence across sessions

To persist files across sessions, Cloud Shell walks you through attaching an Azure file share on first launch. Once completed, Cloud Shell will automatically attach your storage (mounted as $HOME\clouddrive) for all future sessions. Additionally, your $HOME directory is persisted as an .img in your Azure File share. Files outside of $HOME and machine state aren't persisted across sessions. Use best practices when storing secrets such as SSH keys. Services, like Azure Key Vault, have tutorials for setup.

Learn more about persisting files in Cloud Shell.

Azure drive (Azure:)

PowerShell in Cloud Shell provides the Azure drive (Azure:). You can switch to the Azure drive with cd Azure: and back to your home directory with cd ~. The Azure drive enables easy discovery and navigation of Azure resources such as Compute, Network, Storage etc. similar to filesystem navigation. You can continue to use the familiar Azure PowerShell cmdlets to manage these resources regardless of the drive you are in. Any changes made to the Azure resources, either made directly in Azure portal or through Azure PowerShell cmdlets, are reflected in the Azure drive. You can run dir -Force to refresh your resources.

Screenshot of an Azure Cloud Shell being initialized and a list of directory resources.

Manage Exchange Online

PowerShell in Cloud Shell contains a private build of the Exchange Online module. Run Connect-EXOPSSession to get your Exchange cmdlets.

Screenshot of an Azure Cloud Shell running the commands Connect-EXOPSSession and Get-User.

Run Get-Command -Module tmp_*

Note

The module name should begin with tmp_, if you have installed modules with the same prefix, their cmdlets will also be surfaced.

Screenshot of an Azure Cloud Shell running the command Get-Command -Module tmp_*.

Deep integration with open source tooling

Cloud Shell includes pre-configured authentication for open source tools such as Terraform, Ansible, and Chef InSpec. Try it out from the example walkthroughs.

Pre-installed tools

The most commonly used tools are preinstalled in Cloud Shell.

Azure tools

Cloud Shell comes with the following Azure command-line tools preinstalled:

Tool Version Command
Azure CLI 2.51.0 az --version
Azure PowerShell 10.2.0 Get-Module Az -ListAvailable
AzCopy 10.15.0 azcopy --version
Azure Functions CLI 4.0.5198 func --version
Service Fabric CLI 11.2.0 sfctl --version
Batch Shipyard 3.9.1 shipyard --version
blobxfer 1.11.0 blobxfer --version

You can verify the version of the language using the command listed in the table.

Linux tools

  • bash
  • zsh
  • sh
  • tmux
  • dig

Text editors

  • Cloud Shell editor (code)
  • vim
  • nano
  • emacs

Source control

  • Git
  • GitHub CLI

Build tools

  • make
  • maven
  • npm
  • pip

Containers

Databases

Other

Preinstalled developer languages

Cloud Shell comes with the following languages preinstalled:

Language Version Command
.NET Core 7.0.400 dotnet --version
Go 1.19.11 go version
Java 17.0.8 java --version
Node.js 16.20.1 node --version
PowerShell 7.3.6 pwsh -Version
Python 3.9.14 python --version
Ruby 3.1.4p223 ruby --version

You can verify the version of the language using the command listed in the table.

Next steps