저는 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
이것이 도움이 되기를 바라며 즐거운 하루 보내세요!