Next Previous Contents

7. 基本操作

7.1 LINUX系統的基本概念

  1. Unix 的介紹

  2. Linux 系統的發展簡史

  3. Linux的自動補全功能

    自動補全的功能,是假設要下的指令很長,或者指令後面要給的檔名很長� A這個時候只要按 一個【Tab】鍵,bash 就會在可能的指令或檔名裡面找尋匹配的,找到的話就會自動幫您補齊,當然啦!使用者打的字元越多,bash收循匹配的檔名或指令就越容易找到。

    比如說有一個檔名或指令叫做Iorikyo,使用者只記得iori這四個字元的話,在提示符號下� 擗Jiori之後在按【Tab】鍵,如果Iorikyo這個名字是獨一無二的話,這時就會幫你補齊kyo 這三個字囉!要是不是獨一無二的話,比如說還有Iorikyo1、Iorikyo2   等,這時你按【T ab】鍵當然不會跑出來囉!這時你必須連續按兩下【Tab】,你會聽到嗶一聲bash 就會把所有符合的名稱給列出來,然後你在參考bash所列出來的名稱再輸入更多字元以便ba sh來辨認你所要的名稱!

  4. 命令列編輯程式

    bash的命令列編輯能力是內建的,這種功能以現在來說,可說是理所當然,就是你在提示符 號下,可對未執行的指令字元任意的修改,即使拼錯了也不需要重新輸入整個命令,只需在 執行指令前使用左右方向鍵移動游標,用【backspace】或【del】刪除游標前一個字元來編 輯打錯的指令編輯功能糾正錯誤即可,這尤其適合於冗長的路徑名稱當作參數的命令時。

    此外,【ctrl】+【a】會把游標移到指令的最前面,用【ctrl】+【e】可以把游標移動到指令的最後面,非常方便。用【ctrl】+【c】可以中斷目前在編輯的這行指令,跳到一行新的提示符號重新輸入,此外,在程式執行中,【ctrl】+【c】還可以用來強行中斷程式的執行,回到提示符號。對於這種複合鍵,筆者順便在此做一些說明︰

    【ctrl】+【C】︰停止命令或程式的執行。
    【ctrl】+【D】︰停止輸入或簽出系統也就是所謂的logout!
    【ctrl】+【S】︰暫時停止螢幕的輸出,始螢幕內容滯留,不向上捲動。
    【ctrl】+【Q】︰恢復螢幕輸出。
    【ctrl】+【\】︰終止一個處理程序的執行。

    當你按這些複合鍵時,有時螢幕會顯示 ^ 這樣的符號,比如說【ctrl】+【c】啦, 就會出現 ^c 的字樣,也就是說 ^ 代表著【ctrl】鍵。

  5. 命令歷程(command history)

    所謂的命令歷程就是把你曾經輸入過的指令紀錄起來,方便日後的查詢與使用。而這也是我 們最常用的功能,就好像是DOS模式中的doskey功能一樣,但是功能更強喔!要是我們懶的孕摒萓P或類似的指令,只要按方向鍵中的向上鍵就可以叫出前一個指令,再按一次向上鍵就可以叫出更前一個指令,依此類推,用向下鍵可以回到下個指令,所以用上、下鍵就可以選擇以前輸入過的指令,再配合編輯指令的功能就可以少打很多字,這對於懶得動手的人可是一大福音!

    況且它以history的工具程式記錄了你所執行過的指令,History程式是一種短期記憶,記錄 了以最近執行的指令,也不完全是指令而已,只要你曾在提示符號下鍵入字元並且按【Ente r】鍵執行過的話,都會被紀錄下來喔!

    使用方法是在提示符號下我們鍵入history指令後,螢幕便會列出一段或一大串的命令的歷� 程(看你打過多少囉!),如下︰

    [root@xlinux down]# history
    1   cd /usr
    2   ls
    3   mkdir home  
    4   cd home
    5   ls
    6   cd /usr/home
    7   mkdir a8630257
    8   chown a8630257 a8630257
    9   ls
    10  ls -la
    

    命令歷程是由1開始編號,預設值應該是1000,編號的號碼越大,表示所執行過的指令離目� 前時間最近,使用者可以這樣來辨別。

  6. 特殊字元

    在UNIX系統裡,有一組更完備的特殊意義字元,這就是所謂的萬用字元(meta - character),曾經用過DOS系統的人,應該感到不陌生,像 * 這種符號可以方便我們執行系統檔案的查詢,在此我們將介紹有關於UNIX的特殊字元,如果 善加利用這些特殊字元的話,跟linux溝通可說是得心應手!

    使用萬用字元的好處為:

    ● 減少輸入【key in】時間
    ● 鼓勵使用者使用良好的檔案命名方式
    ● 簡化Shell Script的設計工作

    現在我們要列出一些常用的萬用字元的意義,供您參考:

       萬用字元    意義 
     .. 上一層目錄,與cd指令配合用比較多
     . 表目前工作的目錄
     * 任意長度的字元
     ? 長度為一個的任意字元
     [ .. ] 括號內的一個字元
     \m 等於某個萬用字元,如*、? 等
     [ a- z ] *  小寫字母開頭的所有字串
     \ 跳脫符號,用以解除特殊字元的特殊意義
     ~ 使用者目錄
     ; 分隔符號,當命令列有多個指令時,做分隔用
     $ Bourne shell的提示符號,同時也為shell語言的位址參數
     # 做註解用
     |  建立一個管線,使一命令的輸出作為另一個命令的輸入
     & 將命令以幕後的方式執行
     > 將命令的輸出重導入檔案中
     < 將命令的輸入流指定為由檔案中載入,跟>相反就對了!
     >>  將命令的輸出加在一個已經存在的檔案後面
     { .. }括號內的一個字串
    萬用字元

