?? 成為linux的主人.txt
字號:
成為Linux的主人
在Linux 系統管理中, /etc下面的檔案無疑的伴演了極端重要的角色, 在這篇文章中, 將為各位介紹 /etc 下每個檔案的用途, 及相關
指令的運用, 希望能為大家在成為 System Administrator 的路上有所助益.
特別要說明的是, 在這篇文章中, 有些檔案仍然沒有提到, 這是因為, 這些檔案都不是一二十行的描述就可以講完的! 如 /rc.d 下的檔
案, inittab 這兩個最好就要合起來講, 因為這些牽扯到 bootstrapping, 絕對不是三言兩語就可以講完的. 凡是有這種特性的檔案, 有機
會的話將再為各位介紹......
本文 :
/etc/DIR_COLORS : 設定在用 ls 時 , 各種不同檔案型態所用的顏色 , 但是不能用pipe 再導向輸出, 否則就沒有各種顏色了. 由檔案
的內容可以很輕易的了解, 如 default 的 directory 是藍色, 具有可執行檔權限的是綠色, 而壓縮檔是紅色...... 這些都可依個人喜好來
加以更改. 這個檔案內容寫得很清楚, 想必各位一眼也就可以看得出來, 在顏色的組成方面, 我們常用 RGB 三原色的成份值來組合出各種不
同的顏色. 由 R,G,B 這個 bit 是 0 或是 1 三個值組合出顏色這個道理雖淺顯, 但假如我們更了解 R,G, B 的加權值分別是1,2,4 的話,
那就再也不用翻書查顏色了...... 選擇自己的調色盤來取代預設的調色盤, 是經常會做的事.
/etc/HOSTNAME : 記錄完整的 hostname 與 domain name , 這個檔案在須要 hostname的場合會用得到 , 如 /etc/rc.d/rc.M 等 ......
/etc/NETWORKING : YES , 沒什麼用 , 改成 NO 會怎樣呢 ? 會對網路的使用會造成影響嗎 ? 答案是否定的 .
/etc/X11 : link 到 /var/X11/lib/X11
/etc/at.deny : 在這個檔案中可記載那些人不能使用at這個命令來做一些 later job, 假如 at.deny 是空的, 而且 at.allow 也不存在的話. 那就是每個人都可以用 at 這個命令.
/etc/at.allow : 相對於 at.deny , 這個檔案記載那些人可以使用 at 這個指令關於at 這個指令, 我想它的重要性是無庸置疑的, 各位應該要會這個指令的用法, 會了這個指令, 可以在工作的執行上會更有彈性而關於
at.deny 與 at.allow, at 會先去找 at.allow, 假如存在而且有記錄一些人的話, 那就只有這些人能使用 at 這個指令, 但假如at.allow 并不存在的話, 那 at 就會去找 at.deny, 沒有在at.deny 中的人都可以使用 at 這個指令了! 特別要說明的是, at的執行時間也許會不如你所預期的, 比如說明明一個檔你叫它在7:02 執行, 但它卻會等到 7:05 才執行, 這是因為 crond 是每五分鐘才去看看 at 的 queue 中是否有要執行的 job. 當然, 你也可以改成每分鐘都去 check, 但這樣似乎沒有很大的意義, 除非你對時間的準確度要求的很嚴格, 否則應該沒有必要去動才是. 各位可去看看/var/spool/cron/crontabs/root 中就有詳細記載, 每五分鐘 run
一次 atrun, 所以 at 命令的執行可看成以每五分鐘為一單位.
/var/spool/atjobs: 當你使用 at 來安排一件工作時, 系統會把
你目前的環境變數及所要用 at 執行的工作抄一份到這個目錄下的檔案中 .
/var/spool/atspool : 使用 at 命令之後所得到的一些訊息 , 會被
記錄在這里 . 可能是 at 所要執行的命令傳回的錯誤訊息 , 或傳回執行成功的訊息 .
/etc/csh.cshrc :
/etc/csh.login :這兩個檔案應該很熟悉羅! 它就是各位常見到的.cshrc 及.login,
不過大家通常只注意到自己的 home directory 有這兩個檔, 但
/etc 下也有這兩個檔, 不過 /etc 下的這兩個檔絕大部份的情況下
都是由 system administrator 在 maintain, 一般 user 不應該有
權力去改. 順便一提的是, 系統會先去找 /etc 下這兩個檔, 接著才
加上自己 home directory 中那兩個檔的設定. 當然, 有了.login
也有.logout,.logout 中可以寫一些 message, 或執行一些命令, 當
你下達 logout 之後,.logout 就會被執行.
/etc/disktab : ( disk parameter table ) 假如你在剛開機有 pass 磁碟機的一些參數
給 kernel 的話 ( 通常是你的硬碟比較奇怪 , 需要 pass cylinders ,
heads , sectors 給 kernel 才抓的到 , 或者是 SCSI 的硬碟有時
有時也要用到一些參數 ) 那這些參數就會被記錄在這里 .
/etc/exports : 這個檔案記錄著你要給別人 mount 的檔案系統 , 這就是典型 NFS
系統所存在的檔案 , TCP/IP for OS/2 若要使用 network file system
而要把自己的 filesystem 讓別人 mount 的話 , 這個檔案也是不可或缺的 .
比如說 , 我所在的 domain name 為 dorm10.nctu.edu.tw , 我要把
我 /usr 下的 filesystem 開放給十舍的人 mount , 那我在 exports 中
要這樣寫 :
/usr *.dorm10.nctu.edu.tw(ro)
接著 , 在 /etc/rc.d/rc.inet2 中 , 找到下面的段落 , 這些段落本來
每一列的前面都有 # , 現在 , 依照下面的內容 , 把這些 # 拿掉 .
......
......
......
# Start the SUN RPC Portmapper.
if [ -f ${NET}/rpc.portmap ]
then
echo -n " portmap"
${NET}/rpc.portmap
fi
......
......
......
# # Start the various SUN RPC servers.
if [ -f ${NET}/rpc.portmap ]
then
# if [ -f ${NET}/rpc.ugidd ]
# then
# echo -n " ugidd"
# ${NET}/rpc.ugidd -d
# fi
if [ -f ${NET}/rpc.mountd ]
then
echo -n " mountd"
${NET}/rpc.mountd
fi
if [ -f ${NET}/rpc.nfsd ]
then
echo -n " nfsd"
${NET}/rpc.nfsd
fi
# # Fire up the PC-NFS daemon(s).
if [ -f ${NET}/rpc.pcnfsd ]
then
echo -n " pcnfsd"
${NET}/rpc.pcnfsd ${LPSPOOL}
fi
# if [ -f ${NET}/rpc.bwnfsd ]
# then
# echo -n " bwnfsd"
# ${NET}/rpc.bwnfsd ${LPSPOOL}
# fi
fi
echo
# Done!
在 client 端可用如 :
mount -vt nfs rebel.dorm10.nctu.edu.tw:/usr /tmp
將 server 端的 /usr 掛到 client 端的 /tmp
/etc/fastboot : 這個檔案是使用 shutdown -f 所產生的 , -f means "fastboot"
在重新 reboot 之後 , 系統會去檢查這個檔是否存在 , 以決定
是否要 run fsck .
/etc/fdprm : floopy disk parameter table . 一般情況下是不須要更動的 , 除非
你有很奇怪格式的軟碟 , 或者你想做出不符合一般格式的磁碟片 .
/etc/nologin : 你也許會感到奇怪 , 我的 /etc 這個 directory 下并沒有這個檔啊?
沒錯 , 它平常是不存在的 , 通常會看到這個檔的話 , 那表示系統大
概要 shutdown 了 , 因為系統要 shutdown 了 , 自然不希望有人又
login 進來 , 所以在我們執行 shutdown 時 , nologin 這個檔會自動
的被 create , 里面放著 shutdown message . 實際上 , 當我們在
login 時 , 系統會去檢查有沒有這個檔 , 假如有的話 , 那就會印出
這個檔案中的 message , 然後不讓你 login .
nologin 也有可能是為了某種理由被制造的 , 比如說系統在 maintain
暫時不希望有人 login . 無論如何 nologin 若存在 , 就不能 login
/etc/fstab : 記錄開機要 mount 上來的 filesystem, 這個檔案相當重要! 各位可以
在 /etc/rc.d/rc.S 中找到 /sbin/mount -avt nonfs 這一列, 當執行
到這一列時, mount 就依據 /etc/fstab 中的記載, 自動的將檔案系統
mount 上來. 下面就是一個頗為典型的范例. 假如你一開機就想自動
mount 一些 filesystems, 而不要等到開機後再以手動 mount 的話那把
這些 filesystems 及相關資訊寫在這個檔, 是不錯的選擇. 在檔案格式
方面, 每一列有六個欄位, 不過後面兩個欄位常被省略所以我們只看到
有四個欄位. 其它的兩欄分別為 dump-freq 及 pass-number.
dump-freq 預設值為 0; 而 pass-number 是 fsck 所會參考到的地方,
數字可為 0,1,2...... 1 表示這個 filesystem 將首先被 fsck check,
2 表其次, 馀類推......
# 要掛上的檔案系統 掛在那里 檔案系統格式 讀寫狀況
/dev/hdb2 swap swap defaults
/dev/hdb1 / ext2 defaults
/dev/sbpcd /mnt/cdrom iso9660 ro
/dev/hda1 /mnt/dosc msdos rw
/dev/hda5 /mnt/dosd msdos rw
/dev/hda6 /mnt/dose msdos rw
none /proc proc defaults
/etc/ftpusers : 這個檔案記錄那些人不可以 ftp 簽入系統 , 預設值有 root , uucp
news . 這些都是為了 security 方面的考量 , 你可以在這里加入
不可 ftp 進來的 user id .
/etc/gateways : 顧名思義 , 這個檔案記錄一些 gateways 的 information
這個檔案的格式如下 :
name1 gateway name2 metric value
當 routed 啟動時, 它會去讀 /etc/gateways 這個檔. 若一個 gateway
并不做 routing information 交換的話, 那它就會被標示成 passive,
假如有做 routing information 的交換 ( 這臺機器上有 run routed )
, 那就會標示成 active net 或 host 這個關鍵字是指出 route 是到網
路或是到一臺特定的機器上. name1 就是目地網路或目地機器的名字.
這個名字可用 /etc/hosts 或是 /etc/networks 中的 symbolic host
name. name2 就是訊息將被送往之 gateway 的 name 或 IP address.
/etc/group : 如同 /etc/passwd 列出了系統中所有的使用者名字 , /etc/group
定義系統中所有的 group name 與相關訊息 .
格式為: group_name:passwd:GID:user_list
如 : author::200:jhhsu,emotion,passion
上面的例子表示 jhhsu,emotion,passion 都是屬於 author 這個 group
通常 passwd 那欄是空白的 , 表示不用密碼 . 或放一個 * 號
以下也是一個典型的例子 :
root::0:root,jhhsu
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemon
tty::5:
disk::6:root,adm
lp::7:lp
mem::8:
kmem::9:
wheel::10:root,jhhsu
shadow::11:root
mail::12:mail
news::13:news
uucp::14:uucp
man::15:man
users::100:games
bbs:*:99:bbs,bbsuser,bbsroot
當然啦 ! 這個檔案只能為 superuser 所讀寫 , 一個 superuser 可使
用 groupadd , groupdel , groupmod 來管理 /etc/group 這個檔 ,
要手動管理也是可以 . 下面是這三個指令的用法 :
groupadd [ -g gid [ -o ] ] group_name
groupdel group_name
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -