![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
|
主題工具 | 顯示模式 |
|
|
#2 (permalink) | ||||||||||||
|
長老會員
![]() |
Linux 文件命令精通指南(下)
========================================================== 在「Linux 文件命令精通指南(上)」中,我們討論了利用最基礎和最常用 Linux 文件命令所需的基本訊息。在本文中,我將對 Linux 系統命令作同樣的討論。 我們在前一篇文章中瞭解到,在 Linux/UNIX 世界中,一切都被看作文件,包括系統管理命令。單獨對於組織而言,我們在本系列的第一部分中討論了文件命令,並將在本文中提供最有用的系統診斷和維護命令。 對於文件命令,我們在此處詳盡討論了某些相當簡單和直觀的管理命令。而只描述了其他較複雜命令的功能,以便在您需要使用時,知道存在這些命令及其用途。本文不涉及對每個命令使用背後的基本原理的詳細討論,但是我們將討論最基本和最有用的命令,這些命令用於監視和管理印表機服務、文件系統、磁碟和進程。 有關超級用戶的更多訊息 這裡討論的很多命令可以由常規用戶在其自己的文件和進程中執行。但是,某些命令,如 fdisk,需要有 root 權限才能運行。 為了您的系統的完整性,建議您避免直接以 "root" 登錄到系統中。相反,通常更適合以常規用戶登錄,然後執行 su 或從 X window 執行 sux 命令來運行系統管理功能。(Sux 為您提供 X window 環境以及 root 權限。)當您以 root 用戶登錄時,您會始終知道您處於這種狀態,因為您的提示符變為「#」。 超級用戶能夠使用 sudo,有選擇地將那些通常為 root 用戶或其他特殊用戶所保留的權限分配給一個不同的常規用戶。root 用戶可以定義實際和有效的用戶和組標識號 uid 和 gid,以便與預期用戶的標識相匹配。這種預期用戶可以是(但不必是)被允許運行該命令的用戶。 換言之,超級用戶可以允許其他用戶執行某個命令,但也可以確定由進程所產生的任何結果文件應該屬於 root 用戶或任何由超級用戶指定的其他用戶。Sudo 權限一經分配,則只需要用戶使用自己的口令進行驗證,而不需要 root 用戶口令。 通用命令 從技術上講,Uname、diff、date、sort 和 uniq 應該看作文件命令,但由於它們經常用於診斷和維護例程的系統管理方面,在這裡解釋它們更有意義。 Uname Uname 提供了常規系統訊息。當指定 -a 選項時,顯示所有可用訊息: $ uname -a Linux linux 2.4.18-4GB #1 Wed Mar 27 13:57:05 UTC 2002 i686 unknown 在這裡我們從左向右看到常規的系統訊息。每條訊息都有自己的選項(在下面的圓括號中),可以單獨顯示: 操作系統名稱為 Linux(-s)。 本機的網絡節點名為 linux (-n)。 操作系統發佈版本為 4.5.18-4GB (-r)。 操作系統版本為 #1 Wed Mar 27 13:57:05 UTC 2002 (-v)。 機器類型為 i686 (-m)。 這裡的處理器類型 (-p) 為未知。 類似地,stty 顯示關於您的終端設定的訊息: $ stty -a speed 38400 baud; rows 40; columns 103; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke 第二行和第三行顯示了將在命令行分別調用的特殊字符和鍵序列。例如,"^Z" 即 CNTRL-Z 在本系統中發送一個終端休止符。退出符號以 "^\" 即 CNTRL-\ 發送,而我們可以將其改為 "^X",如下所示: $ stty quit ^X 在這種情況下,您實際要輸入 ^ 符號,而不是 CNTRL 鍵。這種改變只在目前窗口中起效。為了使這種改變永久生效,需要在您的 .bashrc 文件中輸入該語句。 Diff 和 Date。顧名思義,Diff 比較兩個文件。它返回那些導致文件不同的行,並返回關於如何使文件變得相同的一些含義隱晦的輸出: $ diff test.out test2.out 0a1 > Another test. 在這裡我們被告知,需要將 "Another test." 這一行添加到 test.out,以便使它與 test2.out 相似。第一個字符 "0" 是要在 test.out 中編輯的行號;"a" 表示該行應該被添加到 test.out,以便與 test2.out 的第一行 "1" 相匹配。如果我們需要更改 test.out,則第二個字符也可以是 "c",而如果我們需要從 test.out 中刪除一些內容,則第二個字符是 "d"。 您可能希望使一個文件與另一個文件相似,以便為某些程式碼提供修正。diff 還經常作為分析工具,用於驗證程序或腳本 — 例如 sed 腳本 — 的輸出是否是所預期的輸出。 date 命令可用於顯示或設定日期。如果用戶具有超級用戶權限,則他或她可以通過在以下命令中提供一個數字型字符串來設定日期: $ date 0101010004 此命令將日期設定為 2004 年 (04) 1 月 1 日 (0101) 凌晨 1 時 (0100)。 但是,任何用戶可以用所需的格式來顯示日期。注意在格式序列之前需要一個加號 "+"。如果沒有出現此命令的預期輸出,則嘗試將它包含在單引號中: $ date +'%H%M%S' 204748 您可以在序列中包含空格,這時您需要使用雙引號: $ date +"%H %M %S" 20 47 51 在日期的主頁上列有三十多種不同的格式序列,這些序列可以按需要結合起來,以獲得您最後的輸出格式。 date 的輸出還可以用於腳本中,如: $ date -d '2 day' Thu Jan 29 19:02:02 EST 2004 -d 選項指示 date 顯示其後字符串中所描述的時間。在上例中,我們要求顯示從現在起(2004 年 1 月 27 日)兩天後的日期。我們也可以要求顯示三天前的日期,其命令為: $ date -d '-3 day' Sun Jan 25 20:56:59 EST 2004 date 多種功能的另一個示例是能夠向其輸出附加字符串,為生成唯一的文件名提供了一種便利的方法。 $ ls -l | cat > $(date +ls_%d%b%y%H%M.out) $ ls ls_*.out ls_04Feb041633.out 在這裡,我們將一個長文件列表的輸出傳送給 cat,它將我們的輸出再傳送到一個名為 ls_04Feb041609.out 的文件。注意我們為文件名使用了一個變量,由美元符號 "$" 表示。依次將 "ls_" 和 ".out" 附加到日期,其格式為月份中的日 (%d)、本地的月份名稱縮寫 (%b)、年份的最後兩位數字 (%y)、小時 (%H) 和分鐘 (%M),從而產生此文件名。 Sort 和 Uniq。 您可以從管道或從命令行所指定的文件對文本文件的行進行 sort 操作。除非另外指定,sort 對多列輸出的第一列進行操作。在預設情況下,除非使用 -n 選項,數字型的列按字母順序排序。 Sort 列可以用兩種不同的格式指定。如果使用 -k 選項,則列的位置從 1 開始進行編號。您還可以使用 +POS1 格式,從第一列編號為零開始進行列的編號。以下兩個命令產生相同的輸出: $ ls -l *.out | sort +5 -7 $ ls -l *.out | sort -k 6,8 -rw-r--r-- 1 bluher users 375 Dec 5 2002 fdisk.out -rw-r--r-- 1 bluher users 2447 Dec 28 20:15 ls.out -rw-r--r-- 1 bluher users 590 Jan 4 21:24 greps.out -rw-r--r-- 1 bluher users 78 Jan 4 21:25 sgrep.out ... 在預設情況下,sort 命令的列分隔符是空格和製表符。可以使用 -t SEP 選項指定其他分隔符,其中 SEP 是您指定的分隔符號。sort 的預設順序是從最低到最高,利用 -r 選項可以將順序顛倒。 Sort 可用於很多不同的任務。例如,它可用於對文件輸出進行排序(如 /etc/passwd),或者如我們在下面所看到的那樣,對 du 的輸出進行排序。當使用 -m 選項時,sort 將文件合併,實際上並沒有對它們進行排序。但是,如果您希望將它們排序,就應該在文件合併前對它們排序。 Sort 經常與 uniq 命令一起使用,從已排序的文件中刪除完全相同的行。uniq 命令在管道中經常跟在 sort 命令的後面,還可以使用 -c 選項來計算某一行所出現的次數,或者使用 -d 選項,只報告完全相同的行: $ sort -m test.out test2_sort.out | uniq -c 1 Another test. 1 Testing testing 2 This is a test. 在這裡我們合併兩個文件 test.out 和 test2_sort.out。然後我們使用 -c 選項,將輸出傳送到 uniq,這樣最後的結果是按字母順序排列的列表,完全相同的行被刪除,並帶有一個關於每行出現頻率的報告。 印表機控制 在多數情況下,印表機命令的使用相對較為明確。通過在 lpr 命令後面指定文件名,將作業發送到印表機。如果沒有提供文件名,則假定使用標準輸入。使用 lpq 命令,您可以獲得關於發送到印表機的作業的狀態報告。當您指定作業號時,Lprm 將作業從行印表機後台列印隊列中刪除。 引用:
磁碟訊息 無論您是維護自己的系統還是支持具有很多用戶的企業,監視磁碟空間都是系統管理員更重要的職責之一。du、df 和 fdisk 命令提供了可用磁碟空間的不同視圖。 du 命令提供對每個目錄的文件空間使用情況的評估。在預設情況下,測量的單位是塊的數目,塊的大小通常在安裝您的系統時確定。 在以下的示例中,系統是使用 1024 字節的塊安裝的。如果沒有指定目錄,則 du 開始對目前目錄進行計算。-h 選項以易於讀懂的形式提供大小的值: 引用:
引用:
引用:
引用:
引用:
fdisk 命令是 Linux 的分區表操作命令。與 du 和 df 不同,沒有 root 用戶權限時不能運行該命令。如果指定了 -l 選項,則可以將它僅用於報告的目的。它提供了您的整個分區表的完整視圖,而不僅僅是您使用 df 所看到的擴展 Linux 分區: 引用:
在繁忙的多用戶系統中,進程監視也是 Linux 系統管理員的一項重要職責。在這方面,ps 和 top 是兩個最有用的命令。 ps 命令提供了目前運行進程的快照。 生動詳實的一課 引用:
TTY 是進程所屬的終端控制台。 TIME 列是進程所使用的總的 CPU 時間。 CMD 列列出正在執行的命令行。 使用帶有 -ef 選項的 ps,返回系統中所有用戶的所有進程的完整列表。如果您將此 ps 命令的結果傳送到 grep 中,則該結果更易於查看。例如: 引用:
雖然 uid 通常是指數字型的標識,但在第一列下指定的是用戶名,標記為 UID。 PPID 是父進程的標識號。對於 Oracle 進程,這裡的標識號為 1 — 它是 init 進程(所有進程的父進程)的 id,因為在本系統中安裝的 Oracle 是作為登錄進程的一部分而啟動的。 標為 C 的列是由 CPU 用於計算執行優先級的因子。 STIME 是指進程的啟動時間。 問號表示這些進程不屬於任何 TTY,因為它們是由系統啟動的。 以下是 ps 命令帶有某些不同選項的另一個示例。注意,其中很多列與執行帶有 -ef 選項的 ps 時的列相同: 引用:
引用:
$ kill 4112 常規用戶可以看到所有的系統進程,但他們只能終止他們自己擁有的進程。 Ps 只為您提供目前進程的快照。要即時查看最活躍的進程,可使用 top。Top 實時地提供進程訊息。它還擁有交互式的狀態,允許用戶輸入命令,如 n 後面跟有 5 或 10 等數字。其結果是指示 top 顯示 5 或 10 個最活躍的進程。Top 持續運行,直到您按 "q" 退出 top 為止。 以下是 top 的部分顯示: 引用:
看來應該以 shutdown 命令來結束本次討論。與本文以及上一篇文章中所討論的許多命令一樣,通常有一種 GUI 形式的替代方法可以關閉您的系統。但是,當您需要手動關閉時,您可以使用以下命令立即進行關閉: $ shutdown -h now 您可以使用以下命令手動地重新啟動系統: $ shutdown -r now 注意這兩個命令都需要指定時間。您可以指定 "now" 或使用帶有時間秒數的 -t 選項。 我們在這兩篇文章中討論了大量內容,但我們絕對無法涵蓋 Linux 可能具有的全部內容。我們沒有討論的命令還有很多,而我們沒有看到的命令選項則更多。但是,在這裡我們希望您至少找到了開始管理 Linux 系統所需的最少限度的工具。 作者簡介 Sheryl Calish 是 Blue Heron Consulting 的一位專門研究 Linux 的 Oracle 開發人員。她還是 Central Florida Oracle Users Group 的基金主席和 IOUG Linux SIG 的銷售主席。 |
||||||||||||
|
|
送花文章: 1,
|
|
|
相似的主題
|
||||
| 主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
| 100個最佳Linux站點 | psac | 網路疑難應用技術研討區 | 6 | 2005-03-03 08:31 AM |
| 100個最佳Linux站點 | 飛鳥 | 網路疑難應用技術研討區 | 7 | 2004-07-03 11:43 PM |
| 理解 GNU/Linux | psac | 網路疑難應用技術研討區 | 13 | 2004-04-16 12:17 PM |
| 100個最佳Linux站 | aacced | 網路疑難應用技術研討區 | 0 | 2003-11-14 06:49 PM |