Ctrl+D로 세션 연결이 끊어지는 것을 방지하는 방법은 무엇입니까?

Ctrl+D로 세션 연결이 끊어지는 것을 방지하는 방법은 무엇입니까?

저는 SSH를 통해 Centos 5 머신에 자주 연결합니다. 어떻게 든 해당 키가 매핑되어 control+d현재 쉘을 종료합니다. 다른 사용자에게 sudo하면 이전 사용자로 돌아갑니다. sudo가 없으면 연결이 끊어집니다. 이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까? 파이썬 인터프리터를 취소하기 위해 종종 Ctrl+D를 사용하는데, 가끔 실수로 두 번 이상 누르는 경우가 있습니다.

답변1

IGNOREEOF다음 명령을 사용하면 환경 변수를 찾고 있습니다 bash.

IGNOREEOF

EOF 문자를 유일한 입력으로 받을 때 대화형 셸의 동작을 제어합니다. 설정된 경우 이 값은 bash가 종료되기 전에 입력 줄의 첫 번째 문자로 입력해야 하는 연속 EOF 문자의 수입니다. 변수가 존재하지만 숫자 값이 없거나 값이 없는 경우 기본값은 10입니다. 존재하지 않는 경우 EOF는 쉘 입력의 끝을 나타냅니다.

따라서 실제로 껍질을 떠나기 전에 42번 export IGNOREEOF=42눌러야 합니다 .Ctrl+D

POSIXset설정 도 있습니다 -o ignoreeof. 따라서 쉘 문서를 참조하여 쉘에 이 기능이 있는지(있어야 하는지) 확인하고 정확한 의미를 확인하십시오.

답변2

정말 마음에 들지 않으면 터미널 컨트롤에서 문자를 Ctrl-d삭제할 수 있습니다 .eof

stty eof undef

그 이후에는 Cntl-d다른 제어 문자가 사용됩니다.

답변3

tcsh set ignoreeof또는 set ignoreeof=<any value not 1>작동

답변4

실수

Ctrl+D디버깅 중 의도한 것보다 한 번 더 사용하면 전체 탭이 닫히는 비슷한 문제가 있었습니다 .


환경 변수 사용에 대한 조언

임시(현재 세션에만 적용됨):

export IGNOREEOF=20

또는

set ignoreeof=20

설정이 완료되면 인쇄를 통해 설정 여부를 확인할 수 있습니다.

printenv

설정을 취소할 수도 있습니다.

unset ignoreeof

영구:

Sublime 사용과 같은 환경 변수 열기, 편집 및 설정

subl ~/.bashrc또는 파일 끝에 및를 추가하여 subl ~/.bash_profile환경 변수를 영구적으로 설정합니다. export IGNOREEOF=15이를 자동화하려면 콘솔에서 다음을 시도할 수 있습니다.

echo "export IGNOREEOF=20" >> ~/.bash_profile

echo를 사용하여 다음과 같이 현재 값을 확인할 수도 있습니다.

echo $IGNOREEOF

값을 올바르게 설정했다면 터미널에 값이 인쇄되어야 합니다. 값이 설정되지 않으면 빈 줄만 인쇄됩니다.

요약하다

이 시도:

export IGNOREEOF=20 && echo "export IGNOREEOF=20" >> ~/.bash_profile

이것이 도움이 되기를 바라며 즐거운 하루 보내세요!

관련 정보