O ksh no AIX pode ser configurado para usar a tecla tab para concluir o nome do arquivo?


8

Eu tenho alguns servidores AIX 7 restritos a qual software eu posso instalar e me pergunto se posso kshusar a tecla tab para concluir os nomes de arquivos na promoção do shell.

As páginas de manual são escassas para o ksh e não vejo nenhuma pergunta relevante aqui sobre esse assunto. Como a maioria dos usuários usa o ksh, hesito em mudar meu shell para o bash - mas suponho que seja uma solução fácil.

Faço login inicialmente a partir de um PC usando putty / ssh e trabalho principalmente com o xterm quando o encaminhamento do X11 retorna o tráfego para o Hummingbird Exceed no PC.

O / usr / bin / ksh que acompanha o bos.rte.shellAIX 7.1 pode ser configurado para acionar a conclusão do nome de arquivo (que normalmente é acionado pressionando ESC + \) pressionando a tecla TAB?


O que 'echo $ TERM' tem a dizer?
Schaiba

@schaiba - Obrigado por pegar meu fraseado incompleto da pergunta. Meu $ TERM é xterm se eu estou conectado em mais de betume / ssh ou geraram xterms ...
bmike

Inclua o valor de $ {. Sh.version} em sua pergunta. TAB duplo para a conclusão do nome do arquivo foi adicionado relativamente tarde.
Henk Langeveld 21/07

@HenkLangeveld recebo um erro de "substituição incorreta" ao tentar echo $ {sh.version.} - A versão box.rte.shellé 7.1.1.16
bmike

Respostas:


3

Veja se /usr/bin/ksh93está disponível:

ksh93 --version

Se diz

version         sh (AT&T Research)

então use isso como seu shell interativo. Ele terá o $ {. Sh.version} e deverá ter a expansão TAB.


É provável que isso acabe sendo a resposta, a menos que haja uma maneira óbvia de ensinar os velhos kshtruques novos. Parece que o /usr/bin/kshintencionalmente não é atualizado com os recursos e o segundo binário possui recursos mais recentes compilados. Como parece funcionar imediatamente, pressionar a tecla tab funciona como esperado agora, com pouco risco de que outros scripts falhem com a diferença entre ksh e ksh93.
bmike

1
Na verdade, a IBM provavelmente seguiu o conceito de alterar nomes ao alterar interfaces, ao contrário do que a Sun fez quando atualizou o ksh para o ksh93 no Solaris (aberto).
Henk Langeveld

4

Acho que seu shell está no modo vi. Não tenho certeza se isso funcionará, pois meu conhecimento sobre o AIX é limitado, mas você pode tentar adicionar isso ao seu perfil:

set -o emacs
bind "^I=complete"

O Google diz que o ksh no AIX é meio prejudicado desse ponto de vista, então talvez o bash seria uma aposta melhor.


Isso também não funciona na versão ksh que eu instalei. Eu prefiro as viligações, mas mudei para o emacs para ver se isso permitiria que a tecla tab funcionasse como esperado.
bmike

bind está faltando para mim no AIX 7.1 #
Bryce Guinta 3/16

3

Existe uma alternativa para esta pergunta.

Primeiro defina o modo vi para ksh:

$ set -o vi

Depois, você pode usar a Tabchave dessa maneira. Exemplo: Você deseja concluir o próximo caminho:

$ cd /usr/local/s

Digite a Tabtecla duas vezes e você verá isso:

$ cd /usr/local/s
1) sbin/
2) share/
3) src/

Supondo que você queira a opção 2( /usr/local/share/pasta), digite 2 Tab( 2tecla seguida pela Tabtecla). E você verá isso:

$ cd /usr/local/share/ 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.