linux+vi+只读打开文件,使用vi/vim编辑只读文件,打开的时候忘记加sudo怎么办

在linux服务器上操作一些配置文件时,有很大一部分都是只读文件,我们当然知道要使用sudo命令用管理员身份来打开并编辑,但是有时候需要编辑好多文件,某一个文件打开的时候很有可能就忘记加sudo,这时候问题来了,当我们愉快的编辑完成之后,输入:wq 时就悲剧了,提示没有权限,那我们怎么办呢?记下刚刚修改的内容,强制退出,重新用管理员身份打开,重新编辑。好麻烦有木有,有一个更简单的方法,如下:

:w !sudo tee %

如果不是root用户,这里会提示你输入密码。

这条命令是什么意思呢?

命令:w !{cmd},让 vim 执行一个外部命令{cmd},然后把当前缓冲区的内容从 stdin 传入。

tee是一个把 stdin 保存到文件的小工具。

而 %,是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。

所以执行这个命令,就相当于从vim外部修改了当前编辑的文件。

执行完上面的命令,vi/vim会有一个提示

W12: Warning: File "你的文件路径" has changed and the buffer was changed in Vim as well See ":help W12" for more info.

[O]K, (L)oad File:

这个是说你的文件已经被改过了,而当前vim打开的还是原始的文件,是确定还是重新载入文件?

我们当然是要新文件了,所以敲入 L ,这时候就可以放心的退出编辑器了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值