Ksh su AIX può essere configurato per usare il tasto tab per il completamento del nome file?


8

Ho alcuni server AIX 7 che sono limitati a quale software posso installare e mi chiedo se posso kshusare il tasto tab per completare i nomi dei file nel promot della shell.

Le pagine man sono sparse per ksh e non vedo nessuna domanda rilevante qui che riguardi questo terreno. A causa della maggior parte degli utenti che usano ksh, sono riluttante a spostare la mia shell su bash, ma suppongo che sia facile.

Inizialmente accedo da un PC usando putty / ssh e lavoro principalmente da xterm una volta che l'inoltro X11 riporta il traffico a Hummingbird Exceed sul PC.

/ Usr / bin / ksh fornito con bos.rte.shellAIX 7.1 può essere configurato per attivare il completamento del nome file (che normalmente viene attivato premendo ESC + \) premendo il tasto TAB?


Che cosa ha da dire "echo $ TERM"?
schaiba,

@schaiba - Grazie per aver colto la mia frase incompleta della domanda. Il mio $ TERM è xterm sia che io abbia effettuato l'accesso su putty / ssh o che abbia generato xterms ...
bmike

Includi il valore di $ {. Sh.version} nella tua domanda. La doppia scheda per il completamento del nome file è stata aggiunta relativamente tardi.
Henk Langeveld,

@HenkLangeveld Ottengo un errore di "sostituzione errata" quando provo a fare eco $ {. Sh.version} - La versione di box.rte.shellè 7.1.1.16
bmike

Risposte:


3

Vedi se /usr/bin/ksh93è disponibile:

ksh93 --version

Se dice

version         sh (AT&T Research)

quindi usalo come shell interattiva. Avrà $ {. Sh.version} e dovrebbe avere l'espansione TAB.


Questa sarà probabilmente la risposta a meno che non ci sia un modo ovvio per insegnare i vecchi kshnuovi trucchi. Sembra che /usr/bin/kshnon sia stato intenzionalmente aggiornato con funzionalità e il secondo binario ha compilato funzionalità più recenti. Dal momento che sembra funzionare fuori dalla scatola, premendo tab funziona come previsto ora con il minimo rischio che altri script falliscano su una differenza tra ksh e ksh93.
bmike,

1
In realtà, IBM probabilmente ha seguito il concetto di cambiare i nomi quando ha cambiato le interfacce, diversamente da quello che Sun ha fatto quando ha aggiornato ksh in ksh93 in (Open) Solaris.
Henk Langeveld,

4

Ho capito che la tua shell è in modalità vi. Non sono sicuro che funzionerà, poiché la mia conoscenza di AIX è limitata, ma puoi provare ad aggiungere questo al tuo profilo:

set -o emacs
bind "^I=complete"

Google dice che ksh in AIX è un po 'paralizzato da questo punto di vista, quindi forse bash sarebbe una scommessa migliore.


Questo non funziona neanche nella versione ksh che ho installato. Preferisco i vibinding, ma sono passato a emacs per vedere se questo avrebbe permesso al tasto tab di funzionare come previsto.
bmike,

bind mi manca su AIX 7.1
Bryce Guinta,

3

C'è un'alternativa a questa domanda.

Innanzitutto imposta la modalità vi per ksh:

$ set -o vi

Successivamente, è possibile utilizzare la Tabchiave in questo modo. Esempio: vuoi completare il percorso successivo:

$ cd /usr/local/s

Digita Tabdue volte il tasto e vedrai questo:

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

Supponendo di voler selezionare l'opzione 2( /usr/local/share/cartella), digitare 2 Tab( 2tasto seguito dal Tabtasto). E vedrai questo:

$ cd /usr/local/share/ 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.