文章詳情頁
FreeBSD handbook中文版 3 Unix 基礎
瀏覽:115日期:2024-07-03 16:06:37
目錄 3 Unix 基礎 3.1 概要 3.2 權限 3.3 目錄結構 3.4 掛上和卸載文件系統 3.5 進程 3.6 后臺,信號和殺死進程 3.7 shell 3.8 文本編輯器 3.9 設備和設備節點 3.10 更多信息 ============================================================= 第3 章,UNIX 基礎知識 ============================================================= (翻譯中出現的任何問題或錯誤,請廣大讀者及時反饋給我:[email protected]) 3.1 概要 這一章將介紹UNIX 的基礎知識和FreeBSD 的功能。如果你還是個FreeBSD 的新手,你 在尋求幫助之前,應當先閱讀這一章。 讀完這章,你會了解到: 1. UNIX 的文件訪問權限是如何工作的。 2. 進程,后臺,和信號是什么。 3. 什么是shell,如何改變你的默認登陸環境。 4. 如何使用基本的文本編輯器。 5. 如何閱讀聯機手冊了解更多信息。 3.2 權限 FreeBSD,仍然保持著BSD UNIX 的傳統,它的基本原理仍然是以幾個關鍵的UNIX 概念 為基礎的。首先,最顯著的就是:FreeBSD 是一個多用戶的操作系統。這個系統能夠允許許 多毫不相關的任務同時工作。對于每一個用戶來講,系統都能非常可靠地分享和管理著來自 不同硬件設備、內存、CPU 時鐘的處理請求。 因為系統支持多用戶,所以系統管理的每一件事情都必須要設置誰有讀,寫,和執行的 權限。這個權限用八進制的形式來表示,把它分成三部分:文件擁有者,文件擁有者所在組 和其他成員。這種表示方法如下所示: 權限值 No read, no write, no execute 0 No read, no write, execute 1 No read, write, no execute 2 第1 頁 目錄列表 --- --x -w- FreeBSD 使用手冊 No read, write, execute 3 Read, no write, no execute 4 Read, no write, execute 5 Read, write, no execute 6 Read, write, execute 7 在一個長目錄中,用ls –l 命令列一個清單,就顯示了文件所有者、文件所有者所在 組和其它成員的權限信息。這里就是它的表示方法: -rw- r- - r- - 從左到右,第一個字符是一個特殊的字符,它告訴你這是一個規則文件,一個目錄,一 個特殊字符,一個塊設備,一個套接字,還是其它的偽設備文件。下面的三個字符“rw-” 指明了文件所有者的權限。下面的三個字符“r--”指明了文件所有者所在組的權限。最后 面的三個字符“r--”,給出了其他用戶的權限。一個破折號表示這個權限被關閉了。在這 樣一個設置下,意味著只有文件所有者才能讀、寫文件,組能夠讀文件,其它用戶只能讀文 件。按照上表的指示,這個文件的權限應該是644,每個數字都代表著這個文件權限的三個 部分。FreeBSD 是如何來控制設備的權限的呢?事實上,FreeBSD 把絕大多數的硬件設備看 作是一個文件,就象其它文件能夠被打開,閱讀,寫數據一樣。這些特殊的設備文件保存在 /dev目錄下。 目錄也可以當作文件來看待。它們有讀、寫和執行的權限。這里的可執行跟其它文件的 可執行有一些差別。例如,當一個目錄被標記為可執行時,意味著這個目錄可以被查找到, 并且可以在這個目錄下列目錄。如果你想了解如何設置權限的話,你可以參考chmod 命令的 有關說明。 3.3 目錄結構 FreeBSD 使用的文件系統決定了許多基礎的系統操作,文件系統的層次結構是非常重要 的。在所有的目錄中,root(/)是最重要的。系統啟動時,這個目錄是最先被掛上的,而 且它嘶鏡南低承畔ⅰoot 目錄也包含了你能夠掛上的其它文件系統的裝載點。裝 載點是其它文件系統能夠被連接到root 文件系統的目錄。這些目錄通常被指定在 第2 頁 -wx r— r-x rw- rwx FreeBSD 使用手冊 /etc/fstab下。/etc/fstab是一個幾種文件的表,裝載點能夠被系統參考。在/etc/fstab 中的絕大多數文件系統,能夠在啟動時被自動掛上,除非它們包含noauto 選項。你可以參 考fstab 的指南,了解更多有關/etc/fstab文件格式和它所包含選項的信息。 現在,主要的目錄結構就是這些: 描述目錄 文件系統的根目錄/ 單用戶和多用戶環境下,用戶使用的工具。/bin/ 操作系統啟動過程中使用的程序和配置文件。/boot/ /boot/defaults/ 默認的啟動配置文件;看看loader.conf。 設備節點;看看intro。/dev/ 系統配置文件和腳本。/etc/ 默認的系統配置文件;看看rc. /etc/defaults/ 象sendmail 這樣的用于郵件傳輸代理的配置文件。/etc/mail/ /etc/namedb/ Named 配置文件;看看named。 通過via 每天,每周,每月運行的腳本;看看periodic 的聯機手冊。/etc/periodic/ /etc/ppp/ Ppp 配置文件;看看ppp 聯機手冊。 系統管理員使用的用作一個臨時加載點的空目錄。/mnt/ 處理文件系統;看看procfs,mount procfs 聯機手冊。/proc/ /root/ Root 帳戶的主目錄。 單用戶和多用戶使用的系統程序和管理工具。/sbin/ 在獨立環境下使用的程序。/stand/ 臨時文件。/tmp/ 主要是用戶的工具和應用程序。/usr/ 通常是工具,程序工具和應用程序。/usr/bin/ 標準C include 文件。/usr/include/ 文檔庫/usr/lib/ 各種工具的數據文件。/usr/libdata/ 系統守護程序和系統工具(被其他程序執行的)。/usr/libexec/ 第3 頁/usr/local/ /usr/obj/ /usr/ports FreeBSD ports collection 。 /usr/sbin/ /usr/share/ /usr/src/ /usr/X11R6/ X11R6 發行的可執行程序,庫等。 /var/ /var/log/ /var/mail/ /var/spool/ /var/tmp/ /var/yp NIS 地圖。 3.4 掛上和卸載文件系統 文件系統可以形象化為一棵樹,root 就是根:象這樣/,/dev,/usr 等。根目錄下的其 他目錄也可能有分支,這些分支也會有它們自己的分支,象這樣/usr/local 等等。之所以 要采用這種分離的文件系統有很多原因。/var 包含log,spool 和不同的臨時文件。當然, 這個目錄也可能會被塞滿。塞滿根文件系統不是一個好主意,所以從/分離出一個/var 比較 好。 在其他的文件系統上,采用這種目錄樹結構的另一個原因是他們可能會在另外一個物理 磁盤上,或在另外一個虛擬磁盤上,象NFS 文件系統或CDROM 驅動器。 3.4.1 fstab 文件 在系統啟動的過程中,在/etc/fstab 中列出的文件系統會被自動地掛上。/etc/fstab 文件包含了一個以下面的格式排列的列表: device /mount-point fstype options dumpfreq passno FreeBSD 使用手冊 本地執行的,庫等。也是默認的放置ports 框架的地方。Ports 的文檔 放在/usr/local/share/doc/ port中。 通過建構/usr/src 目錄樹產生的特定結構的目標樹。 系統守護程序和系統工具(由用戶執行的)。 獨立結構的文件。 本地源代碼文件。 多種日志,臨時文件,和spool 文件。 多種系統日志文件。 用戶郵箱文件。 多種打印機和郵件系統spooling 目錄。 系統重新啟動之間保存的臨時文件。 第4 頁FreeBSD 使用手冊 Device 是一個設備名,就象上一章磁盤命名規則所提到的。 mount-point 是一個目錄,在它上面掛上文件系統。 Fstype 是要掛上的文件系統類型。FreeBSD 的默認文件系統是ufs。 Options 選項既可以是rw 可讀寫文件系統,也可以是ro 只讀文件系統,可根據其它選項的 要求來定義。在系統按順序啟動過程中,一個普通的選項是noauto,它通常不會被掛上。 其他的選項可參看mount 的聯機手冊。 3.4.2 mount 命令 mount 命令通常是用來掛上文件系統的。它的最基本的操作格式: # mount device mountpoint 它有很多的選擇參數,但絕大多數是這樣的: mount options -a 掛上/etc/fstab 中的所有文件系統,也可以用-t 來修改。 -d 除了掛文件系統外,可以做所有事情。 -f 強迫掛上文件系統。 -r 掛上只讀文件系統。 -t fstype 以給定的文件格式掛上給定的文件系統。如果加上-a 參數,就只能掛上給定類型的文 件系統。“ufs”是默認的文件類型。 -u 在文件系統上升級mount 選項。 -v 更加詳細。 -w 修改文件系統為讀,寫。 第5 頁FreeBSD 使用手冊 -O 選項提供了一個用逗號分割的選項列表,包括下面這些: nodev 不要解釋文件系統上的特殊設備。有用的安全選項。 noexec 不允許在這個文件系統上執行程序。有用的安全選項 nosuid 不要在文件系統上解釋setuid 或setgid 標記。有用的安全選項。 3.4.3 umount 命令 在umount 命令后可能會加載的參數可能是一個掛載點,一個設備名,或是-a,-A 選項。 所有加-f 參數的形式將會被強迫卸載,-v 參數就會太冗長。-a,-A 選項用來卸載所有掛上 的文件系統。 3.5 進程 FreeBSD 是一個多任務的操作系統。這意味著可以同時有多個程序一起運行。你運行的 每個程序叫做一個進程。你運行的每個程序都至少要啟動一個進程,系統中時刻都有很多 進程在運行,以維持系統的功能。 每一個進程都有一個叫做進程ID 或PID 的號碼,每個進程也會有一個主人(或叫屬主) 和它所在的組。主人和組的信息用來決定進程能夠打開什么文件和設備,使用文件的權限。 絕大多數進程都有一個父進程。父進程是啟動其他進程的進程,你運行的任何命令也是進 程。每個進程將使用你的shell 作為它的父進程。除這個進程之外的一個特殊的進程叫做 init。Init 總是第一個進程,所以它的PID 總是1。當FreeBSD 啟動時,init 會被內核自 動啟動。 有兩個命令可以用來查看系統的進程,ps 和top。ps 命令用來顯示當前運行的進程的 列表,還可以顯示它的PID,它們使用多少內存,它們啟動的命令行等等。Top 命令顯示了 所有運行的進程,每隔幾秒就刷新一次,以至你可以動態地觀察你電腦的工作狀況。默認 情況下,ps 只顯示正在運行的你自己的命令。例如: % ps 第6 頁FreeBSD 使用手冊 PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xeMacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-Linux/navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish 正如你在這個例子中看到的,ps 的輸出形式是根據數字的排列順序來組織的。PID 是 先前討論的進程ID。PID 從1 開始,最高到65536。當你完成以后,再從頭開始。TT 顯示 了正在運行的tty,也可以安全地略過。 Ps 支持許多不同的選項來改變顯示的信息。最有用的設置是auxww。一個有關所有運 行的進程的顯示信息,不僅僅是你自己的。U 用來顯示進程的使用者和內存的使用者。X 用 第7 頁FreeBSD 使用手冊 來顯示后臺運行的進程信息,ww 用來顯示所有的命令行,一旦它比較長而超出屏幕時,就 會截取其中一段。 Top 的輸出也比較熟悉。可以看看下面的例子; % top last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ... 第8 頁FreeBSD 使用手冊 整個輸出被分為兩節。頭上(最初5 行)顯示運行著的進程的PID,系統的平均負載(反 映系統的繁忙程度),系統的正常運行時間(從上次重起以來的時間),和當前時間。其 它的圖顯示了當前運行了多少個進程,有多少內存和交換空間已經被占用,系統在不同CPU 狀態之間切換需要花費多長時間。 下面有一連串的豎直排列的ps 命令的輸出信息。你可以看到PID,用戶名,CPU 時鐘 的花費數量,正在運行的命令。Top 也默認地顯示了進程所花費掉的內存空間的數量。這可 以被分成兩列,一列針對所有的內存數量,一列針對常駐內存數量。整個內存數量就是應 用程序需要多少內存,常駐內存是在此刻使用的內存數量。在這個例子中,你可以看到 Netscape 使用了30M 內存,當前只使用了9MB。Top 每隔兩秒自動刷新一次;這可以通過加 上s 選項來修改。 3.6 守護程序,信號和殺死進程 當你使用一個編輯器的時候,你可以要求它加載一些文件。因為它們提供了這樣的功 能,而且它們是與一個終端連在一起的。但,有一些程序卻不能讓用戶輸入信息,它們是 不與終端連在一起的。例如,一個web 服務器花費所有的時間來回應用戶的請求,它通常 不需要你有任何的輸入。從一個站點到另一個站點傳送email 是另外一個這種類型的應用 例子。我們叫這些程序為daemons(守護程序)。Daemon 具有希臘神話的特征;今天的許 多web 服務器和mail 服務器都使用這些。有時你可能需要與一個守護程序進行通訊。這些 通訊就叫做signal。你可以通過給它發送signal(或是運行進程)來與守護程序通訊。如 果你發送的signal 有很多(有一些有特殊的用處),其它的與應用程序集成在一起,應用 程序的文檔會告訴你如何解釋signal。你可以發一個signal 給你的一個進程。如果你設法 發送一個signal 給其他人的進程,它就會被忽略。Root 用戶除外,它可以發送signal 給 每一個進程。 如果一個應用程序寫入錯誤,就會設法訪問內存,FreeBSD 會給進程發送Segmentation Violation signal (SIGSEGV)。如果一個應用程序使用alarm 系統來發出警告,那一段時 間以后,它也會發送警告信號。 兩個信號可能會中斷一個進程,SIGTERM 和SIGKILL。SIGTERM 是一個比較友好的殺死 進程的方法;這個進程也會捕獲信號,以便讓你關機,關閉可能打開的一些日志文件。在 第9 頁FreeBSD 使用手冊 關機之前,通常需要完成當前正在做的工作。有時,如果它是處在一個不能打斷的任務中, 一個進程可以忽略SIGTERM。 SIGKILL 無法被進程忽略。它會發出這樣的信號“I do not care what you are doing, stop right now”。如果你發送SIGKILL 給一個進程,FreeBSD 將會停止那個進程。 你可能要用到的其他signal 是SIGHUP, SIGUSR1 和SIGUSR2。這些是普通用途的 signal。當他們被發送時,不同的應用程序將做不同的事情。 建議你改變一下你的web 服務器的配置文件----你最好告訴web 服務器重新讀一下它 的配置文件。你需要重起httpd,但這將會在你的web 服務器上增加一些消耗,而這可能是 你不太歡迎的。絕大多數守護程序通過重新讀取它們的配置文件來對SIGHUP 信號作出回應。 不同的后臺程序將有不同的行為。所以,要帶著問題來閱讀守護程序的聯機手冊。 可以使用kill 命令來發送signal,例如: 發送一個signal 給處理器 這個例子顯示了如何發送一個信號給inetd。Inetd 的配置文件是/etc/inetd.conf。當它 接收到SIGHUP 時,inetd 將重新讀取這個配置文件。 尋找你要發送信號的進程ID。可以使用ps,grep 命令。Grep 命令被用來搜索輸出, 1. 尋找你要指定的字符。這個可以有一個普通用戶來執行,而inetd 需要是root 用戶,所以 ps 必須帶上ax 選項 % ps -ax | grep inetd 198 ?? IWs 0:00.00 inetd -wW 這兒,inetd 的PID 是198。有時,grep inetd 命令也需要出現在這個輸出中。這是 因為ps 必須要找到當前運行的進程的列表。 使用kill 來發送信號。因為inetd 只有root 用戶才能運行,你必須使用su 來變2. 成一個root 用戶。 % su PassWord: 第10 頁FreeBSD 使用手冊 # /bin/kill -s HUP 198 就象普通的unix 命令一樣,如果它成功執行,kill 將不會輸出任何信息。如果你想發 送一個signal 給一個進程,你會看到“kill: PID: Operation not permitted”。如果你 打錯了PID,你有可能把信號發錯給了某個進程,這樣會很糟糕,也有可能把信號發給了一 個當前不在使用的PID,你將可能看到“kill: PID: No such process”這樣的信息。 為什么使用/bin/kill:許多shell 提供了內建命令kill;shell 將直接發送信號,比 運行/bin/kill 要好。這點非常有用,但不同的shell 需要用不同的語法來指定信號的名字。 重要點:在系統中隨意地殺死進程是個壞主意。特別地,init 進程ID 是1,非常特殊。 運行/bin/kill -s KILL 1 是一個快速關閉你系統的方法。在你鍵入kill 之前,請你仔細 檢查你執行的kill 的參數。 3.7 Shell 在FreeBSD 中,許多工作是通過一個叫命令解釋器{俗稱“外殼(shell)”}的命令行 接口來完成的。shell 的主要工作是接收輸入的命令然后執行它們。許多shell 也能夠用來 幫助完成每天的工作,如:文件管理,文件查找,命令行編輯,宏命令,以及其它環境設置。 FreeBSD 有許多種shell,如:sh,Bourne Shell 和csh,C-shell。許多其它的shell,如 tcsh,bash 擁有更強大的功能,你可以在FreeBSD 的軟件包中找到。 你使用哪個shell?那還正是個問題。如果你是一個C 程序員,你可能覺得象tcsh 這 種C 類型的shell,用起來比較舒服。如果你使用Linux 或你是一個UNIX 的新手,你可能 會試一試bash。這里要指出的是每一種shell 都有它自己的特點,你可以根據你的喜好自 由地選擇。Shell 的一個基本特征是文件名的自動補充功能。通常在你輸入一個命令或文件 名時,你先輸入幾個字母,然后按TAB 鍵,命令或文件名會自動補上剩下的字母。例如:我 有兩個文件:foobar 和foo.bar。我要刪除foo.bar。所以我就輸入:rm foo[TAB].[TAB]。 Shell 就會打出rm foo[BEEP].Bar。[BEEP]是鈴聲。它能夠告訴我,因為匹配的問題shell 不能自動補充文件名。因為foobar 和foo.bar 同時以fo 開始,但它無法完成foo。一旦我 輸入.,然后鍵入TAB,shell 就能補充完文件名。 第11 頁FreeBSD 使用手冊 Shell 的另外一個功能就是環境變量。環境變量是存儲在shell 環境空間中的可變鑰匙 對。這個空間能夠被shell 的任何程序調用,而且包含了許多程序配置。這兒是一個普通環 境變量的列表: 詳細說明變量 現在登陸的使用者名稱。USER 以冒號分隔的目錄列表以便尋找執行文件的路徑。PATH DISPLAY X11 顯示連接的網絡名稱,如果有的話。 目前用的shell 。SHELL 使用者終端的名稱。用來決定終端機的能力。TERM 完成幾個終端功能的終端退出代碼的數據庫記錄。TERMCAP 操作系統的種類,如FreeBSD。OSTYPE MACHTYPE 現在系統所用的CPU。 使用者喜歡的編輯器。EDITOR 使用者喜歡的文字呼叫器。PAGER 以冒號分隔的目錄以便尋找聯機手冊。MANPATH 在各shell 之間,設置一個環境變量稍微有點不同。例如,象tcsh 和csh 的C 風格shell, 你可以使用setenv 來設置或查看環境變量。而在象sh 和bash 的Bourne shell 下,你可以 使用set 和export 來查看和設置環境變量。例如,在csh 或tcsh 下,設置或修改環境編輯 器,可以把編輯器設置成/usr/local/bin/emacs: %setenv EDITOR /usr/local/bin/emacs 在Bourne shell 下: %export EDITOR=“/usr/local/bin/emacs” 你也可以在命令列用$放在變量的前面來取得環境變量。echo $TERM 就會顯示出$TERM 的設置值,因為shell 取得了$TERM 并把它傳給echo 顯示出來。 第12 頁FreeBSD 使用手冊 Shell 里有很多特殊字符代表著一些資料,我們叫做meta-characters。最常用的就是* 這個字符,它代表文件名的任何字符。這些meta-characters 會被用在文件名稱的全域樣式 上。舉例來說,鍵入echo *是和ls 有同樣的效果,因為shell 將所有符合*的文件傳到命 令列給echo 顯示出來。 為了防止這些特殊的字符被shell 轉譯,我們可以在前面放一個反斜線()讓它們跳出 來。echo $TERM 會顯示出你所設置的終端機。而echo $TERM 就會直接顯示出$TERM 這幾 個字母。 3.7.1 改變你的shell 改變你的shell 的最簡單的方法是用chsh 命令。運行chsh 就可以把你帶入系統設置的 編輯器中。如果編輯器沒有設置的話,你就可以用vi 來代替。直接在此改變“shell:”。 你可以給chsh 加上-s 的參數;這樣,就不需要你輸入一個編輯器來設置shell 了。例如, 如果你想把你的shell 設置成bash,你只要這樣做: % chsh -s /usr/local/bin/bash 運行不帶參數的chsh,編輯shell 將同樣能達到目的。 注意:你使用的shell 出現在/etc/shell文件中。如果你在安裝軟件的時候,已經安 裝了一個shell,那么這個就已經做好了。如果你是手工安裝shell,那你就必須做。例如, 如果你手工安裝bash,只要把它放在/usr/local/bin中,你只要這樣做: #echo “/usr/local/bin/bash”>>/etc/shells 然后再執行chsh。 3.8 文本編輯器 在FreeBSD 中,許多配置信息都是通過編輯一個文本文件來完成的。所以,熟悉一個 文本編輯器是非常必要的。FreeBSD 帶有許多的編輯器,可以在ports collection 中找到。 第13 頁FreeBSD 使用手冊 最容易和最簡單的編輯器就是ee 了,它非常容易掌握。要啟動ee,你只需要在命令行鍵入 ee 文件名。例如,要編輯文件/etc/rc.conf,只要鍵入ee /etc/rc.conf。一進入ee,許 多編輯功能就都列在屏幕的頂部。^字符是鍵盤的ctl 鍵,所以^e 鍵盤的ctl 鍵加上e 鍵。 要離開ee,只要鍵入escape 鍵,然后選擇離開。編輯器會提示你保存剛才的修改。FreeBSD 也帶有很多功能強大的編輯器,象vi,emacs 和vim 等。這些編輯器都有很強大的功能, 你需要認真地學習。 3.9 設備和設備節點 一個設備大都是一個系統中與硬件相關的活動所使用的,包括磁盤,打印機,圖形卡和 鍵盤。當FreeBSD 啟動時,顯示的大都是檢測到的設備。你可以查看/var/run/dmesg.boot 文件來看看啟動信息。 例如,acd0 是第一個IDE CDROM 驅動器,而kbd0 則是鍵盤。在unix 系統中的絕大多 數設備必須呼叫設備的節點才能來訪問一個特殊文件,這些都放在/dev 目錄下。 3.9.1 創建設備節點 當你在系統中添加了一個新的設備或編譯支持額外的設備時,需要重建一個設備驅動。 3.9.1.1 MAKEDEV 腳本 在系統中沒有DEVFS,設備節點可以使用MAKEDEV 腳本來創建: # cd /dev # sh MAKEDEV ad1 這個例子中將創建第二個IDE 驅動器的設備節點。 3.9.1.2 devfs (設備文件系統) 設備文件系統或devfs,提供了訪問內核設備的命名方式。Devfs 獲得了這個特殊的文 件系統,代替了創建和修改設備節點。devfs 將在FreeBSD 5.0 中作為默認使用項。 3.10 更多信息 3.10.1 聯機手冊 第14 頁FreeBSD 使用手冊 絕大多數FreeBSD 的參考文檔是以手冊的形式出現的。系統的每個程序都有一個簡短 的聯機手冊。這些手冊能夠用man 命令來閱讀。例如: % man command command 是你希望了解的命令的名字。例如,要知道ls 的用法: % man ls 聯機手冊被分成好幾節: 1. 用戶命令 2. 系統呼叫和錯誤編號 3. 在C 庫中的功能 4. 設備驅動器 5. 文件格式 6. 游戲和其他娛樂方式 7. 其它一些凌亂的信息 8. 系統維護和操作命令 9. 內核開發 在一些示例中,同一個主題可能會出現在手冊的很多地方。例如,chmod 用戶命令和 chmod 系統呼叫。在這個例子中,你可以告訴man 命令,你要指定哪一節: % man 1 chmod 這將顯示用戶命令chmod 的參考文檔。參考一個聯機手冊的特殊的章節通常被附帶在 文章的后面,所以第一個chmod 引用了chmod 用戶命令和第二個chmod 引用了系統呼叫。 如果你知道命令的名字,就比較好,你只需要知道如何使用。但如果你無法想起命令 的名字是什么?你可能要使用man 加上-k 選項在命令描述中搜索關鍵字: % man -k mail 第15 頁FreeBSD 使用手冊 這個命令將出現在一個帶有關鍵字mail 的命令列表中。這與使用apropos 命令具有相 同的功能。所以,你可以在/usr/bin 中尋找所有的奇特的命令,只要這樣做: % cd /usr/bin % man -f * 或 % cd /usr/bin % whatis * 可以達到同樣的目的。 3.10.2 GNU Info 文件 FreeBSD 包括許多自由軟件基金會提供的應用程序和工具。除了聯機手冊之外,這些程 序都提供叫做info 文件的超文本文件,它可以用info 命令來閱讀,或者如果你有emacs, 可以使用emacs 的info 模式來閱讀。 使用info 命令: % info 要看看概要介紹,可以鍵入h。要看看快速命令參考,可以鍵入?。
標簽:
Unix系統
排行榜