Why?
Why?
In my view, several key elements help bash (or any Linux shell) feel more approachable compared to the Windows command line. * Windows offers both PowerShell and cmd.exe but lacks true parity in features. (For example, mklink only works in cmd) * By default, users can't execute their own scripts or run custom PowerShell commands * Core system configurations are managed through the Control Panel or Registry, not via command-line interfaces * Concerning the registry aspect, these settings aren’t saved in text files as they are on Linux * Although PowerShell’s object-oriented design aids certain tasks, it doesn’t provide the same flexibility for chaining tools like bash * The main issue stems from Microsoft’s perception of the command line as a secondary or less important interface for Windows. I own an Ubuntu Server without a graphical interface—it functions perfectly and offers unlimited possibilities. Picture me granted only command-line access to a Windows server; I’d be severely restricted in what I could accomplish.
This aspect is just one element, yet historically the Windows command line has been significantly underdeveloped and far less practical compared to alternatives like bash. CMD.exe has only progressed beyond basic DOS compatibility, while DOS was never built for a multiprocessing, multiuser environment—something Linux and other Unix-like systems excel at. Microsoft chose to largely abandon the command line for backward compatibility in the '90s, and this decision continues to influence its direction even as they adapted over time. Powershell represents a solid attempt to restore usability on Windows, but it remains limited by legacy systems such as the registry, which were primarily meant for graphical interaction.
This might be accurate, as I mainly made my remark because I lack experience with the Windows command line, making a comparison to bash unfair.