歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> sco unixware 7.1.1 全面學習資料

sco unixware 7.1.1 全面學習資料

日期:2017/2/27 17:41:39   编辑:Unix教程

unixware 7.1.1 全面學習資料
第一卷:系統入門與實用技術
第二卷:系統管理與應用
第三卷:系統安全與防范

第一卷:系統入門與實用技術

第一部分:unixware 7.1安裝

1.插入UnixWare7的啟動盤1,打開計算機電源;

2.經過一段時間後,按系統提示插入第二張啟動盤;
(注:也可以用UNIXWARE 1#安裝盤啟動)

3.依次選擇zone為Americas,locale為C (English),Keyboard 類型為 United State,按<F10>繼續;

4.輸入相應的 System License , 包括License Number、 License Code和 License Data,按<F10>繼續;(沒有則按F8挑過)

5. 選擇 install HBA diskette ,並插入HBA軟盤後按回車。安裝完HBA時,選擇proceed with installation, 按<F10>繼續;(沒有也眺過)

6.選擇自動配置DCU(Device configuration Utility)按<F10>繼續;

7. 輸入SysNode Name(系統名字,即hostname),按<F10>繼續;

8.選擇Install Method 為 Install from CD-ROM,按<F10>繼續;

9.配置硬盤(Disk Configuration),按<F2>進入磁盤空間配置。按自己需要完成分區之後,按<F10>繼續;

10.選擇:Use default filesystem size and types 按<F10>繼續;

11.決定要安裝的軟件包,選擇:License-Baced Defaults 按<F10>繼續;

12.在“Select Network Adapter”窗口選擇:Defer network configuration,按<F10>繼續;

13.在“Date and Time”窗口,按<F2>選擇:Asia/Austrasia後回車,選擇:China 回車,按<F10>繼續;

14.選擇系統安全級別(Choose the desired security level),一般選擇Traditional,按<F10>繼續;

15.在“System owner name”窗口,輸入:System owner name、 System owner login name、System owner user ID、System owner password、 Repeat password,按<F10>繼續;

16.輸入Root password 兩次,按<F10>繼續;

17.在確認窗口按<F10> 開始安裝。

18. 安裝完之後,按系統提示取出軟盤和光盤,重新啟動計算機,隨後按要求配置鼠標。

安裝完成!

總結注意事項:
1、在遇到安裝過程中,提示找不到CD-ROM時,檢查一下光驅的眺線。一般將光驅設 為
MASTER。
2、在硬盤分區時,要注意UNIX分區只能分在前8G內。當要多系統時,應該先分主DOS區,再
分UNIX區,注意
UNIX區的起始磁道要與DOS主分區的終止磁道相差一些,否則UNIX可能會出錯。
3、UNIXWARE中有寫網卡不支持,比如常見的realteck 8029。只能更換網卡了,網上找不到
for unixware的驅動,只有for open server 5的。
4、安裝過程中,輸入的system owner login name 與 system owner passwd要記牢,它與
root不是一回事。當發現root密碼丟失時,可以采用用owner name 與 owner passwd登
陸,然後再將root 密碼改回。
5、在選擇timezone時,要注意不要亂選,一般為GMT+0800,否則在涉及時間的程序時,有
可能會時間出錯。當然,安裝後也可以手動修改。
6、unixware 7.1.1安裝盤共有7張CD,一般情況下只需用到其中前3張,後四張是為有關程
序用的。

第二部分:系統操作入門
(第一講)
UNIX操作系統入門其實也不是很難的一件事,與我們以前所接觸的常用網絡操作系統差不多,都是針對文件、目錄、權限的管理與控制。本書可以做為初學者的指南,也做為熟悉UNIX人員的一本使用手冊。
好了,我們還是照顧照顧那些初學者吧,畢竟這是入門騙,讓我們先登陸到UNIX界面,看看UNIX
到底是什麼樣子。(本書全部以unixware 7.1.1為例)

登錄步驟
========
login : _______ => 輸入 username
password : _______ => 輸入密碼

退出步驟
========
% exit
% CTRL+d

更改帳號密碼
============
% passwd => 執行後將會出現下列訊息
UX:passwd: INFO: Changing password for XXX
Old password: ______ => 輸入舊密碼
New password: ______ => 輸入新密碼(最好6-8字,英文字母與數字混合)
Retype new password: ______ => 再輸入一次密碼

在線指令說明
============
執行格式: man command-name
Example:
% man ls

進入遠端電腦系統
================
執行格式:rlogin hostname [-1 username]
Example:
%rlogin doc
remote login 進入工作站 doc 中。
%rlogin doc -l user
使用 user 帳號進入工作站 doc 中。
(注:一般都將rlogin關掉不用,應為它不安全,推薦telnet、ssh)

執行格式:telnet hostname 或 telnet IP address
Example:
%telnet doc
%telnet 140.109.20.251

(第二講)

怎麼樣,unix的界面是不是很像DOS,枯燥、無味。不過,它還有自己的另一面,還沒有看到呢,它也有window界面,叫xwindow.我們這裡暫不介紹。真正的UNIX高手是很少用圖形界面的,都是字符方式,所以,你必須習慣它。
好,這一講,我們將真正用UNIX的命令來做我們想要做的事情,為了便於記憶,我們可以與DOS命令做比較。

文件或目錄處理
==============
列出文件或目錄下之文件名稱
執行格式: ls [-atFlgR] [name] ( name 可為文件名或目錄名稱。)

Example :
ls 列出目前目錄下之文件名。
ls -a 列出包含以.起始的隱藏檔所有文件名。
ls -t 依照文件最後修改時間之順序,依序列出文件名。
ls -F 列出目前目錄下之文件名及其類型。"/" 結尾表示為目錄名稱,"*" 結尾表示為
執行檔,"@" 結尾表示為 symblic link。
ls -l 列出目錄下所有文件之許可權、擁有者、文件大小、修改時間及名稱。
ls -lg 同上,並顯示出文件之擁有者群組名稱。
ls -R 顯示出目錄下,以及其所有子目錄之文件名。( recursive listing )

目錄的縮寫
==========
~ 使用者 login 時的 working directory ( 起始目錄 )
~username 指定某位 user 的 working directory ( 起始目錄 )
. 目前的工作目錄 ( current working directory )
.. 目前目錄的上一層目錄 ( parent of working directory)
$HOME 同 ~作用一致。
與DOS比較:DIR
技巧:
1、例出當前目錄中的全部目錄:ls -l|grep ‘^d’
2、ls -l == l

改變工作目錄位置
================
執行格式:cd [name] :name 可為目錄名稱、路徑或目錄縮寫。

Example:
cd 改變目錄位置,至使用者 login 時的 working directory (起始目錄)。
cd dir1 改變目錄位置,至 dir1 之目錄位置下。
cd ~user 改變目錄位置,至使用者的 working directory (起始目錄)。
cd .. 改變目錄位置,至目前目錄的上層( 即 parent of working directory)
cd ../user 改變目錄位置,至相對路徑 user 之目錄位置下。
cd /../.. 改變目錄位置,至絕對路徑( Full path ) 之目錄位置下。
與DOS比較:CD
技巧:返回到自己的主目錄:cd ~/cd $HOME


建立新目錄
==========
執行格式: mkdir directory-name

Exmaple :
mkdir dir1 建立一新目錄 dir1。
與DOS比較:MD
重點與難點:一次建多個目錄:mkdir a b c ...(a,b,c均為目錄)

刪除目錄
========
執行格式: rmdir directory-name 或 rm directory-name

Example :
rmdir dir1 刪除目錄 dir1,但 dir1 下必須沒有文件存在,否則無法刪除。
rm -r/R dir1 刪除目錄 dir1,及其下所有文件及子目錄。

與DOS比較:RD
難點與重點:rmdir -r a 與 rmdir -r a/*的區別。(前者連a本身也刪除,後者a中
的內容都被刪光,但a本身存在。

復制文件
========
執行格式: cp [-r] source destination

Example:
cp file1 file2 將文件 file1 復制成 file2
cp file1 dir1 將文件 file1 復制到目錄 dir1 下,文件名仍為 file1。
cp /tmp/file1 . 將目錄 /tmp 下的文件 file1 復制到現行目錄下,文件名仍為
file1。
cp /tmp/file1 file2 將目錄 /tmp 下的文件 file1 復制到現行目錄下,文件名為
file2
cp -r/R dir1 dir2 (recursive copy) 復制整個目錄。
若目錄 dir2 存在,則將目錄 dir1,及其所有文件和子目錄,復制到目錄 dir2 下,
新目錄名稱為 dir1,若目錄 dir2 不存在,則將 dir1,及其所有文件和子目錄,復制
為目錄 dir2。
與DOS比較:COPY
重點與難點:1、將a目錄極其所有文件拷到b目錄中(b目錄存在):
cp -r a b,結果是b中含有a.
2、 將a目錄極其所有文件拷到b目錄中(b目錄不存在):
cp -r a b,結果是b中的內容與a中一樣。

移動或更改文件、目錄名稱
========================
執行格式: mv source destination

Example:
mv file1 file2 將文件 file1,更改文件名為 file2。
mv file1 dir1 將文件 file1,移到目錄 dir1 下,文件名仍為 file1。
mv dir1 dir2 若目錄 dir2 不存在,則將目錄 dir1,及其所有文件和子目錄,移到目
錄 dir2 下,新目錄名稱為 dir1。若目錄 dir2 不存在,則將dir1,及其所有文件和
子目錄,更改為目錄 dir2。
與DOS比較:MOVE
重點與難點:目標文件的屬性與源文件的屬性一致。

刪除文件
========
執行格式: rm filename (filename 可為文件名,或文件名縮寫符號。)

Example :
rm file1 刪除文件名為 file1 之文件。
rm file? 刪除文件名中有五個字元,前四個字元為file 之所有文件。
rm f* 刪除文件名中,以 f 為字首之所有文件。
與DOS比較:del/deltree
重點與難點:刪除目錄中的所有文件與該目錄用rm -r/rm -R

文件名的縮寫符號
================
? 代表文件名稱中之單一字元。
* 代表文件名稱中之一字串。

列出目前所在之目錄位置
======================
執行格式: pwd

Example :
pwd

查看文件內容
============
執行格式: cat filename

Example :
cat file1  以連續顯示方式,查看文件名 file1 之內容。


分頁顯示文件內容
================
執行格式: more filename 或 cat filename | more

Example :
more file1  以分頁方式,查看文件名 file1 之內容。
cat file1 | more 同上。

查看目錄所占磁盤容量
===================
執行格式:du [-sk] directory

du dir1 顯示目錄 dir1 的總容量及其次目錄的容量

du -sk dir1 顯示目錄 dir1 的總容量,以k bytes為計量

重點與難點:du 顯示的目錄大小是以BLOCK為單位,換算成字節,乘以512。
du -sk顯示的是以KB為單位的。


文件查找
===================
執行格式:find dir -name filename command

find . -name hello -print 尋找目前目錄及所有的子目錄內叫hello的文檔.

find . -ctime +7 -print 找出七天內未被更動的文檔

find . -size +2000m -print 找出大小超過2000 bytes的文檔

find /tmp -user b1234567 -print 在/tmp下屬於b1234567的文檔

find . -name '*.c' -exec rm {} 刪除所有的.c檔

find . -name test/* -print 顯示當前目錄及其子目錄文件名前4位為test的文件名

重點與難點:
1、尋找所有以core開頭的文件並將其刪除:
find / -name "core.*" -exec rm {} \;
2、統計當前目錄中的文件個數:
find . |wc -l
3、查找123文件,並將錯誤信息寫入error.out文件中:
find / -name "123" 2>error.out


第三部分 VI編輯器
vi是很著名的UNIX文本編輯器,它的功能很強大,不過,對與初學者也很繁。沒關系,我們雖然介紹很多,但不要求大家都掌握它的沒一項,只要記住幾項常用的就可以了。
vi的操作分編輯狀態與命令狀態,我們要介紹的是其中的命令狀態。所謂的編輯狀態,就是指你可以編輯內容的狀態,而命令狀態是指可以對內容進行操作的狀態。
移動操作
k,光標向上移動一個字符。
j, 光標向下移動一個字符。
h, 光標向左移動一個字符。
l, 光標向右移動一個字符。
或者是四個方向鍵。
:0,文章第一行;
:$, 文章最後一行;
ctrl+f ,後翻頁。
ctrl+b,前翻頁。


插入操作
i, 在光標當前位置插入。

I,在行首插入。

a,在當前光標後插入。

A,在當前行尾插入。

o,在光標當前行下插入。

O,在光標當前行上插入。

r, 替換當前光標處字符。

R,從光標處開始替換。

刪除操作
x, 刪除光標處字符。

dd, 刪除當前行。

d0, 刪除光標前半行。

d$, 刪除光標後半行。

查找操作

/string 查找字符串(從前往後)

?string 查找字符串(從後往前)

n 繼續查找

N 反向繼續查找

% 查找對應括號

u 取消上次操作

ex命令狀態

:set number 顯示行號

:set smd 顯示顯示狀態

:0 文件首

:1,5 copy 7 塊拷貝

:1,5 del 塊刪除

:1,5 move 7 塊移動

:1,$s/string1/string2/g 全文件查找string1並替換為string2

:wq! 存盤退出

:q! 退出不保存。

重點與難點:
i, 在光標當前位置插入。
I,在行首插入。
a,在當前光標後插入。
A,在當前行尾插入。
o,在光標當前行下插入。
O,在光標當前行上插入。
x,刪除光標處字符。
dd,刪除當前行。
/string 查找字符串。
?string 查找字符串(從後往前)。
n 繼續查找。
N 反向繼續查找。
:wq! 存盤退出。
:q! 退出不保存。


第四部分:SHELL介紹

第一講:什麼是Shell

當我們登入unix之後, 第一個接觸到的, 便是 Shell. 我們必須對它有點初步的認識才行.

一. Shell 簡介.

unix系統分成三個重要的部份

核心
Shell
工具程式
核心的部份相當低階, 操作者不易和它直接溝通, 因此, 必須要有一個友善的介面(interface), 使得操作時能更為方便, 這個介面便是 Shell.

換言之, Shell 就是一個居於核心和操作者之間的一層使用者介面.

那麽, 為何稱它為 Shell 呢? Shell 的本意是 "殼" 的意思呢!

沒錯, 在核心的外面, 包覆著一層外殼, 用來負責接收使用者輸入的指令, 然後將指令解譯成核心能夠了解的方式, 傳給核心去執行, 再將結果傳回至預設的輸出周邊.
例如: 鍵入

ls -l

shell 給你以下回應:


檔 有
案 檔
種 案 檔案大小 最近修改的
類 檔案權限 數 擁有人 組別 (byte單位)日期及時間 檔案名稱
drwxr-xr-x 14 root root 1024 Jul 21 21:31 .
drwxr-xr-x 17 root root 1024 Apr 11 12:01 ..
drwxr-xr-x 8 82 82 1024 Feb 25 19:23 apache
-rw-r--r-- 1 root root 1335460 Feb 25 17:45 apache_1_3_4.tar.gz
drwxr-xr-x 6 root root 1024 Aug 31 1998 ftp
drwxr-xr-x 5 root root 1024 Aug 31 1998 httpd
drwx------ 2 james james 1024 Apr 23 06:47 james
drwxr-xr-x 2 root root 12288 Aug 31 1998 lost+found
drwxr-xr-x 2 msql nobody 1024 Dec 28 1998 msql
drwxr-xr-x 28 ols3 ols3 2048 Jul 19 21:38 ols3
drwxr-xr-x 3 1022 nobody 1024 Jan 25 23:40 ols3cgi
drwxrwxr-x 3 perl ols3 1024 Feb 2 07:11 perl
-rw------- 1 root root 2097152 Jul 21 18:39 quota.group
-rw------- 1 root root 1278656 Jul 21 18:39 quota.user
drwxrwxr-x 2 root nobody 1024 May 11 1998 samba
drwxr-xr-x 3 apache nobody 1024 Feb 25 16:58 temp
drwxrwxr-x 2 webadm nobody 1024 Mar 14 16:34 webadm

Shell 按著表現的方式與讀取使用者輸入種類的不同, 可分為二大類:
Text base : 文字導向
Graph base: 圖型導向
所謂 "讀取使用者輸入種類不同" 是指: 讀取自鍵盤, 或讀取自滑鼠, 其它 serial input, 螢幕觸控等.

這樣說來, Shell 好像只是命令直譯器罷了?!
嗯, 這倒要按不同的 OS 所附給的 Shell 其功能和選擇性的自由度而定.

以 DOS 的 COMMAND.COM 而言, 它就是一個十足的命令直譯器, 除了一點點 batch 檔的能力之外, 它的功能並不多. Win 平台的 GUI, 則是一個圖型式的命令直譯器, 介面十分友善. 不過, 這二種 OS, 不能讓你自由而簡單地選擇 Shell.(以前 DOS 有 4dos 可選用)

由於 Unix 家族, 對 Shell 的處理, 采獨立自由開放的方式, 因此, Shell 的種類相當地多, 更可以讓人自由地更換(chsh).

目前流行的 shell 有:

Bourne shell : sh
C shell : csh
Korn shell: ksh (商業軟體)
tcsh (free)
Bourne Again shell: bash (GNU)

二. Shell 的簡史

第一個重要的 shell 是 Bourne shell (如此命名是為了紀念此 shell 的發明者 Steven Bourne), 1979 年第一個流行的 Unix 版本 7 發行時, 開始使用 Bourne shell.

Bourne shell 的主檔名為 sh, 因此, 日後人們便以 sh 為 Bourne shell 的主要識別名稱.

雖然 Unix 上的 shell 有許多種, 但 Bourne shell 的地位至今仍然沒有改變. 許多 Unix 系統中仍然使用 sh 做為重要的管理工具. (它的工作從開機到關機, 幾乎無所不包)

第一個廣為流行使用的 shell 變種是 C shell. C shell 主要附在 BSD 版的 Unix 系統中. 它的作者是柏克萊大學的 Bill Joy. C shell 主要是因為其語法和 C 語言相類似, 因而得名. 這使得 Unix 系統的程式師, 在學習 C shell 時, 感到相當地方便容易.

以上這二種形成 shell 的二大主流, 後來的變種 shell 大都攫取這二種 shell 的優點.

比如 Korn, tcsh 及 bash.

Bash shell 是 GNU 計劃的重要工具軟體之一, 也是 GNU 作業系統中標准的 shell.
Bash 在 1988 年誕生, 最初的作者是 Brian Fox, Chet Ramey 於 1989 加入, 現在官方正式的維護者是 Chet Ramey, 他的工作便是持續不斷地增強 bash 的功能.
1995~1996 期間推出 bash 2.0 , 在這之前, 廣為使用的版本是 1.14.x, 它增加了許多新的功能, 以及更好的相容性.
當然, Bash 是完全免費的, 它是 Open Source 的一員, 原始碼全部開放.

二. Bash 的功能.

Bash 具有以下功能:

相容於 Bourne shell (sh)
包含有 C shell 以及 Korn shell 中最好的功能.
具命令列編修的能力(您記得以前 DOS 中的 doskey 嗎?)
工作控制(job control)的能力, 可控制前景及背景程式
具 shell 程式設計的能力, 可讓您自訂shell及設計程式, 管理系統.
三. 新版的 Bash 哪裡抓取?

若欲抓取新版的 bash, 可至
http://www.gnu.org 或其 mirror 站台.

中研院 FTP 也是不錯的選擇.
ftp://ftp.sinica.edu.twftp://linux.sinica.edu.tw

三. 開始使用 Bash

當你 login 進 unix 主機時, 便開始和 bash 互動, 一直到你 exit 主機(或按^D) 為止.

Bash 的提示符號為$(代表一般身份使用者), 當您具有 root 權限時, 提示符號則變為 #.

一旦出現提示符號時, 您便可以開始鍵入操作命令列(command line)了.

命令可分為二大類:

bash 內建的指令
程式
如果是 bash 內建的指令, 則由 bash shell 負責回應; 若是程式, 則 shell 會找出該程式, 然後將控制權交給核心, 由核心執行該程式, 執行完之後, 再將控制權交回給 shell.

怎麽知道那些指令是 bash 內建的, 那些是程式呢? 通常用 "which 指令", 若沒有任何回應, 表示是內建的指令(除非該指令錯誤、不存在, 或該程式不在預設的搜尋路徑之內), 例如下:

$/usr/ucb/which echo    [沒有回應, 表示是內建的指令]
/usr/bin/echo
$ /usr/ucb/which ls

/bin/ls

四. 命令列的格式.

命令列通常由好幾個字串組成, 中間用空白或 tab 鍵分開. 如下所示:

command options arguments(或稱為 parameters)
命令 選項 參數
rm -rf /home/ols3

除了空白和 tab 鍵之外, 每一部份, 我們稱之為 token, 比如上面的例子中, 便有三個 token: rm, -rf, /home/ols3.

當鍵入此一命令列時, shell 首先將它分解成個別的 token, 然後判斷是內建的指令, 或是程式, 再按之前提過的方式去執行.

怎麽知道一個命令或程式, 它有那些選項和參數呢? 通常 man 一下該指令, 就可以得到了. 例如:

man rm

另外, 多行指令也可以一下全部寫在同一命令列中, 只要中間用 ; 分開, 如:

ls ; mkdir test ; clear

五. 現行目錄和自家目錄.

所謂現行目錄(current directory)是指: 你現在所處的位置, 又稱為工作目錄(working directory).

欲知現行目錄為何? 可下 pwd 指令便知.

所謂自家目錄(home directory)是指: 當初 root 為你建立帳號時, 所指定給你的一個私人專用的目錄, 也是你登入系統之後, 第一個進入的地方.

欲知自家目錄, 可用下列方式:

cd    (然後直接按 Enter)
cd ~    (~ 代表自家目錄)
cat /etc/passwd | grep 您的帳號
相關的技巧

cd ./myway (進入目前目錄下的 myway 目錄中) 
cd .. (回到上一層目錄)

六. 萬用字元.

如果命令列的參數中, 含有檔名, 那麽萬用字元(wildcards)可以帶來十分便利的操作. (不過若使用不當, 也是惡夢的開始)

如果各位以前有過 DOS 的操作經驗, 應該還記得 * 及 ? 所代表的意義吧?!

以下是 bash 中使用的萬用字元:

? 代表任何單一字元(character)
* 代表任何字串 (注意: 0 個以上的字元, 例: *yes 將包含 yes 或 yes-or-not)
[字元組合] 在中括號中的字元皆符合, 如: [a-z]代表所有的小寫字母
[!字元組合] 不在中括號中的字元皆符合, 如: [!0-9]代表非數字的字元皆符合



七. 輸入和輸出與重新導向.

當 unix系統完成開機之後, 預設上, 便開有三個檔案, 這三個檔案是做為輸入、輸出以及顯示錯誤之用的.

我們稱之為:

標准輸入: 通常是鍵盤, 檔案代碼為 0
標准輸出: 通常是螢幕, 檔案代碼為 1
標准錯誤: 通常標准輸出相同(也就是螢幕), 檔案代碼為 2
雖然系統已幫你設好了這三個檔案, 但我們仍然可以視需要, 適時地改變輸入,輸出,及錯誤這三者至不同的地方. 這種改變標准輸出入的動作, 我們稱之為 "I/O 重新導向" (I/O Redirection).

例如:

ls -la > myfile 就是將查詢的結果重新導向至 myfile 中(本來是應該出現在螢幕上的)

cat myfile 便可以看見 ls -la 的結果.

cat < myfile > youfile 就是將 myfile 的內容拷貝給 youfile.

> 代表將輸出轉向

< 代表將輸入轉向

另一個會將輸出入轉向的機制是 "管線" (Pipelines).

所謂的管線就是將一個程式的輸出當成另一個程式的輸入.

例如: cat /etc/passwd | grep ols3

上面這段指令的意思是說: 把 /etc/passwd 檔的內容顯示結果(即輸出) 丟給 grep 這個指令當作輸入值, 然後由 grep 從中找出包含關鍵字 ols3 的資料列.



八. 前台與後台工作.

unix 是多用戶多任務的作業系統, 這意謂UNIX 可以讓多人同時使用, 更可以同時執行許多程式.

一般而言, 你所執行的指令會一直握著控制權, 一直到程式結束為止, 我們稱為這樣的執行工作是在前台工作(foreground jobs), 如果, 執行指令時, 你仍然可以再做其它的事情, 那我們就稱它是在後台工作.

通常比較耗時間的工作, 我們會把它丟到後台去執行, 而這期間, 我們仍然可以和 shell 繼續溝通, 下達其它命令給 shell 去執行.

例如: 我們想從中研院的 FTP 伺服器下載某一個目錄中所有的檔案, 但又不想等它執行完畢(因為這樣耗時間,也很無聊), 可以用以下的方式來達成:

ncftp -R
ftp://linux.sinica.edu.tw/pub1/redhat/powertools &

其中 & 這個符號便是將命令列丟到後台去執行的指令.

如果您想離線之後, 仍然令系統繼續傳檔, 可以在前面再加一個 nohup 的指令, 如下:

nohup ncftp -R
ftp://linux.sinica.edu.tw/pub1/redhat/powertools &

nohup 是 no hangup 即不掛斷之意.

八. 特殊字元及引號.

有許多字元, 對 shell 來說, 是具有特殊意義的. 詳列於下:

符號 意義
~ 自家目錄
` 命令取代
# 解
$ 變數取值
& 後台工作
* 萬用字元
( 子shell開始
) 子shell結束
\ 使特殊字元恢復本意
| 管線
[ 字元組合開始
] 字元組合結束
{ 命令區塊開始
} 命令區塊結束
; 命令分隔號
' 單引號(不具變數置換的功能)
" 雙引號(具置換的功能)
< 輸入轉向
> 輸出轉向
/ 路徑分隔號
? 萬用字元
! 管線邏輯意義上的 NOT



第四部分第二講待續。

第二卷:系統管理與應用

第一部分:常用系統管理與網絡命令
第二部分:系統結構介紹
第三部分:系統啟動過程
第四部分:網絡服務器的配置


第一部分:常用系統管理與網絡命令
一、與用戶有關的命令
login用戶登陸命令
rlogin通過網絡登陸到其他計算機的命令
telnet遠程登陸命令
su切換用戶命令
passwd更改用戶明碼命令
exit退出當前SHELL命令,等同ctrl+d.
二、定位命令
當用戶要執行一條命令時,系統首先要根據搜尋路徑定位該命令。搜尋路徑是為了定位命令而列出的一組目錄。
在系統安裝時默認的搜尋路徑是一些標准的目錄,如/bin,/usr/bin,sbin,/usrsbin等。用戶可以根據自己的需要修改搜尋路徑。方法如下:
修改.profile文件中的PATH語句(K SHELL和B SHELL)
修改.cshrc或.login文件中的path=(...)集合(C SHELL)
which用來在搜尋路徑中尋找一個特定的命令。若發現該命令,
(usr/ucb) which命令就輸出該命令的目錄名。

三、man 命令的使用
-k keyword 在手冊關鍵字數據庫中總結出與keyword有關的信息項。
-f command 找出與command有關的詳細信息。在使用這一選項時必須要確保root
用戶已建立/usr/man/watis文件。
-m path 指定man 命令所使用的搜尋路徑。
四、管理命令
install該命令用來安裝軟件的新版本或新的軟件。
-cdirectory將文件裝入指定的目錄,如果該文件已經存在,次此操作
無效。
-fdirectory將文件裝入指定的目錄(即使該命令已經存在),如果裝
入的命令版本比原來新,那麼文件使用默認的權限。

shutdown關機命令(只有root權限才可以)
-h完全停止操作系統的執行。
-i 在shutdown過程中給用戶提示信息。
-m把系統變成維護模式(單用戶)。

ulimit在K SHELL和B SHELL中,ulimit命令用來限制進程對某類資源的使用。limit命
令對資源的限制分為二類:
硬限制在整個系統內對資源的限制,只能由root用戶修改。
軟限制 對新創建進程的默認的限制,可增加到系統范圍內的硬限制。
-a顯示軟限制
-Ha顯示硬限制
-c size設置core文件的大小(單位為塊)。
-f size設置CPU時間(單位為秒)。
-d size設置數據塊的最大值(單位為K字節)。
-s size設置棧的最大值 (單位K字節)。
-m size 設置使用內存的最大值(單位K字節)。
如:ulimit -t 60(用戶想把CPU時間限制為每個進程60秒)

umask為每個用戶設置默認的權限值。
文件和目錄包含三種權限:所有者、組成員和其他用戶的權限。系統使用八進制對權限設置。用戶在使用umask命令時要小心,用777減去umask值才是對文件和目錄權限設置的默認權限。例如當umask設置的值為022,那麼默認權限為777-022=755

五、進程相關的命令
進程可分為三大類:
在終端上執行的交互式進程
批處理進程
守護進程

ps 查詢正在運行的進程。
-A 列出系統中正在運行的進程的詳細信息。
-e列出除核心進程外的所有進程。
-a列出與終端有關的所有進程。
-f產生一個完全列表。
-l產生一個長列表。
-t list列出由list表指定的終端創建的所有進程的詳細信息。
查詢當前正在運行的所有進程並列出完整表格:ps -ef/Af
查詢終端pts002正在運行的所有進程:ps -tf pts002

nohup命令
UNIX環境下進程可以在前台運行也可以在後台運行。進程在前台運行時,用戶必須在終端旁等待該進程結束。若此時用戶想使用終端而又不想終止運行的程序時,可以按如下方法把進程轉移到後台運行:
Ctrl+z
bg
當用戶從當前SHELL或系統中退出時,該用戶在前後台運行的程序都將被終止。為了使用戶在退出時,系統保留其進程繼續運行,UNIX提供nohup命令。
nohup命令將標准輸出重定向到文件nohup.out中,該文件存在於nohup命令執行時的當前目錄中。若用戶後台執行腳本a.sh,可使用如下命令:
nohup ./a.sh &
符號&表示用戶在後台執行該命令。

sleep命令
該命令可以使兩條命令執行之間停頓一段時間。如每隔15分鐘可用sleep命令來檢查一些特定文件是否存在。sleep命令參數的單位是秒。
如在命令執行之間等待5分鐘:sleep 300

kill命令
該命令可以向一個正在運行的後台進程(否則用戶無法使用KILL命令)發一個信號。該命令的默認功能是終止一個進程的運行。
-l列出系統支持的信號值及其名字。
-signal number指定送給進程的信號值。用戶可以用信號名代替信號值。
如:終止進程號為1060的進程:kill 1060或kill -9 1060

nice命令
該命令用用於修改進程優先級,只有root用戶才有權限。
負數比正數具有更高的優先級,優先數一般范圍是-20--20.
例如:用戶使用find命令搜索c文件,為了在尋找時執行其他工作,可降低find命令的優先級,可以執行:
nice find / -name *.c -print &
這樣就將該進程設置為系統默認的優先級,一般為10.若還想降低,可以執行:
nice 16 find / -name *.c -print &

六、通訊命令
1、ftp 遠程傳輸命令(與DOS下的FTP參數差不多,在次不多說)
2、talk 與所有在線用戶會話命令。
3、write 與指定用戶會話命令。
4、vacation 當用戶休假時,可用該命令通知向其發郵件的用戶。所發內容由用戶home目錄中的vacation.msg文件決定。若該文件不存在,那麼系統將使用默認的消息。

七、文件比較命令
1、cmp比較兩個文件內容的不同並在標准輸出上產生比較結果。
(用於非文本文件)
2、diff 比較單個或存在於不同目錄下的具有多個相同文件名的多個文件。
(用於文本文件)
3、comm將文件排序並比較其內容。

4、dircmp用來比較兩個目錄的內容。
-d 首先列出僅在一個目錄中存在的文件,然後列出在兩個目錄中都存
在的文件以及他們是否相同。最後列出使用diff命令比較兩個不同文件的輸出。
-s 首先列出僅在一個目錄中存在的文件,然後列出同時存在於兩個目錄,但不相
同的文件。

八、文件與目錄操作命令(講解略)
1、touch
2、chmod
3、chown
4、chgrp
5、rm
6、mv
7、cp
8、cat
9、rcp
10、ln
11、mkdir
12、rmdir
九、文件信息命令
1、ls
2、find
3、file
十、與文件內容相關的命令
1、more
2、less
3、tail
4、head
5、wc
6、read
7、od
8、pg
9、tee
10、vi

十一、文件內容查詢命令
1、egrp
2、fgrep
3、grep
4、strings
十二、打印命令
1、cancel
2、lp
3、pr
4、lpstat
5、lpshut
十三、調度命令
1、at
2、crontab
十四、存儲命令
1、compress
2、cpio
3、dd
4、pack
5、tar
6、uncompress
7、unpack
8、zcat
十五、狀態命令
1、date 顯示或更改系統日期與時間
2、env 顯示當前的環境或設置一個或多個環境變量。
3、sar 報告系統信息,默認時sar命令產生CPU使用信息。
-A 報告整個系統活動訪問列程
-a 報告文件系統訪問列程的使用數據。
-b 報告緩沖區的使用情況。
-c 報告系統調用使用情況。
-k 報告內核的情況。
-m 報告信號量和消息的情況。
4、uname 在標准輸出上顯示計算機系統和操作系統的信息。
-m 顯示機器的ID。
-r 顯示操作系統發行的版本號(release number).
-s 顯示系統名。
-v 顯示操作系統版本號。
-S name改變系統名。
-a 顯示機器ID,操作系統的版本號及系統名。
5、uptime 該命令顯示如下信息:
當前時間
系統已經工作時間
登陸的用戶數。
系統中執行的的作業數。
6、vmstat 用來獲的有關進程、虛存、物理卷及CPU活動的信息。

第二講 常用管理命令

二、 常用系統管理命令介紹

  1. share 和 mount 命令

  這是系統管理員常用的兩個命令,share命令用於把本機的目錄共享出來,以便其它UNIX系統可以使用;mount命令則用於把其它UNIX系統共享出來的目錄掛接到本機的掛接點上,從而可以使用其它UNIX系統的資源。 例如:

  在機器A上輸入 machineA# share -F nfs -o rw /share-dir

  在機器B上輸入 machineB# mount -F nfs machineA:/share-dir /mount-point

  第一條命令把機器A的 share-dir 目錄共享出來,並且共享的權限是可讀寫;

  第二條命令把機器A的共享目錄掛接到機器B的 mount-point 目錄上。

  完成這兩個命令後,用戶在機器B上通過對mount-point的訪問就可以操作機器A上的share-dir目錄了。

  但是有時我們操作時,在機器B上執行了mount命令後,會返回"RPC: Program not registered"這樣的錯誤,這是因為在機器A上缺少mountd和nfsd 這兩個守護進程(daemon)。UNIX系統啟動時,系統會自動檢查/etc/dfs/dfstab文件,如果文件中有要共享的資源,則啟動這兩個守護進程,反之,則不啟動。所以如果我們在/etc/dfs/dfstab中沒有內容,則系統不能啟動mountd和nfsd這兩個守護進程,用share命令共享的目錄也不能真正被別的系統共享。

  解決這個問題的方法很簡單,我們可以把要共享的目錄放入/etc/dfs/dfstab中,則下一次系統啟動時會自動共享這個目錄;另外,我們也可以手動啟動這兩個守護進程,方法是首先用超級用戶(root)登陸,在命令行輸入如下命令:

    machine_A# /etc/rc3.d/S15nfs.server start

  或輸入:

    machine_A# /usr/lib/nfs/mountd
    machine_A# /usr/lib/nfs/nfsd -a 16

  就可以啟動這兩個守護進程了。

  守護進程啟動後,共享目錄才真正被共享出去,這時再在機器B上用mount命令就可以把機器A的目錄掛接到機器B上了。

2. ifconfig命令

  ifconfig命令用於查看和更改網絡接口的地址和參數,如果要顯示某台UNIX主機的IP地址,我們可以在命令行下輸入:

    $ifconfig -a

  系統會顯示網絡接口的名稱,接口的狀態(up or down),接口的IP地址和掩碼等信息。
如果我們要更改網絡接口的IP地址,可以在root權限下輸入:

    #ifconfig hme0 down
    #ifconfig hme0 202.1.2.3 netmask 255.255.255.0 up

  首先,使用down命令參數把網絡接口hme0的服務暫時停止,然後再用ifconfig命令給接口分配新的IP地址和掩碼,並啟動網絡接口服務。本例中把hme0接口的IP地址設為202.1.2.3,掩碼為255.255.255.0。我們也可以通過改變文件/etc/hosts中的IP地址的值並重新啟動系統來更改機器的IP地址。

  在系統啟動時,網絡接口服務時自動被啟動的,我們不需要手動地創建網口服務,但有時我們更改了網卡或增加了網卡後,系統不能自動啟動該接口服務,這時我們需要手動創建網口服務,在root權限下輸入:

    #ifconfig hme0 plumb

  即可以為接口le0創建網口服務。相應地,用ifconfig帶unplumb參數可以停止服務並關閉網絡接口,這時我們再用ifconfig -a 命令將看不到該網絡接口。

3. fsck命令

  fsck命令也是一個經常使用的命令,它用於對文件系統進行檢查,並對損害的文件系統進行修復。
fsck的語法如下:

  fsck (-F fstype) (-v) (-m) (-special…)
  fsck (-F fstype) (-v) (-y|Y|n|N)
  (-o fstype options) (special…)

  其中:

  -F fstype : 說明被檢查的文件系統的類型
  -v : 返回完成的命令行,但不運行
  -y|Y: 對所有問題均回答Yes
  -n|N: 對所有問題均回答No
  -m: 對文件系統進行檢查,不修復文件系統,

  如果文件系統經檢查後是可安裝的,則顯示

  ufs fsck : sanity check : /dev/rdsk/c0t0d0s0 okay.
  -o: 文件系統類型選項,選項由逗號分隔,

  最常用的選項有兩個:

  P: 整理(preen)模式
  F: 強制檢查模式,此選項忽略文件系統狀態標志。

  運行fsck後,該命令會分6個階段對文件系統進行檢查,這六個階段分別是:

  階段1: 檢查塊和塊的大小
  階段2: 檢查路徑名
  階段3: 檢查連接性
  階段4: 檢查參考記數
  階段5: 檢查自由塊列表
  階段6: 補救自由塊列表

  fsck在對每個階段進行檢查時,如果發現錯誤,會提示用戶進行修改,常見的一些錯誤有:

  (1). 移去一個沒有相關文件的目錄入口:這時用戶可以回答Yes或Y來刪除該目錄入口。

  (2). 重連接一個已分配但不能訪問的文件:fsck找到了一個已分配的I節點,但卻不可訪問(該節點沒與任何目錄連接),這時一般對fsck的"RECONNECT?"回答Yes,即把該I節點連接到lost+found目錄下,文件名即是I節點號,之後管理員應檢查該文件類型,判明該文件用途,再將該文件拷貝到相應目錄下。

  (3). 連接數調整:在交互方式下,fsck若發現連接數不一致,將詢問用戶采取何種行動,本例發現一目錄的I節點連接數與該目錄的真實連接數不一致。這時用戶應該回答Yes或Y來改正連接數。

  (4). 自由塊表不一致:fsck查出未分配塊數與超級塊中所給出的自由塊表不一致。這時用戶應該回答Yes或Y來修正超級塊。

  從上面的出錯信息和處理方法可以發現,對於fsck詢問的問題大多數情況下都可以用Yes來回答,所以在實際應用時,可以用" -y"選項來執行該命令對硬盤進行檢查和修復。

4. route命令
  route命令主要用於手動配置靜態路由表。例如我們要增加一條通過網關到達令一子網的路由,命令如下:
    #route add net remote_net_ip gateway_ip 1
  其中add代表要增加路由,net表示路由到達的是一個網絡而不是一台主機,1代表遠端網絡需通過網關才能到達,而不是直接與它相連(直接通過網絡接口相連時,該參數用0)。

 也可以使用如下命令:

    #route add -net remote_net_ip
    gateway_ip -netmask netmask
    #route add -host host_ip
    local_interface_ip -interface

  其中第一條命令與上面介紹的命令完成相同的任務,而第二條命令則代表要建立一條通過網絡接口到達另一台主機的路由。

  當然,我們使用"delete","change"命令參數可以對路由表中的路由信息進行刪除和修改。執行完route命令後,我們可以用"netstat -rn"命令查看當前的路由信息。

  通過route配置路由表後,該路由信息會一直保存到下次系統重啟。系統重啟後,則要重新配置路由表。通過修改文件/etc/defaultrouter可以設置一些默認路由,這些路由在系統每次啟動時都會被加到路由表中,而不必每次啟動都用route命令來配置路由表。

  /etc/defaultrouter文件的格式如下:

    $cat /etc/defaultrouter
    202.77.111.1

  該文件中現在只有一條默認路由,IP地址是202.77.111.1,這代表系統將把所有不屬於本地的數據包都通過網關202.77.111.1發送出去。

  有時UNIX系統安裝完成後,/etc目錄下並不存在defaultrouter文件,這時我們可以手工創建該文件,並編輯好默認路由,然後重啟。系統啟動後,就會自動使用配置好的默認路由信息了。


5、 UNIX系統管理常見問題及解決方法

  1. 忘記root 密碼

  root用戶又被稱為超級用戶,它是權限最高的用戶,一旦它的密碼被忘記,將給系統的維護和管理帶來很多困難,下面是忘記root密碼時的處理方法:

  首先,我們需要從CD-ROM 啟動系統,命令是:

    #boot cdrom -s

  系統啟動後,我們要把硬盤根分區掛接到光盤文件系統的/mnt目錄上,執行:

  #mount /dev/dsk/c0t0d0s0 /mnt (該例假設根文件系統是/c0t0d0s0)

  編輯硬盤根分區的shadow文件,將root的密碼項位置設為空。

    #cd /mnt/etc
    #vi shadow

  注意,有的系統要編輯/etc/passwd 文件而不是/etc/shadow文件。改完文件後,將掛接的根文件系統卸下。

    #umount /mnt

  重新啟動系統,並設置新的root密碼。

7、系統無法啟動

  系統無法啟動的原因大致如下:

  1) 錯誤的引導設備

  假如因為指定了錯誤的引導設備使系統不能引導,我們可以在PROM監控等級下利用"probe-scsi","probe-scsi-all"和"probe-ipi"命令來查看有什麼設備被連到系統上,並得到啟動設備的devalias名。進入PROM的方法是當系統啟動時,同時按下"STOP"鍵和"a"鍵, 這時系統出現提示符ok >,即表明系統當前處於PROM監控等級。

  用printenv顯示當前配置情況,如果發現引導設備不正確,可用setenv來重新設置:

    ok >setenv boot-device devalias

  用reset命令重新啟動系統,或set-defaults 恢復缺省值。

  2) 缺少重要的系統文件,或文件無效
  這時可以用"-a"選項來引導系統,系統將提供交互式的引導過程,如果有找不到文件時,系統會提示用戶給出適當的文件名。

  3) 缺少關鍵的系統文件,或文件無效
  例如缺少/etc/passwd文件,這時系統可能會引導,但是沒有任何用戶可以注冊。修復方法是用光盤啟動,掛接根文件系統並編輯/etc/passwd文件。

  4) 無法掛接遠程文件系統
  系統啟動時,會自動執行/etc/vfstab文件,如果在文件中有無法掛接的遠程文件系統,則系統會一直處於等待和重試狀態,無法進入登錄界面。解決辦法是用單用戶啟動,編輯/etc/vfstab文件,刪除錯誤的掛接內容。

  3. 鍵盤失效

  如果出現鍵盤失效的情況,即用戶在鍵盤上輸入信息而屏幕上沒有響應,首先要檢查硬件的連接,即查看鍵盤與主機的連接是否完好,連接導線是否有折斷或損害情況。

  如果硬件連接沒有問題,則查看是否不小心使用了鎖屏命令。方法是,按下"Ctrl+q"鍵,如果系統有響應,則說明是因為用戶按下了"ctrl+s"鍵將屏幕暫時鎖住的原因。鎖住後的屏幕將不顯示用戶從鍵盤輸入的信息,但輸入的信息依然能夠執行。

  如果系統仍沒有響應,我們則要重新啟動系統,進入PROM狀態,輸入printenv命令,並查看input device項的值,如果它的值不是keyboard,用

    ok >setenv inputdevice keyboard

  來使鍵盤成為輸入設備,然後再次重啟系統,這時系統將會響應用戶的輸入了。

8. cron 或 at 命令不能執行

  UNIX系統並不允許任何用戶都可使用cron進行作業調度,對用戶的限制有兩個文件,它們是/etc/cron.d/cron.allow和/etc/cron.d/cron.deny。

  如果用戶名被添加到/etc/cron.d/cron.allow文件中,則該用戶被允許使用cron,而不在該文件中的用戶則不允許使用,如果用戶被添加到/etc/cron.d/cron.deny中,則該用戶不能使用cron,其它用戶則可以使用cron。通常我們根據需要配置其中一個文件就可以了。

  如果用戶被允許使用cron,則可以用命令

    $crontab myCronFile

  在系統的/var/spool/cron/crontabs目錄中安裝自己的作業調度控制文件。at 和 cron 相似,要使用at, 需要配置/etc/cron.d/at.allow或/etc/cron.d/at.deny文件。

 9. 在Telnet時不能用root登錄

  在默認情況下,出於安全性考慮,UNIX系統不允許在系統操作台(console) 以外的終端用root登錄,所以有時我們通過Telnet用root登錄時,會返回:

    "not on system console"

  這樣的錯誤,這時,我們可以通過修改/etc/default/login文件來允許root通過Telnet登錄。具體方法是,編輯login文件,找到下面的一行:

    CONSOLE=/dev/console

  將這一行注釋掉,即在行首加上"#"符,存盤退出,再次使用Telnet時,root就可以登錄了。

  10. 關於目錄的訪問權限

  我們都知道UNIX系統中的每一個文件都有相應的訪問權限,系統根據該權限來控制用戶對文件的訪問,UNIX系統中的目錄也有相應的訪問權限,但它的定義與文件有些不同。

  讀權限:對目錄的讀權限表示用戶可以查看該目錄的內容,即可以對該目錄使用"ls"這樣的命令。

  寫權限:對目錄的寫權限表示用戶可以在該目錄下建立新文件或將其中的文件刪除,不論此時用戶對該文件是否有寫權限。

  執行權限:執行權限指用戶可以在該目錄下搜索文件,也即可以使用該目錄下具有相應訪問權限的文件。

總結:上述命令均為常用系統管理命令,部分參數均為常用參數。希望unix學習者能認真學
習本節,參照其他UNIX資料。本節不足之處,在所難免,希望大家指正。


第二部分:系統結構介紹
UNIX並不使用驅動器名如 C: D: 等來標記一硬盤或分區,在整個系統上,不管有多少個硬盤,分區是怎樣的,只有一個根目錄,叫做root 標記為 / ,其下任何一個子目錄,卻可以是一個硬盤或一個分區,而且是可隨時改變的,比如今天你可以設置 /tmp 為硬盤上一個分區,明天你可以設置他為一個你新裝的硬盤,如果你需要對這方面深入了解,你必須去看看這方面的專業書籍。現在我要讓你知道的是在通常情況下,一個UNIX系統的各個標准目錄下面的文件是什麼,以免你哪天萬幸進入了人家的系統,但連人家的主頁在那裡都找不到,下面我們說說UNIX文件系統的路徑組織結構。

各種UNIX類操作系統的路徑組織結構雖基本相同,但總存在一些小的差別。
不過,總體上還是差不多的。
/ 根文件系統,用於存儲系統內核,啟動管理和其他文件系統的裝載
點。
/bin 系統啟動時需要的一些通用可執行程序。
/cdrom 光盤驅動器的裝載點。
/compat 與系統兼容有關的內容,如系統模擬等。
/dev 設備入口點。在UNIX系統上,每個設備都作為一個文件來看待,這
裡放著所有系統能夠用到的各個設備
/etc 各種配置文件。非常重要的一個目錄,所有的配置文件(你可以
看成是windows的注冊表)包括用戶密碼文檔等存放在這裡
/mnt 軟盤等其他文件系統的裝載點。
/proc 進程文件系統,存儲指向當前活動進程的虛擬內存的偽文件。
/root root用戶的工作目錄。
/sbin 系統可執行文件。
/stand 獨立執行的程序,sysinstall就在這個目錄下。在安裝配置系統時用到
/usr 第二個文件系統。基本上是和系統核心無關但又屬於操作系統的一部分的一個目錄,大多數的應用程序,還有各用戶的私有資料存放在這個子系統
/usr/bin 與系統啟動無關的標准應用程序。
/usr/sbin 系統啟動時不需要使用的一些系統管理程序。
/usr/games 游戲。
/usr/home 用戶目錄。存放各個用戶自己的文件,如果你的用戶名為 abcd 那麼 /usr/home/abcd 就是屬於你的目錄,一般情況下其下面的任何文件可以任你主宰,你能夠創建、刪除文件和目錄
/usr/include 程序需要的頭文件。
/usr/lib 程序需要的庫文件。
/usr/libexec 一些不由用戶直接運行的執行程序。如ftpd telnetd 等服務程序
/usr/man 幫助文件
/usr/X11R6 X-Windows系統
/usr/X11R6/bin 可執行的X-Windows程序
/usr/X11R6/include X-Windows程序的頭文件。
/usr/X11R6/lib X-Windows程序的庫文件。
/usr/X11R6/man X-Windows程序的幫助文件。
/usr/share 各種共享的只讀文件,大多數是一些系統信息,文檔。
/usr/local 第三個子文件系統,不屬於FreeBSD一部分的其他程序。如果你再安裝其他的程序如apache mysql等這些不是系統自帶的程序的時候,將會放到這裡,其下同樣有bin sbin etc man lib include 這些目錄
/var 存儲經常發生變化的文件,如郵件,日志等。
/var/log 系統日志。
/var/mail 發給用戶的信件。
/var/spool 緩沖數據,如打印數據等。
/var/tmp 臨時文件。
了解這個路徑結構將給用戶使用unix系統提供很大方便。同時我們也看到,UNIX系統的文件組織結構是如此的清晰,什麼東西就放在什麼地方,查找非常容易。

總結:下面我再重點說說幾個重要的目錄,無論在 / 還是 /usr 或者 /usr/local ,甚至 /usr/home/username 下面,都會有 bin sbin etc man 這幾個目錄,通常一個應用程序會把普通的可執行文件放到 bin,而跟系統維護相關的可執行文件放到 sbin,配置文件放到 etc,幫助文件放到 man ,需要用到的庫文件到/usr/lib中找,編譯時要用到頭文件到/usr/include中找
看到這裡,相信你對一個UNIX系統上都有一些什麼東西比較了解了,但是,這些東西雖然存在,可也不是你想看就看,想運行就運行的哦,UNIX有一套規則來規定誰能干什麼,不能干什麼,這個文件誰能看誰不能看,誰能用誰不能用,或是誰只能看不能用,這都是我們以前曾介紹的有關用戶與文件權限的設置。

第三部分:系統啟動過程
一、了解unixware 7.1.1系統引導文件
SCO UNIXWARE 7.1.1的引導文件就類似與我們熟悉的DOS/WINDOWS的系統文件:IO.SYS,MSDOS.SYS與COMMAND.COM。
位於/stand目錄中,各個文件的名稱及作用解釋如下:
1、boot,包含定義的引導參數。
2、unix,當boot程序引導後,將搜索並裝載該程序到內存, 然後就調用boottab,即inittab文件(/etc/inittab),
init進程運行後,我們就稱系統進入守護狀態。
3、unix.old,當新的內核邦定後,該文件將保存老的系統引導表boottab.
4、bootmsgs,該文件包含系統啟動的文字信息。
5、logo.img,該文件為引導時的圖形界面。
6、help.txt,該文件包含的都是當在boot:後打入"?"後的幫助信息。
7、resmgr,該文件為一份resouse manager數據庫的備份。
8、resmgr.sav,該文件為一份老系統的resouse manager數據庫的備份。
9、*.blm,所有blm文件均為引導、裝載模塊。
二、了解unixware 7.1.1系統引導過程
unixware 7.1.1與其他UNIX系統引導過程相似:

整個系統的啟動分為兩個階段,第一階段是系統自舉,第二階段是啟動Unix。
由於Unix駐留介質不同,整個系統啟動階段也不完全相同。以從硬盤上引導系統為例。

系統自舉階段主要分三個步驟:
1.由ROMBIOS引導硬盤的0道0扇區的Master boot塊;
2.由Master boot塊引導硬盤活動分區的第0扇區的boot塊;
3.該boot塊將隨後扇區的內容引導並運行。

啟動Unix階段主要是由boot程序引導Unix核心程序開始,即引導/stand/unix。
當Unix系統被引導運行後,將啟動一個稱為init的進程,該進程將啟動/etc/inittab文件中所列的
進程,並且引導系統進入某一特定的運行級別。



第四部分:網絡服務器的介紹
一、FTP的安裝與配置
二、DHCP的安裝與配置
三、DNS的安裝與配置
四、SENDMAIL的安裝與配置
五、APACHE的安裝與配置
六、BBS的安裝與配置
七、SAMBA的安裝與配置
八、SSH的安裝與配置

一、FTP的安裝與配置

ProFTPD 詳解
當我的同事每次傳送文件到 Solaris 8 的 FTP Server 時,那些修改日期在 2002 年
之前的文件總是不能在窗口中看到,這些文件在 Solaris 系統中用 ls -l 看到的是
帶有年份的,而那些 2002 年的文件則沒有 2002 的年份。因此,問題就出在這裡,我
們每次需要用 touch 命令更新文件日期,十分的不方便。所以,我認定是 FTP Server
的問題。隨即決定選用熟悉的 Wu-ftpd ,但是,令人吃驚的是,使用這個版本的
FTP Server 後,居然不能顯示目錄,連整個目錄都不能列出來了。想到以前曾經有文章
介紹 ProFTPD ,因此,決定嘗試這個軟件。感覺起來十分的好用,特地撰寫此文,願
意和大家共享。

ProFTPD 也是開放源碼的軟件,以 GPL 許可發布。ProFTPD 可以說是 wu-ftpd 的替代,
同時在安全,可伸縮性等方面有很大的提高。特別是對於熟悉 Apache 配置的人而言,
它的配置和 Apache 十分相似,因此,用起來肯定能得心應手。


主要特色:
一個單一的和 Apache 的 httpd.conf 類似的配置文件
每個目錄下的 .ftpaccess 文件(和 Apache 的. htaccess 類似)
很容易配置的,多個虛擬 FTP 服務器以及匿名 FTP 服務
可以單獨運行也可以從 inetd/xinetd 啟動
匿名 FTP 的根目錄不需要特別的目錄結構
系統的二進制文件和其他系統文件沒有 SITE EXEC 命令
在單獨運行方式下,以非特權用戶運行,降低攻擊風險
日志以及 utmp/wtmp 支持
Shadow 口令支持

截止到本文成稿時, ProFTPD 的最新版本為 v1.2.4 ,為了保證系統安全,建議你總
是把軟件更新到最新的版本。

wget
ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.4.tar.gz

./configure --prefix=/usr/local --enable-shadow
make (如果是雙 CPU 建議采用 make -j3)
make install

然後你可以發現 ProFTPD 安裝在 /usr/local 下,"proftpd" 可以在/usr/local/sbin/
目錄下找到,配置文件 proftpd.conf 位於:/usr/local/etc/ 。

如果你熟悉 Apache 的 httpd.conf 的配置的話, proftpd.conf 的配置十分簡單。


DefaultRoot ~ users, !staff
ServerIdent On "FreeLAMP FTP Server"
ServerName ""
ServerType standalone
ServerAdmin
[email protected]
Bind 192.168.0.1
ExtendedLog /var/log/proftpd read,write,auth
ScoreboardPath /usr/local/var/proftpd
RequireValidShell Off
User proftpd
Group proftpd

下面我們就可以啟動了:

/usr/local/sbin/proftpd &

以上的配置方法十分簡單,不再贅述。下面我們看限制匿名用戶登錄的辦法:

#MaxClients 1 "Maximum users reached - try again later"
#MaxClients 1 "Sorry, max %m users -- try again later"
MaxClients None "對不起,本系統不支持匿名登錄"



帶寬控制:

RateReadBPS 81920
RateReadFreeBytes 5120
RateReadHardBPS on

這樣用戶的帶寬就用公式: "RateReadBPS x MaxClients = Total Bandwidth allocation."
限制起來,但是針對每個虛擬域,每個用戶以及全局的限制還沒有實現。在 1.2.x 系
列中只有一個全局變量影響整個服務器:

Bandwidth 81920

另外,你還可以采用 "mod_quota" 和 "mod_ratio" 模塊來控制用戶的磁盤限額。


二、DHCP的安裝與配置
下載:
ftp://ftp.isc.org/isc/dhcp/dhcp-3.0p1.tar.gz
待續...

由於最近在學ORACLE,不能及時完成其他服務的配置講解,在此向大家抱歉,不過可以推薦個好的網址,大家可以去參考.
http://www.fanqiang.com/

再過不久,我會向大家定期講解標准的unixware系統管理與網絡管理,這可是我花了998個大洋買來的,會讓大家與我一起分享的.

Copyright © Linux教程網 All Rights Reserved