什么是/bin/red

Vik*_*ova 13 server 18.04

我试图访问,redis-cli但因为我太懒了,所以我输入red并按了两次 Tab,但我注意到有一个实际调用的二进制文件red位于/bin/.

当我做

cat /bin/red
Run Code Online (Sandbox Code Playgroud)

这显示了

#! /bin/sh
bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
exec "${bindir}"ed --restricted "$@"
Run Code Online (Sandbox Code Playgroud)

知道那是什么吗?

笔记。当我执行时red,它只是等待一个输入,无论我输入什么,它要么保存它并等待另一个提示或返回?,请注意只有在点击q它时才会退出。同样,当插入 0-9 的数字并保持输入时,它会显示您在保存您之前输入的内容时插入的每个输入

例子:

a <<<-- input
bsa <<< input taken without ?
^C <<<--- hitting ctrl-c
?  <<<--- output
Run Code Online (Sandbox Code Playgroud)

例子2:

v
?
b
?
a
qwrefdf <<-- saved because it didn't output ? after typing "a" up
^C
?
 <<- waiting for input
Run Code Online (Sandbox Code Playgroud)

所以“h”在“无效地址”中输出,只有“a”、“x”、“c”和“i”接受输入。除了数字之外的所有其他结果?

pLu*_*umo 28

reded在限制模式。

$ whatis red
red (1)              - line-oriented text editor

$ man red
shows `ed` man page.
Run Code Online (Sandbox Code Playgroud)

此外,代码显示,它ed --restrictedbindir所有参数 ( "$@") 开始执行。

有关手册ed及其命令,请运行info Ed.

在章节中Invoking ed

运行“ed”的格式是:

 ed [OPTIONS] [FILE]
 red [OPTIONS] [FILE]
Run Code Online (Sandbox Code Playgroud)

[...]

'-r' '--restricted' 在受限模式下运行。此模式禁用当前目录之外的文件编辑和 shell 命令的执行。