學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 >

linux下vi編輯只讀文檔無法保存是什么原因

時間: 加城1195 分享

  Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。不過有用戶遇到linux下vi編輯只讀文檔無法保存問題,怎么回事呢?下面這篇文章主要介紹了linux下vi編輯只讀文檔無法保存的解決方法,需要的朋友可以參考下。

  方法步驟

  使用普通用戶編輯nginx.conf 等配置文件:

  保存的時 候會提示:沒有Root Permission

  可以用如下方法解決:

  保存時加上:

  :w !sudo tee %

  我這里 有一個問題。沒有配置sudo權(quán)限。

  用sudo時提示"xxx is not in the sudoers file. This incident will be reported.其中XXX是你的用戶名,也就是你的用戶名沒有權(quán)限使用sudo,我們只要修改一下/etc/sudoers文件就行了。下面是修改方 法:

  1)進入超級用戶模式。也就是輸入"su -",系統(tǒng)會讓你輸入超級用戶密碼,輸入密碼后就進入了超級用戶模式。(當然,你也可以直接用root用)

  2)添加文件的寫權(quán)限。也就是輸入命 令"chmod u+w /etc/sudoers"。

  3)編輯/etc/sudoers文件。也就是輸入命令"vim /etc/sudoers",輸入"i"進入編輯模式,找到這一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(這里的xxx是你的用戶名),然后保存(就是先按一 下Esc鍵,然后輸入":wq")退出。

  4)撤銷文件的寫 權(quán)限。也就是輸入命令"chmod u-w /etc/sudoers"。

  再次保存:

  查看是否 成功:

  $ grep sudo nginx.conf

  #test :w !sudo tee %

  解釋:

  :w : Write a file.可以將文件寫入,文件仍然是只讀模式,通過 :q! 退出

  !sudo : Call shell sudo command.

  tee : The output of the vi/vim write command is redirected using tee.

  % : Triggers the use of the current filename.

  Simply put, the ‘tee’ command is run as sudo and follows the vi/vim command on the current filename given.

  補充:

  在網(wǎng)上看了很多解答,大多是一句話:

  :w !sudo tee %;

  或者是:

  你有權(quán)限修改文件嗎?

  如果是root權(quán)限,可以

  :wq!

  實際上我想說的就是一句話:在打開文件時加上sudo。

  即:sudo vi /etc/crontab命令打開文件,此時便是以root權(quán)限進入該文件。

  此時退出文件使用:wq!就可以了。

  想必很多像我一樣的小白在見到上面的答案時,最不了解的時自己出問題時是否具備root權(quán)限,苦惱全來源于此啊!

  補充:Linux基本命令

  ①ls 意為list 列出當前文件夾中的文件

  -l 顯示文件的屬性 可用ll來表示

 ?、赼lias 別名 看看是否有別名的文件

  ③cd dir 跳躍目錄 -P選項 將路徑中的鏈接文件替換成鏈接指向的文件路徑

 ?、躳wd 查看當前工作的文件夾名 使用-P的選項,會直接進入到其中,相當于cd

  相關(guān)閱讀:Linuxshell腳本不執(zhí)行問題實例分析

  shell腳本不執(zhí)行問題:某天研發(fā)某同事找我說幫他看看他寫的shell腳本,死活不執(zhí)行,報錯。我看了下,腳本很簡單,也沒有常規(guī)性的錯誤,報“:badinterpreter:Nosuchfileordirectory”錯??催@錯,我就問他是不是在windows下編寫的腳本,然后在上傳到linux服務(wù)器的……果然。原因:在DOS/windows里,文本文件的換行符為rn,而在*nix系統(tǒng)里則為n,所以DOS/Windows里編輯過的文本文件到了*nix里,每一行都多了個^M。解決:

  1)重新在linux下編寫腳本;

  2)vi:%s/r//g:%s/^M//g(^M輸入用Ctrl+v,Ctrl+m)附:sh-x腳本文件名,可以單步執(zhí)行并回顯結(jié)果,有助于排查復(fù)雜腳本問題。


linux下vi編輯只讀文檔無法保存相關(guān)文章:

1.linux vi命令模式詳解

2.Linux退出vi編輯器有什么命令

3.Linux系統(tǒng)中vi命令的詳細解釋

4.很實用的Linux系統(tǒng)運維常用命令

5.Linux讀取文件可以用哪些命令

4016665