1.查看系統(tǒng)負(fù)載
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供三元網(wǎng)站建設(shè)、三元做網(wǎng)站、三元網(wǎng)站設(shè)計、三元網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、三元企業(yè)網(wǎng)站模板建站服務(wù),10年三元做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
(1)uptime
這個命令可以快速查看機(jī)器的負(fù)載情況。
在Linux系統(tǒng)中,這些數(shù)據(jù)表示等待CPU資源的進(jìn)程和阻塞在不可中斷IO進(jìn)程(進(jìn)程狀態(tài)為D)的數(shù)量。
命令的輸出,load average表示1分鐘、5分鐘、15分鐘的平均負(fù)載情況。
通過這三個數(shù)據(jù),可以了解服務(wù)器負(fù)載是在趨于緊張還是趨于緩解。
如果1分鐘平均負(fù)載很高,而15分鐘平均負(fù)載很低,說明服務(wù)器正在命令高負(fù)載情況,需要進(jìn)一步排查CPU資源都消耗在了哪里。
反之,如果15分鐘平均負(fù)載很高,1分鐘平均負(fù)載較低,則有可能是CPU資源緊張時刻已經(jīng)過去。
(2)W
Show who is logged on and what they are doing.
可查詢登錄當(dāng)前系統(tǒng)的用戶信息,以及這些用戶目前正在做什么操作
其中的load average后面的三個數(shù)字則顯示了系統(tǒng)最近1分鐘、5分鐘、15分鐘的系統(tǒng)平均負(fù)載情況
注意:
load average這個輸出值,這三個值的大小一般不能大于系統(tǒng)邏輯CPU的個數(shù)。
如果輸出中系統(tǒng)有4個邏輯CPU,如果load average的三個值長期大于4時,說明CPU很繁忙,負(fù)載很高,可能會影響系統(tǒng)性能,
但是偶爾大于4時,倒不用擔(dān)心,一般不會影響系統(tǒng)性能。相反,如果load average的輸出值小于CPU的個數(shù),則表示CPU還有空閑
2.dmesg | tail
該命令會輸出系統(tǒng)日志的最后10行。
這些日志可以幫助排查性能問題.
3.vmstat
vmstat Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計),用來獲得有關(guān)進(jìn)程、虛存、頁面交換空間及 CPU活動的信息。這些信息反映了系統(tǒng)的負(fù)載情況。
后面跟的參數(shù)1,表示每秒輸出一次統(tǒng)計信息,表頭提示了每一列的含義
(1)監(jiān)控進(jìn)程procs:
r:等待在CPU資源的進(jìn)程數(shù)。
這個數(shù)據(jù)比平均負(fù)載更加能夠體現(xiàn)CPU負(fù)載情況,數(shù)據(jù)中不包含等待IO的進(jìn)程。如果這個數(shù)值大于機(jī)器CPU核數(shù),那么機(jī)器的CPU資源已經(jīng)飽和(出現(xiàn)了CPU瓶頸)。
b:在等待io的進(jìn)程數(shù) 。
(2)監(jiān)控內(nèi)存memoy:
swpd:現(xiàn)時可用的交換內(nèi)存(單位KB)
free:系統(tǒng)可用內(nèi)存數(shù)(以千字節(jié)為單位)
buff: 緩沖去中的內(nèi)存數(shù)(單位:KB)。
cache:被用來做為高速緩存的內(nèi)存數(shù)(單位:KB)。
(3)監(jiān)控swap交換頁面
si: 從磁盤交換到內(nèi)存的交換頁數(shù)量,單位:KB/秒。
so: 從內(nèi)存交換到磁盤的交換頁數(shù)量,單位:KB/秒。
如果這個數(shù)據(jù)不為0,說明系統(tǒng)已經(jīng)在使用交換區(qū)(swap),機(jī)器物理內(nèi)存已經(jīng)不足。
(4)監(jiān)控 io塊設(shè)備
bi: 發(fā)送到塊設(shè)備的塊數(shù),單位:塊/秒。
bo: 從塊設(shè)備接收到的塊數(shù),單位:塊/秒。
(5)監(jiān)控system系統(tǒng)
in: 每秒的中斷數(shù),包括時鐘中斷。
cs: 每秒的環(huán)境(上下文)轉(zhuǎn)換次數(shù)。
(6)監(jiān)控cpu中央處理器:
us:用戶進(jìn)程使用的時間 。以百分比表示。
sy:系統(tǒng)進(jìn)程使用的時間。 以百分比表示。
id:中央處理器的空閑時間 。以百分比表示。
us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(tǒng)(內(nèi)核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機(jī)消耗)。
這些CPU時間,可以讓我們很快了解CPU是否出于繁忙狀態(tài)。
注:
如果IO等待時間很長,那么系統(tǒng)的瓶頸可能在磁盤IO。
如果用戶時間和系統(tǒng)時間相加非常大,CPU出于忙于執(zhí)行指令。
如果有大量CPU時間消耗在用戶態(tài),也就是用戶應(yīng)用程序消耗了CPU時間。這不一定是性能問題,需要結(jié)合r隊列,一起分析。
4.mpstat -P ALL 1
該命令可以顯示每個CPU的占用情況,如果有一個CPU占用率特別高,那么有可能是一個單線程應(yīng)用程序引起的。
MultiProcessor Statistics的縮寫,是實時系統(tǒng)監(jiān)控工具
其報告與CPU的一些統(tǒng)計信息,這些信息存放在/proc/stat文件中。在多CPUs系統(tǒng)里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。
格式:mpstat [-P {|ALL}] [internal [count]]
-P {|ALL} 表示監(jiān)控哪個CPU, cpu在[0,cpu個數(shù)-1]中取值
internal 相鄰的兩次采樣的間隔時間
count 采樣的次數(shù),count只能和delay一起使用
all : 指所有CPU
%usr : 顯示在用戶級別(例如應(yīng)用程序)執(zhí)行時CPU利用率的百分比
%nice :顯示在擁有nice優(yōu)先級的用戶級別執(zhí)行時CPU利用率的百分比
%sys : 現(xiàn)實在系統(tǒng)級別(例如內(nèi)核)執(zhí)行時CPU利用率的百分比
%iowait : 顯示在系統(tǒng)有未完成的磁盤I/O請求期間CPU空閑時間的百分比
%irq : 顯示CPU服務(wù)硬件中斷所花費時間的百分比
%soft : 顯示CPU服務(wù)軟件中斷所花費時間的百分比
%steal : 顯示虛擬機(jī)管理器在服務(wù)另一個虛擬處理器時虛擬CPU處在非自愿等待下花費時間的百分比
%guest : 顯示運行虛擬處理器時CPU花費時間的百分比
%idle : 顯示CPU空閑和系統(tǒng)沒有未完成的磁盤I/O請求情況下的時間百分比
系統(tǒng)有兩個CPU。如果使用參數(shù) -P 然后緊跟CPU編號得到指定CPU的利用率。
( Ubuntu安裝: apt-get install sysstat)
5.pidstat 1
pidstat命令輸出進(jìn)程的CPU占用率,該命令會持續(xù)輸出,并且不會覆蓋之前的數(shù)據(jù),可以方便觀察系統(tǒng)動態(tài)
6.iostat -xz 1
iostat命令主要用于查看機(jī)器磁盤IO情況
r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數(shù)和每秒讀寫數(shù)據(jù)量(千字節(jié))。讀寫量過大,可能會引起性能問題。
await:IO操作的平均等待時間,單位是毫秒。這是應(yīng)用程序在和磁盤交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數(shù)值過大,可能是硬件設(shè)備遇到了瓶頸或者出現(xiàn)故障。
avgqu-sz:向設(shè)備發(fā)出的請求平均數(shù)量。如果這個數(shù)值大于1,可能是硬件設(shè)備已經(jīng)飽和(部分前端硬件設(shè)備支持并行寫入)。
%util:設(shè)備利用率。這個數(shù)值表示設(shè)備的繁忙程度,經(jīng)驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達(dá)100%,說明硬件設(shè)備已經(jīng)飽和。
注:如果顯示的是邏輯設(shè)備的數(shù)據(jù),那么設(shè)備利用率不代表后端實際的硬件設(shè)備已經(jīng)飽和。值得注意的是,即使IO性能不理想,也不一定意味這應(yīng)用程序性能會不好,可以利用諸如預(yù)讀取、寫緩存等策略提升應(yīng)用性能
7.free -m
free命令可以查看系統(tǒng)內(nèi)存的使用情況,-m參數(shù)表示按照兆字節(jié)展示。
最后兩列分別表示用于IO緩存的內(nèi)存數(shù),和用于文件系統(tǒng)頁緩存的內(nèi)存數(shù)。
注:
第二行-/+ buffers/cache,看上去緩存占用了大量內(nèi)存空間。這是Linux系統(tǒng)的內(nèi)存使用策略,盡可能的利用內(nèi)存,如果應(yīng)用程序需要內(nèi)存,這部分內(nèi)存會立即被回收并分配給應(yīng)用程序。
如果可用內(nèi)存非常少,系統(tǒng)可能會動用交換區(qū)(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現(xiàn)),降低系統(tǒng)性能。
8.sar -n DEV 1
sar命令在這里可以查看網(wǎng)絡(luò)設(shè)備的吞吐率。
在排查性能問題時,可以通過網(wǎng)絡(luò)設(shè)備的吞吐量,判斷網(wǎng)絡(luò)設(shè)備是否已經(jīng)飽和。
9.sar -n TCP,ETCP 1
sar命令在這里用于查看TCP連接狀態(tài),其中包括:
active/s:每秒本地發(fā)起的TCP連接數(shù),既通過connect調(diào)用創(chuàng)建的TCP連接;
passive/s:每秒遠(yuǎn)程發(fā)起的TCP連接數(shù),即通過accept調(diào)用創(chuàng)建的TCP連接;
retrans/s:每秒TCP重傳數(shù)量;
TCP連接數(shù)可以用來判斷性能問題是否由于建立了過多的連接,進(jìn)一步可以判斷是主動發(fā)起的連接,還是被動接受的連接。TCP重傳可能是因為網(wǎng)絡(luò)環(huán)境惡劣,或者服務(wù)器壓力過大導(dǎo)致丟包。
10.top
top命令包含了前面好幾個命令的檢查的內(nèi)容。比如系統(tǒng)負(fù)載情況(uptime)、系統(tǒng)內(nèi)存使用情況(free)、系統(tǒng)CPU使用情況(vmstat)等。
因此通過這個命令,可以相對全面的查看系統(tǒng)負(fù)載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內(nèi)存占用最多的進(jìn)程、CPU占用率最高的進(jìn)程等。
但是,top命令相對于前面一些命令,輸出是一個瞬間值,如果不持續(xù)盯著,可能會錯過一些線索。這時可能需要暫停top命令刷新,來記錄和比對數(shù)據(jù)。
1.查看系統(tǒng)負(fù)載
(1)uptime
這個命令可以快速查看機(jī)器的負(fù)載情況。
在Linux系統(tǒng)中,這些數(shù)據(jù)表示等待CPU資源的進(jìn)程和阻塞在不可中斷IO進(jìn)程(進(jìn)程狀態(tài)為D)的數(shù)量。
命令的輸出,load average表示1分鐘、5分鐘、15分鐘的平均負(fù)載情況。
通過這三個數(shù)據(jù),可以了解服務(wù)器負(fù)載是在趨于緊張還是趨于緩解。
如果1分鐘平均負(fù)載很高,而15分鐘平均負(fù)載很低,說明服務(wù)器正在命令高負(fù)載情況,需要進(jìn)一步排查CPU資源都消耗在了哪里。
反之,如果15分鐘平均負(fù)載很高,1分鐘平均負(fù)載較低,則有可能是CPU資源緊張時刻已經(jīng)過去。
(2)W
Show who is logged on and what they are doing.
可查詢登錄當(dāng)前系統(tǒng)的用戶信息,以及這些用戶目前正在做什么操作
其中的load average后面的三個數(shù)字則顯示了系統(tǒng)最近1分鐘、5分鐘、15分鐘的系統(tǒng)平均負(fù)載情況
注意:
load average這個輸出值,這三個值的大小一般不能大于系統(tǒng)邏輯CPU的個數(shù)。
如果輸出中系統(tǒng)有4個邏輯CPU,如果load average的三個值長期大于4時,說明CPU很繁忙,負(fù)載很高,可能會影響系統(tǒng)性能,
但是偶爾大于4時,倒不用擔(dān)心,一般不會影響系統(tǒng)性能。相反,如果load average的輸出值小于CPU的個數(shù),則表示CPU還有空閑
2.dmesg | tail
該命令會輸出系統(tǒng)日志的最后10行。
這些日志可以幫助排查性能問題.
3.vmstat
vmstat Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計),用來獲得有關(guān)進(jìn)程、虛存、頁面交換空間及 CPU活動的信息。這些信息反映了系統(tǒng)的負(fù)載情況。
后面跟的參數(shù)1,表示每秒輸出一次統(tǒng)計信息,表頭提示了每一列的含義
(1)監(jiān)控進(jìn)程procs:
r:等待在CPU資源的進(jìn)程數(shù)。
這個數(shù)據(jù)比平均負(fù)載更加能夠體現(xiàn)CPU負(fù)載情況,數(shù)據(jù)中不包含等待IO的進(jìn)程。如果這個數(shù)值大于機(jī)器CPU核數(shù),那么機(jī)器的CPU資源已經(jīng)飽和(出現(xiàn)了CPU瓶頸)。
b:在等待io的進(jìn)程數(shù) 。
(2)監(jiān)控內(nèi)存memoy:
swpd:現(xiàn)時可用的交換內(nèi)存(單位KB)
free:系統(tǒng)可用內(nèi)存數(shù)(以千字節(jié)為單位)
buff: 緩沖去中的內(nèi)存數(shù)(單位:KB)。
cache:被用來做為高速緩存的內(nèi)存數(shù)(單位:KB)。
(3)監(jiān)控swap交換頁面
si: 從磁盤交換到內(nèi)存的交換頁數(shù)量,單位:KB/秒。
so: 從內(nèi)存交換到磁盤的交換頁數(shù)量,單位:KB/秒。
如果這個數(shù)據(jù)不為0,說明系統(tǒng)已經(jīng)在使用交換區(qū)(swap),機(jī)器物理內(nèi)存已經(jīng)不足。
(4)監(jiān)控 io塊設(shè)備
bi: 發(fā)送到塊設(shè)備的塊數(shù),單位:塊/秒。
bo: 從塊設(shè)備接收到的塊數(shù),單位:塊/秒。
(5)監(jiān)控system系統(tǒng)
in: 每秒的中斷數(shù),包括時鐘中斷。
cs: 每秒的環(huán)境(上下文)轉(zhuǎn)換次數(shù)。
(6)監(jiān)控cpu中央處理器:
us:用戶進(jìn)程使用的時間 。以百分比表示。
sy:系統(tǒng)進(jìn)程使用的時間。 以百分比表示。
id:中央處理器的空閑時間 。以百分比表示。
us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(tǒng)(內(nèi)核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機(jī)消耗)。
這些CPU時間,可以讓我們很快了解CPU是否出于繁忙狀態(tài)。
注:
如果IO等待時間很長,那么系統(tǒng)的瓶頸可能在磁盤IO。
如果用戶時間和系統(tǒng)時間相加非常大,CPU出于忙于執(zhí)行指令。
如果有大量CPU時間消耗在用戶態(tài),也就是用戶應(yīng)用程序消耗了CPU時間。這不一定是性能問題,需要結(jié)合r隊列,一起分析。
4.mpstat -P ALL 1
該命令可以顯示每個CPU的占用情況,如果有一個CPU占用率特別高,那么有可能是一個單線程應(yīng)用程序引起的。
MultiProcessor Statistics的縮寫,是實時系統(tǒng)監(jiān)控工具
其報告與CPU的一些統(tǒng)計信息,這些信息存放在/proc/stat文件中。在多CPUs系統(tǒng)里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。
格式:mpstat [-P {|ALL}] [internal [count]]
-P {|ALL} 表示監(jiān)控哪個CPU, cpu在[0,cpu個數(shù)-1]中取值
internal 相鄰的兩次采樣的間隔時間
count 采樣的次數(shù),count只能和delay一起使用
all : 指所有CPU
%usr : 顯示在用戶級別(例如應(yīng)用程序)執(zhí)行時CPU利用率的百分比
%nice :顯示在擁有nice優(yōu)先級的用戶級別執(zhí)行時CPU利用率的百分比
%sys : 現(xiàn)實在系統(tǒng)級別(例如內(nèi)核)執(zhí)行時CPU利用率的百分比
%iowait : 顯示在系統(tǒng)有未完成的磁盤I/O請求期間CPU空閑時間的百分比
%irq : 顯示CPU服務(wù)硬件中斷所花費時間的百分比
%soft : 顯示CPU服務(wù)軟件中斷所花費時間的百分比
%steal : 顯示虛擬機(jī)管理器在服務(wù)另一個虛擬處理器時虛擬CPU處在非自愿等待下花費時間的百分比
%guest : 顯示運行虛擬處理器時CPU花費時間的百分比
%idle : 顯示CPU空閑和系統(tǒng)沒有未完成的磁盤I/O請求情況下的時間百分比
系統(tǒng)有兩個CPU。如果使用參數(shù) -P 然后緊跟CPU編號得到指定CPU的利用率。
( Ubuntu安裝: apt-get install sysstat)
5.pidstat 1
pidstat命令輸出進(jìn)程的CPU占用率,該命令會持續(xù)輸出,并且不會覆蓋之前的數(shù)據(jù),可以方便觀察系統(tǒng)動態(tài)
6.iostat -xz 1
iostat命令主要用于查看機(jī)器磁盤IO情況
r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數(shù)和每秒讀寫數(shù)據(jù)量(千字節(jié))。讀寫量過大,可能會引起性能問題。
await:IO操作的平均等待時間,單位是毫秒。這是應(yīng)用程序在和磁盤交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數(shù)值過大,可能是硬件設(shè)備遇到了瓶頸或者出現(xiàn)故障。
avgqu-sz:向設(shè)備發(fā)出的請求平均數(shù)量。如果這個數(shù)值大于1,可能是硬件設(shè)備已經(jīng)飽和(部分前端硬件設(shè)備支持并行寫入)。
%util:設(shè)備利用率。這個數(shù)值表示設(shè)備的繁忙程度,經(jīng)驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達(dá)100%,說明硬件設(shè)備已經(jīng)飽和。
注:如果顯示的是邏輯設(shè)備的數(shù)據(jù),那么設(shè)備利用率不代表后端實際的硬件設(shè)備已經(jīng)飽和。值得注意的是,即使IO性能不理想,也不一定意味這應(yīng)用程序性能會不好,可以利用諸如預(yù)讀取、寫緩存等策略提升應(yīng)用性能
7.free -m
free命令可以查看系統(tǒng)內(nèi)存的使用情況,-m參數(shù)表示按照兆字節(jié)展示。
最后兩列分別表示用于IO緩存的內(nèi)存數(shù),和用于文件系統(tǒng)頁緩存的內(nèi)存數(shù)。
注:
第二行-/+ buffers/cache,看上去緩存占用了大量內(nèi)存空間。這是Linux系統(tǒng)的內(nèi)存使用策略,盡可能的利用內(nèi)存,如果應(yīng)用程序需要內(nèi)存,這部分內(nèi)存會立即被回收并分配給應(yīng)用程序。
如果可用內(nèi)存非常少,系統(tǒng)可能會動用交換區(qū)(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現(xiàn)),降低系統(tǒng)性能。
8.sar -n DEV 1
sar命令在這里可以查看網(wǎng)絡(luò)設(shè)備的吞吐率。
在排查性能問題時,可以通過網(wǎng)絡(luò)設(shè)備的吞吐量,判斷網(wǎng)絡(luò)設(shè)備是否已經(jīng)飽和。
9.sar -n TCP,ETCP 1
sar命令在這里用于查看TCP連接狀態(tài),其中包括:
active/s:每秒本地發(fā)起的TCP連接數(shù),既通過connect調(diào)用創(chuàng)建的TCP連接;
passive/s:每秒遠(yuǎn)程發(fā)起的TCP連接數(shù),即通過accept調(diào)用創(chuàng)建的TCP連接;
retrans/s:每秒TCP重傳數(shù)量;
TCP連接數(shù)可以用來判斷性能問題是否由于建立了過多的連接,進(jìn)一步可以判斷是主動發(fā)起的連接,還是被動接受的連接。TCP重傳可能是因為網(wǎng)絡(luò)環(huán)境惡劣,或者服務(wù)器壓力過大導(dǎo)致丟包。
10.top
top命令包含了前面好幾個命令的檢查的內(nèi)容。比如系統(tǒng)負(fù)載情況(uptime)、系統(tǒng)內(nèi)存使用情況(free)、系統(tǒng)CPU使用情況(vmstat)等。
因此通過這個命令,可以相對全面的查看系統(tǒng)負(fù)載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內(nèi)存占用最多的進(jìn)程、CPU占用率最高的進(jìn)程等。
但是,top命令相對于前面一些命令,輸出是一個瞬間值,如果不持續(xù)盯著,可能會錯過一些線索。這時可能需要暫停top命令刷新,來記錄和比對數(shù)據(jù)。
Linux命令行佷有用、很高效,也很有趣,但有時候也很危險,尤其是在你不確定你自己在正在做什么時候。這篇文章并不打算引來你對Linux或linux命令行的憤怒。我們只是想讓你意識到在你運行某些命令時應(yīng)該三思而后行。(譯注:當(dāng)然,以下命令通常都是在root權(quán)限下才能將愚蠢發(fā)揮到無可救藥;在普通用戶身份下,破壞的只是自己的一畝三分地。)
1. rm -rf命令
rm -rf命令是刪除文件夾及其內(nèi)容最快的方式之一。僅僅一丁點的敲錯或無知都可能導(dǎo)致不可恢復(fù)的系統(tǒng)崩壞。下列是一些rm命令的選項。
rm 命令在Linux下通常用來刪除文件。
rm -r命令遞歸的刪除文件夾,甚至是空的文件夾。(譯注:個人認(rèn)為此處應(yīng)該是說錯了,從常識看,應(yīng)該是“甚至是非空的文件夾”)
rm -f命令能不經(jīng)過詢問直接刪除‘只讀文件’。(譯注:Linux下刪除文件并不在乎該文件是否是只讀的,而只是在意其父目錄是否有寫權(quán)限。所以,-f這個參數(shù)只是表示不必一個個刪除確認(rèn),而是一律悄悄刪除。另外,原始的rm命令其實也是沒有刪除提示的,只是一般的發(fā)行版都會將rm通過別名的方式增加-i參數(shù)來要求刪除確認(rèn),而-f則抑制了這個提示。)
rm -rf / :強(qiáng)制刪除根目錄下所有東東。(就是說刪除完畢后,什么也沒有了。。。)
rm -rf *: 強(qiáng)制刪除當(dāng)前目錄的所有文件。
rm -rf . :強(qiáng)制刪除當(dāng)前文件夾及其子文件夾。
從現(xiàn)在起,當(dāng)你要執(zhí)行rm -rf命令時請留心一點。我們可以在“.bashrc”文件對‘rm‘命令創(chuàng)建rm -i的別名,來預(yù)防用‘rm‘命令刪除文件時的事故,它會要求你確認(rèn)每一個刪除請求。(譯注:大多數(shù)發(fā)行版已經(jīng)這樣做了,如果還沒有,請這樣做,并在使用-f參數(shù)前一定考慮好你在做什么!譯者本人有著血淚的教訓(xùn)啊。)
2. :(){:|:};:命令
這就是個fork炸彈的實例。具體操作是通過定義一個名為‘:‘的函數(shù),它會調(diào)用自己兩次,一次在前臺另一次運行在后臺。它會反復(fù)的執(zhí)行下去直到系統(tǒng)崩潰。
:(){:|:};:哦?你確認(rèn)你要試試么?千萬別在公司正式的服務(wù)器上實驗啊~~
3.命令 /dev/sda
上列命令會將某個‘命令‘的輸出寫到塊設(shè)備/dev/sda中。該操作會將在塊設(shè)備中的所有數(shù)據(jù)塊替換為命令寫入的原始數(shù)據(jù),從而導(dǎo)致整個塊設(shè)備的數(shù)據(jù)丟失。
4. mv文件夾/dev/null
這個命令會移動某個‘文件夾‘到/dev/null。在Linux中/dev/null或null設(shè)備是一個特殊的文件,所有寫入它的數(shù)據(jù)都會被清除,然后返回寫操作成功。(譯注:這就是黑洞啊。當(dāng)然,要說明的是,通過將文件夾移動到黑洞,并不能阻止數(shù)據(jù)恢復(fù)軟件的救贖,所以,真正的徹底毀滅,需要采用專用的軟件或者手法來完成——我知道你肯定有些東西想刪除得干干凈凈的。)
# mv /home/user/* /dev/null上列命令會將User目錄所有內(nèi)容移動到/dev/null,這意味著所有東西都被‘卷入’黑洞 (null)之中。
5. wget -O- | sh
上列命令會從一個(也許是)惡意源下載一個腳本并執(zhí)行。Wget命令會下載這個腳本,而sh會(無條件的)執(zhí)行下載下來的腳本。
注意:你應(yīng)該時刻注意你下載包或腳本的源。只能使用那些從可信任的源中下載腳本/程序。(譯注:所以,你真的知道你在做什么嗎?當(dāng)遇到這種需要是,我的做法是,先wget下來,然后我去讀一讀其中到底寫了些什么,然后考慮是否執(zhí)行。)
6. mkfs.ext3 /dev/sda
上列命令會格式化塊設(shè)備‘sda’,你無疑知道在執(zhí)行上列命令后你的塊設(shè)備(硬盤驅(qū)動器)會被格式化,嶄新的!沒有任何數(shù)據(jù),直接讓你的系統(tǒng)達(dá)到不可恢復(fù)的階段。(譯注:通常不會直接使用/dev/sda這樣的設(shè)備,除非是作為raw設(shè)備使用,一般都需要將sda分成類似sda1、sda2這樣的分區(qū)后才使用。當(dāng)然,無論你使用sda還是sda1,這樣對塊設(shè)備或分區(qū)進(jìn)行mkfs都是毀滅性的,上面的數(shù)據(jù)都會被蒸發(fā)了。)
7. file
上列命令常用來清空文件內(nèi)容(譯注:通常也用于記錄命令輸出。不過請在執(zhí)行前,確認(rèn)輸出的文件是空的或者還不存在,否則原來的文件可真是恢復(fù)不了了——連數(shù)據(jù)恢復(fù)軟件都未必能幫助你了。另外,我想你可能真正想用的是“”,即累加新的輸出到文件,而不是刷新那個文件。)。如果用上列執(zhí)行時輸入錯誤或無知的輸入類似“ xt.conf” 的命令會覆蓋配置文件或其他任何的系統(tǒng)配置文件。
8. ^foo^bar
這個命令在我們十個鮮為人知的Linux命令- Part 3中描述過,用來編輯先前運行的命令而無需重打整個命令。但當(dāng)用foobar命令時如果你沒有徹底檢查改變原始命令的風(fēng)險,這可能導(dǎo)致真正的麻煩。(譯注:事實上,這種小技巧是譯者認(rèn)為的,少數(shù)史前時代遺留下來的無用而有害的“黑客”技巧。)
9. dd if=/dev/random of=/dev/sda
上列命令會向塊設(shè)備sda寫入隨機(jī)的垃圾文件從而擦出數(shù)據(jù)。當(dāng)然!你的系統(tǒng)可能陷入混亂和不可恢復(fù)的狀態(tài)。(譯注:記得上面說過mv到黑洞并不能徹底刪除數(shù)據(jù)么?那么這個命令就是給了你一個徹底刪除的方法!當(dāng)然為了保險起見,你可以覆寫多次。)
10.隱藏命令
下面的命令其實就是上面第一個命令(rm -rf)。這里的代碼是隱藏在十六進(jìn)制里的,一個無知的用戶可能就會被愚弄。在終端里運行下面命令可能會擦除你的根分區(qū)。
這個命令表明通常真正的危險是隱藏的,不會被輕易的檢測到。你必須時刻留心你在做什么結(jié)果會怎樣。不要編譯/運行從未知來源的代碼。
char esp[] __attribute__ ((section(“.text”))) /* e.s.p
release */
=“euml;[1Agrave;PTZ?ìdh″
“yuml;yuml;yuml;yuml;hszlig;ETH;szlig;Ugrave;h?″
“szlig;h’szlig;Ograve;T^÷÷″
“V÷V÷V?Auml;tV″
“sVSTY°Iacute;€1″
“Agrave;@euml;ùèfrac12;yuml;yuml;yuml;/bi″
“n/sh-c″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;注意:不要在你的或你的同學(xué)或?qū)W校的電腦里的Linux終端或Shell執(zhí)行以上的任何一個命令。如果你想測試它們,請在虛擬機(jī)上運行。任何不和諧或數(shù)據(jù)丟失,由于運行上面的命令導(dǎo)致你的系統(tǒng)崩潰,文章作者和Tecmint概不負(fù)責(zé)。(譯注:譯者和轉(zhuǎn)載網(wǎng)站也不負(fù)責(zé)~?。?/p>
分享題目:linuxbi命令 linuxbios
URL標(biāo)題:http://weahome.cn/article/hijoig.html