Command Prompt, also known as CMD, is one of the oldest apps and command-line tools that ships with Windows. Windows now ships with three command-line tools. Command Prompt is the original. In 2006, PowerShell was released for Windows XP. In 2019, Windows Terminal was released for Windows 10 and later 11. What is the difference between these three utilities? What is the point of having three when one will suffice? Or is one really enough?
In essence, they are all scripting languages and command-line shells designed for troubleshooting errors, running batch commands, and performing system maintenance tasks. Yet, at their core, they differ in subtle ways.
With Windows 95 and 98, Command Prompt was launched as Command.com. Many users are familiar with MS-DOS as well. This is because it was widely used to run DOS commands such as directory (DIR) commands or to test internet speeds. Command Prompt was later released for Windows NT.
Using the system commands, users can now interact with the native file system and troubleshoot some common and not-so-common errors.
Any command you can type with Command Prompt you can also type with PowerShell. Microsoft saw the potential of version 2.0 and released it with Windows 7 in 2006 with XP.
The new PowerShell is even more powerful and can run complex commands, automate administrative tasks, execute commands remotely, and use the C# programming language, which is integrated with .NET Framework - integral to Windows architecture since its inception.
GitHub hosts an open-source project called Windows Terminal. Windows Terminator was inspired by popular terminal emulators and shell interfaces like Terminator. Besides supporting Command Prompt and PowerShell commands and shells, it also supports Windows Subsystem for Linux. As a result, you can now use BASH, which was usually restricted to Linux OS until now.
You can easily download it from the Microsoft Store if it comes preinstalled on your copy of Windows 11.
Its basic interface will immediately remind you of the early 2000s when GUIs and web pages looked basic and unintuitive. You can give commands while facing a black background.
In addition to displaying results in a color-coded format, PowerShell made things even easier to understand by applying certain colors to the output. Some snippets of text are highlighted in yellow, while errors are highlighted in red.
Terminal takes things to the next level with tabs. With multiple tabs, you can work on different projects or run different tasks at once. Multitasking is easy and enjoyable. For example, Raspberry Pi can be accessed via SSH, CMD, or even PowerShell within Terminal.
In addition, you are able to apply your own color scheme, not only the full spectrum. The settings menu allows you to change the color scheme and make other changes to appearance, actions, etc. Additionally, you can create profiles with different settings for different shells, terminals, and SSH tunnels. It is possible to check out a library of Windows Terminal themes from enthusiasts.
Only PowerShell has a blue background, but you can change it. With the Terminal, Microsoft made significant improvements to the UI. PowerShell is still an incredibly powerful tool. Comparing it with the old and humble Command Prompt, it's crazy powerful. But Terminal has the better UI.
The screenshot above shows that Terminal has separate settings for CMD and PowerShell. We will cover that in more detail later.
Command Prompt was mostly used by system administrators to perform administrative tasks such as formatting and managing disk partitions. Directory files were also viewed and managed with CMD, both by users and by systems. Administrators were able to troubleshoot various types of errors and fix corrupt files because they could access system files.
The list is endless. PowerShell allows administrators to control and manage a network of computers within an organization. Using Batch commands, CMD will execute a bunch of commands one at a time without further input from you.
Like its name suggests, PowerShell can run and interpret both Batch and Shell commands. What's the difference between PowerShell and Batch commands? Cmdlets, or groups of commands, are used by PowerShell commands. Administrators can create cmdlets and execute them with one command. Using batch processes is no longer necessary. Scripts are used for this. In CMD, you have to wait for each command to execute one by one. With PowerShell, you can execute these scripts and automate the entire process.
CMD also works with pipes, which is a feature of Linux operating systems. How do pipes work? Admins can use pipes to transfer data between programs and computers on the same network. PowerShell can execute cmdlets in a sequence just like CMD can.
Pipes, for example, enable admins to take output from one program and feed it into another, creating a chain of pipes. The command chain then goes across multiple programs and computer systems.
In addition to supporting Unicode and UTF-8 characters, Terminal also supports GPU-accelerated text rendering engines. BASH (Bourne Again Shell) was previously restricted to Linux OSes. In addition to emojis, special characters, icons, and the Cascadia-code font, Terminal can display a wide range of programming literature.
Since Windows Terminal is an open-source project, expect added features and ongoing development well into the future. Back in 2016, Microsoft announced that it would support BASH inside Windows, allowing users to run Ubuntu. Terminal finally makes that possible.
Just as PowerShell succeeded Command Prompt, Terminal has succeeded PowerShell. Tterminal is where everything comes together and works just like it should. You do not need to use CMD or PowerShell anymore since it is backwards compatible, however, you may if you prefer.