web-dev-qa-db-ja.com

/ bin / redとは

私はredis-cliにアクセスしようとしていましたが、怠惰なのでredと入力してタブを2回押しましたが、/bin/の下に実際にredと呼ばれるバイナリがあることに気付きました。

私がしたとき

cat /bin/red

それは示した

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

それは何ですか?

注意。 redを実行すると、入力を待ち、入力したものは何でもsaves it =そして別のプロンプトを待つか、または?を返します。qを押したときにのみ終了することに注意してください。また、0-9から数字を挿入してEnterキーを押すと、it saved以前に入力したときに挿入したすべての入力が表示されます

例:

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」のみが入力を受け入れます。数値以外のものはすべて?になります。

13
M03

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'制限モードで実行します。このモードでは、現在のディレクトリからのファイルの編集とシェルコマンドの実行が無効になります。

28
pLumo