This article was converted by SimpRead; original source: www.v7w.cn
Preface
It’s 2026—surely no programmer is still using that ugly, plain black CMD, right? This article provides a brief guide on how to craft your own modern Windows terminal.
Concepts #
First, clarify the distinction between Shell and Terminal.
Terminal:
- It is a program that provides a windowed interface.
- You can type commands into this window and view their results.
- It serves as an interface for interacting with your computer.
Shell:
- It is a program responsible for interpreting and executing the commands you input.
- It runs within the terminal and processes your instructions.
- Common shells include Bash, Zsh, etc.
If this distinction remains unclear, consider the following analogy: A terminal is like a restaurant’s table and chairs—the place where you sit down to order food and enjoy your meal; it provides the venue for communication with the kitchen (i.e., the computer system). The shell, meanwhile, is like the restaurant’s waiter: it receives your order (your command), conveys your request to the kitchen (the operating system kernel), and then delivers the prepared dish (the command output) back to your table.
Just as different restaurants may feature distinct styles of furniture (different terminal programs), they may also employ waitstaff with varying service styles (different shells such as Bash or Zsh). Yet their core function remains the same—to provide you with a means of interacting with the computer system.
History of Terminals #
MS-DOS Command Prompt (cmd.exe)
- Prior to Windows, Microsoft’s operating system was MS-DOS—a text-based OS. MS-DOS included a built-in command-line interface, which later evolved into
cmd.exein early Windows versions. - Starting with Windows 95 and subsequent releases,
cmd.exeserved as Windows’ default command-line interface for executing DOS commands and batch scripts. Although limited in functionality,cmd.exeremained the primary command-line tool for Windows users for decades.
PowerShell
- To address
cmd.exe’s limitations, Microsoft introduced PowerShell in 2006—a powerful object-oriented scripting language and command-line interface. PowerShell significantly enhances Windows automation and management capabilities through robust scripting features and deep integration with the .NET Framework.
PowerShell 7
- Originally designed as a Windows-exclusive command-line tool and scripting language (first released in 2006), PowerShell later evolved into PowerShell Core, a cross-platform version built on .NET Core. As .NET Core matured, Microsoft launched PowerShell 7 to supersede PowerShell Core and unify PowerShell’s versioning strategy.
Replacing Your Terminal #
The venerable cmd.exe has been around for over two decades—it’s high time to retire it!
Windows Terminal, developed by Microsoft, is a modern command-line application designed to deliver a more powerful and flexible command-line experience for Windows users. Its key features include:
- Tabbed Interface: Run multiple command-line sessions simultaneously within a single window, each supporting a different shell—e.g., PowerShell,
cmd.exe, WSL, or Azure Cloud Shell. - Highly Customizable UI: Supports extensive visual customization—including background images, color themes, fonts, transparency—configured via a JSON settings file.
- GPU-Accelerated Text Rendering: Leverages DirectWrite and DirectX for GPU-accelerated text rendering, ensuring smooth and responsive display performance.
- Unicode and UTF-8 Support: Fully supports modern character encoding standards, including emoji and other special characters.
- Rich Extensibility: Developers can extend Terminal’s functionality via plugins, and automate common tasks using scripts.
Open the Microsoft Store, search for “Windows Terminal”, and install it.
microsoft-storeAfter installation, locate Windows Terminal in your Start menu. Upon first launch, the unconfigured Windows Terminal will appear as follows:
winterm-originReplacing Your Shell #
Does the terminal now look better? Great—but recall our earlier restaurant analogy: So far, we’ve only upgraded the table and chairs (the terminal), making your seating more comfortable. However, the food being served—and the waiter taking your orders—hasn’t changed yet! We need a more capable, broadly compatible waiter (shell).
Starting with Windows 10, Microsoft shipped PowerShell pre-installed—but it ran only on Windows. With the release of PowerShell 7, Microsoft completely rewrote the shell based on .NET Core (and .NET 5 starting with PowerShell 7.1), enabling full cross-platform support across Windows, macOS, and various Linux distributions. Users can now run identical scripts and commands across operating systems. Additionally, PowerShell 7 introduces many new features essential to modern developers and system administrators, such as:
- Ternary operator (
?:) - Pipeline chaining operators (
||and&&) - Null-coalescing operator (
??) - Parallel processing (
ForEach-Object -Parallel)
Microsoft officially recommends installing PowerShell 7 via winget. However, due to network restrictions in mainland China—even when using domestic mirrors—winget often fails to download packages successfully, because most winget packages are hosted on GitHub and require direct access. Therefore, we recommend installing via the official MSI installer.
Navigate to the PowerShell 7 GitHub Releases page and download PowerShell-7.x.x-win-x64.msi (as of publication, the latest version is 7.4.4).
If GitHub is inaccessible, use a GitHub mirror site: prepend the download URL with https://ghcr.taurusxin.com/. For example, the link for version 7.4.4 becomes:
https://ghcr.taurusxin.com/https://github.com/PowerShell/PowerShell/releases/download/v7.4.4/PowerShell-7.4.4-win-x64.msi.
Once downloaded, simply run the MSI installer and follow the prompts (click “Next” throughout) to complete installation.
After launching Windows Terminal, you’ll notice a new entry labeled “PowerShell”—this is PowerShell 7. The first entry (default) corresponds to the legacy PowerShell version.
Clicking this entry opens a new tab running a PowerShell 7 session.





