Esta é uma resposta longa e básica, mas eu também abordei o problema Ctrl-D que você listou na resposta do OP abaixo
Eu vejo uma grande confusão aqui no terminal e no shell . Rolagem não é feita pelo seu shell, mas pelo seu terminal. O que screen
e tmux
fazem é adicionar outro terminal no topo do seu terminal gnome para cada subjanela (pode parecer estranho no começo, mas um terminal não é exatamente o que você é > veja mas realmente apenas um dispositivo, geralmente sob / dev / pts /, onde um processo pode ler bytes e escrever bytes para).
Como a tela executa seu (s) pseudo-terminal (s) no topo do seu gnome-terminal, ele não tem nenhuma chance de interceptar as chaves que o gnome-terminal já intercepta. Ele precisa ter suas próprias teclas de atalho e você, como usuário, não deve pressionar as teclas de atalho que o gnome-terminal entende. Você pode, mas o resultado não será o esperado, já que o gnome-terminal não sabe da confusão criada pela tela.
Você pode ter atalhos interceptados apenas pelo seu shell (não pelo terminal onde o shell lê seus caracteres), mas eles não devem ser afetados, a menos que envolvam Ctrl-A (a única chave interceptada pela tela na parte superior do chaves que são interceptadas pelo subsistema terminal (por exemplo, Ctrl-C)). Eles devem funcionar da mesma maneira. Alguns dos atalhos geralmente interpretados por esse shell bash
são Ctrl-A (dentro da tela, você deve usar Ctrl-A a) para mover o cursor para o início do comando editado, e Ctrl-E (funciona dentro da tela da mesma forma que não dentro da tela) para ir até o fim.
Eu sei que é complicado, mas é muito simples, porque um terminal é apenas um arquivo no qual você pode escrever bytes e ler bytes. Aqui está um excelente artigo que abrange muitas coisas relacionadas se você estiver interessado: link
Referir-se a o problema Ctrl-D (uma combinação de teclas supostamente interpretada pelo shell ), você deve verificar se os caracteres gerados pelo Ctrl-D são os mesmos em um terminal gnome e em um terminal de tela . Você pode ver o caractere por exemplo com cat
. Eu suspeito que eles são realmente o mesmo (é assim no meu sistema), e se sim, isso significa que a tela lançou outro shell que o gnome-terminal normalmente faz. Neste caso, descubra o que o shell é iniciado por um gnome-terminal de forma nativa, e inicie este shell (com os mesmos argumentos de linha de comando) em sua sessão de tela também.