十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
可以用TOP工具查看實(shí)時(shí)狀態(tài)。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了翁牛特免費(fèi)建站歡迎大家使用!
top進(jìn)入視圖:
第一行:
10:01:23 當(dāng)前系統(tǒng)時(shí)間
126 days, 14:29 系統(tǒng)已經(jīng)運(yùn)行了126天14小時(shí)29分鐘(在這期間沒(méi)有重啟過(guò))
2 users 當(dāng)前有2個(gè)用戶(hù)登錄系統(tǒng)
load average: 1.15, 1.42, 1.44 load average后面的三個(gè)數(shù)分別是1分鐘、5分鐘、15分鐘的負(fù)載情況。
load average數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進(jìn)程數(shù),然后按特定算法計(jì)算出的數(shù)值。如果這個(gè)數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了。?
第二行:
Tasks 任務(wù)(進(jìn)程),系統(tǒng)現(xiàn)在共有183個(gè)進(jìn)程,其中處于運(yùn)行中的有1個(gè),182個(gè)在休眠(sleep),stoped狀態(tài)的有0個(gè),zombie狀態(tài)(僵尸)的有0個(gè)。?
第三行:cpu狀態(tài)
6.7% us 用戶(hù)空間占用CPU的百分比。
0.4% sy 內(nèi)核空間占用CPU的百分比。
0.0% ni 改變過(guò)優(yōu)先級(jí)的進(jìn)程占用CPU的百分比
92.9% id 空閑CPU百分比
0.0% wa IO等待占用CPU的百分比
0.0% hi 硬中斷(Hardware IRQ)占用CPU的百分比
0.0% si 軟中斷(Software Interrupts)占用CPU的百分比
第四行:內(nèi)存狀態(tài)
8306544k total 物理內(nèi)存總量(8GB)
7775876k used 使用中的內(nèi)存總量(7.7GB)
530668k free 空閑內(nèi)存總量(530M)
79236k buffers 緩存的內(nèi)存量 (79M)?
第五行:swap交換分區(qū)
2031608k total 交換區(qū)總量(2GB)
2556k used 使用的交換區(qū)總量(2.5M)
2029052k free 空閑交換區(qū)總量(2GB)
4231276k cached 緩沖的交換區(qū)總量(4GB)
系統(tǒng)負(fù)荷需要的不是調(diào)試,是確定負(fù)載所在位置和原因后調(diào)優(yōu),調(diào)整應(yīng)用。
查看和確定負(fù)荷的話(huà),
vmstat,top,iostat,sar
-d,
sar
-u...
1.查看系統(tǒng)負(fù)載
(1)uptime
這個(gè)命令可以快速查看機(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ù)載情況。
通過(guò)這三個(gè)數(shù)據(jù),可以了解服務(wù)器負(fù)載是在趨于緊張還是趨于緩解。
如果1分鐘平均負(fù)載很高,而15分鐘平均負(fù)載很低,說(shuō)明服務(wù)器正在命令高負(fù)載情況,需要進(jìn)一步排查CPU資源都消耗在了哪里。
反之,如果15分鐘平均負(fù)載很高,1分鐘平均負(fù)載較低,則有可能是CPU資源緊張時(shí)刻已經(jīng)過(guò)去。
(2)W
Show who is logged on and what they are doing.
可查詢(xún)登錄當(dāng)前系統(tǒng)的用戶(hù)信息,以及這些用戶(hù)目前正在做什么操作
其中的load average后面的三個(gè)數(shù)字則顯示了系統(tǒng)最近1分鐘、5分鐘、15分鐘的系統(tǒng)平均負(fù)載情況
注意:
load average這個(gè)輸出值,這三個(gè)值的大小一般不能大于系統(tǒng)邏輯CPU的個(gè)數(shù)。
如果輸出中系統(tǒng)有4個(gè)邏輯CPU,如果load average的三個(gè)值長(zhǎng)期大于4時(shí),說(shuō)明CPU很繁忙,負(fù)載很高,可能會(huì)影響系統(tǒng)性能,
但是偶爾大于4時(shí),倒不用擔(dān)心,一般不會(huì)影響系統(tǒng)性能。相反,如果load average的輸出值小于CPU的個(gè)數(shù),則表示CPU還有空閑
2.dmesg | tail
該命令會(huì)輸出系統(tǒng)日志的最后10行。
這些日志可以幫助排查性能問(wèn)題.
3.vmstat
vmstat Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計(jì)),用來(lái)獲得有關(guān)進(jìn)程、虛存、頁(yè)面交換空間及 CPU活動(dòng)的信息。這些信息反映了系統(tǒng)的負(fù)載情況。
后面跟的參數(shù)1,表示每秒輸出一次統(tǒng)計(jì)信息,表頭提示了每一列的含義
(1)監(jiān)控進(jìn)程procs:
r:等待在CPU資源的進(jìn)程數(shù)。
這個(gè)數(shù)據(jù)比平均負(fù)載更加能夠體現(xiàn)CPU負(fù)載情況,數(shù)據(jù)中不包含等待IO的進(jìn)程。如果這個(gè)數(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)時(shí)可用的交換內(nèi)存(單位KB)
free:系統(tǒng)可用內(nèi)存數(shù)(以千字節(jié)為單位)
buff: 緩沖去中的內(nèi)存數(shù)(單位:KB)。
cache:被用來(lái)做為高速緩存的內(nèi)存數(shù)(單位:KB)。
(3)監(jiān)控swap交換頁(yè)面
si: 從磁盤(pán)交換到內(nèi)存的交換頁(yè)數(shù)量,單位:KB/秒。
so: 從內(nèi)存交換到磁盤(pán)的交換頁(yè)數(shù)量,單位:KB/秒。
如果這個(gè)數(shù)據(jù)不為0,說(shuō)明系統(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ù),包括時(shí)鐘中斷。
cs: 每秒的環(huán)境(上下文)轉(zhuǎn)換次數(shù)。
(6)監(jiān)控cpu中央處理器:
us:用戶(hù)進(jìn)程使用的時(shí)間 。以百分比表示。
sy:系統(tǒng)進(jìn)程使用的時(shí)間。 以百分比表示。
id:中央處理器的空閑時(shí)間 。以百分比表示。
us, sy, id, wa, st:這些都代表了CPU時(shí)間的消耗,它們分別表示用戶(hù)時(shí)間(user)、系統(tǒng)(內(nèi)核)時(shí)間(sys)、空閑時(shí)間(idle)、IO等待時(shí)間(wait)和被偷走的時(shí)間(stolen,一般被其他虛擬機(jī)消耗)。
這些CPU時(shí)間,可以讓我們很快了解CPU是否出于繁忙狀態(tài)。
注:
如果IO等待時(shí)間很長(zhǎng),那么系統(tǒng)的瓶頸可能在磁盤(pán)IO。
如果用戶(hù)時(shí)間和系統(tǒng)時(shí)間相加非常大,CPU出于忙于執(zhí)行指令。
如果有大量CPU時(shí)間消耗在用戶(hù)態(tài),也就是用戶(hù)應(yīng)用程序消耗了CPU時(shí)間。這不一定是性能問(wèn)題,需要結(jié)合r隊(duì)列,一起分析。
4.mpstat -P ALL 1
該命令可以顯示每個(gè)CPU的占用情況,如果有一個(gè)CPU占用率特別高,那么有可能是一個(gè)單線程應(yīng)用程序引起的。
MultiProcessor Statistics的縮寫(xiě),是實(shí)時(shí)系統(tǒng)監(jiān)控工具
其報(bào)告與CPU的一些統(tǒng)計(jì)信息,這些信息存放在/proc/stat文件中。在多CPUs系統(tǒng)里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。
格式:mpstat [-P {|ALL}] [internal [count]]
-P {|ALL} 表示監(jiān)控哪個(gè)CPU, cpu在[0,cpu個(gè)數(shù)-1]中取值
internal 相鄰的兩次采樣的間隔時(shí)間
count 采樣的次數(shù),count只能和delay一起使用
all : 指所有CPU
%usr : 顯示在用戶(hù)級(jí)別(例如應(yīng)用程序)執(zhí)行時(shí)CPU利用率的百分比
%nice :顯示在擁有nice優(yōu)先級(jí)的用戶(hù)級(jí)別執(zhí)行時(shí)CPU利用率的百分比
%sys : 現(xiàn)實(shí)在系統(tǒng)級(jí)別(例如內(nèi)核)執(zhí)行時(shí)CPU利用率的百分比
%iowait : 顯示在系統(tǒng)有未完成的磁盤(pán)I/O請(qǐng)求期間CPU空閑時(shí)間的百分比
%irq : 顯示CPU服務(wù)硬件中斷所花費(fèi)時(shí)間的百分比
%soft : 顯示CPU服務(wù)軟件中斷所花費(fèi)時(shí)間的百分比
%steal : 顯示虛擬機(jī)管理器在服務(wù)另一個(gè)虛擬處理器時(shí)虛擬CPU處在非自愿等待下花費(fèi)時(shí)間的百分比
%guest : 顯示運(yùn)行虛擬處理器時(shí)CPU花費(fèi)時(shí)間的百分比
%idle : 顯示CPU空閑和系統(tǒng)沒(méi)有未完成的磁盤(pán)I/O請(qǐng)求情況下的時(shí)間百分比
系統(tǒng)有兩個(gè)CPU。如果使用參數(shù) -P 然后緊跟CPU編號(hào)得到指定CPU的利用率。
( Ubuntu安裝: apt-get install sysstat)
5.pidstat 1
pidstat命令輸出進(jìn)程的CPU占用率,該命令會(huì)持續(xù)輸出,并且不會(huì)覆蓋之前的數(shù)據(jù),可以方便觀察系統(tǒng)動(dòng)態(tài)
6.iostat -xz 1
iostat命令主要用于查看機(jī)器磁盤(pán)IO情況
r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫(xiě)次數(shù)和每秒讀寫(xiě)數(shù)據(jù)量(千字節(jié))。讀寫(xiě)量過(guò)大,可能會(huì)引起性能問(wèn)題。
await:IO操作的平均等待時(shí)間,單位是毫秒。這是應(yīng)用程序在和磁盤(pán)交互時(shí),需要消耗的時(shí)間,包括IO等待和實(shí)際操作的耗時(shí)。如果這個(gè)數(shù)值過(guò)大,可能是硬件設(shè)備遇到了瓶頸或者出現(xiàn)故障。
avgqu-sz:向設(shè)備發(fā)出的請(qǐng)求平均數(shù)量。如果這個(gè)數(shù)值大于1,可能是硬件設(shè)備已經(jīng)飽和(部分前端硬件設(shè)備支持并行寫(xiě)入)。
%util:設(shè)備利用率。這個(gè)數(shù)值表示設(shè)備的繁忙程度,經(jīng)驗(yàn)值是如果超過(guò)60,可能會(huì)影響IO性能(可以參照IO操作平均等待時(shí)間)。如果到達(dá)100%,說(shuō)明硬件設(shè)備已經(jīng)飽和。
注:如果顯示的是邏輯設(shè)備的數(shù)據(jù),那么設(shè)備利用率不代表后端實(shí)際的硬件設(shè)備已經(jīng)飽和。值得注意的是,即使IO性能不理想,也不一定意味這應(yīng)用程序性能會(huì)不好,可以利用諸如預(yù)讀取、寫(xiě)緩存等策略提升應(yīng)用性能
7.free -m
free命令可以查看系統(tǒng)內(nèi)存的使用情況,-m參數(shù)表示按照兆字節(jié)展示。
最后兩列分別表示用于IO緩存的內(nèi)存數(shù),和用于文件系統(tǒng)頁(yè)緩存的內(nèi)存數(shù)。
注:
第二行-/+ buffers/cache,看上去緩存占用了大量?jī)?nèi)存空間。這是Linux系統(tǒng)的內(nèi)存使用策略,盡可能的利用內(nèi)存,如果應(yīng)用程序需要內(nèi)存,這部分內(nèi)存會(huì)立即被回收并分配給應(yīng)用程序。
如果可用內(nèi)存非常少,系統(tǒng)可能會(huì)動(dòng)用交換區(qū)(如果配置了的話(huà)),這樣會(huì)增加IO開(kāi)銷(xiāo)(可以在iostat命令中提現(xiàn)),降低系統(tǒng)性能。
8.sar -n DEV 1
sar命令在這里可以查看網(wǎng)絡(luò)設(shè)備的吞吐率。
在排查性能問(wèn)題時(shí),可以通過(guò)網(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ù),既通過(guò)connect調(diào)用創(chuàng)建的TCP連接;
passive/s:每秒遠(yuǎn)程發(fā)起的TCP連接數(shù),即通過(guò)accept調(diào)用創(chuàng)建的TCP連接;
retrans/s:每秒TCP重傳數(shù)量;
TCP連接數(shù)可以用來(lái)判斷性能問(wèn)題是否由于建立了過(guò)多的連接,進(jìn)一步可以判斷是主動(dòng)發(fā)起的連接,還是被動(dòng)接受的連接。TCP重傳可能是因?yàn)榫W(wǎng)絡(luò)環(huán)境惡劣,或者服務(wù)器壓力過(guò)大導(dǎo)致丟包。
10.top
top命令包含了前面好幾個(gè)命令的檢查的內(nèi)容。比如系統(tǒng)負(fù)載情況(uptime)、系統(tǒng)內(nèi)存使用情況(free)、系統(tǒng)CPU使用情況(vmstat)等。
因此通過(guò)這個(gè)命令,可以相對(duì)全面的查看系統(tǒng)負(fù)載的來(lái)源。同時(shí),top命令支持排序,可以按照不同的列排序,方便查找出諸如內(nèi)存占用最多的進(jìn)程、CPU占用率最高的進(jìn)程等。
但是,top命令相對(duì)于前面一些命令,輸出是一個(gè)瞬間值,如果不持續(xù)盯著,可能會(huì)錯(cuò)過(guò)一些線索。這時(shí)可能需要暫停top命令刷新,來(lái)記錄和比對(duì)數(shù)據(jù)。
常用系統(tǒng)服務(wù)
============
acpi-support 高級(jí)電源管理支持
acpid acpi守護(hù)程序.這兩個(gè)用于電源管理,非常重要
alsa 聲音子系統(tǒng)
alsa-utils
anacron cron的子系統(tǒng),將系統(tǒng)關(guān)閉期間的計(jì)劃任務(wù),在下一次系統(tǒng)運(yùn)行時(shí)執(zhí)行。
apmd acpi的擴(kuò)展
atd 類(lèi)似于cron的任務(wù)調(diào)度系統(tǒng)。建議關(guān)閉
binfmt-support 核心支持其他二進(jìn)制的文件格式。建議開(kāi)啟
bluez-utiles 藍(lán)牙設(shè)備支持
bootlogd 啟動(dòng)日志。開(kāi)啟它
cron 任務(wù)調(diào)度系統(tǒng),建議開(kāi)啟
cupsys 打印機(jī)子系統(tǒng)。
dbus 消息總線系統(tǒng)(message bus system)。非常重要
dns-clean 使用撥號(hào)連接時(shí),清除dns信息。
evms 企業(yè)卷管理系統(tǒng)(Enterprise Volumn Management system)
fetchmail 郵件用戶(hù)代理,用于收取郵件
gdm gnome登錄和桌面管理器。
gdomap
gpm 終端中的鼠標(biāo)支持。
halt 別動(dòng)它。
hdparm 調(diào)整硬盤(pán)的腳本,配置文件為“/etc/hdparm.conf”。
hibernate 系統(tǒng)休眠
hotkey-setup 筆記本功能鍵支持。支持類(lèi)型包括: HP, Acer, ASUS, Sony, Dell,和IBM。
hotplug and hotplug-net 即插即用支持,比較復(fù)雜,建議不要?jiǎng)铀?/p>
hplip HP打印機(jī)和圖形子系統(tǒng)
ifrename 網(wǎng)絡(luò)接口重命名腳本。如果您有十塊網(wǎng)卡,您應(yīng)該開(kāi)啟它
inetd在文件“/etc/inetd.conf”中,注釋掉所有你不需要的服務(wù)。如果該文件不包含任何服務(wù),那關(guān)閉它是很安全的。
klogd 重要。
linux-restricted-modules-common受限模塊支持。“/lib/linux-restricted-modules/”文件夾中的模塊為受限模塊。例如某些驅(qū)動(dòng)程序,如果您沒(méi)有使用受限模塊,就不需要開(kāi)啟它。
lvm 邏輯卷管理系統(tǒng)支持。
makedev 創(chuàng)建設(shè)備文件,非常重要。
mdamd 磁盤(pán)陣列
module-init-tools 從/etc/modules加載擴(kuò)展模塊,建議開(kāi)啟。
networking 網(wǎng)絡(luò)支持。按“/etc/network/interfaces”文件預(yù)設(shè)激活網(wǎng)絡(luò),非常重要。
ntpdate 時(shí)間同步服務(wù),建議關(guān)閉。
pcmcia pcmcia設(shè)備支持。
powernowd 移動(dòng)CPU節(jié)能支持
ppp and ppp-dns 撥號(hào)連接
readahead 預(yù)加載庫(kù)文件。
reboot 別動(dòng)它。
resolvconf 自動(dòng)配置DNS
rmnologin 清除nologin
rsync rsync守護(hù)程序
sendsigs 在重啟和關(guān)機(jī)期間發(fā)送信號(hào)
single 激活單用戶(hù)模式
ssh ssh守護(hù)程序。建議開(kāi)啟
stop-bootlogd 在2,3,4,5運(yùn)行級(jí)別中停止bootlogd服務(wù)
sudo 檢查sudo狀態(tài)。重要
sysklogd 系統(tǒng)日志
udev udev-mab 用戶(hù)空間dev文件系統(tǒng)(userspace devfilesystem)。重要
umountfs 卸載文件系統(tǒng)
urandom 隨機(jī)數(shù)生成器
usplash 開(kāi)機(jī)畫(huà)面支持
vbesave 顯卡BIOS配置工具。保存顯卡的狀態(tài)
xorg-common 設(shè)置X服務(wù)ICE socket。
adjtimex 調(diào)整核心時(shí)鐘的工具
dirmngr 證書(shū)列表管理工具,和gnupg一起工作。
hwtools irqs優(yōu)化工具
libpam-devperm 系統(tǒng)崩潰之后,用于修理設(shè)備文件許可的守護(hù)程序。
lm-sensors 板載傳感器支持
mdadm-raid 磁盤(pán)陳列管理器
screen-cleanup 清除開(kāi)機(jī)屏幕的腳本
xinetd 管理其他守護(hù)進(jìn)程的一個(gè)inetd超級(jí)守護(hù)程序
系統(tǒng)管理
========
一些細(xì)節(jié)
--------
Linux是大小寫(xiě)敏感的系統(tǒng),所有的命令、路徑、參數(shù)、變量……都區(qū)分大小寫(xiě)
您可以使用TAB鍵補(bǔ)全您的命令,無(wú)論任何時(shí)候,多按幾次TAB總會(huì)有所幫助
Shell的功能鍵能夠協(xié)助您更高效的編輯命令,請(qǐng)熟悉其鍵綁定,盡量使用它
命令由命令名、分隔符、參數(shù)、操作對(duì)象構(gòu)成
命令名標(biāo)識(shí)命令的功能,例如cp(copy)、mv(move)、rm(remove)……
有些命令包含一些子命令,您可以認(rèn)為它的命令名由兩個(gè)單詞構(gòu)成,例如“apt”軟件包管理系統(tǒng):
apt-get install 安裝一個(gè)軟件
apt-get remove 刪除一個(gè)軟件
分隔符為空格,多個(gè)連續(xù)的空格視為一個(gè)空格,下面兩個(gè)命令相同:
cp a b
cp a b
有一些特殊符號(hào)也屬于分隔符,例如管道(“|”)、重定向(“”、“”、“”)、后臺(tái)運(yùn)行(“”)、序列執(zhí)行(“”、“;”)。使用這些符號(hào)時(shí),您不需要再使用空格作為分隔符,例如:
ls -al|less
我們寫(xiě)為以下形式,只是為了您更容易的閱讀它:
ls -al | less
參數(shù)可以精細(xì)調(diào)節(jié)命令的行為,以“-”引導(dǎo),通常為參數(shù)名的首字母。許多軟件都可以使用“-h”參數(shù)來(lái)閱讀使用說(shuō)明,例如:
apt-get -h
您也可以使用參數(shù)的全名,一般以“--”引導(dǎo),例如:
apt-get --help
多數(shù)命令中,使用“-”引導(dǎo)多個(gè)字符,將會(huì)被視為多個(gè)參數(shù),例如:
apt-get -help
系統(tǒng)會(huì)解讀為以下命令
apt-get -h -e -l -p
少數(shù)命令的參數(shù),不需要以“-”引導(dǎo),或者使用“-”引導(dǎo)參數(shù)全名,例如:
ps aux
/etc/init.d/gdm start
mplayer -loop xxx
當(dāng)您需要對(duì)多個(gè)對(duì)象進(jìn)行操作時(shí),您可以使用空格分隔符將它們隔開(kāi):
touch 1 2 3 4 5 6
使用空格分隔的多個(gè)對(duì)象,視為一個(gè)整體,作為命令的一個(gè)操作對(duì)象:
mv 1 2 3 4 5 6 /home/
這個(gè)命令把“1 2 3 4 5 6”作為一個(gè)操作對(duì)象,移動(dòng)到另一個(gè)操作對(duì)象,“/home/”目錄
遞歸表示在子層次中重復(fù)相同操作。例如遞歸復(fù)制某目錄,不但復(fù)制當(dāng)前目錄及其下的所有文件;而且對(duì)當(dāng)前目錄的子目錄,也進(jìn)行遞歸復(fù)制的操作。
格式約定
--------
使用“[]”表示可選項(xiàng),實(shí)際輸入為方括號(hào)中的內(nèi)容,例如
ls [-al]
ls是必須的,參數(shù)不需要以方括號(hào)包圍起來(lái)。
使用“”表示必需項(xiàng),實(shí)際輸入為尖括號(hào)中的內(nèi)容
使用“|”表示“或”,以“|”分隔的項(xiàng)目不能同時(shí)使用,例如
tar [-z|j c|x vf] 歸檔文件 [源文件]
參數(shù)通常緊跟命令名,除非必要,在命令格式中,我們通常省略它們
系統(tǒng)信息
--------
uptime
聯(lián)機(jī)信息-時(shí)間,顯示如下
11:27pm up 9 days, 7:12, 3 user, load average: 0.07, 0.12,0.14
當(dāng)前系統(tǒng)時(shí)間 系統(tǒng)運(yùn)行時(shí)間 當(dāng)前在線用戶(hù)數(shù) 系統(tǒng)負(fù)荷 1分鐘前 5分鐘前 15分鐘前
w
聯(lián)機(jī)信息-已登錄用戶(hù),顯示如下
01:04:10 up 1:34, 2 users, load average: 0.25, 0.16, 0.11
uptime 信息
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user tty1 192.168.0.1 23:30 1:33 0.14s 0.12s -bash
用戶(hù)名 登錄方式 來(lái)源地址 登錄時(shí)間 發(fā)呆時(shí)間 資源占用 當(dāng)前任務(wù)
Tips:w [用戶(hù)名稱(chēng)] : 顯示某一用戶(hù)相關(guān)信息
who
聯(lián)機(jī)信息,常用參數(shù)
-r 運(yùn)行級(jí)別
whoami
顯示當(dāng)前用戶(hù)名
last
最近用戶(hù)登錄信息
-數(shù)字 使用數(shù)字作為參數(shù),控制顯示條目。例如
last -10 顯示10條紀(jì)錄
uname
系統(tǒng)信息
-s 內(nèi)核名稱(chēng)(默認(rèn)參數(shù))
-a 全部
-p CPU信息
-n 主機(jī)名
-r 內(nèi)核發(fā)行信息(版本號(hào))
-v 內(nèi)核版本信息
date
顯示、設(shè)定系統(tǒng)時(shí)間
-u 顯示格林尼洛時(shí)間(UTC)
MMDDhhmm[[CC]YY][.ss] 設(shè)定時(shí)間,需要管理員權(quán)限。例如: date 12292359
MM 月份 DD 天數(shù) hh 小時(shí) mm 分鐘 CC 年份前兩位 YY 年份后兩位 ss 秒鐘
秒鐘、年份為可選,例如: date 122923592006.59
+[%X]設(shè)定顯示格式,以下為date默認(rèn)輸出格式:
date +%Y年\ %m月\ %d日\(chéng) %A\ %H:%M:%S\ %Z
格式控制
%n 換行
%t 制表符
小時(shí)
%H(00~23) %I(01~12) %k(0~23) %l(1~12) %p(AM|PM)
分、秒
%M分鐘(00~59)
%S秒(00..61)
%T(hh:mm:ss) %r(hh:mm:ss [AM|PM])
%s 從1970年1月1日00:00:00 UTC到目前為止的秒數(shù)
%X(%H:%M:%S)
%Z時(shí)區(qū)
星期
%a(Sun~Sat) %A(Sunday~Saturday) %w : 一周中的第幾天 (0..6)
年份
%Y(0000~9999) %y(00~99)
月份
%m(01~12) %b %h(Jan~Dec) %B(January~December)
日期
%d(01~31) %j(001~366)
%x(本地格式mm/dd/yy) %D(mm/dd/yy) %c
一年中的第幾周
%U(00~53)以Sunday為一周的第一天 %W(00~53)以Monday為一周的第一天
cal
顯示日歷
文件管理
--------
鏈接
為當(dāng)前文件建立在其它路徑中的訪問(wèn)方法。例如將系統(tǒng)中其它位置的可執(zhí)行文件,鏈接到“/usr/local/bin”目錄下,使用命令調(diào)用。
ls [路徑]
顯示當(dāng)前目錄文件列表
--color 不同屬性以不同顏色顯示(默認(rèn)參數(shù))
-a 全部顯示
-i 顯示inode值
-l 詳細(xì)信息
-F 顯示文件類(lèi)型后綴 目錄/ 鏈接@ 可執(zhí)行文件* 端口文件= 管道文件|
-A 顯示隱藏文件
-R 遞歸顯示子目錄文件列表
-S 按文件大小排序
-t 按修改時(shí)間排序
-u 按訪問(wèn)時(shí)間排序
-d 只顯示目錄,不遞歸顯示目錄下的文件
cd [目錄路徑] | [特殊路徑]
切換目錄
目錄路徑可以使用絕對(duì)路徑或者相對(duì)路徑
特殊路徑:
~ $HOME目錄(默認(rèn)值)
- 上一次目錄
.. 上一級(jí)目錄
. 當(dāng)前目錄
Tips:您可以通過(guò)修改“/etc/environment”文件,來(lái)定義$CDPATH變量,設(shè)定“cd”命令的搜索路徑。
pwd
顯示當(dāng)前路徑
file 文件名
顯示文件類(lèi)型
-i 顯示mime類(lèi)型
du [文件名]
計(jì)算文件或目錄空間占用
-h 人性化顯示。自動(dòng)以G、M、K為單位顯示占用空間大小
-l 重復(fù)計(jì)算硬鏈接文件大小
-L 計(jì)算符號(hào)鏈接文件大小
-a 顯示當(dāng)前目錄子目錄中的文件
-c 顯示文件數(shù)
less 文件名
瀏覽文件,使用VI和Emacs兩種風(fēng)格的鍵綁定。以下為VI風(fēng)格鍵綁定
Ctrl+f(orward) 向下翻一頁(yè) Ctrl+d(own) 向下翻半頁(yè)
Ctrl+b(ackward) 向上翻一頁(yè) Ctrl+u(p) 向上翻半頁(yè)
/ 查找 q(uit) 退出
touch 目標(biāo)文件
創(chuàng)建一個(gè)空文件
cp 源文件目標(biāo)目錄|文件
將源文件復(fù)制為目錄文件,或者將源文件復(fù)制到目標(biāo)目錄。多個(gè)源文件使用空格分隔
cp 源目錄目標(biāo)目錄
將源目錄復(fù)制到目標(biāo)目錄中,如果復(fù)制多個(gè)源目錄,需要使用“-R”參數(shù)
-a 相當(dāng)于-dpr參數(shù)
-d 保留鏈接
-f 強(qiáng)制復(fù)制,覆蓋目標(biāo)文件
-i 覆蓋時(shí)詢(xún)問(wèn)用戶(hù)
-p 保留修改時(shí)間和訪問(wèn)權(quán)限
-r -R 遞歸復(fù)制(目錄=目錄)
-l 創(chuàng)建鏈接
-v 顯示過(guò)程
rm 目標(biāo)目錄|文件
-r -R 遞歸刪除
-f 強(qiáng)制刪除(無(wú)需確認(rèn),直接刪除。慎用?。?/p>
-i 交互式刪除(詢(xún)問(wèn)用戶(hù))
rmdir 目標(biāo)目錄
刪除目錄時(shí),建議您使用“rm -r”命令
mv 源文件目標(biāo)目錄|文件
相當(dāng)于cp后刪除源文件,也可以作為“重命名”使用。
mv 源目錄目標(biāo)目錄
-r -R 遞歸
ln 源文件鏈接
-s 符號(hào)鏈接
-f 強(qiáng)制鏈接,覆蓋目標(biāo)文件
-i 覆蓋前詢(xún)問(wèn)用戶(hù)
文件操作
--------
nano
一個(gè)簡(jiǎn)單輕便的文本編輯器,使用Emacs風(fēng)格的鍵綁定。
split 源文件 [目標(biāo)文件名前綴]
將源文件按一定規(guī)則分割成若干個(gè)目標(biāo)文件。默認(rèn)文件名前綴為“x”
-行數(shù) 按行數(shù)分割文件
-l 行數(shù) 同上
-b 字節(jié)按大小分割文件??梢允褂胋、k、m作單位,不指定單位的情況下,默認(rèn)單位為b
-C 字節(jié) 按大小分割文件,并盡量保持每行的完整
示例:
split -C 100k file.split x
cat 文件名
輸出文件內(nèi)容。用空格分隔多個(gè)文件名,可以將多個(gè)文件內(nèi)容連接到一起輸出。使用重定向合并為一個(gè)文件
-n 在輸出中添加行號(hào)
-b 在輸出中添加行號(hào),空行不編號(hào)
-s 將兩行或以上的空行,合并為一個(gè)空行
示例:
cat xaa xab xac file.split
sort [-o 輸出文件] [-t分隔字符][+起始字段 -結(jié)束字段] [文件]
對(duì)文本內(nèi)容排序
-m 合并文件
-c 檢查文件是否已按規(guī)則排序
-b 忽略行首空格字符
-u 忽略?xún)?nèi)容重復(fù)行
-f 忽略大小寫(xiě)
-l 忽略非打印字符
-M 作為月份比較
-d 按字典順序排序,按照字母、數(shù)字、空格、制表符排序
-r 逆序輸出
more
查看文件內(nèi)容,我們建議您使用“l(fā)ess”
diff 文件名
比較文件
cksum [文件名]
計(jì)算文件的CRC值。不指定文件名則從標(biāo)準(zhǔn)輸入設(shè)備讀入數(shù)據(jù),例如:
echo xxx | cksum
md5sum [文件名]
計(jì)算文件的md5值。同上
權(quán)限管理
--------
一個(gè)文件主要包含下列屬性,“l(fā)s -l”
- rwx rwx rwx user group date filename
111 101 101
其中,第一組為歸屬用戶(hù)的權(quán)限,第二組為歸屬群組的權(quán)限,第三組為其它用戶(hù)群組的權(quán)限。user為文件的歸屬用戶(hù),group為文件的歸屬群組,date為日期信息,filename為文件名。
可以使用3位的二進(jìn)制數(shù)字來(lái)描述一組權(quán)限,某一權(quán)限對(duì)應(yīng)的數(shù)字為1,則表示具有該種權(quán)限,為0,則不具有該種權(quán)限。
對(duì)于文件夾,必須擁有它的可執(zhí)行權(quán)限,才能夠使用“cd”命令進(jìn)入該文件夾;擁有可讀權(quán)限,才能夠使用“l(fā)s”命令查看該文件夾的文件列表。
root用戶(hù)擁有最高權(quán)限。
使用二進(jìn)制數(shù)字來(lái)描述一組權(quán)限,雖然非常直觀,但是3組權(quán)限需要用9位數(shù)來(lái)表示,使用不夠方便。因此我們將三組權(quán)限使用3位8進(jìn)制數(shù)字來(lái)表示。它們的對(duì)應(yīng)關(guān)系為:
r 100 4
w 010 2
x 001 1
將這三位8進(jìn)制數(shù)字相加的結(jié)果,就可以表示該組權(quán)限的具體內(nèi)容,例如:
7=4+2+1=rwx
5=4+1=rx
755=4+2+1 4+1 4+1=rwx r-x r-x
我們還可以使用“a、u、g、o”表示歸屬關(guān)系,使用“=、+、-”表示權(quán)限變化,使用“r、w、x”表示權(quán)限內(nèi)容,
a 所有用戶(hù) u 歸屬用戶(hù) g 歸屬群組 o 其它用戶(hù)
= 具有權(quán)限 + 增加權(quán)限 - 去除權(quán)限
r 可讀權(quán)限 w 可寫(xiě)權(quán)限 x 可執(zhí)行權(quán)限
例如:
a+x 給所有用戶(hù)增加可執(zhí)行權(quán)限
go-wx 將歸屬群組和其它用戶(hù)的可寫(xiě)、可執(zhí)行權(quán)限去掉
u=rwx 歸屬用戶(hù)具有可讀、可寫(xiě)、可執(zhí)行權(quán)限
chmod 權(quán)限表達(dá)式文件|目錄
改變文件的權(quán)限。權(quán)限的表達(dá)式可以使用三位8進(jìn)制數(shù)字表示,或者使用augo+-=rxw-s來(lái)表示
-R 遞歸
-v 顯示過(guò)程
-c 類(lèi)似“-v”,僅顯示更改部分
--reference=參考文件或目錄以指定文件為參考改變權(quán)限
示例:
chmod -R a+x path
chmod -Rv 755 path
chown 歸屬用戶(hù)[:歸屬群組]文件|目錄
改變文件的歸屬用戶(hù)。可以使用用戶(hù)名或者UID
-R 遞歸
-v 顯示過(guò)程
-c 類(lèi)似“-v”,僅顯示更改部分
--reference=參考文件或目錄以指定文件為參考改變權(quán)限
示例:
chown user:admin path
chown -R user.admin path
chown user path
chgrp 歸屬群組文件|目錄
改變文件的歸屬群組。可以使用群組名或者GID
參數(shù)同上
SUID、SGID、Sticky bit
某些情況下,需要以可執(zhí)行文件歸屬用戶(hù)的身份執(zhí)行該文件,可以為該文件設(shè)置SUID。同樣,設(shè)置SGID能夠以該文件歸屬群組的身份執(zhí)行它。
例如:用戶(hù)自行設(shè)定密碼。
出于安全方面的考慮,“/etc/shadow”只能由root用戶(hù)直接修改。
-rw------- root root /etc/shadow
這個(gè)時(shí)候,可以為程序“/usr/bin/passwd”設(shè)置SUID,當(dāng)普通用戶(hù)執(zhí)行“passwd”命令時(shí),便能夠以該程序歸屬用戶(hù)root的身份修改“/etc/shadow”文件。而“passwd”程序自身帶有身份驗(yàn)證機(jī)制,不能通過(guò)驗(yàn)證時(shí)拒絕執(zhí)行,從而保證了安全。
ls -l /usr/bin/passwd
-r-s--x--x root root /usr/bin/passwd
我們發(fā)現(xiàn),歸屬用戶(hù)的可執(zhí)行權(quán)限位使用“s”,表示SUID。同樣,歸屬群組的可執(zhí)行權(quán)限位使用“s”,表示SGID。
任何用戶(hù)或群組都擁有“其它用戶(hù)”的權(quán)限,所以不需要以“其它用戶(hù)”身份執(zhí)行文件,其它用戶(hù)的可執(zhí)行權(quán)限位便不會(huì)出現(xiàn)“s”。該權(quán)限位可能出現(xiàn)的屬性為“t”,也就是粘著位Stickybit。
ls -ld /tmp
drwxrwxrwt root root /tmp
粘著位表示任何用戶(hù)都可能具有寫(xiě)權(quán)限,但只有該歸屬用戶(hù)或root用戶(hù)才能夠刪除
SUID、SGID、Sticky bit也可以像權(quán)限一樣,使用一個(gè)八位數(shù)表示,如下:
4 SUID
2 SGID
1 Sticky bit
通過(guò)在“chmod”命令中使用四個(gè)八位數(shù)的表達(dá)式,如“4755”,用第一位表示SUID、SGID、或Stickybit,便能夠?yàn)槲募O(shè)置這些特殊權(quán)限。
示例:
chmod -R 4755 path
lsattr [路徑]
查看文件的特殊屬性
-a 全部顯示
-d 只顯示目錄
-R 遞歸
特殊屬性包括:
a:僅供附加用途
b:不更新最后存取時(shí)間
c:壓縮后存放
d:排除在傾倒操作之外
i:不得任意更動(dòng)文件或目錄
s:保密性刪除文件或目錄
S:即時(shí)更新文件或目錄
u:預(yù)防以外刪除
chattr+|-|=abcdisSu路徑
-R 遞歸
-V 顯示過(guò)程