액세스하려고 redis-cli
했지만 게으 르기 때문에 입력 red
하고 탭을 두 번 누르십시오. 그러나 실제로 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”만 입력을 받아들입니다. 숫자 이외의 다른 모든 결과?
답변
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’제한 모드에서 실행합니다. 이 모드는 현재 디렉토리에서 파일을 편집하거나 쉘 명령을 실행하지 못하게합니다.