rm好兇殘,太TM嚇人了!
圖片來自 Pexels
完事之后,剃頭刀上不會占有半點鮮血和毛發(fā)。我很羨慕他的刀。
到底是他的刀厲害?還是他的人厲害?明白事理之后,我明白了是后者,而不是他手中的屠龍?zhí)觐^刀!
隨著年齡越來越大,我踏上了編程這條道路。一次偶然的原因,看到同事上上下翻飛的運行 rm 命令,勾起了我久遠的、對刀的回憶。
跨上一把刀,行走天下,是一件非常瀟灑的事。rm 這個命令,圓你的武俠夢,很合適。只要它所到之處,玉石俱焚,寸草不生。
獲取這把刀的成本很低,你只要會使用 Linux 就行了。顯然,人人都擁有這么犀利的刀,會引起混亂。
如果你的功力不夠,掌控不了這把刀,那么就會被它反噬;如果你對它不尊重,它也會誤傷到你自己,不留一點情面;如果你心存惡念,它就能在瞬間滿足你。
每一年,都有好多人因為舞刀傷到了自己,或者傷了人進了局子。
在 rm 命令的刀下,是無數(shù)血淚堆砌的故事,每個故事都讓你潸然淚下,或者露出兔死狐悲的哀傷。
rm 這個命令,到底是殺雞刀,還是殺牛刀?要看掌刀的人;是束之高閣,還是藏在袖中,要看是否還心存熱血。
但現(xiàn)實的生活總不會讓情緒發(fā)泄的太澎湃。多為多年混社會的人,我們早已經(jīng)學會了忍耐。
當你的命令行輸入到了 rm -rf /,會不由自主的再按下回退鍵。就像烏龜發(fā)現(xiàn)了殼外的危險,把龜頭緊緊縮在殼里面。
雖然憋屈了一點,但畢竟安全。
安全只是暫時的
但安全,只是暫時的。
有一次,有一個偉大的布道者,和自己的小弟們普及命令行知識。他聊到了 rm -rf。
出于對寶刀的熱愛,就像真正愛刀的人,會用自己的舌頭和口水,舔凈刀上污漬直到一塵不染。他打開了一個命令行終端,輸入了 rm -rf / 這個命令。
“這是一個危險的命令!”,他說,“你們永遠不要在線上環(huán)境運行”。
旁邊的小迷弟小迷妹們都很一臉崇拜的看著他,聆聽教誨。
好久沒有這么讓人陶醉的感覺了,他不由自主滔滔不絕的講解了起來,毫無察覺自己的胳膊肘子壓上了鍵盤,蜻蜓點水一樣觸了一下 Enter 鍵。
以實際行動來驗證,從實踐中出真知,是互聯(lián)網(wǎng)人一貫的作風。
屏蔽起來
當這種翻車事故變得越來越多,我們就更能了解到 rm 的兇殘。尤其是,一些不注意的條件,就讓 shell 腳本成為觸發(fā)的元兇。
電子信息不同于現(xiàn)實中的物品,你只要銷毀了它,它可能就真的永遠消失了,就如同靈魂一樣。
為了保證一定程度的安全,我們可以把 rm 命令變成一個垃圾桶。
首先,創(chuàng)建一個垃圾桶。
- mkdir ~/.Trash &> /dev/null
- chmod 777 ~/.Trash
然后,把原生的 rm 命令給廢掉。
- alias rm="sh /usr/bin/rm.sh"
簡單的 rm 腳本可能長這個樣子。
- #!/bin/bash
- while [ ! -z "$1" ]; do
- mv "$1" ~/.Trash/
- shift
- done
當然,我們這只是一個簡單的腳本。但無論你做的再周詳,也阻止不了誤刪。比如,將 rm -R ./lib/ 寫成了 rm -R /lib/。
把文件找回來
在 Linux 下面,除非是作死的 rm -rf /,誤刪一兩個文件,還是有機會找回來的。要想徹底的銷毀文件,你需要使用 shred 命令。
rm 刪掉的文件,其實只是將指向數(shù)據(jù)塊的索引點(information nodes)釋放,只要不被覆蓋,數(shù)據(jù)其實還在硬盤上。
只要你刪除文件之后,沒有再覆寫區(qū)塊的數(shù)據(jù),那就有很大概率找回來。就像你刪除了一個運行時的文件,你使用 lsof 命令,依然能夠看到 /var/log/messages(deleted)類似的字樣。
如果你刪除的文件還被別的進程所使用,那么恭喜你,你可以直接找到它。比如使用的進程 id 是 996,那么文件就躺在 /proc/996/fd/ 下面。
所以不小心刪掉之后,反射弧不宜過長。不能等一兩天之后,突然就一哆嗦:哎吆 wocao?我的文件怎么不見了?
如果并沒有進程使用這些文件,那就麻煩了一些。首先,你得停止你的爛七八糟的進程,還原一個干干凈凈的機器,免得文件被覆蓋。如果你還不放心,直接 unmount 分區(qū)。
然后,恢復文件還得借助工具,比如 extundelete。
結(jié)語
如果你因為 rm 這把刀,傷到了自己,以至于坐牢,那你一定在一個比較 2 的公司。
有點安全意識到公司,肯定不會因為 rm 這么兩個字母就停擺了。
刪根?不好意思,我們業(yè)務機器有多個節(jié)點,你只是 xx 分之一;刪庫?不好意思,我們有熱備冷備,甚至不同的業(yè)務有不同的庫表,你認為刪除物理文件就能搞死公司,妄想!
但即使如此,也要管住自己的手。因為有些公司斤斤計較,并不是你想象得那么善良。
不管你是主觀故意還是因為手抖,最后免不了一堆麻煩。沒人會為低級錯誤擦褲子,只能運行命令的人獨自承受。
在打工、賺錢的同時,首先保護自己才是最重要的。所以,你有啥想不開的?要用 rm -rf 命令?僅僅是想要弘揚你俠士的風范么?
你要明白,做一個合格的小程序員,小運維,并不比理發(fā)師安全多少。寶刀在手,可以削蘋果,可以開瓶蓋,也可以分蛋糕,但從來不會血濺當場。因為我們是文明人。
作者:小姐姐味道
編輯:陶家龍
出處:轉(zhuǎn)載自公眾號小姐姐味道(ID:xjjdog)