你們都據說過刪庫命令rm -rf /*
,可是誰又真正實踐過呢?但做爲一個程序員,不看看這條命令執行後會發生什麼,怎麼能甘心呢。今天就帶你們看看,服務器運行了這條命令是什麼樣子。
(注意請勿隨意模仿!若是真的想試試,能夠本身搭一個虛擬機,自行嘗試。後附:Linux的刪除命令詳解)linux
服務器是前段時間白嫖阿里雲的小🐥。首先用VNC遠程鏈接,程序員
在這以前,咱們發現機子沒有任何的問題。瀏覽器
他來了,他來了,bash
rm -rf /*
![https://img2020.cnblogs.com/blog/1941900/202003/1941900-20200306231330430-175616721.png)服務器
回車以後會這個樣子,你品,你細品。測試
以後,嗯?出現了點小差錯阿里雲
勞資,玩瀏覽器這麼多年第一次遇到這樣的狀況。日誌
第一個,顯示內存不足的是用VNC遠程鏈接的網頁。我能夠理解。那第二個,服務器管理頁面爲啥也崩啊。code
害,多是個人電腦太垃圾了。blog
好在刷新了一下好了。
如今咱們從新經過VNC遠程鏈接。
如今是這樣的一個狀況。
能夠最後報出來這樣一條:
[ 661.704409] systemd-journald[410]:Failed to creat new system journal:eNO such file or directory
這句話是指沒法建立新的系統日誌。
那麼如今的系統是否可用呢,咱們來測試一下。
Ctrl+L
清屏快捷鍵依然能夠用。
如今看起來跟沒刪差很少。😁
那麼咱們去運行些其餘的命令試試。
出錯了,咱們顯示根目錄下的文件居然沒有顯示。
help
能夠
最後,咱們嘗試,除了最基本的cd
、pwd
,以及echo。其餘的都不能運行(包括關機和重啓命令)。
只能從服務器管理端強制關機了
至此刪庫演示結束,我也該跑路了。
回覆服務器的話,咱們能夠強制關機。
中止的時間有點長啊,不過好在中止了。
中止了,以後咱們就能夠從新部署系統裏。不過,以前的東西都不復存在。
總之,咱們必定不要隨便嘗試這條命令!切記,特別是別人的電腦上。這也給咱們提一個響鐘,通常不要使用root用戶登陸。使用rm 命令時必定要記得備份!
rm命令
rm命令能夠刪除一個目錄中的一個或多個文件或目錄,也能夠將某個目錄及其下屬的全部文件及其子目錄均刪除掉。但對於連接文件,只是刪除整個連接文件,而原有文件保持不變。
食用方式:
rm [選項](參數)
其中選項能夠時:
-d..................刪除一個空目錄; -f:.................強制刪除文件或目錄; -i:.................刪除已有文件或目錄以前先詢問用戶; -r或-R:.............遞歸處理,將指定目錄下的全部文件與子目錄一併處理; --preserve-root:...不對根目錄進行遞歸操做; --no-preserve-root:.不將「/」看作根目錄。 --preserve-root......不能對根目錄執行遞歸操做。 -v:.................顯示指令的詳細執行過程。
參數是指文件或文件夾:指定被刪除的文件列表,若是參數中含有目錄,則必須加上-r
或者-R
選項。
實例操做:
. ├── 1 //文件 ├── kongmulu //空目錄 └── test ├── 1.txt ├── 2.txt └── test ├── 1.txt └── test //目錄
咱們刪除當前目錄下的文件1
rm 1
root@kali:/tmp/rmtest# rm 1 root@kali:/tmp/rmtest# ls singlemulu test
這時已經刪除成功了,可是卻沒有交互式的提示。
但若是加上可選項-r
,狀況是這個樣子
rm -i 1
root@kali:/tmp/rmtest# rm -i 1 rm: remove regular empty file '1'? n root@kali:/tmp/rmtest# ls 1 singlemulu test root@kali:/tmp/rmtest# rm -i 1 rm: remove regular empty file '1'? y root@kali:/tmp/rmtest# ls singlemulu test root@kali:/tmp/rmtest#
在刪除以前會向你詢問是否要刪除。
rm -d kongmulu
root@kali:/tmp/rmtest# rm -d kongmulu/ root@kali:/tmp/rmtest# rm -d test/ rm: cannot remove 'test/': Directory not empty root@kali:/tmp/rmtest#
這個命令能夠刪除空目錄,可是不能夠山粗非空目錄。
rm -r test
root@kali:/tmp/rmtest# rm -dr test/ root@kali:/tmp/rmtest# ls
這樣會刪除目錄下的多有文件和子目錄。風險很大。
注意:不一樣的選項能夠組合在一塊兒。
好比:
rm -rf 參數
強制刪除文件和目錄。
顯然這樣的操做十分危險。
因此咱們進行強制遞歸刪除的時候,必定要想起添上
--preserve-root
--no-preserve-root
好比:
rm -rf --preserve-root /
或
rm -rf --no-preserve-root /
雖然可能系統也可能會損壞。可是比不增強。
切記要備份!備份纔是王道!咱們總會有疏忽的時候!因此重要數據必定要備份!