Linux系統(tǒng)恢復10個方法
10多年的玉屏網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整玉屏建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“玉屏網(wǎng)站設計”,“玉屏網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
在Linux中有一些應用程序可以幫助你保存系統(tǒng)快照。大多數(shù)應用程序都是針對于新手的,并不需要高級的Linux操作技巧。我們在這里挑選了10個,你可以從中選擇適合自己的應用。
Windows中的系統(tǒng)恢復功能
Windows家族最初的系統(tǒng)恢復功能要回溯到2000年的Windows ME版本,當時還只能恢復系統(tǒng)文件和注冊表,而且并不穩(wěn)定。在Windows XP和Vista中系統(tǒng)恢復的性能得到了很大的提高。也是從那時起,系統(tǒng)恢復開始依賴于一個叫做硬盤快照服務(Volume Snapshot Service)的系統(tǒng)服務功能,能夠自動創(chuàng)建系統(tǒng)快照–包括正在使用的文件–然后將這些文件轉(zhuǎn)換為可恢復的節(jié)點文件。
新的方式給用戶提供了更多的自定義功能,比如用戶可以為快照分配磁盤空間,可以選擇監(jiān)視哪些文件目錄等等。但是還是有很多的限制,比如只有NTFS格式的分區(qū)具有系統(tǒng)恢復快照功能,而且在Windows 8版本之前,快照并不能長期保存。
Windows的每次版本更新都帶來了混亂,比如Vista的家庭版中沒有提供恢復從前的系統(tǒng)快照的用戶界面,而Windows 8出現(xiàn)了不兼容之前版本的系統(tǒng)快照的問題,最終Windows 10索性禁用了系統(tǒng)恢復功能,讓用戶手動啟用與操作,這么看起來這項決定是有意而為。
好了,不再說關(guān)于Windows的事了,還是來看看在Linux中我們應該怎么做吧!
Linux系統(tǒng)恢復的工作原理是什么
呃,實際上這并不是一項系統(tǒng)功能,至少不應該在名字里帶上“系統(tǒng)”這兩個字,因為你不會在任何一個Linux系統(tǒng)發(fā)行版的系統(tǒng)菜單中找到所謂的系統(tǒng)恢復(System Restore)功能。你要做的是找到一個合適的應用程序并安裝才可以。絕大多數(shù)的系統(tǒng)恢復應用程序和Windows中系統(tǒng)恢復功能的工作原理是相同的,在特定的時間節(jié)點為你的系統(tǒng)創(chuàng)建快照文件,然后在系統(tǒng)出現(xiàn)問題的時候,允許你回滾到選定的時間點。
在介紹這些應用程序之前,讓我們先簡單的了解一下系統(tǒng)快照究竟是什么?
系統(tǒng)快照與備份的區(qū)別
拋開這兩者的名字不同,總的來說,備份(Backup)是指將文件復制出一份副本并且保存到另一個位置。備份很少會將整個磁盤備份,那樣做通常是叫做磁盤鏡像或者是磁盤克隆,這種類型的備份實際上是對整個磁盤做了一個鏡像,包括用戶數(shù)據(jù),操作系統(tǒng),啟動分區(qū)等等。磁盤鏡像可以被用在裸機恢復工作中。這時候你就可以在不需要安裝操作系統(tǒng)情況下,將一塊硬盤的全部內(nèi)容復制到另一臺電腦上。
而系統(tǒng)快照(Snapshot)則是在特定的時間節(jié)點上保存文件系統(tǒng)的狀態(tài),并且保存在與文件系統(tǒng)相同的存儲設備上。通常系統(tǒng)快照中會包含所有的目錄與文件信息,或者至少是保存了操作系統(tǒng)所需要的文件信息。
將快照和文件系統(tǒng)保存在同一個位置就實現(xiàn)了回滾的可能性,同樣也有利于節(jié)省磁盤空間。在這種情況下,每新建一個系統(tǒng)快照并不需要將整個文件系統(tǒng)的狀態(tài)全部保存下來。形象地說,系統(tǒng)快照就像是一個不斷增長的備份過程,每次只是保存和上次不同的信息變化,這也就意味著每一個系統(tǒng)快照都要依賴于上一次系統(tǒng)快照,這樣才能完全完成系統(tǒng)恢復工作。而與之相反的是,一個完整的磁盤備份或者是磁盤鏡像則與其他的備份文件相互獨立,可以單獨完成系統(tǒng)恢復工作。
系統(tǒng)快照可能會碰到的問題是它們對于硬盤故障非常的脆弱。如果你的硬盤受到了嚴重的物理損傷,那么很可能你的系統(tǒng)快照就無法幫助你恢復系統(tǒng)了。為了防止這一點,我們建議在安裝與設置好你的Linux系統(tǒng)之后立即做一份系統(tǒng)快照,然后把它單獨復制到另外的存儲設備中。
保存系統(tǒng)快照
在Linux中有一些應用程序可以幫助你保存系統(tǒng)快照。大多數(shù)應用程序都是針對于新手的,并不需要高級的Linux操作技巧。我們在這里挑選了一些,你可以從中選擇適合自己的應用。
TimeShift
TimeShift提供了一個非常簡潔的圖形用戶界面,你也可以直接在終端輸入命令使用它。默認情況下。TimeShift并不會包含用戶的個人文件,但你可以通過自定義將特殊的目錄添加到快照中去。Ubuntu及其分支的用戶可以從開發(fā)者的PPA獲取TimeShift:
sudo apt-add-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift
其他版本的用戶可以下載安裝文件并在命令行終端運行:
./timeshift-latest-amd.64.run
TimeShift還提供了專門針對BTRFS文件系統(tǒng)的版本,可以支持原生的BTRFS系統(tǒng)快照功能。
工作方式
TimeShift能夠幫助你隨時完成快照工作,或者你也可以設置讓TimeShift自動創(chuàng)建快照。你可以安排任務計劃,每小時、每天、每周或者每個月進行快照,也可以設置清除這些快照的時間。TimeShift有一個特殊的選項叫做重啟快照,用來在每次系統(tǒng)重啟之后創(chuàng)建一個新的快照文件。
TimeShift從快照中進行系統(tǒng)恢復是一項非常簡單直接的工作,只要選擇快照文件并且告訴它應該存儲的位置就可以了。TimeShift提供了將快照恢復到外設的選項,克隆功能能夠直接將現(xiàn)有系統(tǒng)狀態(tài)復制到另一個設備中,這在將你的操作系統(tǒng)遷移到另一臺新電腦時非常方便,因為你不再需要從頭開始安裝各種功能和應用。
在恢復快照之前,TimeShift會詢問你是不是需要保存現(xiàn)有的應用設置,并且讓你選擇保存哪一個。請記住TimeShift需要GRUB 2啟動進入快照恢復。
cronopete
如果你認為TimeShift的操作已經(jīng)足夠簡單的話,那么Cronopete甚至更加簡單,至少從外觀上看來是這樣的。Cronopete自稱為OS X的時間機器,與TimeShift工作起來稍有不同。Cronopete為Ubuntu,Debian和Fedora提供了包文件,Arch Linux使用者可以在AUR中找到它。
工作方式
與本文中介紹的其他應用程序不同,Cronopete將備份與快照功能捆綁在一起,并且要求你將快照保存在外部設備上。默認情況下,它會每個小時都檢查一遍你的文件變化,但是當然可以在設置中改變這個時間間隔。如果某個文件并沒有發(fā)生變化,那么Cronopete將對這個文件只進行一個硬鏈接而并不復制這份文件,這會幫助節(jié)省磁盤空間。
Cronopete的文件恢復可能是它最酷的功能,好像真的能幫助你“穿越時間”,也就是說,可視化的瀏覽所有儲存版本的文件與文件夾。想要恢復哪一個文件,只需要選上它,然后點擊恢復就可以了,這個文件就會從外部的存儲設備中復制到你現(xiàn)有的`系統(tǒng)中來。當然這里你可能也猜測到了,Cronopete對于全系統(tǒng)恢復并不十分具有意義,但是如果你想要保存單獨文件的多個版本,那么它是一個很好的選擇。
Back In Time
Back In Time的用戶界面看起來非常友好,能夠吸引住Linux新手。它的設置對話框中提供了非常精細的操作控件,用戶界面看上去就像是一個文件管理器一樣,在這里你可以閱覽所有的快照,瀏覽快照中的文件,以及恢復選定的文件與文件夾。
Ubuntu用戶可以從PPA中安裝Back In Time:
sudo add-apt-repository ppa:bit-team/stable
sudo apt-get update
sudo apt-get install backintime-qt4
有些發(fā)行版會在自己的資源庫中提供Back In Time,如果你的發(fā)行版沒有的話,也總可以在網(wǎng)上找到源代碼并且下載安裝。
工作方式
Back In Time會對那些你選擇的目錄創(chuàng)建快照,但是只會恢復那些擁有寫權(quán)限的目錄。你可以對快照進行加密并且存儲在網(wǎng)絡設備、外部硬盤或者是本地的文件系統(tǒng)中。Back In Time只會對那些改變過的文件進行更新。在設置選項標簽中,你可以選擇在沒有變化發(fā)生的時候禁用快照。
Back In Time的快照時間根據(jù)計劃設定,每天、每周、每個月或者是每天的某個或某幾個時間段,或者是每次重啟之后。你可以在主工具欄的菜單中自己更改計劃時間。
與Cronopete相似,Back In Time更加適合于基于文件夾或者是基于文件的回滾操作,但是如果你想對整個文件系統(tǒng)進行回滾也是同樣可行的?;謴鸵粋€快照相當簡單,只要選擇它,并且選擇在哪里進行恢復就可以了,取決于你是只想恢復幾個文件夾還是對整個系統(tǒng)進行恢復。
Systemback
Systemback的界面很小巧,但是功能卻非常強大。但不幸的是只有Debian和Ubuntu及其分支的用戶可以使用,而沒有提供其他Linux發(fā)行版的安裝文件。Systemback可以通過開發(fā)者PPA安裝:
sudo add-apt-repository ppa:nemh/systemback
sudo apt-get update
sudo apt-get install systemback
工作方式
Systemback并不僅僅是另一個快照工具。它可以把你現(xiàn)在的系統(tǒng)轉(zhuǎn)變?yōu)橐粡坙ive CD或DVD,這樣就可以直接在另一臺電腦上啟動了。它可以修復或重裝GRUB 2啟動器以及修復fstab文件,當然,Systemback的主要用途還是用于系統(tǒng)快照。
Systemback將快照的總數(shù)量限制在10個以內(nèi)。用戶擁有刪除快照的權(quán)限。快照的功能可以選擇為遞增,也就是只復制被改變過的文件,而將其他的文件以硬鏈接的形式保存。但是在設置對話框中,你可以禁用這個功能。在恢復文件的時候,你可以選擇執(zhí)行全系統(tǒng)恢復,或者只是復制關(guān)鍵的系統(tǒng)文件。個人數(shù)據(jù)比如照片與文檔并不會被包含在快照中,但是你可以在創(chuàng)建包含用戶數(shù)據(jù)的選項中通過自定義操作將它們轉(zhuǎn)移到live CD中。
Systemback允許用戶自定義自動快照的計劃,但你也將這個選項關(guān)閉來手動設置恢復點。需要注意的是Systemback并不支持NTFS文件系統(tǒng),因此不能對NTFS系統(tǒng)分區(qū)進行快照或者是恢復操作。
Snapper
Snapper和openSUSE的關(guān)系非常密切。在其他Linux版本上也許能夠安裝Snapper,但是并不一定能正常工作了。在openSUSE中安裝Snapper的最簡單方法是將它安裝在BTRFS分區(qū)上,這樣做Snapper就能夠自動安裝與配置。你可以使用命令行工具來操作Snapper,或者通過YaST工具,此外還有另一種替代方案snapper-GUI。
工作方式
Snapper能夠創(chuàng)建幾種不同類型的快照,比如在安裝新的應用程序之前與之后創(chuàng)建快照。通過這種方式你可以將快照進行對比,并且更有效的進行系統(tǒng)恢復。Snapper會為快照自動建立時間計劃,你當然也可以把這個功能禁用掉。在Snapper中,快照是存放在與系統(tǒng)相同的分區(qū)中,因此它們會不斷長大,要記得隨時檢查自己的硬盤容量。
默認情況下,Snapper只對根分區(qū)創(chuàng)建快照。如果想要包含其他分區(qū)和BTRFS副磁盤卷,你就需要為每一個項目創(chuàng)建一個配置,這必須在命令行終端中完成,你需要以root權(quán)限運行下面的命令:
snapper -c CONFIGNAME create-config /PATH
在這里-c代表著配置“configure”,CONFIGNAME是你為這個配置所取的名稱,/PATH則是分區(qū)或是副磁盤卷的位置,例如:
snapper -c home create-config /home
你可以用下面的命令查看當前的配置:
snapper list-configs
所有的配置文件都保存在/etc/snapper/configs目錄。在這里,你可以用一個常用的文本編輯器來修改它們,例如你可以禁用每小時創(chuàng)建快照的功能,啟用自動刪除快照的功能,手動設置可保存舊快照的數(shù)量。
在YaST Snapper模式中,你可以創(chuàng)建并對比快照進行系統(tǒng)回滾操作,或者將一個文件或者其他一些被選擇的文件恢復到以前的版本。
怎樣備份與恢復已安裝的應用程序
了解了怎樣對整個操作系統(tǒng)進行恢復之后,你可能想知道怎樣恢復那些已經(jīng)安裝的應用軟件。這在系統(tǒng)新版升級或重裝系統(tǒng)的情況下很常見。幸運的是已經(jīng)有一些工具提供了應用程序遷移的功能,而且使用起來非常方便。
Aptik
首先我要提到的是Aptik,它是由TimeShift的開發(fā)者創(chuàng)建的應用程序備份工具。
Aptik只能用于基于Ubuntu的發(fā)行版,你可以直接從開發(fā)者PPA安裝:
sudo apt-add-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik
Aptik能夠以列表的形式輸出系統(tǒng)現(xiàn)有的已安裝的包以及所使用的庫以及下載的包文件。此外還有用于導出應用程序設置、桌面主題和圖標集的選項。Aptik會根據(jù)安裝類型對這些包進行分類,例如分為操作系統(tǒng)預裝、用戶自主安裝、自動安裝的依賴與從.deb文件安裝等等。對于.deb文件你可以將它們拖拽到列表中并且包含在備份文件里。備份可以保存在任何位置,如果想把它們提取到一個新安裝的發(fā)行版中,只需要先安裝Aptik,然后在主窗口中選擇備份并進行恢復即可。
Linux Mint
Linux Mint的用戶可以選擇Mint備份工具,功能幾乎與Aptik一模一樣。除了恢復已安裝的應用程序之外,這個工具還可以對所選定的文件夾及其權(quán)限執(zhí)行快速備份。
Arch Linux
Arch Linux的用戶可以使用Backpac來備份與恢復應用程序。Backpac可以建立手動安裝包的列表文件,也可以按照你的選擇單獨備份文件。使用Backpac恢復系統(tǒng)狀態(tài)會重新安裝所輸出的包,刪除掉快照中并不包含的文件,并且會用之前輸出的版本覆蓋系統(tǒng)文件。
dpkg
當然,你可以不使用任何一個第三方工具來完成這樣的操作。在包管理系統(tǒng)中提供了這樣的工具。在基于dpkg的系統(tǒng)中,你可以使用下面的操作來輸出一個已安裝應用的列表文件:
dpkg --get-selections /home/yourusername/apps.txt
然后,將這個txt文件與庫信息從/etc/apt/sources.d/目錄與/etc/apt/sources.list文件復制到新的系統(tǒng)中。使用如下命令行并提供正確的文件路徑就可以將備份的應用遷移到新的系統(tǒng)中:
dpkg --set-selections /path/to/apps.txt
sudo apt-get update
sudo apt-get dselect-upgrade
有些圖形化的包管理工具例如Synaptic能夠提供圖形化的用戶界面,用來輸出與導入已經(jīng)安裝的應用程序的列表,不需要使用終端命令行的形式來操作。
高級系統(tǒng)回滾解決方案
如果上面建議的這些應用你并不認為合適,那么我們還有其他的解決方案。我在這里將它們稱為“高級”并不意味著這些方案非常復雜,而是說它們可能并不是新手用戶的第一選擇。
Rsnapshot
如果你想在命令行終端使用一種極簡而快速的方法進行快照操作,那么可以試一下Rsnapshot。你可以在絕大多數(shù)Linux發(fā)行版的資源庫中找到它。Rsnapshot的所有設置都在/etc/rsnapshot.conf這個文件中。你可以打開這個文件,自定義快照時間表,設置何時刪除舊的快照,以及需要包含哪些文件與文件夾。當你設置完畢之后,最好使用下面兩個命令來做一下測試:
rsnapshot configtest
rsnapshot -t hourly
這樣可以保證你的所有設置都正常啟用。請記住修改設置文件時需要在兩個功能選項中使用一個tab符進行分割而并不是空格,因此不要用空格鍵移動這些參數(shù)。Rsnapshot沒有自動恢復功能,所以你只能從選定的快照中手動復制文件。
Obnam
Obnam與Rsnapshot非常相似,另外還提供了一些有趣的功能。它可以先創(chuàng)建一個全系統(tǒng)備份,然后逐漸生成包含新的或是改變過的文件的快照。你可以對快照進行加密與自動解密。Obnam在進行系統(tǒng)恢復時的操作也是相似的,提供命令,并且讓你選擇存儲的位置。
你可以設置或是修改自定義路徑,將快照存放在服務器上或者是其他遠程設備上。Obnam提供的官方手冊是一項很了不起的工作,清楚的解釋了所有的功能操作。
LVM Snapshots
如果系統(tǒng)中將會存放一些重要的數(shù)據(jù),那么一定要事先考慮好備份與恢復的方法。如果你正在安裝與設置Linux系統(tǒng)的話,那么值得考慮將LVM(Logical Volume Manager)作為硬盤的管理工具。
準確的說,LVM并不算是一個應用程序,它在Linux內(nèi)核中提供了內(nèi)置的快照功能,可以將快照安裝到任何其他磁盤或分區(qū),合并若干個快照,并還原它們來解決系統(tǒng)問題?;蛘吣憧梢允褂肔inux內(nèi)核模塊dattobd支持對運行中的系統(tǒng)進行增量快照,這樣無需卸載分區(qū)或重新啟動計算機。
總結(jié)
正如你所看到的,有很多種選擇可以在Linux中獲得系統(tǒng)恢復功能,然而你會發(fā)現(xiàn)它們在技術(shù)上是非常相似的,那么有沒有更好的方法來代替現(xiàn)有的系統(tǒng)恢復功能呢?也許在未來隨著這些應用程序的不斷發(fā)展將會出現(xiàn)更好的方法,或者是對這些現(xiàn)有的工具更有效的進行組合應用,這些都需要使用者們不斷進行探索發(fā)掘。
;
Linux自帶有兩個文本編輯器:vi和nano。
使用nano編輯文件:
nano 文件名
點擊Ctrl-X可以退出編輯,選擇是否保存對文件的改動。
使用vi編輯文件:
vi 文件名
vi有兩個模式:一個是編輯模式一個是命令模式。點擊i可以從命令模式進入編輯模式,在點擊esc鍵可以重新進入命令模式。我們一般進入編輯模式,來進行添加,修改,刪除。但是當我們刪除和修改的內(nèi)容過多的時候,我們使用命令行模式,進行修改,這樣方便,快捷,而命令行中,最常用到的是x,dd,u,p這四個命令:x:刪除當前字符;dd:刪除當前行;u:恢復前一步操作;p:復制之前刪除的行。
用的命令是:ctrl + R
vi編輯器中有三種狀態(tài)模式
1.命令模式
2.輸入模式
3.末行模式
三種模式間的相互轉(zhuǎn)換
vi編輯器的啟動與退出
直接進入編輯環(huán)境
$?vi
進入編輯環(huán)境并打開(新建)文件
$?vi?myfile
退出vi編輯環(huán)境
輸入末行命令放棄對文件的修改,并退出編輯器
:q!
文件保存與另存為
保存文件
保存對vi編輯器中已打開文件的修改
:w
另存為文件
將vi編輯器中的內(nèi)容另存為指定文件名
:w?myfile
退出vi編輯器的多種方法
未修改退出
沒有對vi編輯器中打開的文件進行修改,或已對修改進行了保存,直接退出vi編輯器
:q
保存并退出
對vi編輯器中的文件進行保存并退出vi編輯器
:wq
不保存退出
放棄對文件內(nèi)容的修改,并退出vi編輯器
:q!
光標的移動和翻頁操作
操作類型光標操作鍵功能
光標移動h向左移動光標
l向右移動光標
k向上移動光標
j向下移動光標
翻頁Ctrl?+?f向前翻整頁
Ctrl?+?b向后翻整頁
Ctrl?+?u向前翻半頁
Ctrl?+?d向后翻半頁
行內(nèi)快速跳轉(zhuǎn)
操作鍵功能
^將光標快速跳轉(zhuǎn)到本行的行首字符
$將光標快速跳轉(zhuǎn)到本行的行尾字符
w將光標快速跳轉(zhuǎn)到當前光標所在位置的后一個單詞的首字母
b將光標快速跳轉(zhuǎn)到當前光標所在位置的前一個單詞的首字母
e將光標快速跳轉(zhuǎn)到當前光標所在位置的后一個單詞的尾字母
文件內(nèi)行間快速跳轉(zhuǎn)
命令功能
:set?nu?在編輯器中顯示行號
:set?nonu?取消編輯器中的行號顯示
1G跳轉(zhuǎn)到文件的首行
G跳轉(zhuǎn)到文件的末尾行
#G跳轉(zhuǎn)到文件中的第#行
進入輸入模式
命令功能
i在當前光標處進入插入狀態(tài)
a在當前光標后進入插入狀態(tài)
A將光標移動到當前行的行末,并進入插入狀態(tài)
o在當前行的下面插入新行,光標移動到新行的行首,進入插入狀態(tài)
O在當前行的上面插入新行,光標移動到新行的行首,進入插入狀態(tài)
cw刪除當前光標到所在單詞尾部的字符,并進入插入狀態(tài)
c$刪除當前光標到行尾的字符,并進入插入狀態(tài)
c^命令刪除當前光標之前(不包括光標上的字符)到行首的字符,并進入插入狀態(tài)
輸入模式的編輯鍵操作
按鍵功能
方向鍵進行上下左右方向的光標移動
Home快速定位光標到行首
End快速定位光標到行尾
PageUp進行文本的向上翻頁
PageDown進行文本的向下翻頁
Backspace刪除光標左側(cè)的字符
Del刪除光標位置的字符
刪除操作
命令功能
x刪除光標處的單個字符
dd刪除光標所在行
dw刪除當前字符到單詞尾(包括空格)的所有字符
de刪除當前字符到單詞尾(不包括單詞尾部的空格)的所有字符
d$刪除當前字符到行尾的所有字符
d^刪除當前字符到行首的所有字符
J刪除光標所在行行尾的換行符,相當于合并當前行和下一行的內(nèi)容
撤消操作
命令功能
u取消最近一次的操作,并恢復操作結(jié)果
可以多次使用u命令恢復已進行的多步操作
U取消對當前行進行的所有操作
Ctrl?+?r對使用u命令撤銷的操作進行恢復
復制與粘貼操作
命令功能
yy復制當前行整行的內(nèi)容到vi緩沖區(qū)
yw復制當前光標到單詞尾字符的內(nèi)容到vi緩沖區(qū)
y$復制當前光標到行尾的內(nèi)容到vi緩沖區(qū)
y^復制當前光標到行首的內(nèi)容到vi緩沖區(qū)
p讀取vi緩沖區(qū)中的內(nèi)容,并粘貼到光標當前的位置(不覆蓋文件已有的內(nèi)容)
字符串查找操作
命令功能
/word從上而下在文件中查找字符串“word”
?word?從下而上在文件中查找字符串“word”
n定位下一個匹配的被查找字符串
N定位上一個匹配的被查找字符串
字符串替換操作
命令功能
:s/old/new?將當前行中查找到的第一個字符“old”?串替換為“new”
:s/old/new/g?將當前行中查找到的所有字符串“old”?替換為“new”
:#,#s/old/new/g?在行號“#,#”范圍內(nèi)替換所有的字符串“old”為“new”
:%s/old/new/g?在整個文件范圍內(nèi)替換所有的字符串“old”為“new”
:s/old/new/c?在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認
vi編輯器的在線幫助
使用vi在線幫助需安裝的軟件包
vim-common-6.3.035-3.i386.rpm
vim-enhanced-6.3.035-3.i386.rpm
軟件包在RHEL5的第2張安裝光盤
使用vi在線幫助的兩種方法
在vi編輯器中按“F1”鍵
輸入help末行命令
一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進入vi編輯器后的默認模式。任何時候,不管用戶處于何種模式,按下ESC鍵即可進入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時從鍵盤上輸入的任何字符都被當作編輯命令來解釋。若輸入的字符是合法的vi命令,則vi在接受用戶命令之后完成相應的動作。但需要注意的是,所輸入的命令并不回顯在屏幕上。若輸入的字符不是vi命令,vi會響鈴報警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當作文件內(nèi)容保護起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱ex轉(zhuǎn)義模式。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的說明符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令在執(zhí)行完后,vi自動回到命令模式。如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
實例演示
首先我們使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式
接下來我們按i,然后鍵盤隨便輸入寫內(nèi)容。
然后按ESC重新進入到命令模式。
在命令模式的情況下,我們按:,進入到了末行模式。
我們輸入wq!,然后回車,強行保存退出。
下次我們再打開對應文件(可用less filename命令打開),即可看到內(nèi)容已經(jīng)更改。
補充:
(1)末行模式下:q! 【強制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個z即可退出。
更多命令
進入vi的命令:
vi filename :打開或新建文件,并將光標置于第一行首
vi +n filename :打開文件,并將光標置于第n行首
vi + filename :打開文件,并將光標置于最后一行首
vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename
vi filename….filename :打開多個文件,依次進行編輯
屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令:
i :在光標前
I :在當前行首
a:光標后
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其后的字符,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令:
ndw或ndW:刪除光標處開始及其后的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其后n-1行
x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
撤銷回退命令:
u 撤銷上一步的操作
Ctrl+r 恢復上一步被撤銷的操作
選項設置:
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數(shù)目
terse:顯示簡短的警告信息
warn:在轉(zhuǎn)到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個文件內(nèi)容作為command的輸入
:r!command:將命令command的輸出結(jié)果放到當前行
寄存器操作:
“?nyy:將當前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數(shù)字
“?p:取出寄存器?中的內(nèi)容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數(shù)字
ndd:將當前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號刪除寄存器中。
分享題目:linux編輯恢復命令行 linux文件恢復命令
標題路徑:http://jinyejixie.com/article24/dosgcje.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、企業(yè)建站、手機網(wǎng)站建設、ChatGPT、小程序開發(fā)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)