有关 ksh93 增强功能以及 ksh 与 ksh93 之间差异的完整列表,请参阅 参考资料
。 使用 ksh 设置命令行环境
在介绍如何使用 ksh 编辑命令行之前,必须设置您的环境。根据您的喜好来设置 Korn shell 相当简单:登录到 ksh 下时,使用带有 -o 开关的 set 命令来查看您的当前设置: # set -o
Current option settings are:
allexport off
bgnice on
emacs off
errexit off
gmacs off
ignoreeof on
interactive on
keyword off
markdirs off
monitor on
noexec off
noclobber off
noglob off
nolog off
notify off
nounset off
privileged off
restricted off
trackall off
verbose off
vi off
viraw on
xtrace off
下面简单介绍各项设置。(您也可以通过运行 man set 找到这些说明。)
若要开启内置命令集选项,请使用 -o 开关。相反,如果改变主意,可以使用 +o 开关关闭这些选项。
本文将重点讲述的主要选项是行内编辑器开关。根据个人喜好不同,人们往往偏爱 vi、emacs 或 gmacs 文件编辑器中的某一个。Korn shell 包含所有这三种编辑器。然而,我将重点介绍 vi 行内编辑器。将行内编辑器选项设置为 vi 十分简单。只需在用于查看所有当前设置的命令后加上选项 vi:
# set -o vi
大功告成!若要验证该设置,可以再次查看您的当前设置: # set -o
Current option settings are:
allexport off
bgnice on
emacs off
errexit off
gmacs off
ignoreeof on
interactive on
keyword off
markdirs off
monitor on
noexec off
noclobber off
noglob off
nolog off
notify off
nounset off
privileged off
restricted off
trackall off
verbose off vi on
viraw on
xtrace off
使用 Korn shell vi 行内编辑器
既然已将您的 shell 配置为使用 vi 行内编辑器,现在应该开始进行测试了。 在命令行上修改文本
现在,当您在命令行上键入时,将其视为处于 vi 编辑器中的插入模式。如果出错或者需要向要执行的命令添加一些内容,只需按 Esc 键退出插入模式并切换回命令模式。
例如,您当前所在的工作目录包含如下文件: # ls
fileA fileAA fileAAA fileAB fileABA fileABB fileB fileBAA fileBB fileBBB
您希望查找以 fileAA 开头的文件并删除它们,于是输入以下命令:
# find . -name "fileAB*" -exec rm {} \;
在执行您输入的行之前,您发现自己犯了一个错误,意外地将 fileAA 误输入为 fileAB。不必担心。只需退出插入模式并切换到命令模式,将光标移动到错误字符并进行替换,所有这些操作都使用 vi 命令完成。下面详细说明命令序列,此时仍然处于行内编辑器的插入模式:
按 Esc 切换到命令模式。
使用 vi 风格的移动命令向左移动光标,以突出显示字符串“fileAB*”中的 B。(H 键可向左移动光标。) 注意:如果您习惯于在 vi 中使用箭头键,那么明智的做法是了解键盘上用于移动光标的实际字母键,因为不同类型的终端上的箭头键不一定能产生预想中的结果: