Bash – Is split-screen `cat`ing possible

bashterminal

I asked the question How to use cat or less depending on the line count? with the intention of browsing many files without having to scroll up too far to view my history after displaying a long file, while keeping short files' contents directly visible.

However, it would be even more convenient to simply use half the screen for "usual" bash output and the other half (right or top, probably a matter of taste) for cat output. Is there a nice way (maybe some screen-magic) to achieve this? I.e. have a splitscreen terminal, where a simple pipe relocates output to the other half, and maybe some second pair of hotkeys to separately scroll through that half's buffer?

My first impulse would be using mkfifo for the pipe, but maybe there's an easier way or someone actually already wrote a tool for this…

Best Answer

You can redirect cat output without any fifo and pipes to:

  1. /dev/pts/NUM where NUM is number of your logged in pts. it may not be usefull in screen splitting)
  2. /proc/PID/fd/0 (where PID is PID of your shell process in terminal, where output should appear).