如果没有 vi、vim、joe 等,如何编辑文件?

Edu*_*scu 43 linux text-editing shell text-editors editing

如果没有 vi、vim、joe、mcedit,有没有办法编辑文件?换句话说,有没有办法只使用 shell 命令来编辑文件?

Ben*_*rds 22

在那种情况下,我会尝试将文件传出并在另一台计算机上编辑它们,然后将它们传回。如果你有 ssh,你应该有 scp(我希望),所以你应该能够推入和推出文件。如果没有,您也可以寻找 ftp 来传输文件。

如果没有,那么我认为您最好的选择是尝试使用 cat、grep、sed、echo 和 I/O 重定向(尤其是 append with >>)。还有很多临时文件。

但是,如果您可以访问 perl(或类似的东西),则可以不带参数运行它,并且它可以让您从标准输入输入脚本源。按 ctrl+d 后,它就可以运行脚本。您可以使用该方法来创建文件。正如我之前提到的那样,它会比在命令行上进行黑客攻击更强大。

  • 如果您通过 telnet 连接到您的设备,我会认真考虑将文件发送到终端(使用足够大的反向滚动缓冲区),将整个内容复制/粘贴到本地编辑器中,进行更改,然后鞭打将其转换为一系列将写入替换文件的 echo 命令。 (3认同)
  • Ftp 工作 :) 现在我需要看看我在这个路由器上的什么地方有可写的东西。 (2认同)

Lan*_*don 8

一种方法是输出回声的结果。

echo "foo" > bar.txt
Run Code Online (Sandbox Code Playgroud)

这将创建一个名为 bar.yxy 的文件,其中包含文本“foo”。

  • 那不是真正的编辑。 (3认同)
  • 完成工作,直到你可以得到一个编辑。 (3认同)

小智 7

cat file.txt
Run Code Online (Sandbox Code Playgroud)

复制输出并在常规编辑器中编辑内容

cat <<- "EOF" > file.txt //
// paste edited content
EOF
Run Code Online (Sandbox Code Playgroud)


小智 5

使用允许您用鼠标复制和粘贴的终端,并以这种方式组合您的文件?

e.g.  cat > myfile
(use terminal to copy/paste)
^D
Run Code Online (Sandbox Code Playgroud)

如果它是一个二进制文件,使用它把它转换成你可以用鼠标复制的文本:

 openssl base64 -in <infile>
Run Code Online (Sandbox Code Playgroud)

然后在另一台计算机上,再次 openssl 使用 -d 开关对其进行解码,编辑您喜欢的任何内容(例如 hexedit),然后重新编码,在没有编辑器的盒子上,再次 openssl 进行解码并从您的终端粘贴。做

  • **这应该是答案。** (2认同)