Como posso manter o controle + d desconectando minha sessão?

23

Eu regularmente ssh para uma caixa de centos 5. De alguma forma, elas são mapeadas para que control+d me desconecte do meu shell atual. Se eu sou sudo'ed para outro uso, isso me coloca de volta para o usuário anterior. Se não estou sudo, apenas me desconecta. Como posso evitar que isso aconteça? Eu uso regularmente o controle + d para cancelar o intérprete python e às vezes eu o pressiono acidentalmente mais de uma vez.

    
por cwd 24.12.2011 / 18:33

3 respostas

30

Você está procurando a variável de ambiente IGNOREEOF se usar bash :

IGNOREEOF

Controls the action of an interactive shell on receipt of an EOF character as the sole input. If set, the value is the number of consecutive EOF characters which must be typed as the first characters on an input line before bash exits. If the variable exists but does not have a numeric value, or has no value, the default value is 10. If it does not exist, EOF signifies the end of input to the shell.

Então, export IGNOREEOF=42 e você terá que pressionar Ctrl + D quarenta e duas vezes antes de realmente sair do seu shell.

POSIX set também tem uma configuração -o ignoreeof . Então, consulte a documentação do seu shell para ver se o seu shell tem isso (deve) e para verificar sua semântica exata.

    
por 24.12.2011 / 18:51
2

tcsh set ignoreeof ou set ignoreeof=<any value not 1> funciona

    
por 03.04.2014 / 11:48
0

Se você realmente não gosta de ter Ctrl-d , então você pode remover o caractere eof nos controles do terminal.

stty eof undef

Depois disso, Cntl-d será qualquer outro caractere de controle.

    
por 24.12.2011 / 20:17