2011年5月16日 星期一

FreeBSD指令整理

FreeBSD學習筆記整理
1、查看CPU:
sysctl hw.model hw.ncpu
dmesg | grep 「CPU:」
2、查看內存:
dmesg | grep 「real memory」 | awk -F 『[( )]『 『{print $2,$4,$7,$8}』
查看swap:
top | grep 「Swap:」 | awk 『{print $1,$2}』
3、查看硬盤:
diskinfo -vt /dev/ad0
disklable /dev/ad0s2 #查看分區信息
看硬盤大小:
dmesg | grep 「sector」 | awk 『{print $1,$2}』
diskinfo -v /dev/da0 | grep 「in bytes」 | awk -F'[()]『 『{print $2}』
4、查看服務器品牌:
dmesg | grep 「ACPI APIC」
5、掛載文件系統:
fat32:mount_msdosfs -L zh_CN.eucCN /dev/ad0s1 /mnt
ntfs:mount_ntfs -C eucCn /dev/ad0s1 /mnt
cdrom:mount_cd9660 /dev/acd0 /mnt
註:ntfs在FreeBSD中只能讀無法寫入
6、給文件添加或禁用系統禁刪標誌(目錄不適用):
chflags sunlink file1
chflags nosunlink file1
7、初始化磁盤:
fdisk -BI ad1
8、建立FreeBSD分區:
disklabel -B -w -r ad1s1 auto
9、建立邏輯分區:
disklabel -e ad1s1
10、格式化分區,創建文件系統:
newfs /dev/ad1s1e
11、顯示PCI硬件信息:
pciconf -lv
12、開啟Linux 二進制兼容支持(啟用這一功能最簡單的方法是載入 linux KLD 模塊):
kldload linux
讓Linux兼容在系統初始化時自動啟用,在/etc/rc.conf中中入:
linux_enable=」YES」
13、檢查KLD模塊是否加載:
kldstat
14、在內核中靜態鏈接進Linux二進制兼容模式,在內核配置文件裡面加入:
options COMPAT_LINUX
15、設置網卡em0的IP地址:
ifconfig em0 inet 192.0.2.10 netmask 255.255.255.0
16、給網卡em0設置添加一個別名IP地址:
ifconfig em0 inet 192.168.51.45/24 add
17、刪除網卡的別名IP地址:
ifconfig em0 inet 192.168.51.45 -alias
18、設置網卡em0的工作模式為100baseTX全雙式:
ifconfig em0 media 100baseTX mediaopt full-duplex
19、當/usr/local/etc/rc.d下的腳本無法自動啟動時,可嘗試在/etc/rc.conf中加入一行:
local_startup=」/usr/local/etc/rc.d」
20、在ports中尋找需要的軟件,進入/usr/ports目錄執行:
make search name=lsof 或 echo /usr/ports/*/*lsof* 或 whereis lsof
make search key=關鍵字 # 在名字、註釋、描述中搜索關鍵字
21、使用package方式安裝管理軟件,使用以下命令:
pkg_add lsof-4.56.4.tgz # 安裝軟件包
pkg_info  # 列出已安裝所有軟件包
pkg_version  # 統計所有安裝的軟件版本,比較本地package的版本與ports目錄中的當前版本是否一致
pkg_delete lsof-4.56.4 # 刪除軟件包,需提供完整包名
22、使用CVSup協議更新本地ports:(將cvsup.FreeBSD.org改為離得較近的CVSup服務器)
csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
23、一些shell會緩存環境變量PATH中指定的目錄裡的可執行文件,以加快查找速度,這會造成一些新安裝的命令無法運行,執行以下命令,然後才能運行新安裝的那些命令:
rehash 或 hash -r
24、當不是所有時間都能上網時,可在/usr/ports下執行以下命令,所有需要的文件都將被下載:(此命令可以在下級目錄中執行,如/usr/ports/comms/nmp)
make fetch # 只下載所需要文件,不下載依賴包
make fetch-recursive # 連同依賴包一起下載
25、改變默認的Ports目錄:
make WRKDIRPREFIX=/usr/home/example/ports install # 在/usr/home/example/ports中編譯port,安裝到/usr/local
make PREFIX=/usr/home/example/local install # 在/usr/ports中編譯port,安裝到/usr/home/example/local
make WRKDIRPREFIX=../ports PREFIX=../local install # 在../ports中編譯port,安裝到../local
26、使用portsclean工具清除臨時目錄和distfiles目錄:
portsclean -C # 清除安裝時的臨時目錄
portsclean -D # 清除distfiles目錄下所有port都不引用的文件
portsclean -DD # 刪除目前安裝的port沒有使用的源碼包文件
27、強制手動檢測SCSI設備,SCSI總線掃瞄:
camcontrol rescan all
28、顯示SCSI設備列表:
camcontrol devlist
29、利用管道修改用戶密碼:
echo 「password」 | pw usermod root -h 0
30、sed插入行:
sed -i -E 『/service port/a \\
apex port : 18306\\
『 /home/xiyou/config
31、用freebsd的MBR覆蓋現有的MBR:
fdisk -B -b /boot/boot0 device
32、根據一個新的文件重新構建用戶列表:
pwd_mkdb -p /etc/master.passwd.new # -p即為生成新的/etc/passwd
33、取時間:
date -v -1d +%Y%m%d # Freebsd取昨天日期方法
date -v -1w +%Y%m%d # Freebsd取上週今日方法
date -v -1m +%Y%m%d # Freebsd取上個月今日方法
date -v -1y +%Y%m%d # Freebsd取去年今日的方法
34、以xiyou用戶身份執行命令或腳本:
su – xiyou -c 「cd /home/xiyou/script; ./start_apex.sh &」
35、tar打包時排除某個子目錄:
tar zcvf Apex09010702.tgz –exclude=ApexItemServer/hook_log ApexItemServer
註:上例是使用GUN版本的tar程序格式,否則–exclude參數應放在最後
36、鎖住終端:
lock -np #-n 永不超時,-p 使用系統密碼作為開啟終端的密匙
37、顯示ATA設備列表:
atacontrol list
38、查看網絡流量:
systat -if 1 #1表示1秒刷新屏幕一次,Traffic 流量 peak 峰值 average 平均值
netstat 1
39、查看硬盤詳細分區實時讀寫狀況:
gstat
40、進單用戶模式也需要密碼:
a. vi /etc/ttys 找到when going to single-user mode
b. 修改console none unknown off後面的secure,改為insecure
c. 存盤退出
41、在FreeBSD5.X以上加載,卸載ISO文件:
mount:
mdconfig -a -t vnode -f myisofile.iso #屏幕輸出md0或者類似的設備名
mount -t cd9660 /dev/md0 /mnt
umount:
umount /mnt
mdconfig -d -u 0 #-u後面的數字和前面的md?中的數字一致
mdconfig -l #可以列出關於配置md?設備的信息
42、更新配置文件,比如編輯了.cshrc等文件,就需要用source命令:
source .cshrc
43、修復UFS文件系統分區:
fsck_ufs /dev/ad1
44、pf防火牆
pfctl -e                 # 啟動pf防火牆
pfctl -d                 # 停止pf防火牆
pfctl -sa | grep Status  #查看狀態
pfctl -f /etc/pf.conf    # 載入 pf.conf 文件
pfctl -nf /etc/pf.conf   # 檢查配置文件錯誤,但不載入
pfctl -Nf /etc/pf.conf   # 只載入文件中的NAT規則
pfctl -Rf /etc/pf.conf   # 只載入文件中的過濾規則
pfctl -sn    # 顯示當前的NAT規則
pfctl -sr    # 顯示當前的過濾規則
pfctl -ss    # 顯示當前的狀態表
pfctl -si    # 顯示過濾狀態和計數
pfctl -sa    # 顯示任何可顯示的
pfctl -t http_table -T show               #查看動態表
pfctl -t http_table -T add 192.168.1.X    #添加一個IP到表
pfctl -t http_table -T del 192.168.1.X    #從表中刪除IP
45、系統優化+防止ddos
加載文件修改
# vi /boot/loader.conf #加入如下文本
kern.dfldsiz=」2147483648〞             # Set the initial data size limit
kern.maxdsiz=」2147483648〞             # Set the max data size
kern.ipc.nmbclusters=」0〞             # Set the number of mbuf clusters
kern.ipc.nsfbufs=」66560〞              # Set the number of sendfile(2) bufs
##解釋:
a.   第一,第二行主要是為了突破1G內存設置的
b.   第三行其實是bsd的一個bug,當系統並發達到一個數量級的時候,系統會crash,這個是非常糟糕的事情,所幸更改了這個參數後,在高並發的時候,基本可以沒有類似情況,當然非常bt的情況,還得進一步想辦法
c.   第四行是讀取的文件數,如果你下載的文件比較大,且比較多,加大這個參數,是非常爽的
Sysctl修改
#vi /etc/rc.local
sysctl kern.ipc.maxsockets=100000    ##增加並發的socket,對於ddos很有用
sysctl kern.ipc.somaxconn=65535      ##打開文件數
sysctl net.inet.tcp.msl=2500         ##timeout時間
加速ports安裝
#vi /etc/make.conf     ##加入如下
MASTER_SITE_OVERRIDE?=http://ports.hshh.org/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=http://ports.cn.freebsd.org/${DIST_SUBDIR}/
Freebsd顏色顯示
secureCRT設置:仿真:終端->linux>勾選ANSI顏色–>確定
#vi /etc/csh.cshrc ##加入如下
setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
#cd /usr/ports/edit/vim;make install
#echo 「syntax on」>/root/.vimrc
#echo 「alias vi        vim」 >>/root/.cshrc
##顏色主要是靠vim來顯示的,因此需要安裝vim,然後把vi alias成vim就可以了
46、查看系統狀態
fstat     #報告系統中打開文件的信息
pstat -T   #顯示這幾個系統表的狀態,包括當前使用的和可以利用的系統表空間,因此可以用來檢查系統在當前負載下是使用多大的系統表,幫助進行優化系統性能
systat    #缺省情況下systat是報告處理器的使用率,包括總利用狀態、空閒使用率和各個進程的使用率
通過指定參數,systat也能進行I/O的統計、虛存的統計、網絡的統計等,這些參數包括-iostat, -vmstat, -mbufs, -netstat, -ip, -icmp, -tcp, -swap等
kldstat -v  #顯示內核加載的模塊
klsdstat -m ipfilter   #顯示指定模塊
pnpinfo    #即插即用設備
devinfo -u  #顯示設備佔用的IRQ和內存地址
原文鏈接:http://blog.chinaunix.net/u3/112017/showart_2213285.html
轉載請註明文章轉載自:FreeBSD技術文摘 [http://www.bsdart.org]