@cloudguy2020 Since this is a frequently asked question in the Community, an article covering the similarities, differences and nuances between the various Azure command-line options was added to the documentation recently: Choose the right Azure command-line tool. This doc should answer most of your questions as well (excerpts below).
When it comes to managing Azure, you have many options. Although Azure CLI, Azure PowerShell, and Azure Cloud Shell have overlapping functionality, each operates differently, and the language is sometimes confused with the environment. Using an Azure command-line tool isn't always necessary, but it's a useful skill to have.
Azure CLI vs Azure PowerShell:
Azure CLI and Azure PowerShell are command-line tools that enable you to create and manage Azure resources. While both are cross-platform and installable on Windows, macOS, and Linux, Azure CLI runs in Windows PowerShell, Cmd, or Bash and other Unix shells whereas Azure PowerShell requires Windows PowerShell or PowerShell.
Different Shell Environments:
Windows PowerShell, PowerShell, Cmd, and Bash are shell environments. Your shell environment not only determines which tools you can use but also changes your command-line experience.
Shell Environment | Azure CLI | Azure PowerShell |
\------------------
|-----------|------------------|
Cmd | Yes | |
Bash | Yes | |
Windows PowerShell| Yes | Yes |
PowerShell | Yes | Yes |
Azure Cloud Shell:
Azure Cloud Shell is a hosted shell environment that runs on an Ubuntu container. It provides an interactive, authenticated, browser-accessible shell for managing Azure resources. Cloud Shell provides two shell environments: Bash (with Azure CLI preinstalled) and PowerShell (with Azure PowerShell preinstalled) and has integrations for Windows Terminal and Visual Studio Code.
Choosing a command-line tool:
Here are a few key factors to remember:
- When picking the right tool, consider your past experience and current work environment.
- Azure CLI syntax is similar to that of Bash scripting. If you work primarily with Linux systems, Azure CLI feels more natural.
- Azure PowerShell is a PowerShell module. If you work primarily with Windows systems, Azure PowerShell is a natural fit. Commands follow a verb-noun naming scheme and data is returned as objects.
- Choose the tool that uses your experience and shortens your learning curve.
- With that said, being open-minded will only improve your abilities. Use a different tool when it makes sense.
- Keep in mind that feature parity for Azure services doesn't always exist between Azure CLI and Azure PowerShell.
Hope this helps.
----------
If an answer is helpful, please "Accept answer" and/or "Up-Vote" which might help other community members reading this thread.