rksh 命令

用途

调用受限版本的 Korn shell 程序。

语法

rksh [ -i ] [{ + | - } { a e f h k m n p t u v x }] [ -o 选项 ... ] [ -c 字符串 | -s | 文件 [ 参数 ]]

注: 使用 + (加号) 而不是 - (减号) 将标志关闭。

描述

rksh 命令调用受限版本的 Korn shell 程序。 它允许管理员将受控 shell 环境提供给用户。 还有一个受限版本的 rksh 可用于增强型 Korn shell 程序,称为 rksh93

如果使用受限 shell 程序,用户则无法:
  • 更改当前工作目录。
  • 设置 SHELL、ENV 或 PATH 变量值。
  • 指定包含 / (斜杠) 的命令的路径名。
  • 使用 > (右插入标记) , >| (右插入标记,管道符号) , <> (左插入标记,右插入标记) 或 >> (两个右插入标记) 来重定向命令输出。

标志

描述
-a 自动地导出所有定义的后继参数。
-c 字符串 使 Korn shell 程序从 String 变量读取命令。 此标志不能同 -s 标志或 File[ Parameter] 参数一起使用。
-e 如果已设置,那么执行 ERR 陷阱,如果命令具有非零退出状态,那么退出。 读取概要文件时禁用此方式。
-f 禁用文件名替换。
-h 首次遇到时指定每个命令作为跟踪的别名。
-i 表示 shell 是交互式的。 如果 shell 输入和输出连接到终端(由 ioctl 子例程确定),那么也表示交互式 shell。 在这种情况下,那么忽略 TERM 环境变量(这样 kill 0 命令将不杀死交互式 shell)并捕获和忽略 INTR 信号(这样可以中断等待状态)。 在所有情况下,shell 将忽略 QUIT 信号。
-k 将命令的所有参数分配参数放置到环境中,而不仅仅是命令名前面的那些参数。
-m 在单独的进程中运行后台作业,并在完成时显示一行。 完成消息中报告了后台作业的退出状态。 在带有作业控制的系统上,将为交互式 shell 自动打开此标志。
-n 读取命令并检查它们以发现语法错误,但是不执行它们。 忽略交互式 shell 的此标志。
-o 选项 如果未指定参数,那么显示当前选项设置和错误消息。 可以使用此标志来启用以下任一选项:
allexport
-a 标志相同。
errexit
-e 标志相同。
bgnice
以较低的优先级运行所有后台作业。 这是缺省方式。
emacs
为命令条目输入 emacs-样式内联编辑器。
gmacs
输入命令条目的 gmacs 风格的行内编辑器。
ignoreeof
在它遇到文件结束符时不退出 shell。 必须使用 exit 命令,或者通过按下 Ctrl-D 键序列超过 11 次来覆盖此标志并退出 shell。
关键字
-k 标志相同。
markdirs
/(斜杠)附加到所有目录名,这些目录名是文件名替换的结果。
监控
-m 标志相同。
noclobber
防止重定向截断现有文件。 指定此选项时,请使用重定向符号 >| (右插入标记,竖线符号) 来截断文件。
noexec
-n 标志相同。
noglob
-f 标志相同。
nolog
防止在历史文件中保存函数定义。
nounset
-u 标志相同。
privileged
-p 标志相同。
verbose
-v 标志相同。
trackall
-h 标志相同。
vi
输入用于命令条目的 vi-样式内联编辑器的插入方式。 输入转义字符 033 将编辑器放入移动方式。 返回发送此行。
viraw
以 vi 方式输入字符时处理每一个字符。
xtrace
-x 标志相同。

可以在单个 rksh 命令行上设置多个选项。

-p 将 shell 用作登录 shell 程序时禁用 $HOME/.profile 文件。
-s 使 rksh 命令从标准输入读取命令。 Shell 输出 (特殊命令的输出除外) 将写入文件描述符 2 中。 此参数不能与 -c 标志一起使用,也不能与 文件[参数] 参数一起使用。
-t 读取并执行一条命令后退出。
-u 替换时将 unset 参数作为错误。
-v 读取 shell 输入行时显示它们。
-x 显示已执行的命令及其参数。

文件

描述
/usr/bin/rksh 包含受限 Korn shell 程序的路径名。
/tmp/sh* 包含当 shell 打开时所创建的临时文件。