Você está acessando o arquivo do terminal o tempo todo. Mas isso não faz o que você provavelmente acha que faz.
Quando você escreve em um arquivo de disco, e depois lê a partir dele, o que você lê é o que você escreveu. Este não é o caso de arquivos especiais como terminais. Um arquivo é algo que pode ser gravado e lido de¹; o link entre o que é gravado e o que é lido depende da natureza do arquivo. Com um arquivo de dispositivo de personagem, geralmente não há nenhum link.
Os arquivos de terminal conectam duas entidades que desempenham papéis diferentes: o próprio terminal e um aplicativo que deseja interagir com um usuário. O terminal pode ser uma peça de hardware, representada pelo kernel, ou um emulador de terminal, que é um processo. Quando o aplicativo grava dados, o terminal começa a lê-lo (e normalmente o exibe para o usuário de alguma forma); quando o aplicativo lê dados, os dados vêm do terminal (normalmente isso é entrada do usuário).
No seu caso, o aplicativo é sucessivamente o shell, o gato, o editor, etc. O editor pode tentar ler do terminal, mas se estiver, ele está aguardando sua entrada, e pode ou não reagir apropriadamente ao fim da entrada (que você sinalizaria pressionando Ctrl + D no início de uma linha). Mais uma vez, a leitura do terminal não fornecerá as coisas que foram saída para o terminal.
No caso de um console, os dados gravados no terminal são desenhados na tela. Com os consoles do Linux, o texto exibido em /dev/tty1
pode ser lido no dispositivo /dev/vcs1
desde que permaneça exibível (para que você obtenha apenas o que é exibido na tela, mais o que ainda está disponível rolando de volta; qualquer coisa que não seja alcançável rolando de volta é perdida para sempre).
Note que esta é uma facilidade oferecida pela interface do terminal Linux. Um terminal poderia simplesmente desenhar os pixels e esquecer o texto. A maioria dos emuladores de terminal não oferece nenhuma instalação semelhante.
¹ A maioria dos arquivos é assim, na verdade, mas não todos. Os diretórios não podem ser escritos através da interface normal e, em muitas variantes unix, também não podem ser lidos. Alguns dispositivos não suportam leitura ou gravação, apenas ioctl
.