7.2 LINUX的基本指令

由於Linux系統對您來說,可能是一套全新的作業系統 倘若您以前有使用過Unix,那Linux對您來說一定不陌生,在此要對Linux的常用基本 指令來做個簡介,至於指令中的選擇項用法,我們也是簡介常用的參數,這樣對於 Linux的初學者來說,可能會有莫大的幫助。

倘若您覺得您還想更深的了解指令的其它強大功能,您可以用Linux提供的man指令 [線上手冊],來讓您有更深的了解,假如您想用一個這裡沒有提到的指令, 而您卻也不會使用,這時也可用man指令來幫助您。man的常用語法請參閱本手冊的 第十一章

指令一定有名稱,但不一定需要選擇項和參數,只要任何時候看到系統提示 字元[$:表示bash《Linux預設》、%:表示tcsh、#:表示為系統管理者], 就可執行系統指令。

很多指令都有選擇項,利用選擇項您可以去指揮指令,使執行動作產生不同的結果。 而選擇項皆以 "-"或"─"來引導。當您要使用很多的選擇項時,其前後的次序不會 影響指令的動作,但要注意的是大小寫的區分。參數的目的是描述指令所需的一些 訊息[如:檔案名稱],而這些訊息在每次執行該指令時都會有所不同。 w

  1. cat,more,less指令-顯示文件.ls指令-查看目錄及檔案
  2. chmod指令─變更檔案使用權限
  3. chown指令─變更檔案的擁有人及所屬群組
  4. cp指令─拷貝檔案
  5. mkdir、rmdir指令一建構目錄、刪除目錄
  6. rm指令─刪除檔案/目錄
  7. cd指令─切換目錄
  8. passwd─修改密碼
  9. find指令─搜尋檔案與目錄
  10. mv指令─檔案/目錄更名或搬移
  11. gzip、tar─壓縮/解壓縮工具
  12. df、du指令─查詢磁碟空間使用情形
  13. ps指令─查尋程序執行狀態
  14. top指令─程序監視
  15. w、who─線上使用者
  16. sync、reboot指令
  17. mount、umount指令─掛上,卸下檔案系統設備
  18. ln指令─製作鏈結檔
  19. traceroute
  20. halt、shutdown指令─正確關機方法

以下將介紹一些基本的指令:

7.3 系統管理指令介紹

系統管理(system administration)是保持電腦系統持續運作良好,所必需做的 工作,現在幾乎大部份的電腦都已經上網路了,因此有另一部份工作是去保 持網路暢通。這部份又叫網路管理(network administration),一個普通節點可能 會有個全職的系統管理者(system administrator)來進行所有的系統與網路管理 工作。大的節點則可能會將系統與網路管理工作作更細的個人區分,如果你只 是在家跑Linux,或只是管小公司裡的小規模系統,那就可能身兼系統與網路 管理者。

Linux有著系統與網路管理所需的基本指令與工具.本章會講到其中一些命 令,第7.7章則會描述網路管理基本指令。

  1. 系統管理者使用的管理指令

  2. 使用者檔案權限管理指令

    Linux上每一個檔案都明確的定義所有人名稱(Owner)、群組名稱(Group) 和檔案的使用權限等。因此每一位系統上的使用者都有權力也有義務適當的 規定自己Home目錄下的檔案權限,以維護自己的檔案安全。以下的幾個常用的指 令介紹,希望讀者都能常記在心。

7.4 文書編輯器介紹--「VI」

vi(m)在大多數的unix系統中(包括linux)都內建vi(m)編輯器。如果您即將成為linux系統管 理者,或是長時間在linux環境中工作,您最好學會vi(m),因為您遲早會使用到它,由其是 系統出狀況時。對新手而言,第一次使用vi(m)的過程是非常痛苦的,甚至討厭它,因為它� 瑣犑@方式與一般輯編器完全不同。但是,一但您學會如何操作它時,您會對它愛不釋手,� 因為它的功能實在太強了。vi(m)就是這像,讓人又愛又恨。

事實上linux系統中的vi其實是vim。vi與vim的用法很像,因為它是vi的增強版, 因此vi有什麼功能vim都有,而且vim新增許多vi沒有的功能,而且比vi容易使用。

  1. vi(m)的三種模式簡介

    1. 一般模式

      在一般模式下,您所能進行的動作只有移動游標螢幕上的位置,標記、 刪除、搬移、複製字元或文字區塊。此外您可以由命令模式進人輸入 模式雖命令列模式。

    2. 輸入模式

      只有在輸入模式下,才可進行文字資料輸入,按 ESC鍵可以回到一般模式。

    3. 命令列模式

      將檔案寫入或離開編輯器,亦可設定編輯環境,如 尋找字串、列出行號‥等。

  2. vi(m)的基本操作

    1. 進人vi

      在系統提示符號下輸入vi及檔案名稱後即進入 vi全螢幕編輯畫面,且在一般模式下。 輸入模式下編輯文件:
      在一般模式下可按'i'或'a'或'o'三鍵進入編輯模式.

      • "i" insert - 在目前游標之處插入所要輸入之文字.
      • "a" append - 在目前游標所在的下一行開始輸入文字
      • "o" open - 新增一行在游標的下,並從行首開始輸人文字

    2. 離開vi及存檔

      在一般模式下可按 ':' 鍵進人命令列模式,

      • :w filename(存入指定檔案).

      • :wq (寫入並離開vi).

      • :q!(強迫離開並放棄編輯的檔案).

      • :n[檔案] - 引入下一個檔案.

      • :l,l2d - 刪除自行l至行l2的文字.

      • :l,l2s/patternl/pattern2/g - 將行l至行l2的文字, patternl的字串改為pattern2的字串,如無g則僅更換 每一行所匹配的第一個字串,如有g則將每一個字串均做更換.

  3. 一般模式功能鍵簡介

  4. 命令列下指令簡介

    注意:使用前請先按ESC鍵確定在一般模式下 按':'或'/'或'?'三鍵即可進入命令列模式

7.5 文書編輯器介紹--「JOE」

這是一套文書編輯軟體,類似在DOS之下的PE2,是Linux系統中最受歡迎的文書編 輯軟體,當您安裝好Linux後,joe這套文書編輯軟體就已經安裝好了,讀者不需 要再安裝一次。

假設我們要用joe寫一個文字檔案test,只要執行:

joe test

就可以開始編輯文字檔了。joe軟體中有所多指令可以使用,讀者只要按 (Ctrl+k+h)就會出現Joe軟體的指令功能說明,如下圖所示:

請讀者注意在指令說明中,【^】即代表【Ctrl】鍵,我們在這裡簡略的介紹一下指令 的使用:

● 游標部分(CURSOR)
【Ctrl+f】      將游標往右移動       
【Ctrl+b】      將游標往左移動
【Ctrl+p】      將游標往上移動
【Ctrl+n】      將游標往下移動
【Ctrl+z】      將游標往左移動一個間隔
【Ctrl+x】      將游標往右移動一個間隔

● 搜尋部分(SEARCH)
【Ctrl+k+f】  搜尋單字
【Ctrl+l】    如果之前的指令沒有搜尋到你想要的單字,按這個指令就會繼續往下
              搜尋你要找的單字

● 文章的移動(GO TO)
【Ctrl+u】      將文章向上移動一個段落
【Ctrl+v】      將文章向下移動一個段落
【Ctrl+a】      將游標移到句子的最前端
【Ctrl+e】      將游標移到句子的最末端
【Ctrl+k+u】    將游標移到文章的最前端
【Ctrl+k+v】    將游標移到文章的最末端
【Ctrl+k+l】    將游標移到文章的第幾行

● 標示區塊(BLOCK)
【Ctrl+k+b】   標示區塊的起頭                   
【Ctrl+k+k】   標示區塊的尾端
【Ctrl+k+m】   將所標示的區塊搬移
【Ctrl+k+c】   將所標示的區塊拷貝
【Ctrl+k+w】   將所標示的區塊儲存成另一個檔案
【Ctrl+k+y】   將所標示的區塊刪除
【Ctrl+k+/】   將所標示的區塊

● 刪除部分(DELETE)
【Ctrl+d】     刪除一個字元
【Ctrl+y】     刪除一行字
【Ctrl+w】     刪除游標所在右邊的單字
【Ctrl+o】     刪除游標所在左邊的單字
【Ctrl+j】     刪除游標所在右邊的一行單字       

● 文字部分(MISC)
【Ctrl+t】     選擇選項
【Ctrl+@】     插入文字

● 離開部分(EXIT)
【Ctrl+k+x】   儲存檔案並且離開
【Ctrl+c】     不儲存離開

● 文件部分(FILE)
【Ctrl+k+e】   編輯另一個新檔案
【Ctrl+k+r】   插入另一個檔案內容
【Ctrl+k+d】   儲存檔案但不離開

7.6 壓縮、解壓縮的工具

底下介紹一些常用的解壓縮、壓縮工具:

  1. gzip.gz

    -9 數字9表示最佳壓縮,如果是-l的話,表示快速壓縮
    -r recusive,如果您想要壓整個目錄底下的檔案的話就會 用到最一參數, 但是此是會對底下的檔案做個別壓縮,底下會介紹怎麼將整個目錄壓成一個 檔案.

  2. gunzip解.gz的檔案

    -r resusive,和gzip-d-r file.gz功能相同
    -d decompress,解壓縮的意思!

  3. tar

    -c.tar.gz or .tgz產生一個壓縮檔
    -z 將目錄tar起來後再用gzip把該檔案再壓縮起來
    -f 所使用之壓縮後檔名
    ex:tar-czf mail.tar.gz mbox/可以將mbox整個目錄壓縮成一個檔案
    -x 解.tar.gz or .tgz將檔案tar開,如果再配合-z的話就變成解壓縮.
    ex: tar-zxf mail.tar.gz
    compress.Z-d壓縮成.Z的檔案
    uncompress解.Z檔案直接打uncompress mail.Z就可解壓縮了.

7.7 LINUX基本的網路功能

  1. Linux 的網路能力

    由字面上看來,網路代表了電腦和電腦彼此的資料交換,範圍從很低階的實際連 線到協定(protocol)中真正的資料交換。網路協定(network protocol)指的就是 想透過網路交換資料的雙方,彼此同意的溝通方式。 不同的網路協定用在不同的網路層次,在實體層,這個層次描述的是位元資料傳 輸的媒介,像是電纜,這時使用的協定就是Ethernet或是Token Ring,不過呢, 應用程式並不是在實體層的協定運作,所依循的協定,是用來處理成串資料。這 些協定包括了Novell的Internet Packet Exchange(IPX),和知名的Transmission Control Protocol/Internet Protocol(TCP/IP)。

    網路協定的層次可以以網路模型來表示,像國際標準組織(International Standards Organization,ISO)所發展出,七個層次的開放系統互連OSI(Open Systems Interconnection)參考模型就是一個例子, 標準的網路協定像是TCP/IP,是電腦互連形成區域網路與廣域網路,成長的 關鍵,協定允許這些小網路的互連,現在所熟知的互連網路就是Internet,

  2. 基本網路指令簡介
  3. mail指令 (收信與寄信)

    當讀者要在站上寫信給讀者的朋友時,讀者可以這樣執行 :

     
    mail (對方的)E-mail Address
    

    假設我們要寄一封信給 www.xlinux.com.tw 這台機器的 partner 使用者,範例如下 :

    mail partner@www.xlinux.com.tw
    

    Subject為這封信的標題,我們寫test,按Enter後,就是這封信的內容,我們是寫this is test letter.,寫完內容後,按Enter,再按【.】號,再按Enter,這封信就寄出去了。 假如讀者要寄信的對象,其Mail Server是跟讀者同一台機器的,讀者只要執行mail 使用者的名字就可以了。又或者讀者是要寄一個文字檔或是讀者編好的檔案, 讀者可以這樣執行 :

     
    mail 使用者的E-mail Address < 文字檔案
    

    假設我要寄test.doc給 www.xlinux.com.tw 這台機器partner這個使用者,則是要這樣寫 :

    mail partner@www.xlinux.com.tw  <  test. doc
    

    當讀者有新的信件時,系統會通知讀者有新信件進來,讀者只要執行

    mail
    

    不加任何參數,就可以看信了。

    You have new mail. ←系統通知讀者有新信件,接下來執行mail看信。範例如下 :

    Mail version 5.5  6/1/90.  Type? for help.
    "/var/mail/lee" :   1 message 1 new
    >N 1 root  Fri  Aug  14  14 : 50  14/406  "test"
    & 1       ←執行 1,看第一封信
    Message 1 :
    From daemon Fri  Aug  14  14 : 50 : 17  1998               ←信件的日期
    Date : Fri , 14  Aug  1998  14 : 50 : 17  +0800   (CST)    ←信件到達的日期
    From : partner <root》   ←信件的來處
    To : lee@xlinux.com.tw    ←收信者的E-mail Address
    Subject : test           ←信件的標題
    
    This is test later.      ←信件的內容
    
    &
    

    讀者要再看信時,還可以在提示符號"&"之下加一些參數,來處理信件,範例如下:

    當讀者看完一封信,要刪除它時,用

    & d

    假設讀者收到很多封信,想刪除第一封到第五封,則用

    & d 1-5

    刪掉全部則用

    & d*

    將信另儲存成一個檔案(假設我們要將信另存一個新檔 letters)則用

    & s letters

    回信則用

    & r

    讀者想知道其它的參數功能,則用

    & ?

    離開系統,但不將所看過的信儲存成mbox,則用

    & x

    離開系統,將所看過的信儲存成mbox,則用

    & q

  4. ping 指令 (測試遠端電腦是否在線上)

    當讀者想要連線到某一個遠端電腦之前,可以先利用ping來測試遠 端的電腦是否有在線上,若有在線上的話,則可以正常的使用,若沒有在線上時, 可能是遠端的電腦已關掉,或者是網路線上有台主機已當機,所造成的結果。

    假若讀者在使用網路時,覺得網路異常,讀者可先自行測試一下,便可知道那一台 主機有當機的情形發生。底下是 ping 192.192.73.1,且有在線上的範例,如下所示:

    ping 192.73.18.6
    

  5. traceroute 指令 (列出所經過的閘道器)

    這個指令是列出當讀者要連線到遠方機器時,所需要經過的閘道器,通 常是用來查看網路是否能正常運作。

    tranceroute 常用的語法: 【tranceroute IP 位址 】

    假設我們要查出從本身機器連到192.192.180.180 (台中商專) 這個位址時,要經過哪些閘道器,讀者可以這樣執行。

    wwwl : ~# traceroute  192.192.180.180
    

    從以上的範例,我們可以知道從本身的機器要連到 192.192.180.180 這個位址時,可能要要經過的閘道器。

  6. ifconfig 指令 (設定與管理網路介面)

    這是用來設定與管理網路介面的指令,網路介面泛指網路卡、PPP、SLIP、Loopback 等等。接下來我們介紹ifconfig的一般用法 :

    ifconfig 常用語法:【 ifconfig -a 】

    這可以查詢所有的網路介面情形,

    舉例 :如果讀者懷疑自己的網路介面當掉了,則可以執行以下指令。

    www1: /# ifconfig de0 down←停止網路介面。
    www1: /# ifconfig de0 up←再啟動網路介面。
    www1: /# ping 192.192.73.1←隨便一台遠端機器。

  7. netstat 指令 (查詢網路使用情形)

    這一個指令可以讓讀者查詢現在的網路使用以及連線的情形。

    netstat常用指令:【 netstat「參數」】

    1.現在我們來查看網路介面流量,可鍵入

    netstat -i │more

    以下為代表的值:
    Ipkte:接收到的包封。
    Ierrs:接收到但是受損的包封。
    Opkts:送出去的包封。
    Oerrs:送出去但是受損的包封。
    Coll:表示發生碰撞的次數。

    2.查詢TCP網路連線的情形,可鍵入

    netstat -t │more

    3.查尋所有路網路連線的情形,可鍵入

    netstat -a │more

7.8 QUOTA的使用

  1. 安裝Quota使用者硬碟空間管理:
    Quota的設定在XLinux中將讓您更容易地設定它, 可參考本手冊第六章6.2節 Genie的預設項目中的User/Group/Quota設定。
    以下是傳統的Quota設定方法:

    步驟:


  2. Quota注意事項

    在建立使用者quota硬碟容量配額時,有一個問題時常發生,即是UID和使用者帳號搞混了, 問題發生的背景是一般教育單位常利用免費的FreeBSD或Linux提供學生電子信箱和個人首頁 服務,此時系統管埋者大多會使用學生的學號來當作帳號,方便日後的管理,如果不巧的是 學生的學號全部均是阿拉伯數字的話,問題便發生了。當我們使用edquota -u uaername來設定使用者quota硬碟容量配額時,如果uaername為阿拉伯數字的話則系統 設定是UID(使用者識別號),而非該位使用者!所以在此建議不妨在全部均是阿拉伯數 字的學生學號前面加個英文字母來當作帳號,避開此一問題。
    有時我們可能新增加使用者後,卻忘了同時限制使用者quota硬碟容量配額,使得系統 有崩潰的危機,所以日常的檢查是必需的,首先我們切換至使用者有使用者的目錄中, 一般是/home,

    執行cd home;quota -u * more/,檢查一下是否有漏網之魚。接下來執行 cd home;quota -q -v -u *,more/,檢查一下超過提醒配額的使用者。


Next Previous Contents