![什么是 /bin/red](https://linux22.com/image/1013960/%E4%BB%80%E4%B9%88%E6%98%AF%20%2Fbin%2Fred.png)
我试图访问redis-cli
,但因为我很懒,所以我red
输入并按了两次 Tab,但我注意到实际上有一个名为的二进制文件red
位于下/bin/
。
当我这样做的时候
cat /bin/red
这显示了
#! /bin/sh
bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
exec "${bindir}"ed --restricted "$@"
知道那是什么吗?
注意。当我执行时red
,它只是等待输入,无论我输入什么,它都会保存它并等待另一个提示或返回?
,注意只有点击q
它时才会退出。此外,当插入 0-9 之间的数字并保持输入时,它会显示您插入的每个输入它保存了你之前输入的内容
例子:
a <<<-- input
bsa <<< input taken without ?
^C <<<--- hitting ctrl-c
? <<<--- output
示例2:
v
?
b
?
a
qwrefdf <<-- saved because it didn't output ? after typing "a" up
^C
?
<<- waiting for input
因此“h”输出“无效地址”,并且只有“a”、“x”、“c”和“i”接受输入。除数字之外的所有其他结果都会导致?
答案1
red
处于ed
限制模式。
$ whatis red
red (1) - line-oriented text editor
$ man red
shows `ed` man page.
此外,代码显示,它ed --restricted
使用bindir
所有参数("$@"
)执行。
ed
要获得有关及其命令的手册,请运行info Ed
。
在本章中Invoking ed
:
运行‘ed’的格式为:
ed [OPTIONS] [FILE] red [OPTIONS] [FILE]
[...]
'-r' '--restricted' 在受限模式下运行。此模式禁用当前目录之外的文件编辑和 shell 命令的执行。