色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

FreeBSD handbook中文版 3 Unix 基礎(chǔ)

瀏覽:121日期:2024-07-03 16:06:37
目錄 3 Unix 基礎(chǔ) 3.1 概要 3.2 權(quán)限 3.3 目錄結(jié)構(gòu) 3.4 掛上和卸載文件系統(tǒng) 3.5 進(jìn)程 3.6 后臺(tái),信號(hào)和殺死進(jìn)程 3.7 shell 3.8 文本編輯器 3.9 設(shè)備和設(shè)備節(jié)點(diǎn) 3.10 更多信息 ============================================================= 第3 章,UNIX 基礎(chǔ)知識(shí) ============================================================= (翻譯中出現(xiàn)的任何問題或錯(cuò)誤,請(qǐng)廣大讀者及時(shí)反饋給我:[email protected]) 3.1 概要 這一章將介紹UNIX 的基礎(chǔ)知識(shí)和FreeBSD 的功能。如果你還是個(gè)FreeBSD 的新手,你 在尋求幫助之前,應(yīng)當(dāng)先閱讀這一章。 讀完這章,你會(huì)了解到: 1. UNIX 的文件訪問權(quán)限是如何工作的。 2. 進(jìn)程,后臺(tái),和信號(hào)是什么。 3. 什么是shell,如何改變你的默認(rèn)登陸環(huán)境。 4. 如何使用基本的文本編輯器。 5. 如何閱讀聯(lián)機(jī)手冊(cè)了解更多信息。 3.2 權(quán)限 FreeBSD,仍然保持著BSD UNIX 的傳統(tǒng),它的基本原理仍然是以幾個(gè)關(guān)鍵的UNIX 概念 為基礎(chǔ)的。首先,最顯著的就是:FreeBSD 是一個(gè)多用戶的操作系統(tǒng)。這個(gè)系統(tǒng)能夠允許許 多毫不相關(guān)的任務(wù)同時(shí)工作。對(duì)于每一個(gè)用戶來講,系統(tǒng)都能非常可靠地分享和管理著來自 不同硬件設(shè)備、內(nèi)存、CPU 時(shí)鐘的處理請(qǐng)求。 因?yàn)橄到y(tǒng)支持多用戶,所以系統(tǒng)管理的每一件事情都必須要設(shè)置誰有讀,寫,和執(zhí)行的 權(quán)限。這個(gè)權(quán)限用八進(jìn)制的形式來表示,把它分成三部分:文件擁有者,文件擁有者所在組 和其他成員。這種表示方法如下所示: 權(quán)限值 No read, no write, no execute 0 No read, no write, execute 1 No read, write, no execute 2 第1 頁(yè) 目錄列表 --- --x -w- FreeBSD 使用手冊(cè) 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 在一個(gè)長(zhǎng)目錄中,用ls –l 命令列一個(gè)清單,就顯示了文件所有者、文件所有者所在 組和其它成員的權(quán)限信息。這里就是它的表示方法: -rw- r- - r- - 從左到右,第一個(gè)字符是一個(gè)特殊的字符,它告訴你這是一個(gè)規(guī)則文件,一個(gè)目錄,一 個(gè)特殊字符,一個(gè)塊設(shè)備,一個(gè)套接字,還是其它的偽設(shè)備文件。下面的三個(gè)字符“rw-” 指明了文件所有者的權(quán)限。下面的三個(gè)字符“r--”指明了文件所有者所在組的權(quán)限。最后 面的三個(gè)字符“r--”,給出了其他用戶的權(quán)限。一個(gè)破折號(hào)表示這個(gè)權(quán)限被關(guān)閉了。在這 樣一個(gè)設(shè)置下,意味著只有文件所有者才能讀、寫文件,組能夠讀文件,其它用戶只能讀文 件。按照上表的指示,這個(gè)文件的權(quán)限應(yīng)該是644,每個(gè)數(shù)字都代表著這個(gè)文件權(quán)限的三個(gè) 部分。FreeBSD 是如何來控制設(shè)備的權(quán)限的呢?事實(shí)上,F(xiàn)reeBSD 把絕大多數(shù)的硬件設(shè)備看 作是一個(gè)文件,就象其它文件能夠被打開,閱讀,寫數(shù)據(jù)一樣。這些特殊的設(shè)備文件保存在 /dev目錄下。 目錄也可以當(dāng)作文件來看待。它們有讀、寫和執(zhí)行的權(quán)限。這里的可執(zhí)行跟其它文件的 可執(zhí)行有一些差別。例如,當(dāng)一個(gè)目錄被標(biāo)記為可執(zhí)行時(shí),意味著這個(gè)目錄可以被查找到, 并且可以在這個(gè)目錄下列目錄。如果你想了解如何設(shè)置權(quán)限的話,你可以參考chmod 命令的 有關(guān)說明。 3.3 目錄結(jié)構(gòu) FreeBSD 使用的文件系統(tǒng)決定了許多基礎(chǔ)的系統(tǒng)操作,文件系統(tǒng)的層次結(jié)構(gòu)是非常重要 的。在所有的目錄中,root(/)是最重要的。系統(tǒng)啟動(dòng)時(shí),這個(gè)目錄是最先被掛上的,而 且它嘶鏡南低承畔ⅰoot 目錄也包含了你能夠掛上的其它文件系統(tǒng)的裝載點(diǎn)。裝 載點(diǎn)是其它文件系統(tǒng)能夠被連接到root 文件系統(tǒng)的目錄。這些目錄通常被指定在 第2 頁(yè) -wx r— r-x rw- rwx FreeBSD 使用手冊(cè) /etc/fstab下。/etc/fstab是一個(gè)幾種文件的表,裝載點(diǎn)能夠被系統(tǒng)參考。在/etc/fstab 中的絕大多數(shù)文件系統(tǒng),能夠在啟動(dòng)時(shí)被自動(dòng)掛上,除非它們包含noauto 選項(xiàng)。你可以參 考fstab 的指南,了解更多有關(guān)/etc/fstab文件格式和它所包含選項(xiàng)的信息。 現(xiàn)在,主要的目錄結(jié)構(gòu)就是這些: 描述目錄 文件系統(tǒng)的根目錄/ 單用戶和多用戶環(huán)境下,用戶使用的工具。/bin/ 操作系統(tǒng)啟動(dòng)過程中使用的程序和配置文件。/boot/ /boot/defaults/ 默認(rèn)的啟動(dòng)配置文件;看看loader.conf。 設(shè)備節(jié)點(diǎn);看看intro。/dev/ 系統(tǒng)配置文件和腳本。/etc/ 默認(rèn)的系統(tǒng)配置文件;看看rc. /etc/defaults/ 象sendmail 這樣的用于郵件傳輸代理的配置文件。/etc/mail/ /etc/namedb/ Named 配置文件;看看named。 通過via 每天,每周,每月運(yùn)行的腳本;看看periodic 的聯(lián)機(jī)手冊(cè)。/etc/periodic/ /etc/ppp/ Ppp 配置文件;看看ppp 聯(lián)機(jī)手冊(cè)。 系統(tǒng)管理員使用的用作一個(gè)臨時(shí)加載點(diǎn)的空目錄。/mnt/ 處理文件系統(tǒng);看看procfs,mount procfs 聯(lián)機(jī)手冊(cè)。/proc/ /root/ Root 帳戶的主目錄。 單用戶和多用戶使用的系統(tǒng)程序和管理工具。/sbin/ 在獨(dú)立環(huán)境下使用的程序。/stand/ 臨時(shí)文件。/tmp/ 主要是用戶的工具和應(yīng)用程序。/usr/ 通常是工具,程序工具和應(yīng)用程序。/usr/bin/ 標(biāo)準(zhǔn)C include 文件。/usr/include/ 文檔庫(kù)/usr/lib/ 各種工具的數(shù)據(jù)文件。/usr/libdata/ 系統(tǒng)守護(hù)程序和系統(tǒng)工具(被其他程序執(zhí)行的)。/usr/libexec/ 第3 頁(yè)/usr/local/ /usr/obj/ /usr/ports FreeBSD ports collection 。 /usr/sbin/ /usr/share/ /usr/src/ /usr/X11R6/ X11R6 發(fā)行的可執(zhí)行程序,庫(kù)等。 /var/ /var/log/ /var/mail/ /var/spool/ /var/tmp/ /var/yp NIS 地圖。 3.4 掛上和卸載文件系統(tǒng) 文件系統(tǒng)可以形象化為一棵樹,root 就是根:象這樣/,/dev,/usr 等。根目錄下的其 他目錄也可能有分支,這些分支也會(huì)有它們自己的分支,象這樣/usr/local 等等。之所以 要采用這種分離的文件系統(tǒng)有很多原因。/var 包含log,spool 和不同的臨時(shí)文件。當(dāng)然, 這個(gè)目錄也可能會(huì)被塞滿。塞滿根文件系統(tǒng)不是一個(gè)好主意,所以從/分離出一個(gè)/var 比較 好。 在其他的文件系統(tǒng)上,采用這種目錄樹結(jié)構(gòu)的另一個(gè)原因是他們可能會(huì)在另外一個(gè)物理 磁盤上,或在另外一個(gè)虛擬磁盤上,象NFS 文件系統(tǒng)或CDROM 驅(qū)動(dòng)器。 3.4.1 fstab 文件 在系統(tǒng)啟動(dòng)的過程中,在/etc/fstab 中列出的文件系統(tǒng)會(huì)被自動(dòng)地掛上。/etc/fstab 文件包含了一個(gè)以下面的格式排列的列表: device /mount-point fstype options dumpfreq passno FreeBSD 使用手冊(cè) 本地執(zhí)行的,庫(kù)等。也是默認(rèn)的放置ports 框架的地方。Ports 的文檔 放在/usr/local/share/doc/ port中。 通過建構(gòu)/usr/src 目錄樹產(chǎn)生的特定結(jié)構(gòu)的目標(biāo)樹。 系統(tǒng)守護(hù)程序和系統(tǒng)工具(由用戶執(zhí)行的)。 獨(dú)立結(jié)構(gòu)的文件。 本地源代碼文件。 多種日志,臨時(shí)文件,和spool 文件。 多種系統(tǒng)日志文件。 用戶郵箱文件。 多種打印機(jī)和郵件系統(tǒng)spooling 目錄。 系統(tǒng)重新啟動(dòng)之間保存的臨時(shí)文件。 第4 頁(yè)FreeBSD 使用手冊(cè) Device 是一個(gè)設(shè)備名,就象上一章磁盤命名規(guī)則所提到的。 mount-point 是一個(gè)目錄,在它上面掛上文件系統(tǒng)。 Fstype 是要掛上的文件系統(tǒng)類型。FreeBSD 的默認(rèn)文件系統(tǒng)是ufs。 Options 選項(xiàng)既可以是rw 可讀寫文件系統(tǒng),也可以是ro 只讀文件系統(tǒng),可根據(jù)其它選項(xiàng)的 要求來定義。在系統(tǒng)按順序啟動(dòng)過程中,一個(gè)普通的選項(xiàng)是noauto,它通常不會(huì)被掛上。 其他的選項(xiàng)可參看mount 的聯(lián)機(jī)手冊(cè)。 3.4.2 mount 命令 mount 命令通常是用來掛上文件系統(tǒng)的。它的最基本的操作格式: # mount device mountpoint 它有很多的選擇參數(shù),但絕大多數(shù)是這樣的: mount options -a 掛上/etc/fstab 中的所有文件系統(tǒng),也可以用-t 來修改。 -d 除了掛文件系統(tǒng)外,可以做所有事情。 -f 強(qiáng)迫掛上文件系統(tǒng)。 -r 掛上只讀文件系統(tǒng)。 -t fstype 以給定的文件格式掛上給定的文件系統(tǒng)。如果加上-a 參數(shù),就只能掛上給定類型的文 件系統(tǒng)。“ufs”是默認(rèn)的文件類型。 -u 在文件系統(tǒng)上升級(jí)mount 選項(xiàng)。 -v 更加詳細(xì)。 -w 修改文件系統(tǒng)為讀,寫。 第5 頁(yè)FreeBSD 使用手冊(cè) -O 選項(xiàng)提供了一個(gè)用逗號(hào)分割的選項(xiàng)列表,包括下面這些: nodev 不要解釋文件系統(tǒng)上的特殊設(shè)備。有用的安全選項(xiàng)。 noexec 不允許在這個(gè)文件系統(tǒng)上執(zhí)行程序。有用的安全選項(xiàng) nosuid 不要在文件系統(tǒng)上解釋setuid 或setgid 標(biāo)記。有用的安全選項(xiàng)。 3.4.3 umount 命令 在umount 命令后可能會(huì)加載的參數(shù)可能是一個(gè)掛載點(diǎn),一個(gè)設(shè)備名,或是-a,-A 選項(xiàng)。 所有加-f 參數(shù)的形式將會(huì)被強(qiáng)迫卸載,-v 參數(shù)就會(huì)太冗長(zhǎng)。-a,-A 選項(xiàng)用來卸載所有掛上 的文件系統(tǒng)。 3.5 進(jìn)程 FreeBSD 是一個(gè)多任務(wù)的操作系統(tǒng)。這意味著可以同時(shí)有多個(gè)程序一起運(yùn)行。你運(yùn)行的 每個(gè)程序叫做一個(gè)進(jìn)程。你運(yùn)行的每個(gè)程序都至少要啟動(dòng)一個(gè)進(jìn)程,系統(tǒng)中時(shí)刻都有很多 進(jìn)程在運(yùn)行,以維持系統(tǒng)的功能。 每一個(gè)進(jìn)程都有一個(gè)叫做進(jìn)程ID 或PID 的號(hào)碼,每個(gè)進(jìn)程也會(huì)有一個(gè)主人(或叫屬主) 和它所在的組。主人和組的信息用來決定進(jìn)程能夠打開什么文件和設(shè)備,使用文件的權(quán)限。 絕大多數(shù)進(jìn)程都有一個(gè)父進(jìn)程。父進(jìn)程是啟動(dòng)其他進(jìn)程的進(jìn)程,你運(yùn)行的任何命令也是進(jìn) 程。每個(gè)進(jìn)程將使用你的shell 作為它的父進(jìn)程。除這個(gè)進(jìn)程之外的一個(gè)特殊的進(jìn)程叫做 init。Init 總是第一個(gè)進(jìn)程,所以它的PID 總是1。當(dāng)FreeBSD 啟動(dòng)時(shí),init 會(huì)被內(nèi)核自 動(dòng)啟動(dòng)。 有兩個(gè)命令可以用來查看系統(tǒng)的進(jìn)程,ps 和top。ps 命令用來顯示當(dāng)前運(yùn)行的進(jìn)程的 列表,還可以顯示它的PID,它們使用多少內(nèi)存,它們啟動(dòng)的命令行等等。Top 命令顯示了 所有運(yùn)行的進(jìn)程,每隔幾秒就刷新一次,以至你可以動(dòng)態(tài)地觀察你電腦的工作狀況。默認(rèn) 情況下,ps 只顯示正在運(yùn)行的你自己的命令。例如: % ps 第6 頁(yè)FreeBSD 使用手冊(cè) 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 正如你在這個(gè)例子中看到的,ps 的輸出形式是根據(jù)數(shù)字的排列順序來組織的。PID 是 先前討論的進(jìn)程ID。PID 從1 開始,最高到65536。當(dāng)你完成以后,再?gòu)念^開始。TT 顯示 了正在運(yùn)行的tty,也可以安全地略過。 Ps 支持許多不同的選項(xiàng)來改變顯示的信息。最有用的設(shè)置是auxww。一個(gè)有關(guān)所有運(yùn) 行的進(jìn)程的顯示信息,不僅僅是你自己的。U 用來顯示進(jìn)程的使用者和內(nèi)存的使用者。X 用 第7 頁(yè)FreeBSD 使用手冊(cè) 來顯示后臺(tái)運(yùn)行的進(jìn)程信息,ww 用來顯示所有的命令行,一旦它比較長(zhǎng)而超出屏幕時(shí),就 會(huì)截取其中一段。 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 頁(yè)FreeBSD 使用手冊(cè) 整個(gè)輸出被分為兩節(jié)。頭上(最初5 行)顯示運(yùn)行著的進(jìn)程的PID,系統(tǒng)的平均負(fù)載(反 映系統(tǒng)的繁忙程度),系統(tǒng)的正常運(yùn)行時(shí)間(從上次重起以來的時(shí)間),和當(dāng)前時(shí)間。其 它的圖顯示了當(dāng)前運(yùn)行了多少個(gè)進(jìn)程,有多少內(nèi)存和交換空間已經(jīng)被占用,系統(tǒng)在不同CPU 狀態(tài)之間切換需要花費(fèi)多長(zhǎng)時(shí)間。 下面有一連串的豎直排列的ps 命令的輸出信息。你可以看到PID,用戶名,CPU 時(shí)鐘 的花費(fèi)數(shù)量,正在運(yùn)行的命令。Top 也默認(rèn)地顯示了進(jìn)程所花費(fèi)掉的內(nèi)存空間的數(shù)量。這可 以被分成兩列,一列針對(duì)所有的內(nèi)存數(shù)量,一列針對(duì)常駐內(nèi)存數(shù)量。整個(gè)內(nèi)存數(shù)量就是應(yīng) 用程序需要多少內(nèi)存,常駐內(nèi)存是在此刻使用的內(nèi)存數(shù)量。在這個(gè)例子中,你可以看到 Netscape 使用了30M 內(nèi)存,當(dāng)前只使用了9MB。Top 每隔兩秒自動(dòng)刷新一次;這可以通過加 上s 選項(xiàng)來修改。 3.6 守護(hù)程序,信號(hào)和殺死進(jìn)程 當(dāng)你使用一個(gè)編輯器的時(shí)候,你可以要求它加載一些文件。因?yàn)樗鼈兲峁┝诉@樣的功 能,而且它們是與一個(gè)終端連在一起的。但,有一些程序卻不能讓用戶輸入信息,它們是 不與終端連在一起的。例如,一個(gè)web 服務(wù)器花費(fèi)所有的時(shí)間來回應(yīng)用戶的請(qǐng)求,它通常 不需要你有任何的輸入。從一個(gè)站點(diǎn)到另一個(gè)站點(diǎn)傳送email 是另外一個(gè)這種類型的應(yīng)用 例子。我們叫這些程序?yàn)閐aemons(守護(hù)程序)。Daemon 具有希臘神話的特征;今天的許 多web 服務(wù)器和mail 服務(wù)器都使用這些。有時(shí)你可能需要與一個(gè)守護(hù)程序進(jìn)行通訊。這些 通訊就叫做signal。你可以通過給它發(fā)送signal(或是運(yùn)行進(jìn)程)來與守護(hù)程序通訊。如 果你發(fā)送的signal 有很多(有一些有特殊的用處),其它的與應(yīng)用程序集成在一起,應(yīng)用 程序的文檔會(huì)告訴你如何解釋signal。你可以發(fā)一個(gè)signal 給你的一個(gè)進(jìn)程。如果你設(shè)法 發(fā)送一個(gè)signal 給其他人的進(jìn)程,它就會(huì)被忽略。Root 用戶除外,它可以發(fā)送signal 給 每一個(gè)進(jìn)程。 如果一個(gè)應(yīng)用程序?qū)懭脲e(cuò)誤,就會(huì)設(shè)法訪問內(nèi)存,F(xiàn)reeBSD 會(huì)給進(jìn)程發(fā)送Segmentation Violation signal (SIGSEGV)。如果一個(gè)應(yīng)用程序使用alarm 系統(tǒng)來發(fā)出警告,那一段時(shí) 間以后,它也會(huì)發(fā)送警告信號(hào)。 兩個(gè)信號(hào)可能會(huì)中斷一個(gè)進(jìn)程,SIGTERM 和SIGKILL。SIGTERM 是一個(gè)比較友好的殺死 進(jìn)程的方法;這個(gè)進(jìn)程也會(huì)捕獲信號(hào),以便讓你關(guān)機(jī),關(guān)閉可能打開的一些日志文件。在 第9 頁(yè)FreeBSD 使用手冊(cè) 關(guān)機(jī)之前,通常需要完成當(dāng)前正在做的工作。有時(shí),如果它是處在一個(gè)不能打斷的任務(wù)中, 一個(gè)進(jìn)程可以忽略SIGTERM。 SIGKILL 無法被進(jìn)程忽略。它會(huì)發(fā)出這樣的信號(hào)“I do not care what you are doing, stop right now”。如果你發(fā)送SIGKILL 給一個(gè)進(jìn)程,F(xiàn)reeBSD 將會(huì)停止那個(gè)進(jìn)程。 你可能要用到的其他signal 是SIGHUP, SIGUSR1 和SIGUSR2。這些是普通用途的 signal。當(dāng)他們被發(fā)送時(shí),不同的應(yīng)用程序?qū)⒆霾煌氖虑椤?建議你改變一下你的web 服務(wù)器的配置文件----你最好告訴web 服務(wù)器重新讀一下它 的配置文件。你需要重起httpd,但這將會(huì)在你的web 服務(wù)器上增加一些消耗,而這可能是 你不太歡迎的。絕大多數(shù)守護(hù)程序通過重新讀取它們的配置文件來對(duì)SIGHUP 信號(hào)作出回應(yīng)。 不同的后臺(tái)程序?qū)⒂胁煌男袨椤K裕獛е鴨栴}來閱讀守護(hù)程序的聯(lián)機(jī)手冊(cè)。 可以使用kill 命令來發(fā)送signal,例如: 發(fā)送一個(gè)signal 給處理器 這個(gè)例子顯示了如何發(fā)送一個(gè)信號(hào)給inetd。Inetd 的配置文件是/etc/inetd.conf。當(dāng)它 接收到SIGHUP 時(shí),inetd 將重新讀取這個(gè)配置文件。 尋找你要發(fā)送信號(hào)的進(jìn)程ID。可以使用ps,grep 命令。Grep 命令被用來搜索輸出, 1. 尋找你要指定的字符。這個(gè)可以有一個(gè)普通用戶來執(zhí)行,而inetd 需要是root 用戶,所以 ps 必須帶上ax 選項(xiàng) % ps -ax | grep inetd 198 ?? IWs 0:00.00 inetd -wW 這兒,inetd 的PID 是198。有時(shí),grep inetd 命令也需要出現(xiàn)在這個(gè)輸出中。這是 因?yàn)閜s 必須要找到當(dāng)前運(yùn)行的進(jìn)程的列表。 使用kill 來發(fā)送信號(hào)。因?yàn)閕netd 只有root 用戶才能運(yùn)行,你必須使用su 來變2. 成一個(gè)root 用戶。 % su PassWord: 第10 頁(yè)FreeBSD 使用手冊(cè) # /bin/kill -s HUP 198 就象普通的unix 命令一樣,如果它成功執(zhí)行,kill 將不會(huì)輸出任何信息。如果你想發(fā) 送一個(gè)signal 給一個(gè)進(jìn)程,你會(huì)看到“kill: PID: Operation not permitted”。如果你 打錯(cuò)了PID,你有可能把信號(hào)發(fā)錯(cuò)給了某個(gè)進(jìn)程,這樣會(huì)很糟糕,也有可能把信號(hào)發(fā)給了一 個(gè)當(dāng)前不在使用的PID,你將可能看到“kill: PID: No such process”這樣的信息。 為什么使用/bin/kill:許多shell 提供了內(nèi)建命令kill;shell 將直接發(fā)送信號(hào),比 運(yùn)行/bin/kill 要好。這點(diǎn)非常有用,但不同的shell 需要用不同的語法來指定信號(hào)的名字。 重要點(diǎn):在系統(tǒng)中隨意地殺死進(jìn)程是個(gè)壞主意。特別地,init 進(jìn)程ID 是1,非常特殊。 運(yùn)行/bin/kill -s KILL 1 是一個(gè)快速關(guān)閉你系統(tǒng)的方法。在你鍵入kill 之前,請(qǐng)你仔細(xì) 檢查你執(zhí)行的kill 的參數(shù)。 3.7 Shell 在FreeBSD 中,許多工作是通過一個(gè)叫命令解釋器{俗稱“外殼(shell)”}的命令行 接口來完成的。shell 的主要工作是接收輸入的命令然后執(zhí)行它們。許多shell 也能夠用來 幫助完成每天的工作,如:文件管理,文件查找,命令行編輯,宏命令,以及其它環(huán)境設(shè)置。 FreeBSD 有許多種shell,如:sh,Bourne Shell 和csh,C-shell。許多其它的shell,如 tcsh,bash 擁有更強(qiáng)大的功能,你可以在FreeBSD 的軟件包中找到。 你使用哪個(gè)shell?那還正是個(gè)問題。如果你是一個(gè)C 程序員,你可能覺得象tcsh 這 種C 類型的shell,用起來比較舒服。如果你使用Linux 或你是一個(gè)UNIX 的新手,你可能 會(huì)試一試bash。這里要指出的是每一種shell 都有它自己的特點(diǎn),你可以根據(jù)你的喜好自 由地選擇。Shell 的一個(gè)基本特征是文件名的自動(dòng)補(bǔ)充功能。通常在你輸入一個(gè)命令或文件 名時(shí),你先輸入幾個(gè)字母,然后按TAB 鍵,命令或文件名會(huì)自動(dòng)補(bǔ)上剩下的字母。例如:我 有兩個(gè)文件:foobar 和foo.bar。我要?jiǎng)h除foo.bar。所以我就輸入:rm foo[TAB].[TAB]。 Shell 就會(huì)打出rm foo[BEEP].Bar。[BEEP]是鈴聲。它能夠告訴我,因?yàn)槠ヅ涞膯栴}shell 不能自動(dòng)補(bǔ)充文件名。因?yàn)閒oobar 和foo.bar 同時(shí)以fo 開始,但它無法完成foo。一旦我 輸入.,然后鍵入TAB,shell 就能補(bǔ)充完文件名。 第11 頁(yè)FreeBSD 使用手冊(cè) Shell 的另外一個(gè)功能就是環(huán)境變量。環(huán)境變量是存儲(chǔ)在shell 環(huán)境空間中的可變鑰匙 對(duì)。這個(gè)空間能夠被shell 的任何程序調(diào)用,而且包含了許多程序配置。這兒是一個(gè)普通環(huán) 境變量的列表: 詳細(xì)說明變量 現(xiàn)在登陸的使用者名稱。USER 以冒號(hào)分隔的目錄列表以便尋找執(zhí)行文件的路徑。PATH DISPLAY X11 顯示連接的網(wǎng)絡(luò)名稱,如果有的話。 目前用的shell 。SHELL 使用者終端的名稱。用來決定終端機(jī)的能力。TERM 完成幾個(gè)終端功能的終端退出代碼的數(shù)據(jù)庫(kù)記錄。TERMCAP 操作系統(tǒng)的種類,如FreeBSD。OSTYPE MACHTYPE 現(xiàn)在系統(tǒng)所用的CPU。 使用者喜歡的編輯器。EDITOR 使用者喜歡的文字呼叫器。PAGER 以冒號(hào)分隔的目錄以便尋找聯(lián)機(jī)手冊(cè)。MANPATH 在各shell 之間,設(shè)置一個(gè)環(huán)境變量稍微有點(diǎn)不同。例如,象tcsh 和csh 的C 風(fēng)格shell, 你可以使用setenv 來設(shè)置或查看環(huán)境變量。而在象sh 和bash 的Bourne shell 下,你可以 使用set 和export 來查看和設(shè)置環(huán)境變量。例如,在csh 或tcsh 下,設(shè)置或修改環(huán)境編輯 器,可以把編輯器設(shè)置成/usr/local/bin/emacs: %setenv EDITOR /usr/local/bin/emacs 在Bourne shell 下: %export EDITOR=“/usr/local/bin/emacs” 你也可以在命令列用$放在變量的前面來取得環(huán)境變量。echo $TERM 就會(huì)顯示出$TERM 的設(shè)置值,因?yàn)閟hell 取得了$TERM 并把它傳給echo 顯示出來。 第12 頁(yè)FreeBSD 使用手冊(cè) Shell 里有很多特殊字符代表著一些資料,我們叫做meta-characters。最常用的就是* 這個(gè)字符,它代表文件名的任何字符。這些meta-characters 會(huì)被用在文件名稱的全域樣式 上。舉例來說,鍵入echo *是和ls 有同樣的效果,因?yàn)閟hell 將所有符合*的文件傳到命 令列給echo 顯示出來。 為了防止這些特殊的字符被shell 轉(zhuǎn)譯,我們可以在前面放一個(gè)反斜線()讓它們跳出 來。echo $TERM 會(huì)顯示出你所設(shè)置的終端機(jī)。而echo $TERM 就會(huì)直接顯示出$TERM 這幾 個(gè)字母。 3.7.1 改變你的shell 改變你的shell 的最簡(jiǎn)單的方法是用chsh 命令。運(yùn)行chsh 就可以把你帶入系統(tǒng)設(shè)置的 編輯器中。如果編輯器沒有設(shè)置的話,你就可以用vi 來代替。直接在此改變“shell:”。 你可以給chsh 加上-s 的參數(shù);這樣,就不需要你輸入一個(gè)編輯器來設(shè)置shell 了。例如, 如果你想把你的shell 設(shè)置成bash,你只要這樣做: % chsh -s /usr/local/bin/bash 運(yùn)行不帶參數(shù)的chsh,編輯shell 將同樣能達(dá)到目的。 注意:你使用的shell 出現(xiàn)在/etc/shell文件中。如果你在安裝軟件的時(shí)候,已經(jīng)安 裝了一個(gè)shell,那么這個(gè)就已經(jīng)做好了。如果你是手工安裝shell,那你就必須做。例如, 如果你手工安裝bash,只要把它放在/usr/local/bin中,你只要這樣做: #echo “/usr/local/bin/bash”>>/etc/shells 然后再執(zhí)行chsh。 3.8 文本編輯器 在FreeBSD 中,許多配置信息都是通過編輯一個(gè)文本文件來完成的。所以,熟悉一個(gè) 文本編輯器是非常必要的。FreeBSD 帶有許多的編輯器,可以在ports collection 中找到。 第13 頁(yè)FreeBSD 使用手冊(cè) 最容易和最簡(jiǎn)單的編輯器就是ee 了,它非常容易掌握。要啟動(dòng)ee,你只需要在命令行鍵入 ee 文件名。例如,要編輯文件/etc/rc.conf,只要鍵入ee /etc/rc.conf。一進(jìn)入ee,許 多編輯功能就都列在屏幕的頂部。^字符是鍵盤的ctl 鍵,所以^e 鍵盤的ctl 鍵加上e 鍵。 要離開ee,只要鍵入escape 鍵,然后選擇離開。編輯器會(huì)提示你保存剛才的修改。FreeBSD 也帶有很多功能強(qiáng)大的編輯器,象vi,emacs 和vim 等。這些編輯器都有很強(qiáng)大的功能, 你需要認(rèn)真地學(xué)習(xí)。 3.9 設(shè)備和設(shè)備節(jié)點(diǎn) 一個(gè)設(shè)備大都是一個(gè)系統(tǒng)中與硬件相關(guān)的活動(dòng)所使用的,包括磁盤,打印機(jī),圖形卡和 鍵盤。當(dāng)FreeBSD 啟動(dòng)時(shí),顯示的大都是檢測(cè)到的設(shè)備。你可以查看/var/run/dmesg.boot 文件來看看啟動(dòng)信息。 例如,acd0 是第一個(gè)IDE CDROM 驅(qū)動(dòng)器,而kbd0 則是鍵盤。在unix 系統(tǒng)中的絕大多 數(shù)設(shè)備必須呼叫設(shè)備的節(jié)點(diǎn)才能來訪問一個(gè)特殊文件,這些都放在/dev 目錄下。 3.9.1 創(chuàng)建設(shè)備節(jié)點(diǎn) 當(dāng)你在系統(tǒng)中添加了一個(gè)新的設(shè)備或編譯支持額外的設(shè)備時(shí),需要重建一個(gè)設(shè)備驅(qū)動(dòng)。 3.9.1.1 MAKEDEV 腳本 在系統(tǒng)中沒有DEVFS,設(shè)備節(jié)點(diǎn)可以使用MAKEDEV 腳本來創(chuàng)建: # cd /dev # sh MAKEDEV ad1 這個(gè)例子中將創(chuàng)建第二個(gè)IDE 驅(qū)動(dòng)器的設(shè)備節(jié)點(diǎn)。 3.9.1.2 devfs (設(shè)備文件系統(tǒng)) 設(shè)備文件系統(tǒng)或devfs,提供了訪問內(nèi)核設(shè)備的命名方式。Devfs 獲得了這個(gè)特殊的文 件系統(tǒng),代替了創(chuàng)建和修改設(shè)備節(jié)點(diǎn)。devfs 將在FreeBSD 5.0 中作為默認(rèn)使用項(xiàng)。 3.10 更多信息 3.10.1 聯(lián)機(jī)手冊(cè) 第14 頁(yè)FreeBSD 使用手冊(cè) 絕大多數(shù)FreeBSD 的參考文檔是以手冊(cè)的形式出現(xiàn)的。系統(tǒng)的每個(gè)程序都有一個(gè)簡(jiǎn)短 的聯(lián)機(jī)手冊(cè)。這些手冊(cè)能夠用man 命令來閱讀。例如: % man command command 是你希望了解的命令的名字。例如,要知道ls 的用法: % man ls 聯(lián)機(jī)手冊(cè)被分成好幾節(jié): 1. 用戶命令 2. 系統(tǒng)呼叫和錯(cuò)誤編號(hào) 3. 在C 庫(kù)中的功能 4. 設(shè)備驅(qū)動(dòng)器 5. 文件格式 6. 游戲和其他娛樂方式 7. 其它一些凌亂的信息 8. 系統(tǒng)維護(hù)和操作命令 9. 內(nèi)核開發(fā) 在一些示例中,同一個(gè)主題可能會(huì)出現(xiàn)在手冊(cè)的很多地方。例如,chmod 用戶命令和 chmod 系統(tǒng)呼叫。在這個(gè)例子中,你可以告訴man 命令,你要指定哪一節(jié): % man 1 chmod 這將顯示用戶命令chmod 的參考文檔。參考一個(gè)聯(lián)機(jī)手冊(cè)的特殊的章節(jié)通常被附帶在 文章的后面,所以第一個(gè)chmod 引用了chmod 用戶命令和第二個(gè)chmod 引用了系統(tǒng)呼叫。 如果你知道命令的名字,就比較好,你只需要知道如何使用。但如果你無法想起命令 的名字是什么?你可能要使用man 加上-k 選項(xiàng)在命令描述中搜索關(guān)鍵字: % man -k mail 第15 頁(yè)FreeBSD 使用手冊(cè) 這個(gè)命令將出現(xiàn)在一個(gè)帶有關(guān)鍵字mail 的命令列表中。這與使用apropos 命令具有相 同的功能。所以,你可以在/usr/bin 中尋找所有的奇特的命令,只要這樣做: % cd /usr/bin % man -f * 或 % cd /usr/bin % whatis * 可以達(dá)到同樣的目的。 3.10.2 GNU Info 文件 FreeBSD 包括許多自由軟件基金會(huì)提供的應(yīng)用程序和工具。除了聯(lián)機(jī)手冊(cè)之外,這些程 序都提供叫做info 文件的超文本文件,它可以用info 命令來閱讀,或者如果你有emacs, 可以使用emacs 的info 模式來閱讀。 使用info 命令: % info 要看看概要介紹,可以鍵入h。要看看快速命令參考,可以鍵入?。
標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 久久免费公开视频 | 久久久久久久岛国免费观看 | 免费精品在线 | 成人午夜在线 | 午夜限制r级噜噜片一区二区 | 亚洲图片视频在线观看 | 亚洲美女色成人综合 | 2017天天爽夜夜爽精品视频 | 亚洲精品欧洲久久婷婷99 | 免费看特级毛片 | 日本欧美韩国一区二区三区 | 日韩免费一区二区三区在线 | 在线播放一区二区三区 | 精品欧美一区二区三区免费观看 | 欧美国产合集在线视频 | 国产精品99久久久 | 国产精品一区在线播放 | 亚洲精品国产一区二区图片欧美 | 亚洲毛片免费在线观看 | 国产精品一级视频 | 日本免费毛片在线高清看 | 白云精品视频国产专区 | 丁香伊人五月综合激激激 | aaaaaaa一级毛片 | 国产99视频精品草莓免视看 | 她也啪在线视频精品网站 | 久久r这里只有精品 | 日韩男人的天堂 | 欧美日韩视频免费播放 | 午夜性色福利视频在线视频 | 欧美精品在线一区二区三区 | 手机在线观看黄色网址 | 中日毛片 | 欧美一区二区在线观看免费网站 | 韩国女主播青草在线观看 | 视频一区 欧美 | 中文字幕日韩一区二区不卡 | 大美女香蕉丽人视频网站 | 亚洲一区二区精品视频 | 欧美成人a人片 | 国产成人啪精品午夜在线观看 |