Linux系統(tǒng)命令指南
$ du block-size=512 Documents
209 Documents/jj
1146 Documents/John
1363 Documents
在默認(rèn)情況下,du 還為每個(gè)子目錄遞歸地打印信息。通過使用 max-depth=N 選項(xiàng)可以限制這種操作,其中 N 等于被報(bào)告的最大級(jí)數(shù):
$ du max-depth=2 .
$ du max-depth=2 | sort -n
4 ./.xemacs
4 ./public_html
105 ./Documents/jj
573 ./Documents/Ian
682 ./Documents
2420 ./jdevhome/system
8350 ./jdevhome/system9.0.3.1035
13483 ./jdevhome/mywork
24252 ./jdevhome
...
du 報(bào)告目錄和子目錄的空間使用情況,而 df 報(bào)告已安裝文件系統(tǒng)的磁盤空間使用情況:
$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda6 4195632 1983656 2211976 48% /
/dev/hda5 14607 3778 10075 28% /boot
/dev/hda9 937372 494028 443344 53% /home
/dev/hda8 6297248 3876880 2420368 62% /opt
shmfs 256220 0 256220 0% /dev/shm
在這里,df 報(bào)告了五個(gè)文件系統(tǒng)的狀態(tài)。與 du 類似,df 利用 -h 選項(xiàng)提供人類可讀的輸出:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda6 4.0G 1.9G 2.1G 48% /
/dev/hda5 14M 3.7M 9.8M 28% /boot
/dev/hda9 915M 476M 440M 52% /home
/dev/hda8 6.0G 3.7G 2.3G 62% /opt
shmfs 250M 0 250M 0% /dev/shm
df 命令還允許您利用 -block-size=SIZE 選項(xiàng)來指定塊的大小。
fdisk 命令是 Linux 的分區(qū)表操作命令。與 du 和 df 不同,沒有 root 用戶權(quán)限時(shí)不能運(yùn)行該命令。如果指定了 -l 選項(xiàng),則可以將它僅用于報(bào)告的目的。它提供了您的整個(gè)分區(qū)表的完整視圖,而不僅僅是您使用 df 所看到的擴(kuò)展 Linux 分區(qū):
# fdisk -l
Disk /dev/hda:240 heads, 63 sectors, 1940 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 286 2162128+ c Win95 FAT32 (LBA)
/dev/hda2 * 288 1940 12496680 5 Extended
/dev/hda5 288 289 15088+ 83 Linux
/dev/hda6 290 844 4195768+ 83 Linux
/dev/hda7 845 983 1050808+ 82 Linux swap
/dev/hda8 984 1816 6297448+ 83 Linux
/dev/hda9 1817 1940 937408+ 83 Linux
進(jìn)程監(jiān)視
在繁忙的多用戶系統(tǒng)中,進(jìn)程監(jiān)視也是 Linux 系統(tǒng)管理員的一項(xiàng)重要職責(zé)。在這方面,ps 和 top 是兩個(gè)最有用的命令。
ps 命令提供了當(dāng)前運(yùn)行進(jìn)程的快照。
生動(dòng)翔實(shí)的一課
以下是 ps 的最簡(jiǎn)單形式:
$ ps
PID TTY TIME CMD
3884 pts/1 00:00:00 bash
3955 pts/2 00:00:00 more
3956 pts/5 00:00:05 sqlplus
PID 是進(jìn)程的標(biāo)識(shí)號(hào)。
TTY 是進(jìn)程所屬的終端控制臺(tái)。
TIME 列是進(jìn)程所使用的總的 CPU 時(shí)間。
CMD 列列出正在執(zhí)行的命令行。
使用帶有 -ef 選項(xiàng)的 ps,返回系統(tǒng)中所有用戶的所有進(jìn)程的完整列表。如果您將此 ps 命令的結(jié)果傳送到 grep 中,則該結(jié)果更易于查看。例如:
$ ps -ef | grep oracle
UID PID PPID C STIME TTY TIME CMD
oracle 1633 1 0 13:58 ?00:00:00 ora_pmon_ora1
oracle 1635 1 0 13:58 ?00:00:00 ora_dbw0_ora1
oracle 1637 1 0 13:58 ?00:00:01 ora_lgwr_ora1
oracle 1639 1 0 13:58 ?00:00:02 ora_ckpt_ora1
oracle 1641 1 0 13:58 ?00:00:02 ora_smon_ora1
oracle 1643 1 0 13:58 ?00:00:00 ora_reco_ora1
oracle 1645 1 0 13:58 ?00:00:00 ora_cjq0_ora1
oracle 1647 1 0 13:58 ?00:01:18 ora_qmn0_ora1
oracle 1649 1 0 13:58 ?00:00:00 ora_s000_ora1
oracle 1651 1 0 13:58 ?00:00:00 ora_d000_ora1
注意,當(dāng)您將 ps 的輸出傳送到 grep 命令時(shí),列標(biāo)題并不象在 ps 命令本身所使用時(shí)那樣正常地顯示。為便于說明,標(biāo)題位于輸出的上方,以便清楚地顯示其聯(lián)系。
雖然 uid 通常是指數(shù)字型的標(biāo)識(shí),但在第一列下指定的是用戶名,標(biāo)記為 UID。
PPID 是父進(jìn)程的標(biāo)識(shí)號(hào)。對(duì)于 Oracle 進(jìn)程,這里的標(biāo)識(shí)號(hào)為 1 — 它是 init 進(jìn)程(所有進(jìn)程的父進(jìn)程)的 id,因?yàn)樵诒鞠到y(tǒng)中安裝的 Oracle 是作為登錄進(jìn)程的一部分而啟動(dòng)的。
標(biāo)為 C 的列是由 CPU 用于計(jì)算執(zhí)行優(yōu)先級(jí)的因子。
STIME 是指進(jìn)程的啟動(dòng)時(shí)間。
問號(hào)表示這些進(jìn)程不屬于任何 TTY,因?yàn)樗鼈兪怯上到y(tǒng)啟動(dòng)的。
以下是 ps 命令帶有某些不同選項(xiàng)的另一個(gè)示例。注意,其中很多列與執(zhí)行帶有 -ef 選項(xiàng)的 ps 時(shí)的列相同:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bluh 4024 0.0 0.2 2240 1116 pts/1 S 20:59 0:00 su bluher
bluh 4025 0.0 0.3 2856 1668 pts/1 S 20:59 0:00 bash
bluh 4051 0.0 0.2 2488 1504 pts/1 R 21:01 0:00 ps aux
bluh 4052 0.0 0.1 1636 600 pts/1 S 21:01 0:00 grep bluher
除了提供重要的診斷信息,ps 命令還經(jīng)常用于找出失控進(jìn)程的 PID。例如,您的一個(gè)用戶在 SQL*Plus 會(huì)話中輸入一個(gè)笛卡爾聯(lián)接。您可以執(zhí)行以下的 ps 命令來找出其 PID:
$ ps -ef | grep bluher
...
bluher 4068 4064 0 21:14 pts/6 00:00:00 less
bluher 4112 3945 0 21:28 pts/5 00:08:42 sqlplus
...
然后您可以使用以下命令將其終止:
$ kill 4112
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論