Apa itu / bin / red

13

Saya mencoba mengakses redis-clitetapi karena saya malas saya mengetik reddan menekan tab dua kali, tetapi saya perhatikan bahwa ada biner yang sebenarnya bernama redyang terletak di bawah /bin/.

Ketika saya melakukannya

cat /bin/red

itu menunjukkan

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

Adakah yang tahu itu?

Catatan. ketika saya mengeksekusi red, itu hanya menunggu input dan apa pun yang saya ketik, itu baik menyimpannya dan menunggu prompt lain atau kembali ?, perhatikan bahwa hanya ketika menekan qitu keluar. juga ketika memasukkan angka dari 0-9 dan tetap memasukkannya menunjukkan setiap input yang Anda masukkan ketika menyimpan apa yang Anda ketik sebelumnya

contoh:

a <<<-- input
bsa <<< input taken without ?
^C <<<--- hitting ctrl-c
?  <<<--- output

contoh2:

v
?
b
?
a
qwrefdf <<-- saved because it didn't output ? after typing "a" up
^C
?
 <<- waiting for input

jadi "h" menghasilkan "alamat tidak valid" dan hanya "a", "x", "c" dan "i" menerima input. segala sesuatu selain angka menghasilkan?

M03
sumber
3
Untuk apa nilainya, Anda dapat menjawab pertanyaan ini sendiri dengan menjalankan perintah dpkg -S /bin/red. Ini akan memberi tahu Anda bahwa file tersebut adalah bagian dari edpaket, dan apt-cache show edakan memberi Anda gambaran tentang paket itu.
David
3
Sangat penting: jangan jalankan secara membabi buta beberapa aplikasi yang tidak Anda ketahui. Bahkan Linux memiliki malware ...
Goufalite
7
Ed adalah editor teks standar. gnu.org/fun/jokes/ed-msg.html
IMSoP
4
Atau bahkan lebih mudah: man red.
OrangeDog
@ IMSoP Saya suka bagaimana dalam lelucon mereka membuat vi sangat besar pada 1,3MB. Maju cepat hampir 30 tahun, dan binari vim pada sistem saya sebenarnya dua kali ukuran lelucon di 2.7MB: ')
marcelm

Jawaban:

28

redadalah eddalam mode terbatas.

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

$ man red
shows `ed` man page.

Juga, menunjukkan kode, dijalankan ed --restricteddari bindirdengan semua argumen ( "$@").

Untuk manual aktif eddan perintahnya, jalankan info Ed.

Dalam bab ini Invoking ed:

Format untuk menjalankan 'ed' adalah:

 ed [OPTIONS] [FILE]
 red [OPTIONS] [FILE]

[...]

'-r' '--restricted' Jalankan dalam mode terbatas. Mode ini menonaktifkan edisi file dari direktori saat ini dan pelaksanaan perintah shell.

pLumo
sumber
Perintah yang berguna untuk menghasilkan beberapa informasi dalam jawaban ini: file /bin/reddan cat /bin/red(karena filemenunjukkan bahwa itu adalah "skrip POSIX, teks ASCII yang dapat dieksekusi).
Dijeda hingga pemberitahuan lebih lanjut.