可以将AIX上的ksh配置为使用Tab键完成文件名吗?


8

我有一些AIX 7服务器,这些服务器仅限于我可以安装的软件,并且想知道是否可以ksh使用tab键在shell promot上完成文件名。

手册页中的ksh很少,我看不到这里涉及到任何相关问题。由于大多数用户都使用ksh,因此我不愿意将shell转换为bash,但是我想这很容易。

最初,我使用腻子/ ssh从PC登录,一旦X11转发将流量带回PC上的Hummingbird Exceed,大部分工作就从xterm进行。

是否可以通过按TAB键bos.rte.shell将AIX 7.1 附带的/ usr / bin / ksh 配置为触发文件名完成(通常是通过按ESC + \来触发)


“ echo $ TERM”要说什么?
schaiba

@schaiba-感谢您抓住我对这个问题的不完整表达。我的$ TERM是xterm,无论我是通过腻子/ ssh登录还是生成了
xterms

请在您的问题中包括$ {。sh.version}的值。用于文件名完成的双TAB添加得相对较晚。
Henk Langeveld

@HenkLangeveld尝试回显$ {。sh.version}时,我收到“错误替换”错误-版本box.rte.shell为7.1.1.16
bmike 2013年

Answers:


3

查看是否/usr/bin/ksh93可用:

ksh93 --version

如果说

version         sh (AT&T Research)

然后将其用作您的交互式外壳。它将具有$ {。sh.version},并且应该具有TAB扩展。


除非有一种明显的方法来教授旧的ksh新技巧,否则这最终可能会成为答案。看来/usr/bin/ksh特意未使用功能进行更新,并且第二个二进制文件已编译了较新的功能。由于似乎开箱即用,因此按Tab键现在可以按预期工作,几乎没有其他脚本由于ksh和ksh93之间的差异而失败的风险。
bmike 2013年

1
实际上,IBM可能在更改接口时遵循了更改名称的概念,这与Sun在(Open)Solaris中将ksh更新为ksh93时所做的不同。
Henk Langeveld

4

我收集到您的外壳处于vi模式。由于我的AIX知识有限,因此不确定是否可以使用,但是yu可以尝试将其添加到您的个人档案中:

set -o emacs
bind "^I=complete"

谷歌表示,从这个角度来看,AIX中的ksh有点残缺,因此bash可能是更好的选择。


在我安装的ksh版本中,这都不起作用。我更喜欢vi绑定,但是切换到emacs来查看这是否会使Tab键按预期工作。
bmike

在AIX 7.1上缺少绑定对我来说
Bryce Guinta

3

这个问题还有另一种选择。

首先为以下项设置vi模式ksh

$ set -o vi

之后,您可以通过Tab这种方式使用密钥。示例:您要完成下一条路径:

$ cd /usr/local/s

Tab两次键入密钥,您将看到以下内容:

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

假设您要选择2/usr/local/share/文件夹),请键入2 Tab2键,然后Tab按键)。您将看到:

$ cd /usr/local/share/ 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.