Pergunta

Eu sou novo para Unix e estou usando Solaris sol (v10 eu acho). Eu tenho meu set shell como KornShell (ksh).

Eu estou querendo saber como fazer as teclas de seta e excluir obra-chave na linha de comando. Eu tenho conjunto feito -o emacs e as obras backspace, mas não as setas e as teclas de exclusão.

Também é possível definir a cima e para baixo chave de seta para percorrer o histórico da linha de comando?

Foi útil?

Solução

Para as teclas de seta, você pode colocar isso em seu arquivo .kshrc no seu diretório home:

set -o emacs
alias __A=`echo "\020"`     # up arrow = ^p = back a command
alias __B=`echo "\016"`     # down arrow = ^n = down a command
alias __C=`echo "\006"`     # right arrow = ^f = forward a character
alias __D=`echo "\002"`     # left arrow = ^b = back a character
alias __H=`echo "\001"`     # home = ^a = start of line
alias __Y=`echo "\005"`     # end = ^e = end of line

Note que existem dois caracteres de sublinhado antes das letras no lado esquerdo do sinal de igual. No lado direito da igualdade, o objetivo é fazer com que o personagem controle adequado atribuído ao alias. A forma como este script faz isso, é executando o comando (através de back-tiques)

echo "\020"

para obter o controle-n caráter atribuído a __B.

Outras dicas

Eu usei seguinte e está funcionando bem:

set -o emacs

Nota: estes são os caracteres de controle reais. Em vi, digite i Ctrl-V, em seguida, ctrl-P (se vc quiser um ctrl-p)

alias _A=^P
alias _B=^N
alias _D=^B
alias _C=^F

e adicione a seguir as linhas demasiado:

alias __A=^P
alias __B=^N
alias __D=^B
alias __C=^F

Não combatê-la. Basta ter o administrador alterar seu shell padrão para bash. festa está incluído no Solaris 10, é altamente ksh compatível, e suporta os mapeamentos de teclas que você gosta. Você pode iniciar o bash apenas digitando:

$ bash

Você poderia exec festa fora de seu .profile se o administrador não é útil. Aqui está o que o administrador iria fazer para mudar user1 para bash (como root):

# passwd -e user1
Old shell: /bin/ksh
New shell: /usr/bin/bash        <- You type this, use whence bash to look up the path
passwd: password information changed for user1

O ksh padrão pode ser ksh88 - que não suporta as de alias __ macros de teclado. Ksh93 faz. Basicamente, se ele não funcionar -. Você provavelmente está usando ksh88

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top