|
1 | 1 | ---
|
2 | 2 | description: Overview of features in Azure Cloud Shell
|
3 | 3 | ms.contributor: jahelmic
|
4 |
| -ms.date: 12/06/2023 |
| 4 | +ms.date: 02/15/2024 |
5 | 5 | ms.topic: article
|
6 | 6 | tags: azure-resource-manager
|
7 | 7 | title: Azure Cloud Shell features
|
8 | 8 | ---
|
9 | 9 | # Features & tools for Azure Cloud Shell
|
10 | 10 |
|
11 |
| -Azure Cloud Shell is a browser-based shell experience to manage and develop Azure resources. |
12 |
| - |
13 |
| -Cloud Shell offers a browser-accessible, preconfigured shell experience for managing Azure |
14 |
| -resources without the overhead of installing, versioning, and maintaining a machine yourself. |
15 |
| - |
16 |
| -Cloud Shell allocates machines on a per-request basis and as a result machine state doesn't |
17 |
| -persist across sessions. Since Cloud Shell is built for interactive sessions, shells automatically |
18 |
| -terminate after 20 minutes of shell inactivity. |
| 11 | +Azure Cloud Shell is a browser-based terminal that provides an authenticated, preconfigured shell |
| 12 | +experience for managing Azure resources without the overhead of installing and maintaining a machine |
| 13 | +yourself. |
19 | 14 |
|
20 | 15 | Azure Cloud Shell runs on **Azure Linux**, Microsoft's Linux distribution for cloud infrastructure
|
21 |
| -edge products and services. Microsoft internally compiles all the packages included in the **Azure |
22 |
| -Linux** repository to help guard against supply chain attacks. |
| 16 | +edge products and services. You can choose Bash or PowerShell as your default shell. |
23 | 17 |
|
24 | 18 | ## Features
|
25 | 19 |
|
26 |
| -### Secure automatic authentication |
| 20 | +### Secure environment |
| 21 | + |
| 22 | +Microsoft internally compiles all the packages included in the **Azure Linux** repository to help |
| 23 | +guard against supply chain attacks. For more information or to request changes to the **Azure |
| 24 | +Linux** image, see the [Cloud Shell GitHub repository][24]. |
27 | 25 |
|
28 |
| -Cloud Shell securely and automatically authenticates account access for the Azure CLI and Azure |
29 |
| -PowerShell. |
| 26 | +Cloud Shell automatically authenticates your Azure account to allow secure access for Azure CLI, |
| 27 | +Azure PowerShell, and other cloud management tools. |
30 | 28 |
|
31 | 29 | ### $HOME persistence across sessions
|
32 | 30 |
|
33 |
| -To persist files across sessions, Cloud Shell walks you through attaching an Azure file share on |
34 |
| -first launch. Once completed, Cloud Shell will automatically attach your storage (mounted as |
35 |
| -`$HOME\clouddrive`) for all future sessions. Additionally, your `$HOME` directory is persisted as an |
36 |
| -.img in your Azure File share. Files outside of `$HOME` and machine state aren't persisted across |
37 |
| -sessions. Learn more about [Persisting files in Cloud Shell][09]. |
| 31 | +When you start Cloud Shell for the first time, you have the option of using Cloud Shell with or |
| 32 | +without an attached storage account. Choosing to continue without storage is the fastest way to |
| 33 | +start using Cloud Shell. In Cloud Shell, this is known as an _ephemeral session_. When you close the |
| 34 | +Cloud Shell window, all files you saved are deleted and don't persist across sessions. |
| 35 | + |
| 36 | +To persist files across sessions, you can choose to mount a storage account. Cloud Shell |
| 37 | +automatically attaches your storage (mounted as `$HOME\clouddrive`) for all future sessions. |
| 38 | +Additionally, your `$HOME` directory is persisted as an `.img` file in your Azure File share. The |
| 39 | +machine state and files outside of `$HOME` aren't persisted across sessions. Learn more about |
| 40 | +[Persisting files in Cloud Shell][32]. |
38 | 41 |
|
39 | 42 | Use best practices when storing secrets such as SSH keys. You can use Azure Key Vault to securely
|
40 |
| -store and retrieve your keys. For more information, see [Manage Key Vault using the Azure CLI][02]. |
| 43 | +store and retrieve your keys. For more information, see [Manage Key Vault using the Azure CLI][05]. |
41 | 44 |
|
42 | 45 | ### Azure drive (Azure:)
|
43 | 46 |
|
44 | 47 | PowerShell in Cloud Shell provides the Azure drive (`Azure:`). You can switch to the Azure drive
|
45 | 48 | with `cd Azure:` and back to your home directory with `cd ~`. The Azure drive enables easy
|
46 | 49 | discovery and navigation of Azure resources such as Compute, Network, Storage etc. similar to
|
47 |
| -filesystem navigation. You can continue to use the familiar [Azure PowerShell cmdlets][14] to manage |
48 |
| -these resources regardless of the drive you are in. Any changes made to the Azure resources, either |
49 |
| -made directly in Azure portal or through Azure PowerShell cmdlets, are reflected in the Azure drive. |
50 |
| -You can run `dir -Force` to refresh your resources. |
51 |
| - |
52 |
| -![Screenshot of an Azure Cloud Shell being initialized and a list of directory resources.][06] |
53 |
| - |
54 |
| -### Manage Exchange Online |
| 50 | +filesystem navigation. You can continue to use the familiar [Azure PowerShell cmdlets][09] to manage |
| 51 | +these resources regardless of the drive you are in. |
55 | 52 |
|
56 |
| -PowerShell in Cloud Shell contains the ExchangeOnlineManagement module. Run the following command to |
57 |
| -get a list of Exchange cmdlets. |
58 |
| - |
59 |
| -```powershell |
60 |
| -Get-Command -Module ExchangeOnlineManagement |
61 |
| -``` |
62 |
| - |
63 |
| -For more information about using the ExchangeOnlineManagement module, see |
64 |
| -[Exchange Online PowerShell][15]. |
| 53 | +> [!NOTE] |
| 54 | +> Any changes made to the Azure resources, either made directly in Azure portal or through Azure |
| 55 | +> PowerShell cmdlets, are reflected in the `Azure:` drive. However, you must run `dir -Force` to |
| 56 | +> refresh the view of your resources in the `Azure:`. |
65 | 57 |
|
66 | 58 | ### Deep integration with open source tooling
|
67 | 59 |
|
68 | 60 | Cloud Shell includes preconfigured authentication for open source tools such as Terraform, Ansible,
|
69 | 61 | and Chef InSpec. For more information, see the following articles:
|
70 | 62 |
|
71 |
| -- [Run Ansible playbook][11] |
72 |
| -- [Manage your Azure dynamic inventories][10] |
73 |
| -- [Install and configure Terraform][12] |
| 63 | +- [Run Ansible playbook][03] |
| 64 | +- [Manage your Azure dynamic inventories][02] |
| 65 | +- [Install and configure Terraform][04] |
74 | 66 |
|
75 |
| -### Preinstalled tools |
| 67 | +## Preinstalled tools |
76 | 68 |
|
77 |
| -The most commonly used tools are preinstalled in Cloud Shell. |
| 69 | +The most commonly used tools are preinstalled in Cloud Shell. If you're using PowerShell, use the |
| 70 | +`Get-PackageVersion` command to see a more complete list of tools and versions. If you're using |
| 71 | +Bash, use the `tdnf list` command. |
78 | 72 |
|
79 |
| -#### Azure tools |
| 73 | +### Azure tools |
80 | 74 |
|
81 | 75 | Cloud Shell comes with the following Azure command-line tools preinstalled:
|
82 | 76 |
|
83 |
| -| Tool | Version | Command | |
84 |
| -| ------------------------- | -------- | ------------------------------ | |
85 |
| -| [Azure CLI][13] | 2.55.0 | `az --version` | |
86 |
| -| [Azure PowerShell][14] | 11.1.0 | `Get-Module Az -ListAvailable` | |
87 |
| -| [AzCopy][04] | 10.15.0 | `azcopy --version` | |
88 |
| -| [Azure Functions CLI][01] | 4.0.5390 | `func --version` | |
89 |
| -| [Service Fabric CLI][03] | 11.2.0 | `sfctl --version` | |
90 |
| -| [Batch Shipyard][18] | 3.9.1 | `shipyard --version` | |
91 |
| -| [blobxfer][19] | 1.11.0 | `blobxfer --version` | |
92 |
| - |
93 |
| -You can verify the version of the language using the command listed in the table. |
94 |
| -Use the `Get-PackageVersion` to see a more complete list of tools and versions. |
95 |
| - |
96 |
| -#### Linux tools |
97 |
| - |
98 |
| -- bash |
99 |
| -- zsh |
100 |
| -- sh |
101 |
| -- tmux |
102 |
| -- dig |
103 |
| - |
104 |
| -#### Text editors |
| 77 | +- [Azure CLI][08] |
| 78 | +- [Azure PowerShell][09] |
| 79 | +- [Az.Tools.Predictor][10] |
| 80 | +- [AzCopy][07] |
| 81 | +- [Azure Functions CLI][01] |
| 82 | +- [Service Fabric CLI][06] |
| 83 | +- [Batch Shipyard][17] |
| 84 | +- [blobxfer][18] |
| 85 | + |
| 86 | +### Other Microsoft services |
| 87 | + |
| 88 | +- [Office 365 CLI][28] |
| 89 | +- [Exchange Online PowerShell][11] |
| 90 | +- A basic set of [Microsoft Graph PowerShell][12] modules |
| 91 | + - Microsoft.Graph.Applications |
| 92 | + - Microsoft.Graph.Authentication |
| 93 | + - Microsoft.Graph.Groups |
| 94 | + - Microsoft.Graph.Identity.DirectoryManagement |
| 95 | + - Microsoft.Graph.Identity.Governance |
| 96 | + - Microsoft.Graph.Identity.SignIns |
| 97 | + - Microsoft.Graph.Users.Actions |
| 98 | + - Microsoft.Graph.Users.Functions |
| 99 | +- [MicrosoftPowerBIMgmt][13] PowerShell modules |
| 100 | +- [SqlServer][14] PowerShell modules |
| 101 | + |
| 102 | +### Productivity tools |
| 103 | + |
| 104 | +Linux tools |
| 105 | + |
| 106 | +- `bash` |
| 107 | +- `zsh` |
| 108 | +- `sh` |
| 109 | +- `tmux` |
| 110 | +- `dig` |
| 111 | + |
| 112 | +Text editors |
105 | 113 |
|
106 | 114 | - Cloud Shell editor (code)
|
107 | 115 | - vim
|
108 | 116 | - nano
|
109 | 117 | - emacs
|
110 | 118 |
|
111 |
| -#### Source control |
| 119 | +### Cloud management tools |
112 | 120 |
|
113 |
| -- Git |
114 |
| -- GitHub CLI |
| 121 | +- [Docker Desktop][23] |
| 122 | +- [Kubectl][27] |
| 123 | +- [Helm][26] |
| 124 | +- [D2iQ Kubernetes Platform CLI][22] |
| 125 | +- [Cloud Foundry CLI][21] |
| 126 | +- [Terraform][31] |
| 127 | +- [Ansible][30] |
| 128 | +- [Chef InSpec][20] |
| 129 | +- [Puppet Bolt][29] |
| 130 | +- [HashiCorp Packer][19] |
115 | 131 |
|
116 |
| -#### Build tools |
| 132 | +## Developer tools |
117 | 133 |
|
118 |
| -- make |
119 |
| -- maven |
120 |
| -- npm |
121 |
| -- pip |
| 134 | +Build tools |
122 | 135 |
|
123 |
| -#### Containers |
| 136 | +- `make` |
| 137 | +- `maven` |
| 138 | +- `npm` |
| 139 | +- `pip` |
124 | 140 |
|
125 |
| -- [Docker Desktop][24] |
126 |
| -- [Kubectl][29] |
127 |
| -- [Helm][28] |
128 |
| -- [D2iQ Kubernetes Platform CLI][23] |
| 141 | +Source control |
| 142 | + |
| 143 | +- Git |
| 144 | +- GitHub CLI |
129 | 145 |
|
130 |
| -#### Databases |
| 146 | +Database tools |
131 | 147 |
|
132 | 148 | - MySQL client
|
133 | 149 | - PostgreSql client
|
134 |
| -- [sqlcmd Utility][17] |
135 |
| -- [mssql-scripter][27] |
136 |
| - |
137 |
| -#### Other |
138 |
| - |
139 |
| -- iPython Client |
140 |
| -- [Cloud Foundry CLI][22] |
141 |
| -- [Terraform][33] |
142 |
| -- [Ansible][32] |
143 |
| -- [Chef InSpec][21] |
144 |
| -- [Puppet Bolt][31] |
145 |
| -- [HashiCorp Packer][20] |
146 |
| -- [Office 365 CLI][30] |
147 |
| - |
148 |
| -### Preinstalled developer languages |
149 |
| - |
150 |
| -Cloud Shell comes with the following languages preinstalled: |
| 150 | +- [sqlcmd Utility][15] |
| 151 | +- [mssql-scripter][25] |
151 | 152 |
|
152 |
| -| Language | Version | Command | |
153 |
| -| ---------- | ------------- | ------------------ | |
154 |
| -| .NET Core | [7.0.400][25] | `dotnet --version` | |
155 |
| -| Go | 1.19.11 | `go version` | |
156 |
| -| Java | 17.0.8 | `java --version` | |
157 |
| -| Node.js | 16.20.1 | `node --version` | |
158 |
| -| PowerShell | [7.4.0][16] | `pwsh -Version` | |
159 |
| -| Python | 3.9.14 | `python --version` | |
160 |
| -| Ruby | 3.1.4p223 | `ruby --version` | |
| 153 | +Programming languages |
161 | 154 |
|
162 |
| -You can verify the version of the language using the command listed in the table. |
| 155 | +- .NET Core 7.0 |
| 156 | +- PowerShell 7.4 |
| 157 | +- Node.js |
| 158 | +- Java |
| 159 | +- Python 3.9 |
| 160 | +- Ruby |
| 161 | +- Go |
163 | 162 |
|
164 | 163 | ## Next steps
|
165 | 164 |
|
166 |
| -- [Cloud Shell Quickstart][05] |
167 |
| -- [Learn about Azure CLI][13] |
168 |
| -- [Learn about Azure PowerShell][14] |
| 165 | +- [Cloud Shell Quickstart][16] |
| 166 | +- [Learn about Azure CLI][08] |
| 167 | +- [Learn about Azure PowerShell][09] |
169 | 168 |
|
170 | 169 | <!-- link references -->
|
171 |
| -[01]: ../azure-functions/functions-run-local.md |
172 |
| -[02]: ../key-vault/general/manage-with-cli2.md#prerequisites |
173 |
| -[03]: ../service-fabric/service-fabric-cli.md |
174 |
| -[04]: ../storage/common/storage-use-azcopy-v10.md |
175 |
| -[05]: ./get-started.md |
176 |
| -[06]: ./media/features/azure-drive.png |
177 |
| -[09]: ./persisting-shell-storage.md |
178 |
| -[10]: /azure/developer/ansible/dynamic-inventory-configure |
179 |
| -[11]: /azure/developer/ansible/getting-started-cloud-shell |
180 |
| -[12]: /azure/developer/terraform/quickstart-configure |
181 |
| -[13]: /cli/azure/ |
182 |
| -[14]: /powershell/azure |
183 |
| -[15]: /powershell/exchange/exchange-online-powershell |
184 |
| -[16]: /powershell/scripting/whats-new/what-s-new-in-powershell-74 |
185 |
| -[17]: /sql/tools/sqlcmd-utility |
186 |
| -[18]: https://batch-shipyard.readthedocs.io/en/latest/ |
187 |
| -[19]: https://blobxfer.readthedocs.io/en/latest/ |
188 |
| -[20]: https://developer.hashicorp.com/packer/docs |
189 |
| -[21]: https://docs.chef.io/ |
190 |
| -[22]: https://docs.cloudfoundry.org/cf-cli/ |
191 |
| -[23]: https://docs.d2iq.com/dkp/2.6/azure-infrastructure |
192 |
| -[24]: https://docs.docker.com/desktop/ |
193 |
| -[25]: https://dotnet.microsoft.com/download/dotnet/7.0 |
194 |
| -[27]: https://github.com/microsoft/mssql-scripter/blob/dev/doc/usage_guide.md |
195 |
| -[28]: https://helm.sh/docs/ |
196 |
| -[29]: https://kubernetes.io/docs/reference/kubectl/ |
197 |
| -[30]: https://pnp.github.io/office365-cli/ |
198 |
| -[31]: https://puppet.com/docs/bolt/latest/bolt.html |
199 |
| -[32]: https://www.ansible.com/microsoft-azure |
200 |
| -[33]: https://www.terraform.io/docs/providers/azurerm/ |
| 170 | +[01]: /azure/azure-functions/functions-run-local |
| 171 | +[02]: /azure/developer/ansible/dynamic-inventory-configure |
| 172 | +[03]: /azure/developer/ansible/getting-started-cloud-shell |
| 173 | +[04]: /azure/developer/terraform/quickstart-configure |
| 174 | +[05]: /azure/key-vault/general/manage-with-cli2#prerequisites |
| 175 | +[06]: /azure/service-fabric/service-fabric-cli |
| 176 | +[07]: /azure/storage/common/storage-use-azcopy-v10 |
| 177 | +[08]: /cli/azure/ |
| 178 | +[09]: /powershell/azure |
| 179 | +[10]: /powershell/azure/predictor-overview |
| 180 | +[11]: /powershell/exchange/exchange-online-powershell |
| 181 | +[12]: /powershell/module/?term=Microsoft.Graph |
| 182 | +[13]: /powershell/module/?term=MicrosoftPowerBIMgmt |
| 183 | +[14]: /powershell/module/sqlserver |
| 184 | +[15]: /sql/tools/sqlcmd-utility |
| 185 | +[16]: get-started.md |
| 186 | +[17]: https://batch-shipyard.readthedocs.io/en/latest/ |
| 187 | +[18]: https://blobxfer.readthedocs.io/en/latest/ |
| 188 | +[19]: https://developer.hashicorp.com/packer/docs |
| 189 | +[20]: https://docs.chef.io/ |
| 190 | +[21]: https://docs.cloudfoundry.org/cf-cli/ |
| 191 | +[22]: https://docs.d2iq.com/dkp/2.6/azure-infrastructure |
| 192 | +[23]: https://docs.docker.com/desktop/ |
| 193 | +[24]: https://github.com/Azure/CloudShell |
| 194 | +[25]: https://github.com/microsoft/mssql-scripter/blob/dev/doc/usage_guide.md |
| 195 | +[26]: https://helm.sh/docs/ |
| 196 | +[27]: https://kubernetes.io/docs/reference/kubectl/ |
| 197 | +[28]: https://pnp.github.io/office365-cli/ |
| 198 | +[29]: https://puppet.com/docs/bolt/latest/bolt.html |
| 199 | +[30]: https://www.ansible.com/microsoft-azure |
| 200 | +[31]: https://www.terraform.io/docs/providers/azurerm/ |
| 201 | +[32]: persisting-shell-storage.md |
0 commit comments