亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

Linux 系統(tǒng)命令精通指南

添加時間:2011-5-17  添加: admin 

在“Linux 文件命令精通指南”中,我們討論了利用最基礎(chǔ)和最常用 Linux 文件命令所需的基本信息。在本文中,我將對 Linux 系統(tǒng)命令作同樣的討論。

 
  對于文件命令,我們在此處詳盡討論了某些相當(dāng)簡單和直觀的管理命令。而只描述了其他較復(fù)雜命令的功能,以便在您需要使用時,知道存在這些命令及其用途。本文不涉及對每個命令使用背后的基本原理的詳細(xì)討論,但是我們將討論最基本和最有用的命令,這些命令用于監(jiān)視和管理打印機(jī)服務(wù)、文件系統(tǒng)、磁盤和進(jìn)程。

  有關(guān)超級用戶的更多信息

  這里討論的很多命令可以由常規(guī)用戶在其自己的文件和進(jìn)程中執(zhí)行。但是,某些命令,如 fdisk,需要有 root 權(quán)限才能運(yùn)行。

  為了您的系統(tǒng)的完整性,建議您避免直接以 "root" 登錄到系統(tǒng)中。相反,通常更適合以常規(guī)用戶登錄,然后執(zhí)行 su 或從 X window 執(zhí)行 sux 命令來運(yùn)行系統(tǒng)管理功能。(Sux 為您提供 X window 環(huán)境以及 root 權(quán)限。)當(dāng)您以 root 用戶登錄時,您會始終知道您處于這種狀態(tài),因為您的提示符變?yōu)椤?”。

  超級用戶能夠使用 sudo,有選擇地將那些通常為 root 用戶或其他特殊用戶所保留的權(quán)限分配給一個不同的常規(guī)用戶。root 用戶可以定義實際和有效的用戶和組標(biāo)識號 uid 和 gid,以便與預(yù)期用戶的標(biāo)識相匹配。這種預(yù)期用戶可以是(但不必是)被允許運(yùn)行該命令的用戶。

  換言之,超級用戶可以允許其他用戶執(zhí)行某個命令,但也可以確定由進(jìn)程所產(chǎn)生的任何結(jié)果文件應(yīng)該屬于 root 用戶或任何由超級用戶指定的其他用戶。Sudo 權(quán)限一經(jīng)分配,則只需要用戶使用自己的口令進(jìn)行驗證,而不需要 root 用戶口令。

  通用命令

  從技術(shù)上講,Uname、diff、date、sort 和 uniq 應(yīng)該看作文件命令,但由于它們經(jīng)常用于診斷和維護(hù)例程的系統(tǒng)管理方面,在這里解釋它們更有意義。

  Uname
  Uname 提供了常規(guī)系統(tǒng)信息。當(dāng)指定 -a 選項時,顯示所有可用信息:
  $ uname -a
  Linux linux 2.4.18-4GB #1 Wed Mar 27 13:57:05 UTC 2002 i686 unknown

  在這里我們從左向右看到常規(guī)的系統(tǒng)信息。每條信息都有自己的選項(在下面的圓括號中),可以單獨顯示:

  操作系統(tǒng)名稱為 Linux(-s)。

  本機(jī)的網(wǎng)絡(luò)節(jié)點名為 linux (-n)。

  操作系統(tǒng)發(fā)布版本為 4.5.18-4GB (-r)。

  操作系統(tǒng)版本為 #1 Wed Mar 27 13:57:05 UTC 2002 (-v)。

  機(jī)器類型為 i686 (-m)。

  這里的處理器類型 (-p) 為未知。

  類似地,stty 顯示關(guān)于您的終端設(shè)置的信息:
  $ 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

  第二行和第三行顯示了將在命令行分別調(diào)用的特殊字符和鍵序列。例如,"^Z" 即 CNTRL-Z 在本系統(tǒng)中發(fā)送一個終端休止符。退出符號以 "^/" 即 CNTRL-/ 發(fā)送,而我們可以將其改為 "^X",如下所示:
  $ stty quit ^X

  在這種情況下,您實際要輸入 ^ 符號,而不是 CNTRL 鍵。這種改變只在當(dāng)前窗口中起效。為了使這種改變永久生效,需要在您的 .bashrc 文件中輸入該語句。

  Diff 和 Date。顧名思義,Diff 比較兩個文件。它返回那些導(dǎo)致文件不同的行,并返回關(guān)于如何使文件變得相同的一些含義隱晦的輸出:
  $ diff test.out test2.out
  0a1
  > Another test.

  在這里我們被告知,需要將 "Another test." 這一行添加到 test.out,以便使它與 test2.out 相似。第一個字符 "0" 是要在 test.out 中編輯的行號;"a" 表示該行應(yīng)該被添加到 test.out,以便與 test2.out 的第一行 "1" 相匹配。如果我們需要更改 test.out,則第二個字符也可以是 "c",而如果我們需要從 test.out 中刪除一些內(nèi)容,則第二個字符是 "d"。

  您可能希望使一個文件與另一個文件相似,以便為某些代碼提供補(bǔ)丁。diff 還經(jīng)常作為分析工具,用于驗證程序或腳本 — 例如 sed 腳本 — 的輸出是否是所預(yù)期的輸出。
