登录到 vi,进行了更改,忘记先 sudo - 现在怎么办

sim*_*mon 13 linux sudo vi permissions

我使用 vi 编辑器对 Ubuntu Linux 计算机上的配置文件进行了长时间的更改。不幸的是,我忘记先 sudo,所以现在我在编辑器中,但由于缺少权限而无法保存我的更改。我可以在该终端上追溯 sudo 用户,或者采取什么最佳行动方案?

wfa*_*ulk 40

SO

:w !sudo tee %
Run Code Online (Sandbox Code Playgroud)

我实际上发现自己现在更频繁地使用这种方式:

:%!sudo tee %
Run Code Online (Sandbox Code Playgroud)

我认为它更直观一些,因为我知道它是:%!做什么的,而我对:w !. 此外,很容易错过w和之间非常重要的空间!

  • 如果它对你的直觉有帮助,请记住 `vi` 命令可以是多个字母,所以理论上可以有一个“`wfoo`”命令,所以如果你想写入一个名为“`foo`”的文件,你必须说“`:w foo`”。即,在“`:w`”之后需要一个空格。就“`:w !`”而言——你知道“`:!`”是什么,对吧?“`:!date`” 运行“`date`”命令。所以“`:w !xyz`”写入缓冲区,但***写入命令***而不是文件。 (3认同)

Dom*_*Dom 11

在这种情况下,我用:w /tmp/tmpfile. 然后我出去并/tmp/tmpfile使用 sudo 权限移动到我的旧文件。