Não é possível inserir um caractere de barra quando o login é feito via ssh

2

Quando eu ssh em um de nossos servidores, não consigo inserir um caractere de barra, o que torna difícil fazer praticamente qualquer coisa (como ls / ). Como posso fazer a barra avançar para o trabalho?

Algumas informações adicionais:

  • /etc/issue afirma que está rodando "CentOS release 5.7 (Final)"
  • A única maneira de saber isso é executando ssh me@some-host cat /etc/issue
  • Estou usando o Mac OS X Terminal.app e nunca tive problemas com isso, nos sistemas Centos 5 ou de outra forma
  • Eu não sei quem ou como a máquina foi construída e configurada
  • echo $TERM relatórios xterm-256color
  • não sei se isso faz sentido para qualquer pessoa (não faz sentido para mim), mas eu diff ' /etc/inputrc do servidor com defeito que funciona com um que funciona e tem o seguinte:

    $ 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
    
por aaronstacy 02.04.2012 / 02:23

2 respostas

7

Esta linha é o seu problema

/# do not bell on tab-completion

Se eu adicionar essa linha à minha configuração de trabalho, a barra pára de funcionar.

A única pista que eu posso encontrar sobre isso está na man page readline:

Blank lines are ignored. Lines beginning with a # are comments. Lines beginning with a $ indicate conditional constructs. Other lines denote key bindings and variable settings.

Como não é uma linha em branco e não começa com # ou $ , ela deve estar sendo tratada como uma ligação de chave.

    
por 02.04.2012 / 05:51
0

Um programa chamado xmodmap pode ser usado para modificar mapas de teclado. Veja man xmodmap se já estiver instalado.

Em poucas palavras, use xev para ver detalhes sobre eventos X. Acione isso e acerte sua tecla. Na minha configuração, este é o resultado que recebo:

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

Em seguida, na máquina remota, use xmodmap -e 'keycode [KEYCODE] = [KEYSYM] para criar o mapeamento, onde [KEYCODE] e [KEYSYM] são os valores recuperados de xev. Tente definir o padrão 61,0x2f primeiro para ver se ele precisa ser redefinido. (por exemplo, xmodmap -e 'keycode 61 = 0x2f' )

Se não quiser, tente mapear uma chave diferente. Por exemplo, eu tentei keycode 105 (controle da direita) para 0x2f. Isso funcionou localmente e em uma sessão ssh para mim.

Editar:

Você também pode definir o ponto de interrogação. Estenda o comando anterior para xmodmap -e 'keycode 61 = 0x2f 0x3f '. Pode ver uma lista completa de lista de chaves aqui .

    
por 02.04.2012 / 04:39