SSH를 통해 로그인할 때 슬래시 문자를 입력할 수 없습니다.

SSH를 통해 로그인할 때 슬래시 문자를 입력할 수 없습니다.

우리 서버 중 하나에 접속할 때 ssh슬래시 문자를 입력할 수 없어서 거의 모든 작업(예: ls /)을 수행하기가 어렵습니다. 슬래시를 작동시키려면 어떻게 해야 합니까?

추가 정보:

  • /etc/issue"CentOS 릴리스 5.7(최종)"을 실행 중이라고 주장합니다.
  • 내가 이것을 아는 유일한 방법은 실행하는 것입니다ssh me@some-host cat /etc/issue
  • 저는 Mac OS X Terminal.app을 사용하고 있는데 Centos 5 시스템이나 다른 시스템에서 이 문제가 발생한 적이 없습니다.
  • 기계가 누가, 어떻게 만들어지고 설치되었는지 모르겠습니다.
  • echo $TERM보고서xterm-256color
  • 이것이 누구에게나 이해가 될지는 모르겠지만(저에게는 이해가 되지 않습니다), 작동하는 서버로 오작동하는 서버를 diff제거했고 다음과 같은 결과를 얻었습니다./etc/inputrc

    $ diff /tmp/{good,bad}_inputrc
    1c1
    < # do not bell on tab-completion
    ---
    > /# do not bell on tab-completion
    37a38,49
    > 
    > # Home Key
    > "\e[7~":beginning-of-line
    > 
    > # End Key
    > "\e[8~":end-of-line
    > 
    > # Delete Key
    > "\e[3~":delete-char
    > 
    > # Insert Key
    > "\e[2~":paste-from-clipboard
    

답변1

이 줄이 문제야

/# do not bell on tab-completion

해당 행을 작업 구성에 추가하면 슬래시 작동이 중지됩니다.

이에 대해 내가 찾을 수 있는 유일한 단서는 readline 매뉴얼 페이지에 있습니다:

빈 줄은 무시됩니다. #으로 시작하는 줄은 주석입니다. $로 시작하는 줄은 조건부 구성을 나타냅니다. 다른 줄은 키 바인딩 및 변수 설정을 나타냅니다.

빈 줄이 아니고 #or 로 시작하지 않기 때문에 $키 바인딩으로 처리되어야 합니다.

답변2

xmodmap이라는 프로그램을 사용하여 키맵을 수정할 수 있습니다. man xmodmap이미 설치되어 있는지 확인하세요 .

간단히 말해서 xevX 이벤트에 대한 세부 정보를 보려면 사용합니다. 그것을 발사하고 / 키를 누르십시오. 내 설정에서 얻은 결과는 다음과 같습니다.

KeyRelease event, serial 34, synthetic NO, window 0x4e00001,
root 0x15a, subw 0x0, time 107752919, (784,828), root:(789,850),
state 0x10, keycode 61 (keysym 0x2f, slash), same_screen YES,
XLookupString gives 1 bytes: (2f) "/"
XFilterEvent returns: False

그런 다음 원격 시스템에서 를 사용하여 xmodmap -e 'keycode [KEYCODE] = [KEYSYM]매핑을 생성합니다. 여기서 [KEYCODE] 및 [KEYSYM]은 xev에서 검색된 값입니다. 먼저 기본값 61,0x2f를 설정하여 재설정이 필요한지 확인해보세요. (즉, xmodmap -e 'keycode 61 = 0x2f')

그래도 안 되면 다른 키를 매핑해 보세요. 예를 들어 키코드 105(오른쪽 컨트롤)를 0x2f로 시도했습니다. 그것은 나를 위해 로컬 및 SSH 세션에서 작동했습니다.

편집하다:

물음표를 설정할 수도 있습니다. 이전 명령을 xmodmap -e 'keycode 61 = 0x2f 0x3f'. 완성된 모습을 보실 수 있습니다여기에 키심 목록이 있습니다.

관련 정보