One of the oldest apps and command-line tools that shipped with the Windows operating system is the Command Prompt, commonly called CMD. Now, Windows ships with not one or two but three tools. There is the OG that is the Command Prompt. Then came the PowerShell which made its debut in 2006 in Windows XP. And then Windows Terminal which was released in 2019 for Windows 10 and later 11. So how do these three utility tools differ? Why do we even need three when one can suffice or is one really enough?
Command Prompt vs PowerShell vs Windows Terminal
At its heart, they are all command-line shell and scripting language designed to troubleshoot errors, run batch commands, manage system maintenance tasks. But at its heart, there are subtle differences between the three that make them different.
What Is Command Prompt
Command Prompt was launched as Command.com with Windows 95 and 98. Some users also remember it as MS-DOS. That’s because it was widely used to run DOS commands as the directory (DIR) commands or test internet speed. Microsoft later released Command Prompt officially with Windows NT.
Users could now interact with the native file system and troubleshoot some common and not-so-common errors by running system commands.
What Is Windows PowerShell
PowerShell is backward compatible with Command Prompt meaning anything that you can do with CMD, you can do with PowerShell. Launched in 2006 with XP, Microsoft immediately saw the potential and launched version 2.0 with Windows 7.
The new PowerShell was even more powerful and could run complex commands, automate administrative tasks, execute commands remotely, and run C# programming language which itself integrates with .NET Framework – a key component of Windows architecture since the beginning.
What Is Windows Terminal
Windows Terminal is an open-source project available on GitHub. Taking a cue from popular terminal emulators and shell interfaces like Terminator, Windows Terminator came with all guns blazing. Apart from supporting Command Prompt and PowerShell commands and shells, it also supports Windows Subsystem for Linux or WSL. In other words, you can now use BASH which was usually restricted to Linux OS, until now.
While it came pre-installed on my copy of Windows 11, you can easily download it from the Microsoft Store.
Command Prompt has the most basic interface that will immediately remind you of the early 2000 era when web pages and GUI looked unintuitive and basic. A black background with white fonts where you can give commands.
PowerShell took things one step further by applying certain colors to results making it easier to make sense of the output. For example, certain snippets of text are in yellow while errors are highlighted in red.
Terminal takes things to the next level by taking a tabbed approach. You can now open multiple tabs and work on different projects or run different tasks at the same time. This makes multitasking possible and fun. Some examples can be Raspberry Pi via SSH, CMD, and even PowerShell within Terminal.
Also, it not only supports full spectrum or color schemes but you can also apply your own color schema. There is a settings menu where you can change color scheme and make other changes to appearance, actions, etc. Not only that, you can create profiles with different settings for different shells, terminals, and SSH tunnels. Enthusiasts have a running library of Windows Terminal themes you can check.
PowerShell is the only one with a blue background, however, you can change that. I think Microsoft made significant changes in the UI department with the Terminal. This is not to say that PowerShell is not powerful. It’s crazy capable when compared with the old and humble Command Prompt. But Terminal wins the UI round.
Eagle-eyed users would have noticed Terminal has separate settings for both CMD and PowerShell in the above screenshot. More on that later.
Where Command Prompt Is Used
Command Prompt was mostly used by system admins who perform administrative tasks like format and managing disk partitions. CMD was also widely used to view and manage directory files, both user and system. Because it was possible to access system files, admins were able to troubleshoot different types of errors and fix corrupt files.
Where PowerShell Is Used
PowerShell can do all of that plus some more. With PowerShell, admins can control and manage a network of computers within an organization. CMD supports Batch commands where you can give a bunch of commands, and it will execute them one at a time without further input from you.
PowerShell, as the name suggests, can also run and interpret both Batch and Shell commands. So, how do PowerShell commands differ from Batch commands? PowerShell commands use cmdlets which means a group of commands. Admins can create cmdlets and then can execute them with a single command. No need to feed multiple commands into a batch. These are called scripts. PowerShell can execute these scripts and automate the whole process without having to wait for individual commands to execute, like in CMD.
Taking things one step further, CMD also works with pipes, something that is common in Linux operating systems. So what are pipes? Pipes allow admins to transfer data between programs as well as computers operating in the same network. Just like CMD can execute commands in a batch, PowerShell can execute cmdlets in a sequence.
So, for example, pipes allow admins to take output from one program and feed it as input into another program, thereby creating a chain of pipes. Hence a chain of commands goes through different programs and even computers.
Where Terminal Is Used
Terminal unlocks the full potential of BASH (Bourne Again Shell) which was earlier restricted to Linux OS. Terminal also supports Unicode and UTF-8 characters and GPU-accelerated text rendering engine. That last bit means Terminal can interpret and display emojis, special characters, icons, and Cascadia-code font which opens the door for programming literature.
Because Windows Terminal is an open-source project, expect more features to arrive and continuos development well into the future. Microsoft announced way back in 2016 that it would support BASH inside Windows allowing users to run Ubuntu. Terminal makes that possible, finally.
Wrap Up: Command Prompt vs PowerShell vs Terminal
Terminal has succeeded PowerShell just as PowerShell succeeded Command Prompt. Tterminal is where everything comes together and works just how it is supposed to. And because it is backwards compatible, you no longer need to use CMD or PowerShell, however, you may if you prefer.