vim 不保存
- 作者: Evo丶小寶
- 来源: 51数据库
- 2020-09-22
Linux系统vi编辑只读文档无法保存的解决办法,使用普通用户编辑nginx.conf 等配置文件:
保存的时候会提示:没有Root Permission可以用如下方法解决:
保存时加上:
:w?!sudo?tee?%
针对vi不能保存文件的错误,还有可能没有配置当前用户sudo权限,用sudo时提示"xxx is not in the sudoers file. This incident will be
reported.其中XXX是用户名,也就是用户名没有权限使用sudo,只要修改一下/etc/sudoers文件就行了。下面是修改方法:
1. 进入超级用户模式。也就是输入"su -",系统会让输入超级用户密码,输入密码后就进入了超级用户模式。
2. 添加文件的写权限,输入命令"chmod u+w /etc/sudoers"。
3. 编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",输入"i"进入编辑模式,找到这一 行:"root
ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存(就是先按一
下Esc键,然后输入":wq")退出。
4. 撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。
再次保存:
#查看是否保存成功:
$grep?sudo?nginx.conf
#test?:w?!sudo?tee?%
有很多方法 退出vi 当编辑完文件准备退出vi返回到shell时可以使用以下几种方法之一 在命令模式中连按两次大写字母z若当前编辑的文件曾被修改过则vi保存该文件后退出返回到shell;若当前编辑的文件没被修改过则vi直接退出 返回到shell 在末行模式下输入命令 :w vi保存当前编辑文件但并不退出而是继续等待用户输入命令在使用w命令时可以再给编辑文件起一个新的文件名 [例] :w newfile 此时vi将把当前文件的内容保存到指定的newfile中而原有文件保持不变若newfile是一个已存在的文件则vi在显示窗口的状态行给出提示信息 file exists (use ! to override) 此时若用户真的希望用文件的当前内容替换newfile中原有内容可使用命令 :w! newfile 否则可选择另外的文件名来保存当前文件 在末行模式下输入命令 :q 系统退出vi返回到shell若在用此命令退出vi时编辑文件没有被保存则vi在显示窗口的最末行显示如下信息 no write since last change (use ! to overrides) 提示用户该文件被修改后没有保存然后vi并不退出继续等待用户命令若用户就是不想保存被修改后的文件而要强行退出vi时可使用命令 :q! vi放弃所作修改而直接退到shell下 在末行模式下输入命令 :wq vi将先保存文件然后退出vi返回到shell 在末行模式下输入命令 :x 该命令的功能同命令模式下的zz命令功能相同标签:服务器教程linux教程
你当前登入的用户就是ling吗?
如果不是ling,就没有权限。
如果是的话,在保存的时候试着加!强制保存试试,如:w!
保存的时候会提示:没有Root Permission可以用如下方法解决:
保存时加上:
:w?!sudo?tee?%
针对vi不能保存文件的错误,还有可能没有配置当前用户sudo权限,用sudo时提示"xxx is not in the sudoers file. This incident will be
reported.其中XXX是用户名,也就是用户名没有权限使用sudo,只要修改一下/etc/sudoers文件就行了。下面是修改方法:
1. 进入超级用户模式。也就是输入"su -",系统会让输入超级用户密码,输入密码后就进入了超级用户模式。
2. 添加文件的写权限,输入命令"chmod u+w /etc/sudoers"。
3. 编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",输入"i"进入编辑模式,找到这一 行:"root
ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存(就是先按一
下Esc键,然后输入":wq")退出。
4. 撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。
再次保存:
#查看是否保存成功:
$grep?sudo?nginx.conf
#test?:w?!sudo?tee?%
有很多方法 退出vi 当编辑完文件准备退出vi返回到shell时可以使用以下几种方法之一 在命令模式中连按两次大写字母z若当前编辑的文件曾被修改过则vi保存该文件后退出返回到shell;若当前编辑的文件没被修改过则vi直接退出 返回到shell 在末行模式下输入命令 :w vi保存当前编辑文件但并不退出而是继续等待用户输入命令在使用w命令时可以再给编辑文件起一个新的文件名 [例] :w newfile 此时vi将把当前文件的内容保存到指定的newfile中而原有文件保持不变若newfile是一个已存在的文件则vi在显示窗口的状态行给出提示信息 file exists (use ! to override) 此时若用户真的希望用文件的当前内容替换newfile中原有内容可使用命令 :w! newfile 否则可选择另外的文件名来保存当前文件 在末行模式下输入命令 :q 系统退出vi返回到shell若在用此命令退出vi时编辑文件没有被保存则vi在显示窗口的最末行显示如下信息 no write since last change (use ! to overrides) 提示用户该文件被修改后没有保存然后vi并不退出继续等待用户命令若用户就是不想保存被修改后的文件而要强行退出vi时可使用命令 :q! vi放弃所作修改而直接退到shell下 在末行模式下输入命令 :wq vi将先保存文件然后退出vi返回到shell 在末行模式下输入命令 :x 该命令的功能同命令模式下的zz命令功能相同标签:服务器教程linux教程
你当前登入的用户就是ling吗?
如果不是ling,就没有权限。
如果是的话,在保存的时候试着加!强制保存试试,如:w!
推荐阅读
