歡迎您光臨本站 註冊首頁

Linux 程序與資源管理

←手機掃碼閱讀     火星人 @ 2014-03-24 , reply:0

特別說明線上求助:
  · 關於線上 Linux 指令查詢:
  基本上,使用 Linux 最好還是使用文字界面登入比較好!這是因為 X-Window 雖然對於新手來說,他的附加功能蠻強大的,不過,如果單純使用 X-Window 來使用 Linux 的話,那麼跟使用 Window 有何不同呢?!(當然???綣??虢 Linux 作為 DeskTop 的話,那就另當別論??。┯捎謔褂 X-Window 可能具備了很多的後遺症!這是因為 X-Window 只能算是 Linux 下的一套『軟體』,並不是一套『作業系統』,所以 X-Window 對於你的系統的全部功能並不能完全的掌握,並且,由於 X-Window 在 Run 的時候會耗用比較多的資源,這一點對於比較老舊的機器來說是很要命的!例如鳥哥的 P-166 來來去去就只有 64 MB 的記憶體大小,如果一跑 X-Window 的話,那麼我其他的網路服務可能就會有遲滯的情況發生....!基本上,對於有心想要往 Linux 裡面鑽的朋友呀!還是希望您可以多多的使用文字界面來設定您所有的服務,這樣您比較容易清楚 Linux 的主要架構,並且,也能了解每一個指令與其相關的設定檔案的相關位置,對於您往後的除錯工作具有相當大的幫助呦!所以???屑?凇喊鎦?謔∠低匙試礎揮搿喊鎦?褂謎吒?恿私 Linux 系統架構』,這裡鳥哥大力的推薦使用文字界面來操作 Linux 咯!
  底下我們會分門別類的將各個比較常用的指令給搬上來,當然???冉銑S玫囊話闃噶睿ㄓ繞涫塹蛋贛肽柯嫉慕ㄖ梅矯嫻鬧噶睿┮丫?誶耙徽綠致酃?耍?行枰?幕蚩梢鄖巴?還圻希 A磽庖桓鱟鈧匾?牡胤絞牽? Linux 主機上,已經內建各個指令的說明內容了,而且是很詳細的線上說明,你可以使用:
  
  [root@tsai root]# man command <=== command 為你欲查詢的指令名稱
  [root@tsai root]# info command
  在上表中,針對 command 這個指令你可以使用 man 或者是 info 來查詢他的功能與說明,例如你要查尋 ls 這個指令時,你可以輸入: man ls 或 info ls 來查詢一下!適當的利用線上查詢對於你的英文及相關的指令功能有一定程度的幫助喔!就鳥哥使用的情況來看,還是那句老話,『不要害怕看英文』,看久了還是會懂得啦!因為鳥哥的英文也不好(其實是很破),不過努力的看還是可以看的懂得呀!然後,通常我在開始玩 Linux 的時候,都是拿一本英文字典在旁邊查...!
  · 關於線上查詢『參數設定檔案結構』
  此外,如果是一般的參數檔案的話,應該如何查詢其設定方式呢?!呵呵!就輸入底下這個參數吧!
  
  [root@tsai root]# man 5 passwd [root@tsai root]# man passwd
  · 呵呵!仔細的比較一下上面提供的兩個指令,您會很輕易的發現兩者的不同!怎麼說不同呢?嘿嘿!第二個顯示的其實是 /usr/bin/passwd 這個執行檔的使用方法介紹,但是第一個加上參數 5 的時候,就自動的變成去查詢 /etc/passwd 這個檔案的設定功能了!記得:『在 Linux 當中,使用 man 的時候,參數設定檔的查詢都是以 5 來設定的!』怎麼會是 5 呢?如何設定的,哈哈!那就需要來查看一下 man 這個咚咚的搜尋路徑 (MANPATH) 了!
  · 線上查看 man pages 的搜尋路徑:
  這裡有個有趣的課題要來讓大家想一想,我在查詢指令的用法時,或者是查詢參數檔案的設定時, Linux 到哪裡去找的呀!?呵呵!就是到 MANPATH 這個變數當中搜尋的??∧敲 MANPATH 在哪裡設定的呢?嗯!很容易找的到的,那就是 /etc/man.conf 這個檔案??≡詬玫蛋鋼校?蔽頤侵蔥 man 的時候,系統就會一個一個的去查詢 PATH ,就有點像我們在執行某些執行檔的時候一樣!那麼預設的 MANPATH 在哪裡呀!?就是在:
  o /usr/share/man
  o /usr/local/man
  上面這兩個是大宗啦!好了,那麼如果我安裝了一個新的套件,是以 Tarball 安裝在 /usr/local/newpackes 底下,而且我知道該套件的 man pages 放在 /usr/local/newpackes 底下,那麼我該如何讓該目錄可以被 MANPATH 查詢到呢?很簡單呀!將該目錄寫入 /etc/man.conf 裡頭就可以啦!
  · Linux 主機內的文件資料:
  基本上,你的 Linux 裡面就已經具有相當多的文件資料了,只不過是原文的!好了,你知道該文件資料擺在哪裡嗎?!就是在底下的目錄當中啦!
  o /usr/share/doc
  有空的話多到裡頭去看看!你會看到很多相關的資訊呦!很棒的啦!
  · 注意螢幕前面顯示的訊息:
  另外,很多錯誤訊息基本上都已經提供您解決的方案了!所以在發生錯誤的時候,請千萬記得『讀取一下您螢幕上顯示的錯誤訊息』吧!!這是最容易自救的方式!
  · 留心 /var/log 裡頭的檔案:
  基本上, Linux 預設的情況中,已經將大大小小的事件都寫入 log file ( 登入檔 ) 當中了!這個時候如果您發現您的系統有問題,嗯!到該目錄下去查看一下,差不多都可以解決您的問題呢!留意留意!
  
  Linux 多人多工環境指令:
  多人多工
  · 多人環境:Linux 最棒的地方就在於他的多人多工環境了!那麼,什麼是『多人多工』?!在 Linux 上面允許不同的人使用,而且每個人都有其特殊的許可權,只有一個人具有至高無上的權力,那就是 root (系統管理員),除了他之外,其他人都必須要受一些限制的!而每個人進入 Linux 的環境設定都可以隨著每個然的喜好來設定( 還記得我們在 BASH 那一章提過的 ~/.bashrc 吧!?對了!就是那個光! )!咦! Windows 也可以呀!是沒錯呀!但是要曉得的是,您只能在 Windows 前面才可以進行『登入』的工作,也就是說,每次 Windows 僅允許一個人物登入!當然???indows NT 也同樣的具有這個多人多工的功能!不過,由於 NT 實在是太耗系統資源了,個人認為,還是比不上 Linux 或者是 Unix 家族的網路連線來的順暢呢!
  · 多工行為:我想,使用過 Windows 的人絕對都會遇到這樣的事情:『這個檔案正在使用中,您無法開啟這個檔案!』我哩勒!還得將正在執行當中的程式關掉之後才能開這個中間暫存檔!!而且這個時候還只有我自己一個人在使用呢~~受不了~~呵呵! Linux 就不會這樣??∧?梢醞?痹誆煌?幕?媯??庇剎煌?娜耍ǖ比???械氖薔? SSH 網路連線過來,有的是直接在螢幕前面的朋友??。┦褂謾和?桓齙蛋浮唬?宦凼強?艋蛘呤切薷模?灰??腥ㄏ蓿?ɑ辜塹們懊嫠倒?牡蛋溉ㄏ薜淖柿習桑浚⊥?橇耍炕贗犯聰叭グ桑。。┚塗梢允褂酶玫蛋福。≌飧齠?骺捎杏玫慕簦∮捎諛窀縭嗆艹J褂貿淌降模ň褪 Fortran 啦,吃飯的工具!),而由於我們有一部主機專門用來工作的,所以配備比較高檔一點(雙 PIII 的 CPU),那麼我就可以同時的進行兩個 compiler 的程序,而且還不會互相的影響,並且資源分配的還蠻均勻的!哈哈!又捨棄掉 Windows 的耗費資源的咚咚,唉呦~怎麼會跑得這麼順暢呀!爽斃了!!
  · 七個基本視窗:在 Red Hat 當中,預設提供了六個文字界面登入視窗,以及一個圖形界面,你可以使用 [Alt]+[F1].....[F7]來切換不同的終端機界面,而且每個終端機界面的登入者還可以不同人!很炫吧!不像 Windows 一次只能在螢幕前登入一個人!!這個東西可就很有用啦!尤其是在某個程序死掉的時候!
  · 殺掉程序:以前的鳥哥笨笨的,總是以為使用 Windows 98 就可以啦!後來,因為工作的關係,需要使用 Unix 系統,想說我只要在工作機前面就好,才不要跑來跑去的到 Unix 工作站前面去呢!所以就使用 Windows 連到我的 Unix 工作站工作!好死不死,我一個程序跑下來要 2~3 天,唉~偏偏常常到了地 2.5 天的時候, Windows 98 就給他掛點去!當初真的是給他怕死了~~後來因為換了新電腦,用了隨機版的 Windows 2000 ,呵呵,這東西真不錯(指對單人而言),在當機的時候,他可以僅將錯誤的程序踢掉,而不干擾其他的程序進行,呵呵!從此以後,就不用擔心會當機連連??〔還? 2000 畢竟還不夠好,因為有的時候還是會死當!!那麼 Linux 呢?哈哈!更棒了,幾乎可以說絕對不會當機的!因為他可以在任何時候,將某個被困住的程序殺掉,然後在重新執行該程序而不用重新開機!夠炫吧!那麼如果我在 Linux 下以文字界面登入,在螢幕當中顯示錯誤訊息后就掛了~動都不能動,該如何是好!?這個時候那預設的七個視窗就幫上忙啦!你可以隨意的再按 [Alt]+[F1].....[F7] 來切換到其他的終端機界面,然後以 ps -aux 找出剛剛的錯誤程序,然後給他 kill 一下,哈哈,回到剛剛的終端機界面!恩~棒!又回復正常??
  · CPU 的工作問題:在早期玩 Windows 98 的朋友應該都曉得的是,Windows 98 預設 CPU 是『一直全速在跑的』,也不能這樣說啦,應該說 windows 98 的 CPU 是一直在通電的!連沒有工作的時候,他的 CPU 使用率還是可以到達 100% ,所以容易造成 CPU 過熱當機的問題!這個情況雖然可以在 NT 獲 2000 中得到解決,或者可以加灌 CPU 省電軟體來降低溫度,但是仍然是怪怪的!而在 Linux 當中根本就沒有這個問題, CPU 沒有使用,就不會有通電,哈哈!省電又沒有高熱呦!不然您可以瞧一瞧咱們這個網站的 CPU 使用率,除了 WWW 線上人數過多的時候會衝到 30% 左右之外,其他時候可是低低的呦!
  背景執行
  · 另外一個功能,就是『背景執行』的功夫了。當你輸入
  [root@tsai root]# cp file1 file2 &
  這一串指令的時候,表示將 file1 這個檔案複製為 file2 ,且放置於背景中執行,也就是說執行這一個命令之後,在這一個終端介面仍然可以做其他的工作!而當這一個指令( cp file1 file2 )執行完畢之後,系統將會在您的終端介面顯示完成的消息!很便利喔!
  多人多工的問題
  · 多人多工確實有很多的好處,但其實也有管理上的困擾,因為使用者越來越多,將導致你管理上的困擾哩!另外,由於使用者日盛,當使用者達到一定的人數后,通常你的機器便需要升級了,因為 CPU 的運算與 RAM 的大小可能就會不敷使用!
  好了!廢話說完了!開始來談一談幾個常用的指令吧!
  
  背景工作管理:
  有時后我們並不是一定要在螢幕前進行工作的,尤其是某些朋友特別不喜歡同時開啟多個視窗,會容易搞混掉!這個時候就需要使用到背景工作管理的一些指令??≌廡┲噶釷切枰??筆褂玫模∪ &, [Ctrl]+z, bg, fg, jobs, 與 kill 等等!此外,最主要利用到『背景工作』的使用者通常是怎麼回是呢?『就是當您的主機已經被限制使用者僅能同時登入一次』的時候,也就是說,你無法用兩個視窗登入到同一部主機,可以做的到嗎?可以呀!目前很多的主機為了節省系統資源,就是這樣搞的,然而這個時候萬一您要進行很多工作的時候,要怎麼辦?!阿!傷腦筋呀!還好!在 Linux 裡面支援了很多這方面的事情!我們可以這樣做呢! ^_^
  學習本章的時候會使用到部分的命令重導向,所以請前往 BASH SHELL 閱讀一番!
  · &
  語法:
  [root @test /root ]# command & 參數說明: 範例: [root @test /root]# find / -name testing & <==將該執行程序丟到背景執行 [root @test /root]# fg <==將該程序叫回螢幕前執行
  說明:
  如果想要讓螢幕中的工作( command )在背景底下執行的時后,就使用 & 吧!不過,由於是背景執行的,所以該程序的輸出並不會顯現在螢幕上,所以需要特別留意輸出的資訊的管線重導的問題呦!另外,如何將該程序叫回來螢幕上面執行呢?就使用 fg 即可!
  其他:
  當然???部梢允褂 [Ctrl]+z 來將目前正在進行當中的工作丟到背景底下!那麼擺在背景底下執行有何好處呢?!最大的好處就是不怕被『 [Ctrl]+c 』這個中斷指令來中斷了!!
  · [Ctrl]+z
  語法:
  [root @test /root ]# command [root @test /root ]# ^Z <==按下[Ctrl]加上 z 鍵 參數說明: 範例: [root @test /root]# vi .bashrc ^Z <==在 vi 當中的一般模式中鍵入[Ctrl]+z [1]+ Stopped vi .bashrc <==這裡會顯示將資料丟到背景當中了! [root @test /root]#
  說明:
  如果你正在進行 vi ,而且是在編輯一個重要資料檔案,但是偏偏你想起有的程序需要留意,因此需要退出 vi ,不過,你並不想這個時候儲存退出 vi ,那麼該如何是好呢?!就將資料丟到背景裡面去吧!以上面的例子來說明,當你在執行編輯 /root/.bashrc 這個檔案時,想要暫時離開,那麼就直接在 vi 的『一般模式』當中輸入[Ctrl]加上 z (小寫)按鍵,,那麼系統就會告訴你『工作項目 [1] 在背景當中,而其狀態為[Stopped]亦即是停止的狀態!』,並且會離開 vi 進入到 command line 當中,等待使用者輸入指令!這個咚咚很好用的呦!
  其他:
  那如果想要回到 vi 呢?!呵呵,就需要使用 jobs 配合 bg 或 fg ???br />   · jobs
  語法:
  [root @test /root ]# jobs 參數說明: 範例: [root @test /root]# vi .bashrc ^Z <==在 vi 當中的一般模式中鍵入[Ctrl]+z [1]+ Stopped vi .bashrc <==這裡會顯示將資料丟到背景當中了! [root @test /root]# jobs [1]+ Stopped vi .bashrc <==顯示有一個工作在背景下,狀態為停止。
  說明:
  剛剛我們提到的 & 與 vi 在背景下執行,那麼你怎麼知道目前你所進行的背景底下的工作有哪些呢?!很簡單,就是使用 jobs 就可以觀察到啦!以上式為例,使用 jobs 就可以知道目前的背景中工作項目有 vi .bashrc 這一項!那個中括弧([])裡面的數字就是 jobs 的代號??
  其他:
  · fg 與 bg
  語法:
  [root @test /root ]# fg %number [root @test /root ]# bg %number 參數說明: % :後面接數字,表示 jobs 的工作代號 number :就是工作代號 範例: [root @test /root]# find / -name test ^Z [1]+ Stopped find / -name testing [root @test /root]# vi .bashrc ^Z [2]+ Stopped vi .bashrc <==這裡會顯示將資料丟到背景當中了! [root @test /root]# jobs [1]- Stopped find / -name testing [2]+ Stopped vi .bashrc [root @test /root]# bg %1 [root @test /root]# jobs [1]- Running find / -name testing & [2]+ Stopped vi .bashrc [root @test /root]# fg %2 進入 vi 畫面???br />   說明:
  OK!那麼如何來了解 jobs 的背景(bg)與前景(fg)的管控呢?!這裡請注意??≌飧 bg 是將『背景當中的程式由 stopped 變成 Running 』的一個手段,至於 fg 『則是將背景中的指令移到螢幕上來動作』,那你怎麼知道你的背景當中有多少的工作(jobs)在進行呢?!就是執行 jobs 來看看背景程式的代號??∪緩笠 bg %number 來將資料在背景中執行,而 fg %number 則是將代號為 number 的程式移動到螢幕前面動作!
  其他:
  · kill
  語法:
  [root @test /root ]# kill -sigal %number 參數說明: %number :背景工作的代號,可使用 jobs 查詢 signal -1 :重新讀取一次參數設定檔(類似 reload ) -2 :使用者中斷該工作,類似 [Ctrl]+c 來中斷一個工作 -9 :立刻殺掉一個工作,不論該工作是否為殭屍程序 -15 :停止一個工作(這是預設值) 範例: [root @test /root]# jobs [1]+ Stopped vi .bashrc [root @test /root]# kill -9 %1
  說明:
  如果想要直接殺掉背景工作中的項目,可以直接輸入 kill 來殺掉!但是由於預設是將該程序停止而已,不見得一定可以將該工作清除乾淨,因此需要送出一個訊號,告訴系統你就是要砍掉該程序!這個時候就使用 kill -9 吧!
  其他:
  
  程序與資源管理:
  終於來到最嚴重的系統管理員的擔心部分!一個被入侵的 Linux 系統最容易被修改的是什麼?想必您一定有聽說過所謂的『木馬程式』吧!所謂的木馬程式就是以一些小指令,由背景執行的方式常駐在系統當中,而當你的系統被入侵者入侵之後,對於您 Linux 主機上面的資訊,呵呵!就是由這些木馬程式傳送到入侵者手中的!所以??×己玫墓芾沓絛虻南骯擼?彩竅低徹芾碓北匭胍?齙墓?文兀『昧耍∥頤潛匭胍?私獾氖恰菏裁詞淺絛頡謊劍。克盪┝耍?庖裁揮惺裁春蒙衩氐模?撼絛蚓褪悄?謚蔥謝蛘咂舳?桓鍪錄?氖焙潁?低郴岱⒏??囊桓鮒蔥行潁 換瘓浠八擔?蹦?舳?艘桓鮒噶罨蛘呤 shell 的時候,系統就會給這個事件或者是 shell 一個代碼,而如果有任何的其他服務要使用到你目前這程序的資源時,就會自動的跑來了解一下您的 PID ( process ID, 就是程式序??。??紫攣頤鞘褂 ps 與 top 這兩個最常用來觀察系統程序工作狀態的指令來了解一下什麼是程序啦!
  另外,我們還得需要來了解一下,什麼是『父程序, PPID』與『子程序, child precess』呢?!呵呵!說穿了也沒有什麼了不起!就是『子程序是由父程序執行而得的一個程序,當子程序死掉時,父程序通常不會被影響,但是當父程序死掉時,則所有子程序將一併結束!』常常很多朋友都在反應:『唉呦!我的 sendmail 怎麼關都關不掉,真是見鬼了!』呵呵!這個時候您就得告訴他??骸喊?希∧愎氐艫牟皇歉賦絛蜓劍≈皇且恍┳映絛潁?捎詬賦絛蚧勾婊鈄牛??宰映絛蚓突岵歡?撓砍?? ?br />   · ps
  語法:
  [root @test /root ]# ps -aux 參數說明: a :選擇所有的程序列出 u :所有使用者的程序均列出 x :所有 tty 的程序列出 範例: [root @test /root]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 1384 468 ? S Mar31 0:05 init [3] root 2 0.0 0.0 0 0 ? SW Mar31 0:00 [keventd] root 3 0.0 0.0 0 0 ? SWN Mar31 0:00 [ksoftirqd_CPU0] root 4 0.0 0.0 0 0 ? SW Mar31 0:11 [kswapd] root 5 0.0 0.0 0 0 ? SW Mar31 0:00 [bdflush] root 6 0.0 0.0 0 0 ? SW Mar31 0:00 [kupdated] root 130 0.0 0.0 0 0 ? SW Mar31 0:00 [kjournald] root 131 0.0 0.0 0 0 ? SW Mar31 0:01 [kjournald] root 132 0.0 0.0 0 0 ? SW Mar31 0:03 [kjournald] root 133 0.0 0.0 0 0 ? SW Mar31 0:12 [kjournald] root 482 0.0 0.2 1444 528 ? S Mar31 0:03 syslogd -m 0 ........
  說明:
  這是用來查詢目前主機環境中,在背景執行的相關程序!我通常使用『 ps -aux 』這個參數來列出所有的資訊以提供自己檢查程序的問題!在上面的程序列出當中,說明如下:
  · USER:說明該程序是屬於哪一個人的;
  · PID:該程序的代號;
  · %CPU:代表該程序使用了多少 CPU 資源;
  · %MEM:代表該程序使用了多少的 RAM ;
  · VSZ, RSS:佔去的 ram 的大小( bytes );
  · TTY:是否為登入者執行的程序?若為 tty1-tty6 則為本機登入者,若為 pts/?? 則為遠端登入者執行的程序
  · STAT:該程序的狀態,( R )為可執行的,( S )為該程序正在睡眠中,就是沒有執行了,( T )正在偵測或者是停止了,( Z )殭屍程式,就是 zombie 死掉的程式啦!需要以 kill 除去??
  · START:該程序開始的日期;
  · TIME:該程序跑了多久的時間?
  · COMMAND:該程序的內容啦!
  其他:
  這是一個很有用的指令,尤其是在偵測系統的狀態時!不過,這個程式也是入侵者最喜歡修改的執行程式了!因為他可以寫一個 script 來騙 root 呀!讓某些木馬程式沒有辦法顯示出來~~重要的很!!善加利用吧!此外,那個 PID 是挺重要的資訊呦!因為在後面的 kill 就是藉由了解 PID 來進行程序的刪除的動作的!
  · top
  語法:
  [root @test /root ]# top 參數說明: 在執行 top 的程式中,可以輸入下面的字元以進行排序 A :以 age 亦即是執行的先後程序進行排序 T :由啟動的時間排序 M :以所佔的 memory 的大小排序 P :以所耗用的 CPU 資源排序 範例: [root @test /root]# top 11:55pm up 8 days, 7:40, 1 user, load average: 0.22, 0.14, 0.10 71 processes: 69 sleeping, 2 running, 0 zombie, 0 stopped CPU states: 24.6% user, 3.7% system, 0.0% nice, 71.5% idle Mem: 255892K av, 222300K used, 33592K free, 0K shrd, 48084K buff Swap: 289128K av, 8184K used, 280944K free 110472K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 9898 root 9 0 5976 5976 1364 S 5.5 2.3 0:00 mrtg 4744 apache 14 0 5312 5052 3764 S 2.1 1.9 0:16 httpd 9189 apache 14 0 4520 4256 3752 S 1.9 1.6 0:01 httpd 9187 apache 10 0 4544 4276 3800 S 1.7 1.6 0:01 httpd 9212 mysql 9 0 7280 4772 2716 S 0.7 1.8 0:00 mysqld 9888 root 12 0 1064 1064 832 R 0.7 0.4 0:00 top 4842 mysql 10 0 7280 4772 2716 S 0.5 1.8 0:06 mysqld 9218 mysql 10 0 7280 4772 2716 S 0.5 1.8 0:00 mysqld
  說明:
  使用 ps 是一個不錯的管理工具,但是 ps 畢竟不是動態的,若使用 top 的話,呵呵!可以用動態(每五秒鐘更新一次)的方式來偵測程序的進行!而且在程序進行中,還可以使用 P 來以 CPU 耗用資源排序、使用 M 來以 memory 佔用大小排序等等,非常好用的管理工作!有空的話多以 man top 來玩一玩吧!
  其他:
  · free
  語法:
  [root @test /root ]# free 參數說明: -k :以 KBytes 來顯示記憶體 -m :以 MBytes 來顯示記憶體 範例: [root @test /root]# free total used free shared buffers cached Mem: 255892 222076 33816 0 49072 112272 -/+ buffers/cache: 60732 195160 Swap: 289128 7572 281556
  說明:
  另一個觀看系統資源的就是使用 free 來檢查目前記憶體的使用情況??≡諫廈嫦允鏡氖牽?矣 256 MB 的時體記憶體,也有大約 270 MB 的 swap (就是虛擬記憶體啦!)大小。
  其他:
  · sar
  語法:
  [root @test /root ]# sar [-u] [-r] 秒數 次數 參數說明: -u :看 CPU 使用的情況 -r :看 memory 使用的情況 秒數:幾秒鐘觀測一次? 次數:共觀測幾次 範例: [root @test /root]# sar -u 1 3 12:10:28 AM CPU %user %nice %system %idle 12:10:29 AM all 0.00 0.00 0.00 100.00 12:10:30 AM all 0.00 0.00 0.00 100.00 12:10:31 AM all 12.00 0.00 1.00 87.00 Average: all 4.00 0.00 0.33 95.67 [root @test /root]# sar -r 1 3 12:11:11 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached kbswpfree kbswpused %swpused 12:11:12 AM 24416 231476 90.46 0 51068 112536 281556 7572 2.62 12:11:13 AM 24420 231472 90.46 0 51068 112536 281556 7572 2.62 12:11:14 AM 24392 231500 90.47 0 51068 112540 281556 7572 2.62 Average: 24409 231483 90.46 0 51068 112537 281556 7572 2.62
  說明:
  鳥哥真的是很喜歡使用 sar 來看系統的資源呢!真的是太方便了!比較常用的是 CPU 與 RAM 的觀察,當然???箍梢怨鄄煊駁? I/O 變化!!在上面的例子中,觀察 CPU 的現象中,可以發現 CPU idle 的情況很長!不錯!另外,在 RAM 的觀測中,比較常使用的是 %memused (使用的百分比)及 %swpused (虛擬記憶體使用的百分比),很方便吧!一覽無遺呦!
  其他:
  事實上, VBird 也已經以 sar 來作為 MRTG 繪製圖表的一個工具,很是方便的!
  · kill
  語法:
  [root @test /root ]# kill -signal PID 參數說明: 那個 -signal 跟上面的 kill 一樣: -9 :殺掉該程序 -15 :停止該程序! 範例: [root @test /root]# kill -9 2380
  說明:
  要殺掉一個程序的時后,自然需要知道該程序的 PID 才行!另外,需要注意的是,由於很多的程序都有附屬關係,例如 sendmail 可能會同時開啟相當多的程序在工作(如果郵件量很大的時后!)所以,如果砍掉的是『子程序』是無法將整個程序殺掉的!而要知道該程序的代號(PID)自然就得善用 ps, top 等工具??
  其他:
  · uname
  語法:
  [root @test /root ]# uname [-apnr] 參數說明: -a :所有的系統資訊均列出 -p :列出 CPU 資訊 -n :列出 host name -r :列出 kernel 版本資訊 範例: [root @test /root]# uname -a Linux tsai.adsldns.org 2.4.18 #2 Mon Mar 25 21:51:51 CST 2002 i586 unknown
  說明:
  想要知道你的系統資訊嗎?包括你的核心版本、主機名稱、CPU 資訊等等!使用 uname 就可以達到啦!另外,如果對於你的 CPU 有興趣的話,那麼不妨在 /proc 底下看看:
  [root @test /root ]# more /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 5 model : 9 model name : AMD-K6(tm) 3D+ Processor stepping : 1 cpu MHz : 400.917 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr bogomips : 799.53
  看到了嗎?!馬上就知道你的 CPU 的 type ???br />   
  程序的優先順序: nice, renice,
  好了!接著下來我們來談一談『我哪一個程序可以最優先被處理!?』呵呵!這是個很重要的課題!怎麼說呢?因為在你的系統當中,通常『同一個時間一定有多個程序會佔用到 CPU 的資源,哪么那個程序比較重要,讓 CPU 可以先跑該程序,就是一個重要的課題了!』您說是吧!好了,如果您還記得 ps 這個指令的話,那麼來看一看加入 ps -l 這個功能所顯示出來的訊息吧!
  
  [root @test /root ]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 100 S 0 5624 5606 0 70 0 - 608 wait4 pts/0 00:00:00 bash 000 R 0 6944 5624 0 76 0 - 769 - pts/0 00:00:00 ps
  注意看到上面那些資訊:
  · UID 代表執行者的身份;
  · PID 代表這個程序的代號;
  · PPID 代表這個程序是由那個程序發展出來的,亦即是父程序;
  · PRI 代表這個程序『可被執行的優先順序』越小越早被執行!
  · NI 代表這個程序的 nice 值!
  好啦!這裡有兩個奇怪的資訊,一個是 PRI 一個是 NI 這兩個鬼東西!嗯! PRI 還容易理解,就是該程序被 CPU 執行的先後順序啦!所以當 CPU 忙線中的時候,那麼 PRI 值月小的就會被越快執行!那麼 NI 是什麼?呵呵!那個就是 nice 值啦!那麼什麼是 nice 值呢?就是『系統可被執行的修正數值!』如前面所說的,由於 PRI 是越小越快被執行,而由於我們加入 nice 值之後,將使得 PRI 變為:
  · PRI(new) = PRI(old) + nice
  呵呵!如此一來,則當 nice 值為負值的時候,那麼該程序將會提前被執行!就是變的優先處理??≌飧齦拍鈈枰?乇鸕淖⒁猓×磽猓?飫鏌殘枰?⒁獾氖牽骸褐揮芯哂 root 許可權的身份者,可以將程序的 nice 調為負值』一般而言,我們可以這樣說:
  · 一般使用者可用 nice 值 : 0 ~ 39
  · root 管理員可用 nice 值: -19 ~ 19
  沒錯!就是這樣!底下我們來談一談,如何在:
  1. 程序一開始就給予一個 nice 值;與
  2. 改變正執行中的程序之 nice 值
  · nice
  語法:
  [root @test /root ]# nice [-n number] command 參數說明: -n :就是後面那個 number 即為 nice 值! 範例: [root @test /root]# nice -n -5 find / -name core > /tmp/core
  · 說明:
  就如同前面說的, nice 是用來調整程序的執行優先順序!這裡只是一個執行的範例罷了!通常什麼時候要將 nice 值調大呢?
  o 一些非重要的程序之進行:例如備份工作!由於備份工作相當的耗系統資源,這個時候就可以將備份的指令之 nice 值調大一些,可以使系統的支援分配的更為公平!
  · renice
  語法:
  [root @test /root ]# renice [number] PID 參數說明: 範例: [root @test /root]# ps -aux [root @test /root]# renice 5 234
  · 說明:
  這個 renice 的功能就不太一樣了!由於 renice 是『將一個正在進行當中的程序的優先順序降低』,所以必須要:
  先取得該程序的 PID 才行!
  所以???ǔ renice 都與 ps 相互配合才對!先找處某個程序的 PID 之後,才來重新的設定其 nice 值!
  
  訊息管理:
  想要知道開機的時候 Linux 偵測主機的訊息嗎?想知道目前有哪些人在你的機器上嗎?想知道目前的時間嗎?!想了解最近某個人登入的時間嗎?!嗯!這都需要使用到一些訊息管理的程式呦!像是 last, who, dmesg 等等!
  · dmesg
  語法:
  [root @test /root ]# dmesg 參數說明: 範例: [root @test /root]# dmesg | more
  說明:
  在開機的時候你會發現有很多的訊息出現吧,例如 CPU 的形式、硬碟、光碟型號及硬碟分割表等等。但是訊息都是『刷』的一聲就跑過去了!這些訊息有時候對於系統管理員是很重要的,因為他提供了系統的資訊呀!要看這些訊息你可以用 dmesg 這個指令來觀看!
  其他:
  加上 |more 的原因是因為訊息太多了,所以可以加入這個管線指令來使畫面暫停!
  
  · uptime
  語法:
  [root @test /root ]# uptime 參數說明: 範例: [root @test /root]# uptime 11:27pm up 9 days, 7:12, 1 user, load average: 0.07, 0.12, 0.14
  說明:
  知不知道你的 Linux 主機已經開機多久了?還有,過去 1, 5, 15 分鐘的系統平均 loading 是多少呢?呵呵!使用 uptime 就對了!在上面的例子中,執行 uptime 之後,顯示目前時間是 11:27pm, 而系統已經開機了 9 天又 7:12 之多,目前有一個使用者在線上,過去 1, 5, 15 分鐘系統平均負荷為 0.07, 0.12, 0.14!
  其他:
  · who & w
  語法:
  [root @test /root ]# who [root @test /root ]# w 參數說明: 範例: [root @test /root]# who root pts/0 Aug 2 20:43 [root @test /root]# w 8:48pm up 4 days, 5:08, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.2 8:43pm 0.00s 0.38s ? -
  說明:
  這是用來視察目前在系統上的使用者指令,你也可以使用 w 這個指令來下達動作。基本上,who 與 w 的功能是相同的,只是 who 僅列出使用者名稱與登入時間,至於 w 則會列出使用者的
  · 來源位址(IP):就是 FROM 那一項即是IP;
  · 登入時間:即是 LOGIN@ 那一項;
  · 工作項目:就是 WHAT 那一項!
  此外,不知道你有沒有發現,在使用 w 的時候,開頭會有一個訊息,『 8:48m up 4days ....』那個是 uptime 的輸出結果!
  其他:
  · whoami
  語法:
  [root @test /root ]# whoami 參數說明: 範例: [root @test /root]# whoami test
  說明:
  如果您是一位稱職的系統管理員,那麼您應該曉得盡量不要使用 root 登入系統這件事吧!那麼如何管理系統呢?!可以使用 su 或者是 sudo 來管理啊!通常我是比較習慣使用 su 啦! OK!那麼您已經是 root 的身份了,不過,可能由於執行程序的關係,常常會忘了到底自己的真實身份,這個時候 whoami 就可以解救你啦!如上面所示,雖然我的身份是 root ,不過,實際上我是 test 的啦!使用 su 變換身份而已!!
  其他:
  · id
  語法:
  [root @test /root ]# id 參數說明: 範例: [test @test /root]# id uid=501(test) gid=500(users) groups=500(users)
  說明:
  如果 whoami 還沒有辦法滿足你的需求,您還想了解你的 UID 與 GID (會在後面的增加使用者說明),還有所有支援的群組,那麼就得使用 id ??∫隕廈嫖???納矸菸 test ,這個身份的 UID 是 501 ,而 gid 是 500 ,所屬群組只有 users 這一個!!
  其他:
  · last
  語法:
  [root @test /root ]# last 參數說明: -number :number 為數字,如果您的登入訊息太多了,可以使用這個指令! 範例: [test @test /root]# last -5 test pts/0 192.168.1.2 Tue Apr 9 20:34 - 20:35 (00:01) test pts/0 192.168.1.2 Tue Apr 9 20:14 - 20:30 (00:15) test ftpd21546 192.168.1.2 Tue Apr 9 02:55 - 03:06 (00:10) test ftpd15813 192.168.1.2 Tue Apr 9 01:20 - 01:21 (00:00) test pts/0 192.168.1.2 Mon Apr 8 20:14 - 00:27 (04:13) wtmp begins Tue Apr 2 01:12:26 2002
  說明:
  要知道有沒有被入侵,常常使用的就是 last 這個指令??「? ftp, telnet, ssh 都會被紀錄在這個訊息當中,不過目前是只有記錄一個月的量!這個指令真的是不錯用的!常常可以發現是否有不正常的人物登入資訊呢!
  · date
  語法:
  [root @test /root ]# date [-s] [-R] [root @test /root ]# date +[format] 參數說明: -s :用來設定 Linux 主機時間的參數,如果你的主機時間不對,用這個就對啦! -R :如果發現你的語系是中文的,在純文字模式底下用這個試試看 +[format] %a :星期幾 %b :月份名稱 %d :日期 %y :年份 :還有很多的參數,請使用 man 自行查詢 範例: [root @test /root]# date +%a" "%b" "%y Wed Apr 02 [root @test /root]# date -s 04/10/2002 <==改變日期 [root @test /root]# date -s 02:02:00 <==改變時間 [root @test /root]# clock -r <==檢查 BIOS 裡面的時間 [root @test /root]# clock -w <==將目前 Linux 的時間寫到 BIOS 裡面去!
  說明:
  date 簡單的用法是只能查看時間的,不過,更廣義的用法是可以搭配很多種樣式來進行時間輸出的紀錄!此外,在 Linux 底下要更改時間,呵呵呵呵!也需要使用到 date 呦!不過,千萬記得, date 改完時間后,還要使用 clock 將時間記錄在 BIOS 裡面才算是完成了時間修改呦!
  · cal
  語法:
  [root @test /root ]# cal [-3my] 參數說明: 範例: [test @test /root]# cal -3 March 2002 April 2002 May 2002 Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 1 2 3 4 5 6 1 2 3 4 3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11 10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18 17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25 24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31 31
  說明:
  這個指令在叫出月曆!
  · hostname
  語法:
  [root @test /root ]# hostname 參數說明: 範例: [test @test /root]# hostname test.adsldns.org
  說明:
  很簡單吧!就是用來查看你主機名稱的指令就是了!

[火星人 ] Linux 程序與資源管理已經有650次圍觀

http://coctec.com/docs/linux/show-post-138056.html