在“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 = <undef>; eol2 = <undef>; 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)123456下一頁