Ksh sous AIX peut-il être configuré pour utiliser la touche de tabulation pour compléter le nom de fichier?


8

J'ai certains serveurs AIX 7 qui sont limités aux logiciels que je peux installer et je me demande si je peux kshutiliser la touche de tabulation pour compléter les noms de fichiers sur le promoteur du shell.

Les pages de manuel sont rares pour ksh et je ne vois pas ici de questions pertinentes couvrant ce terrain. En raison de la majorité des utilisateurs utilisant ksh, j'hésite à déplacer mon shell vers bash - mais je suppose que c'est une sortie facile.

Je me connecte initialement à partir d'un PC en utilisant putty / ssh et je travaille principalement à partir de xterm une fois que le transfert X11 ramène le trafic vers Hummingbird Exceed sur le PC.

/ Usr / bin / ksh fourni avec bos.rte.shellpour AIX 7.1 peut-il être configuré pour déclencher l'achèvement du nom de fichier (qui est normalement déclenché en appuyant sur ESC + \) en appuyant sur la touche TAB?


Qu'est-ce que 'echo $ TERM' a à dire?
schaiba

@schaiba - Merci d'avoir rattrapé ma formulation incomplète de la question. Mon $ TERM est xterm si je suis connecté via putty / ssh ou si j'ai généré xterms ...
bmike

Veuillez inclure la valeur de $ {. Sh.version} dans votre question. Un double TAB pour l'achèvement du nom de fichier a été ajouté relativement tard.
Henk Langeveld

@HenkLangeveld J'obtiens une erreur de "mauvaise substitution" lorsque j'essaie de faire écho à $ {. Sh.version} - La version de box.rte.shellest 7.1.1.16
bmike

Réponses:


3

Voir si /usr/bin/ksh93est disponible:

ksh93 --version

Si ça dit

version         sh (AT&T Research)

puis utilisez-le comme votre shell interactif. Il aura le $ {. Sh.version} et devrait avoir l'extension TAB.


Cela va probablement finir par être la réponse à moins qu'il n'y ait un moyen évident d'enseigner les anciens kshnouveaux trucs. Il semble que le /usr/bin/kshn'est pas intentionnellement mis à jour avec des fonctionnalités et le second binaire a compilé des fonctionnalités plus récentes. Puisqu'il semble fonctionner hors de la boîte, appuyer sur tab fonctionne comme prévu maintenant avec peu de risque que d'autres scripts échouent sur une différence entre ksh et ksh93.
bmike

1
En fait, IBM a probablement suivi le concept de changement de nom lors du changement d'interface, contrairement à ce que Sun a fait quand il a mis à jour ksh en ksh93 dans (Open) Solaris.
Henk Langeveld

4

Je suppose que votre shell est en mode vi. Je ne suis pas sûr que cela fonctionnera, car mes connaissances sur AIX sont limitées, mais vous pouvez essayer d'ajouter ceci à votre profil:

set -o emacs
bind "^I=complete"

Google dit que ksh dans AIX est un peu paralysé de ce point de vue, donc peut-être que bash serait un meilleur pari.


Cela ne fonctionne pas non plus dans la version ksh que j'ai installée. Je préfère les viliaisons, mais je suis passé à emacs pour voir si cela laisserait la touche de tabulation fonctionner comme prévu.
bmike

bind me manque sur AIX 7.1
Bryce Guinta

3

Il existe une alternative à cette question.

D' abord mis en mode vi pour ksh:

$ set -o vi

Après, vous pouvez utiliser la Tabclé de cette façon. Exemple: vous voulez compléter le chemin suivant:

$ cd /usr/local/s

Tapez la Tabclé deux fois et vous verrez ceci:

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

En supposant que vous vouliez l'option 2( /usr/local/share/dossier), tapez 2 Tab( 2clé suivie de la Tabclé). Et vous verrez ceci:

$ cd /usr/local/share/ 
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.