寫一個簡單的例子:
main.c:
#include <stdio.h>
#include <stdlib.h>
#include <libguile.h>
int main (int argc, char *argv[])
{
SCM func_symbol;
SCM func;
scm_init_guile();
// Load the scheme function definitions
scm_c_primitive_load ("script.scm");
func_symbol = scm_c_lookup("do-hello");
func = scm_variable_ref(func_symbol);
scm_call_0 (func);
exit(EXIT_SUCCESS);
}
Makefile:
CC = gcc
GUILE_CFLAGS = `guile-config compile`
GUILE_LIBS = `guile-config link`
all:
$(CC) $(GUILE_CFLAGS) -c main.c
$(CC) $(GUILE_LIBS) -o main main.o
如果連接有錯誤的話,把
$(CC) $(GUILE_LIBS) -o main main.o
改成
$(CC) main.o $(GUILE_LIBS)
-o main
注意:因為這里gcc一般都是把-l參數放在最后一個-o參數之前的.
在cygwin/gcc下編譯出來的程序,在windows執行必須依賴cygwin1.dll,并且速度有些慢,如果不想依賴這個東西的化,必須在gcc的編譯選項中加入-mno-cygwin。
加入這個選項其實gcc編譯器就會自動的選擇在安裝cygwin/gcc時安上的mingw,這個mingw就是gcc的一個交叉編譯。
如果要程序沒有控制臺的話,只加上參數-mwindows就可以了.
IRC命令可以實現一些特殊的功能。目前,億言堂支持14條IRC命令:
/nick 更改昵稱
/join 加入/建立聊天室
/mode +(-)i 鎖住聊天室
/mode +(-)o 設定管理員權限
/knock 要求進入私人聊天室
/invite 邀請用戶進入私人聊天室
/privmsg 悄悄話
/ignore 忽略
/away 暫時離開
/whois 查詢用戶信息
/names 列出所有在線用戶
/topic 更換聊天室主題
/kick 把用戶踢出聊天室
/quit 退出聊天室
IRC命令有二點值得您注意:
所有的IRC命令都是由“/”引導。
在不引起混淆的情況下,IRC命令允許簡寫。例如,/join 命令可以簡寫為/j,/jo或者/joi。
/nick
更改昵稱的基本方法是:/n(ick) 新的昵稱
您的昵稱可以包含英文字母,數字,漢字及下劃線等。但是,昵稱不能超過50個(每個字符和漢字都算一個字),而且不能包含$,+,!和空格。
/nick 命令等價于工具按鈕中的“改變別名”。
/join
/join命令的格式是:/j(oin) 聊天室名
如果聊天室已經存在,您就進入該聊天室。此時,/join 命令等價于聊天室列表工具按鈕中的“進入”。
如果聊天室不存在,您就建立了一個新的聊天室并進入。此時,/join 命令等價于工具按鈕中的“建聊天室”。
聊天室的名字可以包含英文字母,數字,漢字及下劃線等。但是,不能超過50個字(每個字符和漢字都算一個字),而且不能包含$,+,!和空格。
/mode +(-)i
/mode +(-)i 命令可以用來鎖住(解鎖)用戶自建的聊天室(私人聊天室)。其命令格式是:/m(ode)
+i 或 /m(ode) -i
只有用戶自建的聊天室才能加鎖。
未經管理員邀請,其他用戶不能進入私人聊天室。
/mode +(-)o
/mode +(-)o 命令可以讓聊天室管理員賦予或者剝奪其他用戶的管理員身份。其命令格式是:/m(ode)
+o 用戶昵稱或/m(ode)-o用戶昵稱只有聊天室管理員才能使用這個命令。
/knock
/knock 命令可以讓您詢問私人聊天室管理員是否可以進入該私人聊天室。其命令格式是:/k(nock) 房間名
消息]
/invite
/invite 命令可以讓聊天室管理員邀請其他用戶進入私人聊天室。其命令格式是:/i(nvite) 用戶昵稱
只有私人聊天室的管理員才能使用這個命令。
/privmsg
/privmsg 命令用來向在同一間聊天室的某個用戶發送私人消息(悄悄話)。也就是說,您的消息只送給指定的人,而不會顯示給其他用戶。
/privmsg 命令的基本格式是: /p(rivmsg) 用戶昵稱 消息
接受您的私人消息的用戶必須和您在同一間聊天室。
“用戶昵稱”和“消息”這兩個參數是不能省略的。
如果某個用戶的昵稱太長,在不會產生混淆的情況下,您可以只輸入用戶昵稱的頭幾個字母,系統會進行自動匹配。
例如:聊天室里除了您之外還有兩個用戶,他們的昵稱分別是xiaobao和softman。您若想給softman發送悄悄話,可以在輸入框里輸入下面的命令:
/p s Have you etanged today?
由于xiaobao和softman的第一個字母就不一樣,所以系統會把您輸入的昵稱“s”自動匹配為“softman”。另外,“/p”是“/privmsg”的縮寫。
/ignore
/ignore 命令用來把某個用戶加入您的“壞人黑名單”。一旦某個用戶進入了您的黑名單,他說的任何話都將不會顯示在您的終端上。
/ignore 命令的基本格式是:/ig(nore) 用戶昵稱
用戶昵稱所代表的用戶必須和您在同一個聊天室。
/ignore 命令等價于用戶列表工具按鈕中的“忽略”。
如果某個用戶的昵稱太長,在不會產生混淆的情況下,您可以只輸入用戶昵稱的頭幾個字母,系統會進行自動匹配。
在您的用戶列表中,如果某個用戶昵稱前有一個#,表示該用戶已經被您列入黑名單。
如果一個用戶已經在您的黑名單中,您可以用 /ignore 用戶昵稱 把他從黑名單中去掉。
/away
/away 命令用來把自己設為“暫時離開”狀態,并可以留言給其他用戶。當其他用戶和您說悄悄話時,您預先設置的留言會自動回復給其他用戶。
/away 命令的基本格式是:/a(way) [留言]
“留言”這個參數是可選的。如果有這個參數,您的狀態會被設置為“暫時離開”。否則,您的狀態會被設置為“我回來了”。
當您暫時離開聊天室時,用戶列表中您的昵稱前會出現一個?,表示您處于“離開”狀態。工具按鈕中的“暫時離開”也會變為“我回來了”。
當您回來繼續聊天時,您可以點擊工具按鈕中的“我回來了”,或者在輸入框里輸入 /away 命令,將自己設置為正常狀態。
/away 命令等價于工具按鈕中的“暫時離開”
/whois
/whois 命令用來查詢某個用戶的信息,包括用戶的億唐ID,IP地址,目前所在的聊天室和發呆時間。
/whois 命令的基本格式是:/w(hois) 用戶昵稱
/whois命令等價于用戶列表工具按鈕中的“查詢”。
/names
/names 命令用來查看當前所有(或某個聊天室內)的在線聊天用戶。其命令格式是:/na(mes) [聊天室]
/topic
/topic 命令用來設定當前聊天室的主題。
/topic 命令的基本格式是:/t(opic) 聊天室主題
只有當前聊天室的管理員(op)才有權利設定聊天室主題。
聊天室的創建者就是該聊天室的管理員。
管理員權限可以通過 /mode +o 命令轉交。
/kick
/kick 命令用來把某個用戶踢出當前聊天室。
/kick 命令的基本格式是:/ki(ck) 用戶昵稱 [消息]
只有當前聊天室的管理員(op)才有權利把其他用戶踢出當前聊天室。
聊天室的創建者就是該聊天室的管理員。
管理員權限可以通過/mode +o命令轉交。
請諸位網友慎用這個命令。“君子動口不動手”嘛!
/quit
/quit 命令用來退出聊天室。
/quit 命令的基本格式是:/q(uit) [消息]
“消息”這個參數是可選的。如果您指定退出時的消息,該消息會發送給當前聊天室中的其他用戶。您可以使用這個消息向其他用戶道別。
/quit 命令等價于工具按鈕中的“結束聊天”。
所有中國黑客和紅客,我的同胞們:
首先聲明,我的計算機軟件技術、黑客功底,可能不會比你們任何人差:
我通讀過 minix,tcp/ip,bsd,linux,
pl1的源碼,我拿過中國高級程序員證書,sun
的java證書,精通vc和unix,對緩沖區溢出,病毒,ddk等均有研究,所以我想我有資格對你們說幾句話。
(如果我提到的一些計算機名詞和人名,你們居然不知道,那只能證明你們的無知,和不配稱為黑客。)
如果是真正的黑客,他會知道
1.發明tcp/ip的是美國人 。
2. linux的作者,linus大俠現在也在美國工作 。
3. open source的開創人 stallman
也是美國人,他提倡軟件不分國界的自由的精神 。
4. free bsd 的作者是美國人,他的source
讓真正的黑客受惠
5.世界級軟件科學大師
tanabaom,也是美國的客座教授,他的minix,
ameba和教材教育了全世界幾代黑客。
提到這些,不是崇美,不是恐美,只想證明:
1.很多大師級的美國黑客,他們的理念恰恰是自由、開放、無國界;他們的自由軟件,開放源碼,是與政治無關的,是超越國界的,給全世界人們帶來福音。
2.真正的黑客精神,如stallman所說,是要讓人類超越計算機,成為計算機的主宰,從而成為自由的。
所有的中國黑客和紅客,我的同胞們:
當你們正通過下載美國人寫的黑客工具,來攻擊美國網絡,并且樂此不疲,以為這就是愛國行動的時候,是否想過:
此時此刻,印度的軟件人士,正在努力提高軟件技術,他們的軟件水平、軟件產業已經超越了中國;難道我們不應該痛苦地承認這個現實,并且奮起直追嗎?
中國發明了火藥,但是缺少研究精神,結果是被西方人研究改進了以后打中國,這樣的教訓還少嗎?
中國向來不缺愛國熱情,但是我們缺少對科技的認真研究精神,知恥而后勇的追趕精神。難道我們不愿意承認這一點嗎?
從戰術上來說,過早暴露自己的實力是不聰明的;冒昧地問一句,如果真的戰爭爆發了,您的黑客技術完全掌握好了嗎,您已經為那一天的到來在進行技術儲備嗎?
您有沒有想向那些真正為中國科技做出杰出貢獻的科學家如錢學森學習呢?
所有的中國黑客和紅客,我的同胞們:
請把你們的聰明才智用到真正提高你們的水平,對國家的強大有幫助的地方吧:
如果您愿意對國家有所貢獻:
1.中國的863計劃中有一個重點研究項目:
并行計算,分布計算,向量計算。您愿意研究它嗎?
2.
作為現代通訊技術的一個根本數學基礎,大合數的快速因子分解,還是一個難題。您愿意研究它嗎?
如果您想提高技術,對中國的軟件技術有所貢獻:
1.研究 vc,java
2.研究數據結構,去考高級程序員
3. 研究操作系統,讀minix source code
4. 研究tcp/ip, rfc文檔
5. 通讀linux, 才算達到黑客境界
6. 學習
uml,rose,軟件工程,達到系統分析員水平。
如果您對提高中國的科技有興趣,去研究生物基因,材料技術(納米技術),計算機技術,航天技術……
我的同胞們,我愿大聲吶喊:
一個真正的民族主義者,不是義和團,不是太平天國,不是閉關鎖國,不是盲目仇外,不是不敢正視自己民族和文化的丑陋和缺點。
真正的民族主義者是成熟的、清醒的、理智的、務實的民族主義。真正的民族主義者不是種族主義者,不是極端份子,不是戰爭狂人。
真正的民族主義者以追求本民族——中華民族的利益最大化為目標、準則、信念。判斷一個人是不是真正的民族主義者,判斷標準很簡單:看他是給本民族的整體利益帶來
好處,還是損害民族利益。真正的民族主義者最務實,因為他知道堅持原則,同時又懂得策略。讓我們成為真正的頂尖黑客!讓我們成為真正的民族主義者!
FreeBSD中/etc下的文件可以說是紛繁復雜,對熟悉它的人來講不算什么,但對于一個新手來說就。。。太亂了,下面是一些經常用到的配置文件的作用和配置方法,但愿能給你一點幫助。
1. aliases
2. crontab
3. csh.cshrc
4. csh.login
5. csh.logout
6. daily
7. defaultdomain
8. exports
9. fbtab
10.fstab
11.ftpusers
12.group
13.host.conf
14.hosts
15.inetd.conf
16.localtime
17.login.conf
18.make.conf
19.monthly
20.motd
21.netstart----新版已改名為/etc/rc.network
22.passwd
23.printcap
24.profile
25.rc
26.rc.conf----代替原來的/etc/sysconfig
27.rc.conf.local----代替原來的/etc/rc.local
28.rc.i386
29.rc.local----新版改名為/etc/rc.conf.local
30.rc.network----代替原來的/etc/netstart
31.resolv.conf
32.services
33.shells
34.sysconfig----新版已改名為/etc/rc.conf
35.syslog.conf
36.termcap
37.ttys
38.weekly
1. aliases
這個檔案主要是告訴 sendmail 要將信轉寄給哪些使用者, 或是交由哪個程式處理.
如. root: user1,name2,user3
usenet: "|/usr/local/bin/mail-post.pl"
如上范例, sendmail 會將原先寄給的 root 的信分送給 user1 和 name2 和 user3, 而把寄給 usenet 的信交由 mail-post.pl 處理.
在你修改完之後, 要記得執行 "newaliases" 來更新 /etc/aliases.db
關於 aliases 之詳細說明, 請 man aliases 查詢.
2. crontab
這是給 root 用的 crontab file, 你也可以殺掉這個檔案以 "crontab -e" 來替代.
格式如下...
#分 小時 天 月 禮拜幾 用誰的身份 命令
*/5 * * * * root /usr/libexec/atrun
minute: 分鐘/小時, 范圍自 0 至 59
hour: 小時/天, 范圍自 0 至 23
mday: 天/月, 范圍自 0 至 31
month: 月/年, 范圍自 0 至 12
wday: 天/周, 范圍自 0 至 7 (0, 7 表示星期天)
who: 表是以誰的身份執行這個 command
(這只對 /etc/crontab 有用, crontab -e 無此欄位)
command: 命令或是 shell script
*/N: 表示每 N 一算, 像小時而言, */3 指的是 0,3,6,9,12
請 man 5 crontab 去看詳細說明.
3. csh.cshrc
# 系統內定給 csh shell 用的 .cshrc 檔
## 確定 HOME 目錄
setenv HOME $HOME
set home=$HOME
cd $HOME
## 檔案權限設定
umask 022
## 就是 Aliases 嘛
alias pftp '/usr/local/bin/pftp'
alias free 'pstat -s|grep -v not'
alias talk ytalk
alias ruptime '/usr/bin/ruptime|grep -v down'
alias ftp ncftp
alias rwho '/usr/bin/rwho -a|grep -v LOGIN'
alias more less
alias zmore zless
alias m less
alias pss 'ps auxw|sort -k 2|grep $USER'
alias psm 'ps auxw|sort -k 1,2|more'
alias psl psm
alias psv 'ps auxw|grep -v $USER|sort -k 2|more'
alias d '/usr/local/bin/colorls -G -alFgk \!* | more'
alias dir '/usr/local/bin/colorls -G -alFgk \!*'
alias rd rmdir
alias md mkdir
alias cls clear
alias cd.. 'cd ..'
alias del '/bin/rm -i'
alias xdel '/bin/rm -rf'
alias mv 'mv -i'
alias dir/w '/bin/ls -aFgk'
alias dw '/bin/ls -aFgk'
#alias x '(startx &)>&/dev/console;sleep 300;lo'
#alias lpr 'lpr -m'
alias cp 'cp -i'
alias rm 'rm -i'
alias lo 'clear;exit'
alias bye 'clear;exit'
#alias vi cvi
alias unlo 'unset autologout;unsetenv autologout'
alias q joe
alias .. 'cd ..'
alias ... 'cd ../..'
#alias ku 'ku -W'
alias tin rtin
#alias s 'exec screen'
## 環境設定
set path = (/sbin /usr/sbin /bin /usr/bin /usr/local/sbin /usr/local/bin)
set path = ($path /etc /usr/etc /usr/local/etc)
set path = ($path /usr/X11R6/bin /usr/games)
set path = ($path ~ ~/bin .)
set mail = (10 /var/mail/$USER)
set recexact
set autolist
set matchbeep = ambiguous
set autoexpand
set autocorrect
set ignoreeof
set noclobber
set notify
set correct = all
if ( ! $?WINDOW ) then
# set prompt = "%B%m [%/] [%?] -%n- "
set prompt = "%B%m [%/] -%n- "
else
set prompt = "%B%m [%/] -%n- [W$WINDOW] "
endif
set prompt2 = "(%t %m)%~ #%% "
set prompt3 = "%SDo you mean [%R] (y/n/e) ? "
set history = 500
set savehist = 500
set time=100
#set watch=(1 any any)
set symlinks = ignore
set listlinks
set listjobs
set rmstar
set showdots
#set tperiod = 30
# set autologout = (60 2)
#setenv MANPATH /usr/man:/usr/local/man:/usr/man/preformat:/usr/X11/man:/usr/openwin/man
setenv EDITOR /usr/local/bin/joe
setenv VISUAL /usr/local/bin/joe
setenv EXINIT 'set ai'
setenv LESS "-EsPm-LESS-"
setenv LESSCHARDEF "8bcccbcc18b95.."
setenv PAGER "less -Em"
#setenv PAGER more
setenv LC_CTYPE lt_LN.ISO_8859-1
setenv LANG C
setenv BLOCKSIZE 1k
setenv MACHINE_ARCH i386
setenv MACHINE i386
setenv ORGANIZATION "交大資工 ADONIS"
## X 相關設定
setenv XWINHOME '/usr/X11R6'
setenv X11HOME '/usr/X11R6'
setenv OPENWINHOME '/usr/X11R6'
setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
setenv XNLSPATH /usr/X11R6/lib/X11/nls
#setenv LD_LIBRARY_PATH /usr/lib:/usr/X11R6/lib:/usr/local/lib
stty erase '^?'
if ( $?TERM ) then
if ($TERM == "xterm" || $TERM == "xterms") then
stty erase '^H'
endif
endif
## 雜七雜八設定
#set term = vt100
#set TERM = vt100
#setenv term vt100
#setenv TERM vt100
#stty extb
stty 38400
stty crt
stty -tabs
stty -istrip
stty pass8
unlo
#bindkey "[HOME]" beginning-of-line
#bindkey "[ESC]" keyboard-quit
limit coredumpsize 0
# 給 FSP Client 用
setenv FSP_PORT 21
setenv FSP_HOST nctuccca.edu.tw
setenv FSP_DIR /
setenv FSP_TRACE
setenv FSP_DELAY 3000
# Aii.. 就是 fsp aliases :)
alias fcat '(set noglob; exec fcatcmd \!*)'
alias fcd 'setenv FSP_DIR `(set noglob; exec fcdcmd \!*)`;fpwd'
alias fdu \(set noglob\; exec fducmd \!\*\)
alias ffind \(set noglob\; exec ffindcmd \!\*\)
alias fget '(set noglob; exec fgetcmd \!*)'
alias fgrab '(set noglob; exec fgrabcmd \!*)'
alias fls '(set noglob; exec flscmd -F \!*)'
alias fll '(set noglob; exec flscmd -l \!*)'
alias fdir '(set noglob; exec flscmd -l \!*)'
alias fmore \(set noglob\; exec fcatcmd \!\* \| more\)
alias fpro '(set noglob; exec fprocmd \!*)'
alias fpwd 'echo "$FSP_HOST ($FSP_PORT): $FSP_DIR"'
alias frm '(set noglob; exec frmcmd \!*)'
alias frmdir '(set noglob; exec frmdircmd \!*)'
alias fhost 'setenv FSP_HOST \!*;setenv FSP_DIR /'
4. csh.login
# 系統內定的 .login 檔.
#stty extb
stty 38400
#stty crt
#stty -tabs
stty -istrip
stty pass8
# Mesg y if not console
mesg y
if ( `tty | cut -c 6-` == console ) then
mesg n
endif
msgs -fp
5. csh.logout
# 系統內定的 .logout
clear
.
6. daily
cron 會依照 /etc/crontab 去做每日例行的工作. 注意一下有些 commands 對你的硬盤造成很大的負荷, 像是最後一
行的 "sh /etc/security", 他會從你的根目錄開始查詢. 你可以加些每天你想要執行的commands, 像是
"quotacheck -a", "bin/rm/-f /tmp*junk*.
7. defaultdomain
這個檔案記載你的 domainname, 你有跑 yp (nis) 時才有用. 當然閑閑填一填也沒差啦.
8. exports
這個檔案定義哪些目錄可經由 NFS 給別人使用.
例如 /cdrom -ro host1,host2
/home -maproot=root host3
Notice: 若你沒加 "-ro" 表示可以寫入, 所以你應當小心點.
做完修正後, "kill -1 $mountd_pid", 然後用 "showmount -e" 去看看 NFS 是否做的正確. 如果有錯, 用 "tail /var/log/messages" 來看錯誤訊息.
你應該要將 /etc/rc.conf 中的 nfs_client_enable, nfs_server_enable 設為 YES.
詳細說明請 man 5 exports.
9. fbtab
/dev/ttyv0 0600 /dev/console
/dev/ttyv1 0600 /dev/console
/dev/ttyv2 0600 /dev/console
/dev/ttyv3 0600 /dev/console
#/dev/ttyv0 0600 /dev/pcaudio:/dev/pcaudioctl
10.fstab
這個檔案定義當你開機時, 你想 mount 哪些 partition.
例如.
/dev/sd0a / ufs rw 1 1
/dev/sd0e /dos msdos ro,-gmsdos,-m750 1 1
/dev/sd0g /usr/local ufs rw,userquota 1 1
/dev/sd0h /home ufs rw,userquota,groupquota 1 1
/dev/sd0b none swap sw 0 0
proc /proc procfs rw 0 0
kern /kern kernfs rw 0 0
詳情請 man fstab.
如果你的 /usr 沒有跟 / 放在一起,要特別注意,/usr 不可以放在使用 LKM 載入的 filesystem 後面。例如,你的 MSDOSFS 是利用 LKM 載入的(也就是說,你沒有把 MSDOSFS 編譯在 kernel 中),你的 /dos
一定要放在 /usr 後面,不然開機會失敗,例如:
modload:exec(/usr/bin/ld):NO such file or directiory
msdos:vfsload(msdos):Operation not permitted
Filessystem mount failed,startup aborted
Enter pathname of shell or RETURN for sh
11.ftpusers
這個檔注明的 users 將無法 ftp 這臺機器. 只要寫 username 即可. 算是禁止 ftp 進來的黑名單吧.
12.group
這個檔案主要記載著 group 名稱, group id 以及隸屬於該 group 的使用者.
要記得在 FreeBSD 中, 只有屬於 wheel group 的使用者才能 su 成 root.
在升級時特別注意 /usr/src/etc/group 中是否有新增系統 group, 如 network 這個 group 就是最近新增的 group.
其他詳細請用 man group.
13.host.conf
這個檔案決定 DNS-name-lookup 的先後順序. 你最好先 "hosts", 其次 "bind", 最後用 "nis".
hosts: 自 /etc/hosts 查詢.
bind: 自 nameserver (參考 /etc/resolv.conf 設定) 查詢.
nis: 自 nis server 查詢.
14.hosts
這個檔案記載了你所需要的 ip 和 hostname, 最少要包括 localhost 和你自己的 hostname, 通常是提供優先於 nameserver 的查詢, 或是沒有 nameserver 時的查詢.
格式如下:
IP-addr full-hostname alias
如. 123.456.789.123 heaven.net.com heaven
請 man hosts 去看詳細說明.
15.inetd.conf
這個檔案定義由 inetd 所提供的服務, 應該要和 /etc/services 保持一致性.
當你修改這個檔案的時候, 記得要 kill -1 $inetd_pid 去知會 inetd 要重新更新資料.
你可以安裝 tcp-wrapper (tcpd) 以增加安全性.
16.localtime
這個檔記載你所在的時區資料, 你可以從 /usr/share/zoneinfo 中選一個適合的來用.
就臺灣而言, 你應該用 /usr/share/zoneinfo/Asia/Taipei, 正常來說, 在 install 時會自動將此檔案 copy 到 /etc/localtime.
17.login.conf
此檔案可控制系統資源與帳號各方面的限制,亦可設定內定之環境變數。
"man login.conf" for detail.
18.make.conf
當你用 make 時, 這個定義檔將被參考.
如果不是以 BSD 格式撰寫的 Makefiles, 你應該安裝 gmake (GNU)
19.monthly
每月例行的 jobs.
20.motd
Message Of Today, 顧名思義, 就是當你 login 時所出現的畫面.
假如你要有自己的 motd, 你必須把 /etc/rc.local 前面幾行在開機時會更改 motd 的命令拿掉, 否則你每次開機 motd 會被亂改.
21.netstart----新版已改名為/etc/rc.network
目前此檔已由 /etc/rc.network 取代 目前此檔只作為 root 在 single user mode 要手動啟動網路服務
時使用。 這個檔案不要做更動, 應該去修改 /etc/rc.conf
22.passwd
/etc/passwd /etc/master.passwd /etc/spwd.db /etc/pwd.db 都是 由 vipw 所產生的. 關於怎樣去建一個帳號, 請參考 HOW-TO-adduser.
你可以 man passwd, vipw, chpass, chfn 查詢詳細說明.
23.printcap
這個檔案定義印表機的設定, 在修改後, 試著用 lpr 去列印一些東西, 假如你覺得很慢, 試著用 lptcontrol -p 去改變
/dev/lpt0 到 poll 模式, 當然, 你可以將 lptcontrol -p 加到 /etc/rc.local 里 以使每次開機都有
效.
man lptcontrol 查詢詳細說明.
24.profile
這是 /bin/sh 的 default 設定.
25.rc
當系統開機時, kernel 會先去載入 /sbin/init, 然後 /sbin/init 會去執行 /etc/rc, 所以
/etc/rc 相對於 DOS 而言就好像 AUTOEXEC.BAT. 這個檔案不要去更改, 假如你不希望每次開機時 /tmp 會被清乾凈,
那你可以將跟 /tmp 相關的幾行給砍掉. (個人偏好)
26.rc.conf----代替原來的/etc/sysconfig
這主要用來做系統開機時的環境設定. /etc/rc, /etc/rc.i386, /etc/rc.conf.local, /etc/rc.network, /etc/[bla bla] 都會參考這個檔案. 所以這個檔案可以說非常重要.
大多都有注解, 以下列舉一些你該注意的地方...
1) hostname : 你的完整 hostname (FQDN: 像是 freebsd.csie.nctu.edu.tw)
2) network_interfaces : 網路卡的 device name, 像是 "ed0 lnc0".
3) ifconfig_xxx : 定義網路卡及其 ip address.
像是 ifconfig_ed0="inet 140.113.145.1 netmask 0xffffff00"
ifconfig_ed1="inet 140.113.190.1 netmask 0xffffff00"
方法如下...
ifconfig_$device-name="inet $IP netmask $netmask",
netmask 0xffffff00 就是 255.255.255.0 表 Class C 網路.
4) defaultrouter: 內定的 router IP.(比如: 140.113.122.254)
5) routdflags : 通常 NO. 但是假如你想要跑 routed, 則用 "-s" 或 "-q".
詳細說明請 man routed.
6) rwhod : YES 執行 rwho daemon. rwho 跟 ruptime 須此 daemon.
7) sendmail_flags : 執行 sendmail daemon, 通常設為 "-db -q30m"
8) nfs_* : 執行 nfs client 或 server
9) check_quotas : enable 檔案系統 quotas
10) accountint : enable command accounting, "lastcomm" 須要.
11) firewall_enable : enable firewall 的功能
firewall_type : 指定 firewall 的形態
你應該設定完後再重新開機以測試是否每個改變都合乎你的要求.
27.rc.conf.local----代替原來的/etc/rc.local
在這個檔案加入你個人的設定, 你可以將開機時想要執行的動作放在這里. 像 gopherd, lptcontrol, swap-on-file 等.
28.rc.i386
這個檔案不要更動.
29.rc.local----新版改名為/etc/rc.conf.local
新版已由/etc/rc.conf.local所取代。
30.rc.network----代替原來的/etc/netstart
有關網路方面各項設定請由 /etc/rc.conf 設定,原則上此檔不需更動
31.resolv.conf
這定義 DNS 查詢 nameserver 的先後順序.
1. domain : 將你的 domainname 放這兒.
2. nameserver : 將你的 nameservers 放這兒, 最前面的會被當成主要的nameserver.
3. search : 將 domainnames 放這兒, 當你沒有輸入完整的 hostname 時, 他會將 domainnames 附加上去. 例如: search csie.NCTU.edu.tw NCTU.edu.tw edu.tw tw
詳情請 man resolver.
32.services
定義 service 名字以及 port. 不需要更動。
33.shells
所有的 shell 都應該放在這個檔案里, 像是 /bin/sh, /bin/tcsh, /home/bbs/bin/bbsrf 等等.
假如說有某個使用者的 shell 沒有列在這個檔案中, 有些程式如 ftpd 會拒絕該使用者 ftp, 如 adduser 將會拒絕執行.
man shells 查詢詳細說明.
34.sysconfig----新版已改名為/etc/rc.conf
參考 rc.conf。
35.syslog.conf
這個檔案指出系統的 log 應該儲存在哪兒.
36.termcap
這個應該 link 到 /usr/share/misc/termcap.
37.ttys
定義 tty 的形式及某些 tty 允不允許 root login. 假如某些 ttys 後面加有 "secure", 表示 root 可以 login. 你應當多加些, 如 /dev/tty[pqrs][0-9a-v]
詳情請 man ttys。
38.weekly
每周例行的工作。