freebsd 小技巧

01.查看網絡流量
a.systat -if 1 (1表示1s刷新屏幕一次)
b.netstat 1
# Traffic 流量 peak 峰值 average 平均值
02.查看硬盤信息
diskinfo -vt /dev/ad0
disklable /dev/ad0 (分區信息)
disklable /dev/ad0s2
03.查看核心信息
vmstat 1
04.查看進程
top ps auxww ps -ef |grep xxx
05.查看硬盤詳細分區信息&讀寫狀況
gstat
06.sysctl sysctl -a 查看所有變量(/etc/sysctl.conf)
sysctl kern.maxproc 查看特定變量
sysctl kern.maxfiles=5000 設置變量
07.查看磁盤空間使用情形 df 和 du
指令df用來查看整個檔案系統的使用情形,
如果您需要知道某個目錄的使用情形用指令du。
df -h
du -h /etc
du -sh /etc
-s 參數來省略指定目錄下的子目錄
-h 表示使用GB、MB等易讀的格式
08.斷電後系統無法啟動
a.啟動到sing user模式
b.fsck
c.reboot
09.升級內核後無法啟動
a.重啟機器到10秒讀秒時按enter以外的任意鍵(新版bsd按6)
b.unload
c.boot kernel.old 或其他可以啟動的內核
另外一種方法
a.使用cd1啟動,選擇Fixit-->CDROM/DVD
b.Fixit#mount /dev/ad0s2a /mnt mount硬盤上的文件系統
c.cd /mnt/boot
d.rm -rf kernel
e.cp -R kernel.old kernel
f.reboot
修改了/boot/loader.conf以後不能正常引導系統了,當機器開始加載
/boot/defaults/loader.conf的時候(未加載完)機器停止響應,我應該怎麼辦?
a.使用cd1啟動,選擇Fixit-->CDROM/DVD
b.Fixit#mount /dev/ad0s2a /mnt mount硬盤上的文件系統
c.cd /mnt/boot
d.vi loader.conf 去掉錯誤的加載項
e.reboot
10.丟失root密碼
啟動到單用戶模式,執行/sbin/mount -a, 然後用passwd更改密碼
/sbin/mount -a=掛接/etc/fstab裡所有列出的文件系統
如果單用戶登錄也需要密碼
a.使用cd1啟動,選擇Fixit-->CDROM/DVD
b.Fixit#mount /dev/ad0s2a /mnt mount硬盤上的文件系統
c.cd /mnt/etc
d.vi /ttys 找到when going to single-user mode,更改
console none unknow off insecure為secure
e.reboot,啟動到單用戶模式/sbin/mount -a,passwd
啟動到單用戶模式後,ctrl+d進入多用戶模式
####讓單用戶登錄也需要密碼
a.cd /etc
b.vi /ttys 找到when going to single-user mode,更改
console none unknow off secure為insecure
11.用win2000的引導器啟動FreeBSD
我在筆記本上裝了雙系統,win2000 和freebsd,裝完 freebsd後 系統自動設置如下:
f1 dos
f2 freebsd
先起動到dos下,fdisk /mbr,再把FreeBSD光盤上的boot\boot1複製到c:\,
再編輯c:\boot.ini 加一行c:\boot1="FreeBsd"
12.硬盤分區時shift+F -->NO可以使用全部空間
13.ctrl+alt+backspace 殺掉xwindows
14.alt+F1...F8 或 printscreensysr循環切換控制台
15.shutdown now 切換到單用戶模式
shutdown -p now shutdown -hp now 關閉電源
shutdown -r now reboot 重新啟動機器
shutdown -p +90 (90分鐘後關機)
shutdown 0203122359(0203122359表示2002年3月12日23:59,格式是yymmddhhmm)
16.掛載ntfs,fat32分區和u盤
ntfs: mount_ntfs -C eucCN /dev/ad0s5 /mnt/d
fat32:mount_msdos -L zh_CN.eucCN /dev/ad0s6 /mnt/e
u盤(scsi盤): mount_msdos -L zh_CN.eucCN /dev/da0s1 /mnt/u
cdrom: #mount_cd9660 /dev/acd0 /mnt/cdrom
NTFS在FreeBSD中只能只讀而無法寫入
17.卸載分區
umount /dev/ad0s5
umount -f /dev/ad0s5 (強制卸載)
18.在/etc/fstab中掛載fat32分區
/dev/ad0s5 /mnt/d msdos rw,-L=zh_CN.eucCN 2 2
19.如何在FreeBSD5.X以上加載,卸載ISO文件
mount iso文件:
mdconfig -a -t vnode -f myisofile.iso (屏幕輸出md0或者類似的設備名)
mount -t cd9660 /dev/md0 /cdrom
umount:
umount /cdrom
mdconfig -d -u 0 (上面的-u後面的數字和前面的md?中的數字一致)
mdconfig -l 命令可以列出關於配置 md(4) 設備的信息
20.聲卡
vi /boot/defaults/loader.conf
更改snd_ich_load="NO"->"YES" #intel ich
檢測聲卡 kldstat 或 dmesg |grep pcm
21.ls 命令詳解
ls 顯示本目錄下的文件及目錄
ls -a顯示本目錄下的所有文件及目錄(包括隱藏目錄和文件)
ls -l 顯示本目錄下所有文件的屬性
ls -l | grep ^d 只顯示目錄
ls -l | grep ^- 只顯示文件
ls -l | grep ^d | wc –l 統計當能目錄下的子目錄數
ls -l | grep ^- | wc –l 統計當能目錄下的文件數
ls -G 以顏色顯示目錄名和文件名
22.查找程序或文件
which 程序名
whereis 程序名
find 文件名
locate 文件名
locate: database too small: /var/db/locate.database的一種解決方法
a.這個僅僅是因為你開機時間不夠長,看看/etc/periodic/weekly/310.locate
b.試試運行/usr/libexec/locate.updatedb看
whatis xxx 要找東西但不知道它是什麼
grep bpf /usr/src/sys/i386/conf/GENERIC 在文件中找指定文本
#只能對文本進行grep,如是命令,則
command |grep text
grep text filename
23.xmms亂碼問題 (要拷貝simsun.ttf和taboma.ttf到/usr/X11R6/lib/X11/fonts/TrueType/)
在用戶目錄下建立 .gtkrc.mine 文件.代碼如下
style "gtk-default-zh-cn" {
fontset = "-*-tahoma-medium-r-normal-*-12-0-0-0-p-0-iso8859-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-p-*-gbk-0,*-r-*" }
class "GtkWidget" style "gtk-default-zh-cn"
修改xmms中的字體設置,將播放清單及主窗口的字體修改為下面的設置
-*-tahoma-medium-r-normal-*-12-0-0-0-p-0-iso8859-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-p-*-gbk-0,*-r-*
xorg6.9+xfce4+xmms
cd /usr/ports/chineses/xmms make install clean
拷貝simsun.ttf到/usr/X11R6/lib/X11/fonts/TTF/,無需要建立.gtkrc.mine
只要修改xmms中的字體設置,字體simsun,size 12就好了。
24.停止sendmail
vi /etc/rc.conf 加入
sendmail_enable="NONE"
25.you have mail
mail 回車,輸入1看第一封郵件...輸入?看幫助
mail 古老的 UNIX 郵件處理程序
如果我們要寄信給非本機的使用者,可以使用的收件人格式如下:
mail -s"hi, my friend"
jack@mymail.com 這個 E-mail 地址已經被防止灌水惡意程式保護,您需要啟用 Java Script 才能觀看
mail -s "hi, my friend"
jack@mymail.com 這個 E-mail 地址已經被防止灌水惡意程式保護,您需要啟用 Java Script 才能觀看
zh_CN.eucCN
28.遠程連接windows終端
rdesktop [-a 16 -f] server'IP[:port]
-a 16表示16位色,-f表示全屏
gui,grdesktop (/usr/ports/net/grdesktop)
29.播放APE格式音樂
/usr/ports/chinese/xmms/ /usr/ports/audio/xmms-mac(ape插件)xmms-wma(wma插件)
30.看圖
/usr/ports/graphics/xnview
31.apache22+php5+mysql+postgresql+ZendOptimizer
a,apache22:
cd /usr/ports/www/apache22
make install clean
b,php5:
cd /usr/ports/lang/php5
make install clean
選中APACHE,就可以聯編出用於與Apache web服務器配合使用的可動態加載的mod_php5模塊.
勿選debug,否則不能裝ZendOptimizer
c,php5擴展:
cd /usr/ports/lang/php5-extesions
make install [FORCE_PKG_REGISTER=yes] 強迫安裝
make clean
(除預設項目還應選中CTYPE,EXIF,GD,ICONV,IMAP,PCRE,SESSION,ZLIB)
FreeBSD中的PHP支持是高度模塊化的,因此基本安裝的功能十分有限。增加其他功能非常簡單,
只需通過lang/php5-extensions即可完成。這個port提供了一個菜單驅動的界面來幫助完成PHP
擴展的安裝。另外也可以通過對應的port來單獨安裝擴展。例如要將對於MySQL數據庫服務器
的支持加入PHP5,只需簡單地安裝databases/php5-mysql.
d,cp /usr/local/etc/php.ini.recommended /usr/local/etc/php.ini
e,ZendOptimizer
cd /usr/ports/devel/ZendOptimizer
make install clean
f,mysql:
cd /usr/ports/databases/mysql41-server
make WITH_OPENSSL=yes BUILD_OPTIMIZED=yes WITH_CHARSET=gbk WITH_XCHARSET=all SKIP_DNS_CHECK=yes install
./work/mysql-5.0.24/scripts/mysql_install_db
cd /usr/ports/databases/php5-mysql
make install clean
g,postgresql
cd /usr/ports/databases/postgresql81-server
make install clean
/usr/local/etc/rc.d/postgresql initdb
echo 'postgresql_enable="YES"' >> /etc/rc.conf
cd /usr/ports/databases/php5-pgsql
make install clean
32.怎樣刷新環境變量值,而不用退出再登陸?
a,比如要重新設置環境變量ABC的值為abcdef
bash$ export ABC=abcdef
csh% setenv ABC abcdef
b,更新了PATH變量指定目錄裡可執行命令
rehash
c,更新配置文件
比如你編輯了.cshrc等文件,就需要用source命令
source .cshrc
33.檢視軟件間的關聯
cd /usr/ports/sysutils/pkg_tree
make install clean
之後我們就可以使用 pkg_tree | more 來看各個軟件之間的關係了
34.使用 portupgrade 更新軟件
cd /usr/ports/sysutils/portupgrade
make install clean
配置文件:/usr/local/etc/pkgtools.conf
如果您只想要升級某一個軟件本身,而非所有相依的軟件,只要使用
portupgrade "pkgname" 即可。如果您要升級所有和該軟件相依的其它軟件,
則可以加上參數 -r。如果您要更新包含相依軟件的相依軟件,則可以使用
參數 -R。另外,您可以使用參數 -m 來要求編譯 (make) ports 時多傳入
一些參數,還可以使用參數 -f 要求就算版本一樣也強制更新。portupgrade
在更新軟件時,會保留您原本的設定檔。例如,在更新 Apache 時,它會保留
httpd.conf的設定。假設我們更新軟件perl-5.8,我們可以用下列指令更新:
# portupgrade -rRf "perl-5.8.*" -m "ENABLE_SUIDPERL=yes"
35.ports安裝失敗提示
stop in /usr/ports/lang/ruby18/work
刪除work目錄下所有文件&文件夾再次安裝即可.(make clean)
36.ntop--網絡監控軟件
cd /usr/ports/net/ntop
make install clean
vi /etc/rc.conf 加入
ntop_enable="YES"
在地址欄中輸入
http://x.x.x.x:3000
即出來管理界面.
37.修改/etc/rc.conf不重啟生效
a.sh /etc/rc
b./etc/netstart
38.freebsd啟動的時候停到blanktime的解決辦法
可以試試 這個參數:blanktime="NO"
etc/rc.conf 中把 default_router 註釋掉
#未驗證!!!
39.Bsd 下的QQ
eva不錯,運行速度飛快。
/usr/ports/net-im/eva
gaim-openq
/usr/ports/net-im/gaim-openq
40.一次性把所有安裝的ports刪除掉
a.pkg_delete -a
以下步驟去掉配置文件,解決一些疑難問題
rm -fr /usr/local/
rm -fr /var/db/ports/
cd /usr/ports && make NOCLEANDEPENDS=yes clean
portsnap fetch update
b.安裝pkg_cutleaves它會告訴你,哪些package沒有人依賴,並讓你決定要不要刪除
c.make deinstall與pkg_delete有什麼不同?
簡單來說,make deinstall會移除該port,並且不會參照其相依相關的ports。
pkg_delete在移除該port前,會參照其相依相關的ports,並且pkg_delete
有支援 wild card,如要移除所有p開頭的 ports,則:
cd /var/db/pkg/
pkg_delete p*
要注意的是,如果使用 `make deinstall',則最好確定系統目前所
安裝的版本,與 ports collection 中顯示的版本符合,否則有可能會出現非預
期性錯誤;而pkg_delete是因為直接刪除系統中所安裝的版本,所以沒有此問題。
因此,換句話說,當系統所安裝的版本符合ports collections中的版本,則可
以使用make deinstall或pkg_delete,否則的話最好用pkg_delete。
41.pure-ftp安裝
cd /usr/ports/ftp/pure-ftpd/
make WITH_LANG=simplified-chinese install clean
[X] BANNER Show pure-ftpd welcome upon session start
cd /usr/local/etc/
cp pure-ftpd.conf.sample pure-ftpd.conf
vi /etc/rc.conf -->加入pureftpd_enable="YES"
關於pureftpd的編碼問題
在win下登陸ftp然後建立中文文件夾,傳中文文件然後用FlashFXP登陸看到這些
中文文件和文件夾名字全部是亂碼.pure-ftpd.conf中強制用gbk就可以了.
FileSystemCharset gbk
ClientCharset gbk
42.開機自動校準時間
vi /etc/rc.conf--->加入
ntpdate_enable="YES" # Run ntpdate to sync time on boot (or NO).
ntpdate_flags="218.75.4.130" # cn.pool.ntp.org
43.將/usr/ports/distfiles/目錄放到/data/disktfiles
cd /usr/ports
mv distfiles /data/distfiles [移動]
ln -s /data/distfiles distfiles [鏈接][要在/usr/ports目錄下做]
ln -s source_file[_dir] target_file[_dir]
44.FreeBSD下面通過串口連接到路由器
使用cu -s speed -l line,就可以連接到COM口或者家貓的線路上,我用的是COM1口,
連接Cisco2924XL,使用cu -s 9600 -l ttyd0,即可連接上交換機配置界面。
45.電子書:CHM、PDF的查看
chmsee,kchmviewer,xpdf,xchm,Acrobat Reader...chmsee對中文支持比較好
/usr/ports/print/acroread7
46.使用axel或者prozilla加速你的port下載
a.axel(據說能搞定文件夾鉗套,不錯!推薦使用 )
cd /usr/ports/ftp/axel
make install clean
vi /etc/make.conf 加入
FETCH_CMD=axel -a
DISABLE_SIZE=yes
vi /usr/local/etc/axelrc 修改代碼
#num_connections = 4
num_connections = 10
4改為10,num_connections前面不留空格,否則出錯.
(-a 交互的進步指示器,num_connections = 10 10線程下載)
SIZE參數用來在取得文件之前檢查文件的大小.而DISABLE_SIZE則是是否開啟這項功能
b.prozilla(速度快,遇到欠套的文件夾會出問題)
cd /port/ftp/prozilla
make install clean
vi /etc/make.conf 加入
FETCH_CMD=proz -s -k=10 -r --no-curses
DISABLE_SIZE=yes
(-s 查找最快的境像,-k=10 10個線程下載,-r 重新開始一個被打斷的下載)
c.wget(未測試)
cd /usr/ports/ftp/wget/
make install clean
vi /etc/make.conf 加入
FETCH_CMD=wget -c -t 1
DISABLE_SIZE=yes #這行是必要的
d.在其它機器上fetch
make fetch-recursive (fetch:取得recursive:遞歸的)
然後將/usr/ports/distfiles拿走。
###make install設置是/etc/make.conf
###pkg_add是在~/.cshrc或~/.profile
e.vi /etc/csh.cshrc
加上以下一行可以在讓pkg_add先從更快的站點下載
setenv PACKAGEROOT
ftp://ftp.cn.freebsd.org
你可以先設定 PACKAGEROOT,這是用來抓取套件的位置,筆者通常設定
setenv PACKAGEROOT
ftp://ftp.tw.freebsd.org
因為這是我認為最穩定的機器,然後就可以透過pkg_add -r 套件名來安裝套件,
他會自動的到pub/FreeBSD/ports/i386/packages-4.9-release/Latest/底下
尋找套件,而且你不需要知道版本,只要知道套件名稱即可,他會自動安 裝
當時的最新版,中文的部分只要加上 zh-,像是 zh-xcin。
你也可以直接指定 PACKAGESITE 來指向特定的位置。像是你希望安裝的套件是
最新的,而不是 release 時的版本。
setenv PACKAGESITE
ftp://ftp.tw.freebsd.org/pub/Fre
... ages-stable/Latest/
f.vi /etc/make.conf
加上以下一行可以在讓make先從更快的站點下載ports Distfiles
MASTER_SITE_OVERRIDE?=http://ports.cn.freebsd.org/${DIST_SUBDIR}/
####http://ports.cn.freebsd.org/
Welcome to use FreeBSD Ports Distfiles Mirror.
This mirror is running on China Telecom 100Mbit network.
How to use? Set your /etc/make.conf like this:
MASTER_SITE_OVERRIDE?=http://ports.cn.freebsd.org/${DIST_SUBDIR}/
or like this:
MASTER_SITE_OVERRIDE?=http://ports.hshh.org/${DIST_SUBDIR}/
47.星際譯王
辭典程序: /usr/ports/textproc/stardict2/
簡體中文辭典:/usr/ports/chinese/stardict2-dict-zh_CN/
48.控制台調音量
mixer
49.How to build openoffice
cd /usr/ports/editors/openoffice.org-2.0
Building/installing/packaging a localized language package (Japanese version for example)
make LOCALIZED_LANG=ja install
去這裡
ftp://ooopackages.good-day.net/pub/OpenOffice.org/FreeBSD/
裡面的tbz文件,
可以直接pkg_add
50.OPERA,支持Flash瀏覽器
cd /usr/ports/www/linux-opera  
(注意是www/linux-opera,www/opera是不支持Flash的。)
cd /usr/ports/www/opera
make config
選中[X]SHARED Use a shared Qt library(instead of static)[解決在opera中輸入漢字的問題]
make install clean
安裝後的美化:
A.Tools->Preference->Advanced->Fonts,把所有的字體都改成Simsun,字體大小設成12。
B.最小字體大小(像素)改為12.[解決一些網站看不清楚的問題]
51.bt客戶端
/usr/ports/net-p2p/py-bittorrent 安裝完成後執行bittorrent
/usr/ports/net-p2p/rtorrent 功能多,速度快,還完美支持中文編碼!
52.emule客戶端
/usr/ports/net-p2p/amule2
53.ipguard解決arp攻擊
ipguard->Tool designed to protect LAN IP adress space by ARP spoofing
/usr/ports/security/ipguard
make install (不要clean參數,否則無ethers.sample文件)
補充:
A.以/usr/ports/security/ipguard/work/ipguard-0.04/doc/ethers.sample
文件為實例,建立/etc/ethers文件。
B.And then start ipguard:
cd /usr/local/etc/rc.d
mv ipguard.sh.sample ipguard.sh
/usr/local/etc/rc.d/ipguard.sh start
ipguard.sh啟動腳本裡默認有iface=fxp0,這裡應該替換為你做NAT的內網網卡名稱。
54.一些安裝參數
make fetch 只抓取tarball
make fetch-recursive 抓取安裝ports所有須要的其他ports的tarball
make fetch-list 列出port所需的文件
make clean Ports裡面make clean,會附帶著make clean依賴的軟件的
make -DBATCH install不需要用戶輸入任何東西
make -DINTERACTIVE install 繼續上一步
make configure
make distclean,刪除不想要的distfiles
55.pkg_info
pkg_info |grep zh-fcitx (查軟件版本)
#ls /var/db/pkg也可以查軟件版本
pkg_info -L zh-fcitx-3.4 (查看軟件安裝目錄和安裝的文件)
pkg_info -xL zh-fcitx (加x了不需要加軟件版本號)
pkg_info -r zh-fcitx-3.4 (查看軟件依賴情況)
pkg_info -W fcitx (查看fcitx屬於哪個軟件)
56.Ports如何清除安裝參數
cd /usr/ports/www/opera
make distclean移除不是port collections所期望下載的文件
make rmconfig清除用戶配置的參數
make showconfig查看當前配置的參數
make config更改參數
57.一款好用的網絡性能測試工具iperf
/usr/ports/benchmarks/iperf
58.FreeBSD用戶帳戶鎖定
a.用vipw把他的shell修改成/sbin/nologin就可以了.
b.pw lock useri 解鎖用pw unlock userid 59.中文locale
zh_CN.eucCN zh_CN.GBK zh_CN.GB18030 zh_CN.euc zh_CN.UTF-8
#語言代碼_國家代碼.字符編碼
#查看環境變量:locale
#目前還是zh_CN.eucCN(使用GB2312編碼)locale最為正式,也最為成熟。
60.本地化設置,以系統默認的csh為例
vi /etc/csh.cshrc 加入
setenv LANG zh_CN.eucCN (語言設為中文)
setenv LC_ALL zh_CN.eucCN (所有本地子集設為中文)
setenv XMODIFIERS @im=fcitx (X下的中文輸入法)
set prompt = "%B%m"(個性化控制台%B顏色%m主機%/目錄)
set autolist (自動補齊擴展)
set nobeep (告訴應用程式避免發出嗶嗶聲)
set filec (使檔案名稱在命令列被完成)
alias ls ls -FG (彩色化ls)61.fcitx小企鵝輸入法(有關步驟見60)
/usr/ports/chineses/fcitx
vi /root/.xinitrc 添加
exec fcitx& 到最前一行
62.安裝X Server xorg-6.9.0
1.cp freebsddisk1 disk2 PKG to /data/pkg61目錄
2.cd /data/pkg61
3.pkg_add xorg-6.9.0.tbz
4.rehash
5.X[Xorg] -configure (生成/root/xorg.conf.new)
6.X[Xorg] -config /root/xorg.conf.new (測試xorg.conf.new配置是否正確)
7.cp /root/xorg.conf.new /etc/x11/xorg.conf
63.安裝桌面環境gnome2 and xfce4 and kde3.5.1
gnome2-2.12.3
1.cd /data/pkg61
2.pkg_add gnome2-2.12.3.tbz
3.rehash
4.vi /root/.xinitrc 加入 exec gnome-session
#gnome2提示vi /etc/sysctl.conf,加入
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
kern.maxfiles=25000
xfce4
1.cd /usr/ports/x11-wm/xfce4
2.make install clean
3.rehash
4.vi /root/.xinitrc 加入 exec xfce4-session
kde-3.5.1
1.cd /data/pkg61
2.pkg_add kde-3.5.1.tbz
3.rehash
4.cd /usr/ports/chineses/kde3-i18n-zh_CN
5.make install clean (kde3漢化)
6.vi /root/.xinitrc 加入 exec startkde
pkg_add -r kde
pkg_add -r zh_CN-kde-i18n
pkg_add -r zh_CN-koffice-i18n
###more /root/.xinitrc
exec fcitx&
exec gnome-session
#exec xfce4-session
#exec startkde
#exec /usr/X11R6/bin/gnome-session
#exec /usr/local/bin/xfce4-session
#exec /usr/local/bin/startkde
64.在Xwindow中使用TrueType字體(simsun宋體,msyh雅黑,tahoma)
1.cp simsun.ttc /usr/X11R6/lib/X11/fonts/TTF/simsun.ttf
2.cp msyh.ttf tahoma.ttf /usr/X11R6/lib/X11/fonts/TTF/
3.cd /usr/X11R6/lib/X11/fonts/TTF
#下面4,5步驟更新字體信息,6重建字體緩存.
4.mkfontscale (生成fonts.scale)否則xorg報錯如下:
Could not init font path element/usr/X11R6/lib/X11/fonts/TTF/,removing from list!
5.mkfontdir (生成fonts.dir)否則xorg報錯如下:
(WW) `fonts.dir' not found (or not valid) in "/usr/X11R6/lib/X11/fonts/TTF/".
Entry deleted from font path.
(Run 'mkfontdir' on "/usr/X11R6/lib/X11/fonts/TTF/".
6.fc-cache -f -v (生成fonts.cache-1)
7.vi /etc/X11/xorg.conf 確認8
8.Load "freetype" (啟用支持TrueType字體)
#現在X應用程序已經記住已安裝的TrueType字體.
9.在gnome和其他X程序中把字體設置為宋體或雅黑.
65.xlsfonts顯示系統中安裝的字體
66.FreeBSD中3D加速功能的啟用
a.DRI。
這是實現3D功能最重要的部分。DRI是Direct Rendering Infrastructure,
可以簡單的把它理解為X和硬件間的接口.但它包含很多獨立的模塊,負責
從X到硬件的各個環節,包括內核。它最主要的工作就是將Mesa或OpenGL的
函數調用轉換為硬件的指令,從而指揮硬件進行渲染等工作。
b.測試你的顯卡是不是能實現3D功能,可以採取以下辦法:
1.dmesg | grep agp,如果出現:
agp0: mem
0xe0000000-0xe3ffffff at device 0.0 on pci0
的字樣,那麼你的顯卡就有可能實現3D功能.如果什麼也沒有的話,那麼
恭喜你,你再也不用為3D功能而費心了.
2.kldload drm,如果沒報錯的話,那麼你的顯卡基本上就可以實現3D功能了。
c.3D功能的確認
運行:glxinfo。在第二行或第三行,如果出現」Direct Rendering: YES「字樣,
那就說明已經啟用3D加速了。
more /var/log/Xorg.0.log | grep "direct rendering"如果出現下面的字樣,
(II) I810(0): direct rendering: Enabled那麼你的3D就啟用的。如果沒有,
那麼你要仔細讀/var/log/Xorg.0.log。它會在某一行告訴你沒啟用的原因的。
d.nvidia顯卡驅動安裝 cd /usr/ports/x11/nvidia-driver/
67.刷新率的問題,
將xorg.conf裡的Modes行改成:Modes "1024x768"(小寫的X)
選擇默認的分辨率和色深。 這是在 "Screen" 小節中定義的:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSection
68.make world
cvsup -g -L 2 -h cvsup.freebsdchina.org standard-supfile (升級源碼樹)
cp /usr/share/examples/etc/make.conf /etc/make.conf
vi /etc/make.conf,保留如下內容
CFLAGS= -O -pipe
COPTFLAGS= -O -pipe
cd /usr/src/sys/i386/conf (更改內核配置文件)
cp GENERIC TDS
vi TDS (按需要修改其內容)
shutdown now (重啟到單用戶模式)
adjkerntz -i (確定本地時間設置)
cd /usr/src
make -j4 buildworld (編譯基本系統)
make buildkernel KERNCONF=TDS (編譯新內核)
make installkernel KERNCONF=TDS (安裝新內核)
reboot (重新啟動)
shutdown now (重啟到單用戶模式)
cd /usr/src
mergemaster -p (更新/etc目錄裡的文件,-p預建模式)
make installworld (安裝新的二進制)
mergemaster -Ui (更新makeinstallworld不更新的文件,-U進了6-STABLE了,這功能很讚,
就是他會看哪些/etc 的檔案,你沒有改過的,就會自動 merge,這樣子可以省下很多時間跟力氣。
shutdown -r now (重新啟動)
uname -a (查看系統信息)
cd /usr/src
make cleanworld (清除升級過程產生的臨時文件)
#############################################
中斷的 build 可以被恢復嗎
cd /usr/src
make -DNOCLEAN all
這樣就不會取消先前的 make buildworld 所做的工作。
##############################################
如果出現了錯誤我該怎麼辦?
刪除以往的系統更新樹
cd /usr/obj
chflags -R noschg *
rm -rf *
cd /usr/src
make cleandir
make cleandir
不錯,make cleandir 真的要執行兩次。
然後重新開始整個過程,使用 make buildworld 開始。
mergemaster -p的說明
mergemaster -p的作用是建立一個臨時的根環境,把新的配置文件映射到這個環境當中,
然後和系統的配置文件進行比較和處理,目的是保證系統配置文件的更新,這一點很重要!
在執行"mergemaster -p"的過程中,主要是進行以下處理:
檢測系統是否存在臨時的根環境,如果存在,讓用戶選擇是利用現有的還是刪除它,然後新建!
*** The directory specified for the temporary root environment,
/var/tmp/temproot, exists. This can be a security risk if untrusted
users have access to the system.
Use 'd' to delete the old /var/tmp/temproot and continue 刪除舊的/var/tmp/temproot
Use 't' to select a new temporary root directory 為temproot選擇新的目錄
Use 'e' to exit mergemaster 退出mergemaster
Default is to use /var/tmp/temproot as is
How should I deal with this? [Use the existing /var/tmp/temproot]
一般的處理是選 "d" ,刪除原有的目錄,系統開始重新建立這個臨時的根環境。
只要進行的不是大跨度的 FreeBSD 版本升級,可以簡單地跳過這一步.
mergemaster的說明
重新編譯整個系統不會使用新的或改過的配置文件更新某些目錄(尤其像 /etc,/var和/usr)
更新這些文件最簡單的方式就是使用 mergemaster,手工去做也是可以的,只要您願意。
不管您選擇哪一種,一定記得備份/etc 以防出錯。
mergemaster操作中可能會遇到以下操作提示:
Use 'd' to delete the temporary 刪除文件,不更新相應的系統配置文件
Use 'i' to install the temporary 安裝文件,使用新的配置文件覆蓋舊文件
Use 'm' to merge the temporary and installed versions 對舊的配置文件進行合併處理,並安裝
Use 'v' to view the diff results again 察看新文件與舊文件的差異
###跟蹤多台機器,以A.B2個機器為例。A要啟動nfs_server,B要啟動nfs_client
A:/etc/rc.conf
rpcbind_enable="YES"
nfs_server_enable="YES"
/etc/exports
/usr/src /usr/obj /usr/ports -maproot=0 192.168.0.61(B-ip)
B:/etc/rc.conf
nfs_client_enable="YES"
A.cd /usr/src
make -j4 buildworld (編譯基本系統)
make buildkernel KERNCONF=TDS (編譯新內核)
B。mount b-ip:/usr/src /usr/src
mount b-ip:/usr/obj /usr/obj
cd /usr/src
make installkernel KERNCONF=TDS (安裝新內核)
reboot (重新啟動)
shutdown now (重啟到單用戶模式)
cd /usr/src
mergemaster -p (更新/etc目錄裡的文件,-p預建模式)
make installworld (安裝新的二進制)
mergemaster -U (更新makeinstallworld不更新的文件,-U進了6-STABLE了,這功能很讚,
69.freebsd上下的jdk的安裝方法(FreeBSD基金會提供的diablo-jdk)
cd /usr/ports/java/diablo-jdk15
最好是通過port的diablo-jdk安裝,而不是直接pkg_add,因為後者可能會出現依賴關係不對的問題。
JDK與JRE的關係
JAVA DEVELOPMENT KIT 與JAVA RUNTIME ENVIROMENT之間是什麼關係?
JRE只是Java的運行環境,而JDK是Java的開發、運行和調試一體的環境。
JAVA環境變量的設置
csh 就在/etc/csh.cshrc
setenv JAVA_HOME /usr/local/diablo-jdk1.5.0
setenv CLASS_PATH .:/usr/local/diablo-jdk1.5.0/lib/dt.jar
bash就在/etc/profile
export JAVA_HOME=/usr/local/diablo-jdk1.5.0
#export CATALINA_HOME=/usr/local/jakarta-tomcat5
export CLASSPATH=.JAVA_HOME/jre/lib/rt.jarJAVA_HOME/lib/dt.jarJAVA_HOME/lib/tools.jar
70.查找最快的cvsup站點
cd /usr/ports/sysutils/fastest-cvsup
make install clean
fastest-cvsup -c jp,cn,hk,us
71.chmod 命令概解:chmod命令用於改變文件的運行級別(讀=4寫=2執行=1)
chmod 400 files 給某文件以只讀權限
chmod 600 files 給某文件以只讀、寫權限
chmod 700 files 給某文件以只讀、寫、執行權限
chmod -R 400 directory 改變某目錄下所有文件的運行權限為只讀權限
chmod -R 600 directory 改變某目錄下所有文件的運行權限為以只讀、寫權限
chmod -R 700 directory 改變某目錄下所有文件的運行權限為只讀、寫、執行權限
72.chown概解:改變文件及文件夾的用戶所屬
chown root:wheel files 改變文件的用戶為root用戶組為wheel組
chown -R root:wheel directory 改變目錄的用戶為root用戶組為wheel組
73.crontab 指令語法
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
crontab 提供我們在固定的間隔時間執行自訂的程序、系統指令或 shell secrip。時間間隔的單位可以是分鐘、
小時、日、周、月及以上的任意組合。允許使用者離線執行,並且可以將執行結果以 email 通知使用者。因此,
非常設合對週期性的管理分析或數據備份等工作。
基本上,crontab 的指令格式分為六個部分,前五個為時間間隔,最後則是執行的指令。每一個部分用空格來區隔。
crontab -e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定
VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
crontab -r : 刪除目前的時程表
crontab -l : 列出目前的時程表
crontab file [-u user]-用指定的文件替代目前的crontab。
時程表的格式如下:
f1 f2 f3 f4 f5 program
分 時 天 月 星期幾 要執行的程序
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程序,其餘類推
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推
使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表。
先前曾提到,crontab 的格式分成六個部分,前五個是時間參數。在上例中你會發現除了數字與英文名稱,
有使用到符號"*",這個符號代表每一單位的意思,譬如30 3 * * *既代表30分3點每日每月星期的每天。
時間的指定,可以是單一的數字,或幾個數字用逗號來連接。看下例
30 3,12 * * * /root/fbin/bak-web
其中的第二項為 3,12,這代表 3 以及 12 小時的意思。再來看下例
30 */6 * * * /root/fbin/bak-web
我把第二項改成 */6 這代表每 6 小時,也相當於 6,12,18,24 的作用。此外還有一個區段的做法
30 8-18/2 * * * /root/fbin/bak-web
我把第二項改成 8-18/2 這代表在 8 小時到 18 小時之間每 2 小時,也相當於 8,10,12,14,16,18 的作用
74.使用portsnap更新系統ports
portsnap從6.0開始引進系統,給與用戶方便的更新系統ports
portsnap的命令比較少,fetch 獲取數據,extract 釋放全部ports,update 更新ports
第一次使用可以portsnap fetch extract,以後使用可以portsnap fetch update
國內鏡像站
portsnap.hshh.org
portsnap2.hshh.org
portsnap3.hshh.org (網通)
使用方法:
/etc/portsnap.conf 裡面更改
SERVERNAME=portsnap.hshh.org
使用portupgrade 更新已安裝的軟件
75.清屏
clear或ctrl+L
76.freebsd 怎麼安裝GF4 MX 440的顯卡
首先更新ports和src,到/usr/ports/x11/nvidia-driver下make install clean,要選中linux的支持。
然後到/usr/ports/x11/nvidia-xconfig下make install clean,還可以到/usr/ports/x11/nvidia-settings下安裝控制面板。
運行nvidia-xconfig會自動生成xorg.conf文件,然後根據需要自行更改。
77.如何知道一個文件屬於哪個port,比如libplds4.so.1
pkg_info -W filename
78.mplayer
cd /usr/ports/multimedia/mplayer
make install clean
問題:如何讓mplayer支持srt格式的字幕?
解答:首先複製一個中文ttf字體文件到 ~/.mplayer/ 目錄下,並改名為 subfont.ttf ;然後在gmplayer的選項
(Preferences)->Subtitle & OSD 中將 Encoding 項選為「Simplified Chinese charset (CP936)」。如果你還
使用命令行播放電影,還需要在 ~/.mplayer/config 文件中加上這麼一行:subcp=cp936 。如果仍然不能
顯示字幕,請看看字幕文件名和電影文件名是否相配:如果avi文件是movie.avi的話,字幕文件名應該是movie.srt。
問題:怎麼mplayer不能顯示.idx+.rar格式的字幕?
解答:先將rar文件中的sub文件解壓出來 。
問題:如何讓mplayer的播放窗口保持在最前面?
解答:修改 ~/.mplayer/config 文件,加上這麼一行:ontop=yes 。
問題:如何讓mplayer的畫面隨窗口大小自動縮放呢?
解答:修改 ~/.mplayer/config 文件,加上這麼一行:zoom=yes。
測試通過by tds 061119。fb61+xorg6.9+xfce4+gmplayer
79.設置控制台高分辯率
1.在內核配製文件裡加入下面的編譯內核
options VESA
options SC_PIXEL_MODE
第一行選項讓內核支持VESA 2,第二行讓內核支持控制台圖形模式。
2.vidcontrol -i mode 查詢出所有模式
......
279 (0x117) 0x0000000f G 1024x768x16 1 8x16 0xa0000 64k 64k 0xd8000000 65536k
280 (0x11 0x0000000f G 1024x768x32 1 8x16 0xa0000 64k 64k 0xd8000000 65536k
......
3.測試模式
vidcontrol MODE_280
4.vi /etc/rc.conf加入下面這條
allscreens_flags="MODE_280"
5.把console改成黑底綠字的
vidcontrol green
80.設置FreeBSD console下的字體大小
vidcontrol -f ...
81.鎖住終端
lock -np
-n 永不超時,-p 使用系統密碼作為開啟終端的密匙
82.刻錄CD ISO映像文件
burncd -f /dev/acd0 -s max data imagefile.iso fixate
刻錄一個文件到CD上而不創建ISO9660文件系統
burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate
生成ISO文件
mkisofs -o imagefile.iso /path/to/tree
把數據CD複製成一個與之等價的鏡像文件
dd if=/dev/acd0 of=file.iso bs=2048
83.類似flashget的東東download for X,d4x
/usr/ports/ftp/downloader
84.使用watch監視終端
1.編輯核心加入pseudo-device snp或者kldload snp
2.cd /dev ./MAKEDEV snp0 snp1
3.watch ttyp1
去換終端ctrl-x
退出watch ctrl-g
85.kldload xxx 加載xxx模塊
kldstat 查看已加載的模塊
kldunload xxx 從核心中移除
86.讓程序讀取新的配置文件
kill -HUP 199 (進稱號)
killall -HUP sshd (進程名)
上述指令中的參數 -HUP 也可以使用 -1 來取代
87.登入後的訊息Message Of The Day(motd)
編輯 /etc/motd 來製作自己的畫面
登入前的訊息
修改 /etc/gettytab 及 /etc/issue
編輯 /etc/gettytab,找到 default的地方。
default:\:cb:ce:ck:lc:fd#1000:im=\r\n%s/%m (%h) (%t)\r\n\r\n:sp#1200:\
:if=/etc/issue:
其中的%s %m %h %t分別對應到FreeBSD i386 example.com ttyp0,如果你不想顯示FreeBSD,
就把%s拿掉。最後一行if=/etc/issue就是表如果沒有issue這個檔的話,就執行default。
88.變更自己所使用的Shell
chsh -s /bin/tcsh
上述指令將Shell變更成/bin/tcsh。注意!輸入的shell名稱一定要存在於/etc/shells中
89.Shell 的環境變量
tcsh可以使用setenv看目前所有的環境變量,也可以使用setenv來改變一個環境變量的值
setenv EDITOR ee
如果您使用的是 Bourne Shell:
export EDITOR="ee"
90./etc/master.passwd 介紹
FreeBSD使用shadow password的方式來保護密碼文件,只有root才可以讀取編碼後的密碼文件
/etc/master.passwd。但是這並不是系統用來驗證的檔案,為了加快速度,FreeBSD將該文件
做成數據庫/etc/spwd.db及/etc/pwd.db,因此在修改完master.passwd後,必須使用指令
pwd_mkdb來將master.passwd做成數據庫檔案。不過一般而言,我會使用vipw這個指令來修改
master.passwd,vipw會先將master.passwd以預設的文書編輯軟件打開,修改完存盤後,
它會視需要自動更新數據庫。
pwd_mkdb -p -d /etc /etc/master.passwd
master.passwd這個檔案內容中,每個使用者都是獨立的一行,每個字段使用冒號分開,格式是:
name:password:UID:GID:class:change:expire:fullname:home:shell
pwd_mkdb介紹
如果我們直接以文書編輯軟件來修改/etc/master.passwd,在修改完後,必須執行pwd_mkdb
來將更新的數據做成系統可以讀取的數據庫文件。pwd_mkdb還會自動建立/etc/passwd。
91.將使用者目錄擁有者更改為所屬的使用者
chown -R user:group /home/user
使用參數-R將目錄user及其下所有檔案及子目錄的擁有人改變成user
92.記錄使用者指令
修改 /etc/rc.conf,加上下列一行設定:
accounting_enable="YES"
系統會將使用者的歷程記錄在/var/account/acct*中,最新的記錄是acct
當下達指令lastcomm時,則系統會以/var/account/acct為參考,印出所記錄的數據。
也可以使用lastcomm -f acct1來查看前一天的資料。
93.sudo
如果你希望它能將執行sudo的log記下來的話,必須先編輯/usr/ports/security/sudo/Makefile,
將CONFIGURE_ARGS中的參數 --disable-log-wrap 拿掉。
cd /usr/ports/security/sudo
make install clean
安裝完後,我們要先執行/usr/local/sbin/visudo以設定sudo的設定檔(/usr/loca/etc/sudoers)
設定完後,使用者即可執行sudo ,使用者只要輸入自己的密碼即可,不必知道root密碼,
而且5分鐘內再次執行sudo時不需再輸入密碼。如果你有打開log記錄功能,sudo執行成功或失敗的log
都將被記錄到/var/log/sudo.log中。
94./usr/ports/dns/ddclient動態dns更新軟件
95.SCSI工具camcontrol
camcontrol devlist 查看目前所有USB裝置
ATA工具
atacontrol list 查看目前所有ATA裝置
96.如果我們只知道一個關鍵詞,卻不知要使用哪一個指令,我們可以使用參數k來查詢。
例如我們要查詢 firewall 相關的指令:man -k firewall
97.bg
將指定的程序放入背景中執行。當我們下達一個指令後,必須要等待該程序結束後才能輸入下一個命令。
如果該程序必須執行一段很長的時間,我們不想等程序結束,可以把它放到背景中執行。在下達指令後,
按 Ctrl+Z 來暫停程序,接著再執行 bg 即可將程序放到背景中執行。
$ sleep 1000
^Z
Suspended
$ bg
[1] sleep 1000 &
我們也可以在所要執行的指令後面加上符號 "&",就可以將該程序放到背景執行:
$ sleep 1000 &
[2] 46461
98.jobs
jobs 指令可以讓我們查詢目前有哪些程序在背景執行。如果加入參數 -l 可以得到 PID 的信息。
jobs -l
[1] + 46459 Running sleep 1000
[2] - 46461 Running sleep 1500
99.fg
將指定的程序放到前景中執行。我們使用jobs看到目前在背景執行的程序之後,可以使用fg把它叫回前景。
例如要叫回第一個在背景中執行的程序:
fg %1
sleep 1000
100.sync
讓系統暫存的數據強制存回硬盤
101.cp -Rp sourdir tardir
-R完成遞歸複製(即可以複製目錄以下的所有內容),-p保留文件的時間、所屬等等
102.ssh
[email=username@hostname]username@hostname[/email]
從遠程拷貝 scp
[email=user@host:/path/to/files]user@host:/path/to/files[/email]
local_file_name
拷貝到遠程 scp local_file_name
[email=user@host:/path/to/files]user@host:/path/to/files[/email]

103.使用Portaudit監視第三方安全問題
cd /usr/ports/security/portaudit && make install clean
安裝完成之後更新數據庫
portaudit -Fda
使用下面的命令對通過Ports Collection安裝的第三方軟件工具進行審計
portaudit -a
104.我要怎麼從 X 切換到 virtual consoles?
請用Ctrl+Alt+Fn以切回至console。Ctrl+Alt+F1可以切回至第一個console。
當你切回至文字console後,你就可以使用一般的Alt+Fn組合鍵在各console之間切換了。
要回到X的話,你就可以使用Alt+F9以返回至X中。
105.FB下Free的殺毒軟件
clamav (security/clamav)
man clamscan 掃瞄
man freshclam 更新病毒庫
man clamd
man clamdscan
man sigtool
配置文件
/use/local/etc/freshclam.conf
/usr/local/etc/clamd.conf
把conf裡的#Example去掉
# Comment or remove the line below.
#Example
/etc/rc.conf加入
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"
106.軟件默認配置示例文件的一般存放位置
/usr/share/examples
/usr/local/share/examples
107.安裝文泉驛字體
cd /usr/ports/x11-fonts/wqy/
make install clean
108.把/data/tftp打包成pxeinstfb62.tgz
cd /data/
tar zcvf pxeinstfb62.tgz tftp
解壓
tar zxvf pxeinstfb62.tgz
109.ports下有沒有xxx這個軟件?在哪個目錄下?
回答:有兩種辦法來查找,一是通過軟件名:
make fetchindex
cd /usr/ports
make search name=xxx | grep ^Path
另一種是通過關鍵字,也就是在軟件名和說明中只要包括這個單詞的都會查找出來:
cd /usr/ports
make search key=xxx | grep ^Path
110.FreeBSD如何獲得硬件信息?
sysctl -a | grep "^dev\."
pciconf -lv