Come posso impedire a control + d di disconnettere la mia sessione?


26

Ssh regolarmente a un centos 5 box. In qualche modo le loro chiavi sono mappate in modo da control+ddisconnettermi dalla mia shell corrente. Se sono abituato a un altro uso, mi riporta all'utente precedente. Se non sono abituato, mi disconnette. Come posso evitare che ciò accada? Uso regolarmente control + d per annullare l'interprete Python e talvolta lo premo accidentalmente più di una volta.


dentro csh, lo faiset ignoreeof
Trevor Boyd Smith,

Risposte:


32

Stai cercando la IGNOREEOFvariabile d'ambiente se usi bash:

IGNOREEOF

Controlla l'azione di una shell interattiva alla ricezione di un carattere EOF come unico input. Se impostato, il valore è il numero di caratteri EOF consecutivi che devono essere digitati come primi caratteri su una riga di input prima che bash esca. Se la variabile esiste ma non ha un valore numerico o non ha valore, il valore predefinito è 10. Se non esiste, EOF indica la fine dell'input nella shell.

Quindi export IGNOREEOF=42e dovrai premere Ctrl+Dquarantadue volte prima che esca effettivamente dalla shell.

Anche POSIX setha -o ignoreeofun'impostazione. Quindi consulta la documentazione della tua shell per vedere se la tua shell ha questo (dovrebbe) e per verificarne l'esatta semantica.


Bello, dà un messaggio "Usa l'uscita per lasciare la shell", almeno su Ubuntu. Essendo citato in giudizio in un utente, probabilmente non vorrai lasciarlo inavvertitamente, specialmente se l'utente principale è a livello di root.
Fiasco Labs,

1
Personalmente lo trovo davvero fastidioso, quindi non lo posiziono da nessuna parte. L'ho scoperto mentre cercavo di disabilitare quel comportamento :)
Mat

2
Non posso resistere all'essere un pedante. IGNOREEOFè il numero di volte in cui l'EOF viene ignorato prima di accettarlo definitivamente. Quindi, nel tuo esempio sopra, se vuoi export IGNOREEOF=42, dovrai premere CONTROL-D 43 volte per uscire, non 42.
Alvin Thompson,

2

tcsh set ignoreeofo set ignoreeof=<any value not 1>funziona


0

Se davvero non ti piace Ctrl-d, potresti rimuovere il eofpersonaggio nei controlli del terminale.

stty eof undef

Dopo questo, Cntl-dsarà qualsiasi altro personaggio di controllo.


1
L'ho appena provato in un terminale (urxvt) con bash e in una console semplice, e non ha funzionato.
Mat

Hmm ... che funzionava e i documenti dicono ancora che lo fa. Un'alternativa sarebbe usare <kbd> Ctrl- [</kvd>.
Arcege,

2
Ciò renderebbe anche non uscire più da Python.
psusi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.