Why are command shells one dimensional?

Despite all this touch this or that and 3D gee wiz shown in movies we are still in the punch card age to some extent.

Decades ago you had to create code that was chopped up into a fixed line length; some positions where even used for specific things. An example is the programming of Fortran using punch cards.

You’ll find this punch card single line interface still alive today. The browser address bar is such an interface. And, afaik, most command shells operate in a per line manner, the enter key executes the command line (which could itself be composed of multiple commands, pipes, redirections, and mutliple ‘command streams’). If you want to enter text to create commands in a more natural 2D manner, you have to create scripts or programs or open up special shells that allow you to highlight text and execute it.

One current way of minimizing this one-dimensional limitation is allowing the single line to be rich. For example, in Bash you can do some powerful stuff on the single command line, like history, substitutions, and so forth. But, this is just a geeky way to control a system. What is needed is a domain specific language per task. Or is natural language processing the only solution?

I could be wrong, of course, and so what. Just making an observation.

Interesting comparison: Bash vs. PowerShell