Slashdot Mirror


Imagining the CLI For the Modern Machine

scc writes "TermKit is a re-think of the storied Unix terminal, where human views, input and data pipes are separated. Output viewers render any kind of data usefully. It may not be a new idea, but it's certainly a new take on it." I know you are quite comfortable in your shell of old, but this sort of thing sure gets my juices going. The best of both worlds.

1 of 317 comments (clear)

  1. Re:Everything is an INCOMPATIBLE object by mangu · · Score: 5, Insightful

    Objects can be rendered on the terminal as well

    Rendering them is different from the object itself.

    Even though the pipeline streams objects, the output from the last command of a pipeline is rendered on the terminal

    Again, rendering is not the object. I can have a list of different operation I need to do, passing things from one program to the other. If all I can see is the rendering of the last command I cannot see what is actually being passed from one command to the next one.

    Developing is incremental. The power of Unix is that this simple fact is everywhere. I need to see all the processes:

    ps aux

    Which ones are owned by boris?

    ps aux | egrep '^boris'

    What are the process numbers and creation time?

    ps aux | egrep '^boris' | awk '{print $2, $9}'

    OK, sort that by process number

    ps aux | egrep '^boris' | awk '{print $2, $9}' | sort -n

    In Unix I build up my commands step by step. What I learn in one place can be used somewhere else. The same sort command I use for process numbers is the one I use for my phone book.

    If I can't remember exactly how awk works I can test it by typing

    echo "1 2 3 4 5 6 7 8 9 10 11" | awk '{print $2, $9}'

    It would not work if 'echo' showed a representation on the terminal that is not exactly the same thing it pipes to 'awk'

    I'll grant that PowerShell is a more natural fit for Windows given that so much of the OS and applications are exposed as objects.

    That's a shortcoming of windows, not an advantage of powershell.