Quando entro ssh
em um de nossos servidores, não consigo inserir uma barra, o que torna difícil fazer praticamente qualquer coisa (como ls /
). Como posso fazer a barra funcionar?
Algumas informações adicionais:
/etc/issue
afirma que está executando o "CentOS release 5.7 (Final)"- A única maneira de saber disso é executando
ssh me@some-host cat /etc/issue
- Estou usando o Mac OS X Terminal.app e nunca tive problemas com isso, em sistemas Centos 5 ou outros
- Não sei quem ou como a máquina foi construída e configurada
echo $TERM
relatóriosxterm-256color
não sei se isso faz sentido para alguém (não faz sentido para mim), mas troquei
diff
o/etc/inputrc
servidor com defeito por um que funciona e obtive 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
Responder1
Esta linha é o seu problema
/# do not bell on tab-completion
Se eu adicionar essa linha à minha configuração de trabalho, a barra para de funcionar.
A única pista que posso encontrar sobre isso está na página de manual do readline:
As linhas em branco são ignoradas. As linhas que começam com # são comentários. Linhas que começam com $ indicam construções condicionais. Outras linhas indicam combinações de teclas e configurações de variáveis.
Como não é uma linha em branco e não começa com #
ou $
, deve ser tratada como uma ligação de tecla.
Responder2
Um programa chamado xmodmap pode ser usado para modificar mapas de teclado. Veja man xmodmap
se já está instalado.
Resumindo, use xev
para ver detalhes sobre eventos X. Ligue isso e pressione a tecla /. Na minha configuração, este é o resultado que obtenho:
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 só precisa ser redefinido. (ou seja, xmodmap -e 'keycode 61 = 0x2f'
)
Se isso não for possível, tente mapear uma chave diferente. Por exemplo, tentei o código-chave 105 (controle direito) 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
'. Você pode ver um completolista de keysyms aqui.