天天看點

永遠不要在Linux執行的10個最危險的指令

linux指令行佷有用、很高效,也很有趣,但有時候也很危險,尤其是在你不确定你自己在正在做什麼時候。這篇文章并不打算引來你對linux或linux 指令行的憤怒。我們隻是想讓你意識到在你運作某些指令時應該三思而後行。(譯注:當然,以下指令通常都是在root權限下才能将愚蠢發揮到無可救藥;在普通使用者身份下,破壞的隻是自己的一畝三分地。)

永遠不要在Linux執行的10個最危險的指令

<a target="_blank"></a>

rm -rf指令是删除檔案夾及其内容最快的方式之一。僅僅一丁點的敲錯或無知都可能導緻不可恢複的系統崩壞。下列是一些rm 指令的選項。

rm 指令在linux下通常用來删除檔案。

rm -r 指令遞歸的删除檔案夾,甚至是空的檔案夾。(譯注:個人認為此處應該是說錯了,從常識看,應該是“甚至是非空的檔案夾”)

rm -f 指令能不經過詢問直接删除‘隻讀檔案’。(譯注:linux下删除檔案并不在乎該檔案是否是隻讀的,而隻是在意其父目錄是否有寫權限。是以,-f這個參數隻是表示不必一個個删除确認,而是一律悄悄删除。另外,原始的rm指令其實也是沒有删除提示的,隻是一般的發行版都會将rm通過别名的方式增加-i參數來要求删除确認,而-f則抑制了這個提示。)

rm -rf / : 強制删除根目錄下所有東東。(就是說删除完畢後,什麼也沒有了。。。)

rm -rf *: 強制删除目前目錄的所有檔案。

rm -rf . : 強制删除目前檔案夾及其子檔案夾。

從現在起,當你要執行rm -rf指令時請留心一點。我們可以在“.bashrc”檔案對‘rm‘指令建立rm -i的别名,來預防用 ‘rm‘指令删除檔案時的事故,它會要求你确認每一個删除請求。(譯注:大多數發行版已經這樣做了,如果還沒有,請這樣做,并在使用-f參數前一定考慮好你在做什麼!譯者本人有着血淚的教訓啊。)

這就是個fork 炸彈的執行個體。具體操作是通過定義一個名為 ‘:‘的函數,它會調用自己兩次,一次在前台另一次運作在背景。它會反複的執行下去直到系統崩潰。

哦?你确認你要試試麼?千萬别在公司正式的伺服器上實驗啊~~

上列指令會将某個‘指令‘的輸出寫到塊裝置/dev/sda中。該操作會将在塊裝置中的所有資料塊替換為指令寫入的原始資料,進而導緻整個塊裝置的資料丢失。

這個指令會移動某個‘檔案夾‘到/dev/null。在linux中 /dev/null 或 null 裝置是一個特殊的檔案,所有寫入它的資料都會被清除,然後傳回寫操作成功。(譯注:這就是黑洞啊。當然,要說明的是,通過将檔案夾移動到黑洞,并不能阻止資料恢複軟體的救贖,是以,真正的徹底毀滅,需要采用專用的軟體或者手法來完成——我知道你肯定有些東西想删除得幹幹淨淨的。)

上列指令會将user目錄所有内容移動到/dev/null,這意味着所有東西都被‘卷入’黑洞 (null)之中。

上列指令會從一個(也許是)惡意源下載下傳一個腳本并執行。Wget指令會下載下傳這個腳本,而sh會(無條件的)執行下載下傳下來的腳本。

注意: 你應該時刻注意你下載下傳包或腳本的源。隻能使用那些從可信任的源中下載下傳腳本/程式。(譯注:是以,你真的知道你在做什麼嗎?當遇到這種需要是,我的做法是,先wget下來,然後我去讀一讀其中到底寫了些什麼,然後考慮是否執行。)

上列指令會格式化塊裝置‘sda’,你無疑知道在執行上列指令後你的塊裝置(硬碟驅動器)會被格式化,嶄新的!沒有任何資料,直接讓你的系統達到不可恢複的階段。(譯注:通常不會直接使用/dev/sda這樣的裝置,除非是作為raw裝置使用,一般都需要将sda分成類似sda1、sda2這樣的分區後才使用。當然,無論你使用sda還是sda1,這樣對塊裝置或分區進行mkfs都是毀滅性的,上面的資料都會被蒸發了。)

上列指令常用來清空檔案内容(譯注:通常也用于記錄指令輸出。不過請在執行前,确認輸出的檔案是空的或者還不存在,否則原來的檔案可真是恢複不了了——連資料恢複軟體都未必能幫助你了。另外,我想你可能真正想用的是“&gt;&gt;”,即累加新的輸出到檔案,而不是重新整理那個檔案。)。如果用上列執行時輸入錯誤或無知的輸入類似 “&gt; xt.conf” 的指令會覆寫配置檔案或其他任何的系統配置檔案。

上列指令會向塊裝置sda寫入随機的垃圾檔案進而擦出資料。當然!你的系統可能陷入混亂和不可恢複的狀态。(譯注:記得上面說過mv到黑洞并不能徹底删除資料麼?那麼這個指令就是給了你一個徹底删除的方法!當然為了保險起見,你可以覆寫多次。)

下面的指令其實就是上面第一個指令 (rm -rf)。這裡的代碼是隐藏在十六進制裡的,一個無知的使用者可能就會被愚弄。在終端裡運作下面指令可能會擦除你的根分區。

這個指令表明通常真正的危險是隐藏的,不會被輕易的檢測到。你必須時刻留心你在做什麼結果會怎樣。不要編譯/運作從未知來源的代碼。

注意: 不要在你的或你的同學或學校的電腦裡的linux終端或shell執行以上的任何一個指令。如果你想測試它們,請在虛拟機上運作。任何不和諧或資料丢失,由于運作上面的指令導緻你的系統崩潰,文章作者和tecmint概不負責。(譯注:譯者和轉載網站也不負責~!)

今天就到此為止吧,我會很快回來這裡,同時帶上另一篇你們喜歡的文章。到那時請繼續關注和通路tecmint。如果你知道任何其他危險的linux指令,也想添加到我們的清單中,請通過評論留言給我們同時也别忘了留下你的寶貴意見。

原文釋出時間為:2013-12-07

本文來自雲栖社群合作夥伴“linux中國”

繼續閱讀