A maioria dos tutoriais que você pode encontrar são sobre o bash. Ksh é muito bom em scripts, mas é ruim em uso interativo. Use zsh (best) ou bash (second-best) como uma linha de comando, se puder.
Existem duas implementações principais do ksh hoje: o shell Ksh real ksh93, e o clone mksh (derivado do pdksh longo e não-mantido). Eles têm diferentes recursos de ligação de chaves.
No ksh93, as teclas Acima e Abaixo não se movem no histórico da linha de comando por padrão. As teclas padrão são Ctrl + P e Ctrl + N . Você pode alterar as combinações de teclas por meio do KEYBD
trap; é um pouco desajeitado, pois você só pode traduzir chaves para outras chaves e todas as ligações devem ser definidas no mesmo lugar. Aqui está como fazer Up e Abaixo navegar pelo histórico (este código vai para ~/.kshrc
):
set -o emacs
function KEYBD_trap {
case ${.sh.edchar} in
$'\e'[[O]A) .sh.edchar=$'\e>';;
$'\e'[[O]B) .sh.edchar=$'\e<';;
esac
}
trap KEYBD_trap KEYBD
\e[A
e \eOA
, em que \e
representa o caractere de escape ASCII , são os duas seqüências de escape que o terminal pode enviar quando o usuário pressiona a tecla Up (depende do terminal e de seu modo atual). Da mesma forma \e[A
e \eOA
é para Down . $'\e
é uma notação que você pode usar em ksh para o caractere de escape; o padrão [[O]
corresponde a [
ou O
.
No mksh, você define as associações de teclas por meio do bind
builtin. Up e Down navegam o histórico por padrão (além de kbd > Ctrl + P e Ctrl + N ). O código a seguir (a ser colocado em ~/.mkshrc
) desativa as teclas de seta:
bind '^[OA'=
bind '^[[A'=
bind '^[OB'=
bind '^[[B'=
^[
é uma notação que você pode usar nas ligações de chave do mskh para o caractere de escape.
Todas essas informações estão na página man do shell, não necessariamente em uma forma compreensível se você já não estiver familiarizado com shells do Unix.