date 命令可用于顯示或設(shè)置日期。如果用戶具有超級用戶權(quán)限,則他或她可以通過在以下命令中提供一個數(shù)字型字符串來設(shè)置日期:
  $ date 0101010004
  此命令將日期設(shè)置為 2004 年 (04) 1 月 1 日 (0101) 凌晨 1 時 (0100)。

  但是,任何用戶可以用所需的格式來顯示日期。注意在格式序列之前需要一個加號 "+"。如果沒有出現(xiàn)此命令的預(yù)期輸出,則嘗試將它包含在單引號中:
  $ date +´%H%M%S´
  204748

  您可以在序列中包含空格,這時您需要使用雙引號:
  $ date +"%H %M %S"
  20 47 51

  在日期的主頁上列有三十多種不同的格式序列,這些序列可以按需要結(jié)合起來,以獲得您最后的輸出格式。

  date 的輸出還可以用于腳本中,如:
  $ date -d ´2 day´
  Thu Jan 29 19:02:02 EST 2004

  -d 選項指示 date 顯示其后字符串中所描述的時間。在上例中,我們要求顯示從現(xiàn)在起(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 的文件。注意我們?yōu)槲募褂昧艘粋變量,由美元符號 "$" 表示。依次將 "ls_" 和 ".out" 附加到日期,其格式為月份中的日 (%d)、本地的月份名稱縮寫 (%b)、年份的最后兩位數(shù)字 (%y)、小時 (%H) 和分鐘 (%M),從而產(chǎn)生此文件名。

  Sort 和 Uniq。 您可以從管道或從命令行所指定的文件對文本文件的行進(jìn)行 sort 操作。除非另外指定,sort 對多列輸出的第一列進(jìn)行操作。在默認(rèn)情況下,除非使用 -n 選項,數(shù)字型的列按字母順序排序。

  Sort 列可以用兩種不同的格式指定。如果使用 -k 選項,則列的位置從 1 開始進(jìn)行編號。您還可以使用 +POS1 格式,從第一列編號為零開始進(jìn)行列的編號。以下兩個命令產(chǎn)生相同的輸出:
  $ ls -l *.out | sort +5 -7
  $ ls -l *.out | sort -k 6,8
  -rw-rr 1 bluher users 375 Dec 5 2002 fdisk.out
  -rw-rr 1 bluher users 2447 Dec 28 20:15 ls.out
  -rw-rr 1 bluher users 590 Jan 4 21:24 greps.out
  -rw-rr 1 bluher users 78 Jan 4 21:25 sgrep.out
  ...

  在默認(rèn)情況下,sort 命令的列分隔符是空格和制表符?梢允褂 -t SEP 選項指定其他分隔符,其中 SEP 是您指定的分隔符號。sort 的默認(rèn)順序是從最低到最高,利用 -r 選項可以將順序顛倒。

  Sort 可用于很多不同的任務(wù)。例如,它可用于對文件輸出進(jìn)行排序(如 /etc/passwd),或者如我們在下面所看到的那樣,對 du 的輸出進(jìn)行排序。當(dāng)使用 -m 選項時,sort 將文件合并,實際上并沒有對它們進(jìn)行排序。但是,如果您希望將它們排序,就應(yīng)該在文件合并前對它們排序。

  Sort 經(jīng)常與 uniq 命令一起使用,從已排序的文件中刪除完全相同的行。uniq 命令在管道中經(jīng)常跟在 sort 命令的后面,還可以使用 -c 選項來計算某一行所出現(xiàn)的次數(shù),或者使用 -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,這樣最后的結(jié)果是按字母順序排列的列表,完全相同的行被刪除,并帶有一個關(guān)于每行出現(xiàn)頻率的報告。

  打印機(jī)控制

  在多數(shù)情況下,打印機(jī)命令的使用相對較為明確。通過在 lpr 命令后面指定文件名,將作業(yè)發(fā)送到打印機(jī)。如果沒有提供文件名,則假定使用標(biāo)準(zhǔn)輸入。使用 lpq 命令,您可以獲得關(guān)于發(fā)送到打印機(jī)的作業(yè)的狀態(tài)報告。當(dāng)您指定作業(yè)號時,Lprm 將作業(yè)從行打印機(jī)后臺打印隊列中刪除。

  $ lpr grep2.out
  $ lpq
  Printer:lp@linux ´lpdfilter drv=upp method=auto color=yes´
  Queue:1 printable job
  Server:pid 1929 active
  Unspooler:pid 1930 active
  Status:waiting for subserver to exit at 21:24:14.637
  Rank Owner/ID Class Job Files Size Time
  active bluher@linux+928 A 928 grep2.out 779 21:24:14
  done bluher A 877 (STDIN) 117258 13:09:53
  $ lprm 928
  Printer lp@linux:
  checking perms ´cfA928linux.local´
  dequeued ´cfA928linux.local´
  


  在這里,當(dāng)我們將作業(yè)發(fā)送到打印機(jī)后,我們查詢其狀態(tài)。Lpq 向我們顯示編號為 877 的作業(yè)已經(jīng)完成,而我們剛發(fā)送的作業(yè)編號為 928。我們使用命令 lprm 928 將活動的作業(yè)從隊列中刪除。

  磁盤信息

  無論您是維護(hù)自己的系統(tǒng)還是支持具有很多用戶的企業(yè),監(jiān)視磁盤空間都是系統(tǒng)管理員更重要的職責(zé)之一。du、df 和 fdisk 命令提供了可用磁盤空間的不同視圖。

  du 命令提供對每個目錄的文件空間使用情況的評估。在默認(rèn)情況下,測量的單位是塊的數(shù)目,塊的大小通常在安裝您的系統(tǒng)時確定。

  在以下的示例中,系統(tǒng)是使用 1024 字節(jié)的塊安裝的。如果沒有指定目錄,則 du 開始對當(dāng)前目錄進(jìn)行計算。-h 選項以易于讀懂的形式提供大小的值:

  $ du -h Documents
  105k Documents/jj
  573k Documents/John
  682k Documents
  


  可以使用 -a 選項更改輸出,該選項指示 du 顯示文件和目錄的塊數(shù)。選項 block-size=SIZE 指示 du 以 SIZE 所指定字節(jié)大小的塊的數(shù)目來顯示輸出。

  $ du block-size=512 Documents
  209 Documents/jj
  1146 Documents/John
  1363 Documents
  


  在默認(rèn)情況下,du 還為每個子目錄遞歸地打印信息。通過使用 max-depth=N 選項可以限制這種操作,其中 N 等于被報告的最大級數(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 報告目錄和子目錄的空間使用情況,而 df 報告已安裝文件系統(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 報告了五個文件系統(tǒng)的狀態(tài)。與 du 類似,df 利用 -h 選項提供人類可讀的輸出:

  $ 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 選項來指定塊的大小。

  fdisk 命令是 Linux 的分區(qū)表操作命令。與 du 和 df 不同,沒有 root 用戶權(quán)限時不能運(yùn)行該命令。如果指定了 -l 選項,則可以將它僅用于報告的目的。它提供了您的整個分區(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)管理員的一項重要職責(zé)。在這方面,ps 和 top 是兩個最有用的命令。
  ps 命令提供了當(dāng)前運(yùn)行進(jìn)程的快照。

  生動翔實的一課

  以下是 ps 的最簡單形式:

  $ 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)識號。

  TTY 是進(jìn)程所屬的終端控制臺。

  TIME 列是進(jìn)程所使用的總的 CPU 時間。

  CMD 列列出正在執(zhí)行的命令行。

  使用帶有 -ef 選項的 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 命令時,列標(biāo)題并不象在 ps 命令本身所使用時那樣正常地顯示。為便于說明,標(biāo)題位于輸出的上方,以便清楚地顯示其聯(lián)系。

  雖然 uid 通常是指數(shù)字型的標(biāo)識,但在第一列下指定的是用戶名,標(biāo)記為 UID。

  PPID 是父進(jìn)程的標(biāo)識號。對于 Oracle 進(jìn)程,這里的標(biāo)識號為 1 — 它是 init 進(jìn)程(所有進(jìn)程的父進(jìn)程)的 id,因為在本系統(tǒng)中安裝的 Oracle 是作為登錄進(jìn)程的一部分而啟動的。
  標(biāo)為 C 的列是由 CPU 用于計算執(zhí)行優(yōu)先級的因子。
  STIME 是指進(jìn)程的啟動時間。
  問號表示這些進(jìn)程不屬于任何 TTY,因為它們是由系統(tǒng)啟動的。

  以下是 ps 命令帶有某些不同選項的另一個示例。注意,其中很多列與執(zhí)行帶有 -ef 選項的 ps 時的列相同:

  $ 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。例如,您的一個用戶在 SQL*Plus 會話中輸入一個笛卡爾聯(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

  常規(guī)用戶可以看到所有的系統(tǒng)進(jìn)程,但他們只能終止他們自己擁有的進(jìn)程。

  Ps 只為您提供當(dāng)前進(jìn)程的快照。要即時查看最活躍的進(jìn)程,可使用 top。Top 實時地提供進(jìn)程信息。它還擁有交互式的狀態(tài),允許用戶輸入命令,如 n 后面跟有 5 或 10 等數(shù)字。其結(jié)果是指示 top 顯示 5 或 10 個最活躍的進(jìn)程。Top 持續(xù)運(yùn)行,直到您按 "q" 退出 top 為止。

  以下是 top 的部分顯示:

  8:14pm up 51 min, 7 users, load average: 0.02, 0.03, 0.05
  96 processes:87 sleeping, 2 running, 0 zombie, 7 stopped
  CPU states:6.4% user, 3.5% system, 0.0% nice, 89.9% idle
  Mem:512440K av, 392288K used, 120152K free, 0K shrd, 55668K buff
  Swap:1050800K av, 0K used, 1050800K free 236128K cached

  PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
  1289 root 18 0 78008 11M 1796 R 3.7 2.2 0:49 X
  1965 bluher 20 0 12244 11M 10456 S 1.9 2.3 0:01 kdeinit
  1986 bluher 18 0 996 996 768 R 1.5 0.1 0:00 top
  1803 bluher 20 0 16960 16M 13508 S 0.9 3.3 0:03 kdeinit
  1804 bluher 20 0 16964 16M 13508 S 0.9 3.3 0:03 kdeinit
  1800 bluher 19 0 12260 11M 10076 S 0.1 2.3 0:04 kdeinit
  1 root 20 0 220 220 188 S 0.0 0.0 0:04 init
  ...  


  關(guān)閉

  看來應(yīng)該以 shutdown 命令來結(jié)束本次討論。與本文以及上一篇文章中所討論的許多命令一樣,通常有一種 GUI 形式的替代方法可以關(guān)閉您的系統(tǒng)。但是,當(dāng)您需要手動關(guān)閉時,您可以使用以下命令立即進(jìn)行關(guān)閉:
  $ shutdown -h now

  您可以使用以下命令手動地重新啟動系統(tǒng):
  $ shutdown -r now

  注意這兩個命令都需要指定時間。您可以指定 "now" 或使用帶有時間秒數(shù)的 -t 選項。

  我們在這兩篇文章中討論了大量內(nèi)容,但我們絕對無法涵蓋 Linux 可能具有的全部內(nèi)容。我們沒有討論的命令還有很多,而我們沒有看到的命令選項則更多。但是,在這里我們希望您至少找到了開始管理 Linux 系統(tǒng)所需的最少限度的工具。

關(guān)鍵字:系統(tǒng)命令、打印機(jī)服務(wù)、文件系統(tǒng)、磁盤和進(jìn)程

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機(jī)打開網(wǎng)站