freebsd用法配置汇总
脚本之家
http://wiki.freebsdchina.org
制作FreeBSD-USB安装盘
IMG映像文件下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/7.4-RELEASE/floppies/。
在当前目录下执行,#dd if=FreeBSD-8.2-RELEASE-i386-memstick.img of=/dev/da0[设备名] bs=64k
如何设定网络
修改/etc/rc.conf,需要/etc/rc.d/netif重起,或reboot才能生效。
ifconfig_re0="inet 192.168.0.76 netmask 255.255.254.0"
增加第二个 IP
ifconfig_re0_alias0="inet 192.168.0.76 netmask 255.255.254.0"
直接使用ifconfig,立刻生效
# ifconfig re0 192.168.0.76 255.255.254.0
设定系统默认网关
修改 /etc/rc.conf
defaultrouter="192.168.0.1"
使用route命令,即时生效
route add default 192.168.0.1
设定系统默认域名服务器
修改 /etc/resolv.conf 文件到如下内容,如果这个文件不存在,可以直接创建。
nameserver 192.168.0.1
更复杂的设定可以参考这个文件的 man 文档。
/etc/hosts 文件的作用
系统默认查询域名的顺寻是,先从 /etc/hosts 查询,如果查不到就从 dns 服务器查询。因此,你可以把一些常用的 域名-IP 地址对应写到 /etc/hosts 里面以加快网络速度。
FTP访问相关
# ftp 192.168.1.248 Enter //# lftp lipengfei:wocuole@192.168.1.249 Enter
# 用户名 Enter
# passwd Enter
# get file(文件名)即可下载文件到用户目录
# 匿名服务器 anonymous
4.启动putty并使root可ssh登录
首先vi编辑/etc/inetd.conf,去掉ssh前的#,保存退出
编辑/etc/rc.conf
最后加入:sshd_enable="yes"即可
激活sshd服务:
techo#/etc/rc.d/sshd start
用下面命令检查服务是否启动,在22端口应该有监听。
#netstat -an ## check port number 22
最后
vi /etc/ssh/sshd_config,
修改下列一行
#PermitRootLogin yes #允许root登录
修改完配置文件后,重新启动sshd服务器(/etc/rc.d/sshd restart)即可。
解决安装后声卡无法识别问题
# vi /boot/loader.conf
添加
snd_hda_load="YES"
保存,reboot.即可。
Grub4dos引导FreeBSD系统
title FreeBSD
root (hd0,x,y)
kernel /boo/loader \\其中,x为你的FreeBSD的分区,y为FreeBSD/所在的SLICE.
Grub2引导FreeBSD
menuentry "FreeBSD2" {
insmod ufs2
set root=(hd0,2)
kfreebsd /boot/kernel/kernel
}
设备标示
ad ATAPI (IDE) 磁盘
da SCSI 直接存取磁盘
acd ATAPI (IDE) 光驱
cd SCSI 光驱
fd 软驱
软件包管理
1.查询
pkg_info -r joe-(version).tgz #查询指点套件所依赖软件包
pkg_info #查询所有套件
pkg_info | grep * #查询目前系统与*相关的套件
pkg_info -W /usr/local/bin/joe #查询joe属于哪个套件,若没有回执则说明joe属FreeBSD内建的。
pkg_info -L /var/db/pkg/joe-(version) #查询某个套件安装了那些档案
pkg_version(1) #是一个用来统计所有安装的软件包版本的工具。它可以用来比较本地 package 的版本与 ports 目录中的当前版本是否一致。在第二列的符号指出了安装版本的相关时间和本地ports目录树中可用的版本。
符号 含义
= 在本地ports树中与已安装的软件包版本相匹配。
< 已安装的版本要比在ports树中的版本旧。
> 已安装的版本要比在ports树中的版本新 (本地的port树可能没有更新)。
? 已安装的软件包无法在ports索引中找到。 (可能发生这种事情,举个例子, 您早先安装的一个 port 从 port 树中移出或改名了)
* 软件包有很多版本。
2.安装
pkg_add -r joe-(version).tgz #安装指定套件
pkg_add -f joe-(version).tgz #强制安装指定套件,不考虑依赖问题
pkg_version -c #自行整理并提供可升级套件列表
3.卸载
cd /usr/ports/editors/joe
make deinstall #移除软件
pkg_delete -f joe-(version) #强制移除
make deinstall-depends(软件包名) #一并移除相依赖软件
pkg_delete joe-(version) #一并移除相依赖软件
pkg_delete xchat\* #这时, 所有名字以 xchat 开头的 package 都会被删掉。
Debian Linux下挂在FreeBSD分区UFS
# fdisk -l //可以看出FreeBSD的UFS分区在linux被识别为/dev/sda2
# cd /mnt && mkdir sda2 //创建UFS分区挂载点/mnt/sda2
# mount -rt ufs -o ufstype=ufs2 /dev/sda2 /mnt/sda2/ //执行挂在命令
# mount -t ufs -o ro,ufstype=ufs2 /dev/sda2 /mnt/mnt/
OK
如果希望启动后自动挂载则在/etc/fstab添加
/dev/hda9 /mnt/bsd ufs ro,ufstype=ufs2 0 0
启用FreeBSD系统自带FTP服务
# vi /etc/inetd.conf
去掉ftp stream tcp nowait root /usr/libexec/ftpd前面的#删除。(开启ftp服务)
# vi /etc/rc.conf
添加
ftpd_enable=”YES”
将ftpd服务加入自启动
/etc/rc.d/ftpd start
启动ftp服务
/etc/ftpusers 不可使用来登陆ftp的用户,指黑名单列表设定
/etc/ftpchroot 需要做chroot 的账号和群组列表
/etc/ftphosts 虚拟机站点的设定
/etc/ftpwelcome 进行ftp的欢迎信息
/etc/ftpmotd 登陆后自动的提示信息
/var/run/nologin 拒绝登陆后的显示信息
/var/log/ftpd 记录用匿名方式登陆时的传输情况
解决freebsd下普通用户无法su至root
vi /etc/group //编辑group文件
wheel:*:0:root //修改第一行
wheel:*:0:root,xiaopang //给wheel用户组添加xiaopang用户
然后就可以通过普通用户xiaopang su 到root了
设置FreeBSD登陆提示信息
# vi etc/motd //写入需要提示内容即可
ports使用技巧
下载指定软件tarball
# make fetch
下载安装指定ports所需其他ports的tarball
# make retch-recursive
如果希望下载所有ports的tarball
# cd /usr/ports
# make fetch
会将所有tarball下载到/usr/ports/distfiles/目录下
抓取ftp下所有ports的ports的tarball,则:
# cd /usr/ports/ftp
# make fetch
# dmesg | grep attached //可查看那些设备没有被驱动
# pciconf -lv //可查看具体信息
# /var/run/dmesg.boo //也是个不错的排错参考之一
# ntpdate time.windows.com //网络校时
改变ports安装软件下载地址,在/etc/make.conf中加入
MASTER_SITE_BACKUP?=http://mirrors.163.com/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
Packages更改软件库下载地址
setenv PACKAGESITE http://mirrors.163.com/FreeBSD/releases/i386/8.1-
RELEASE/packages/Latest/
pkg_add -r package #package为要安装的软件名
启动NFS客户端
1.修改/etc/rc.conf
nfs_client_enable="YES"
2.修改/etc/fstab,添加远程nfs分区,例如
remote_server:/path/to/export /local/mount/point nfs rw,late 0 0
注: 选项 late 也可以不添加。如果添加了,就可以用 /etc/rc.d/mountlate 来挂载启动时没
有挂载或挂载失败的 nfs 分区。
3.执行/etc/rc.d/nfsclient
# /etc/rc.d/nfsclient start
挂在iso镜像
mount -t cd9660 /dev/`mdconfig -f cdimage.iso` /mnt
挂在ext3/ext2分区
mount -t ext2fs /dev/ad0s1 /mnt/ad0s1
如何查看当前用户默认的shell
echo $SHELL
查询Ports中是否含有某个软件包
$ /usr/ports
$ make search key=pidgin
同样也可以使用
$ cd /usr/ports
$ make search name=pidgin
用上面两种方法查询时,显示的信息比较详细,包括维护者、依赖包、主页等内容。如果只想显示所在的路径和软件名称,则可以用
$cd /usr/ports
$make quicksearch name=php
安装fcitx-googlepinyin输入法
# cd /usr/ports/chinese/fcitx-googlepinyin/ && make install clean
在.cshrc里加入
setenv XMODIFIERS @im=fcitx
setenv GTK_IM_MODULE xim
setenv QT_IM_MODULE xim
在.xinitrc里加入
fcitx & 注意:这个一定要写在/usr/local/bin/startxfce4的前面。
更新ports的方法
portsnap fetch extract update
更改用户shell
# vipw 或 chsh
如何让csh显示彩色文件列表
编辑/etc/csh.cshrc加入以下代码
setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
然后执行
# sed -i.bak -E s/set\ prompt/#set\ prompt/g /root/.cshrc
如何让csh想bash那样按TAB自动列出无法补全的候选文件,
标准方法是按Ctrl+D,但如果一定要用TAB的话,在/etc/csh.cshrc中加入;
set autolist
如何让FreeBSD的csh显示类似[xiaopang@BSD]~这样的提示符号?
在/etc/csh.cshrc中加入;
set prompt = '[%B%n@%m%b] %B%~%b%# '
然后执行;
# sed -i.bak -E s/set\ prompt/#set\ prompt/g /root/.cshrc
搭建samba服务器
# cd /usr/ports/net/samba46 && make install
出现选择,依照内定预设值,按TAB选择OK,再按Enter.
Options for samba 3.0.24,1
[X] LDAP With LDAP support
[X] ADS With Active Directory support
[X] CUPS With CUPS printing support
[X] WINBIND With WinBIND support
[X] ACL_SUPPORT With ACL support
[ ] FAM_SUPPORT With File Alteration Monitor
[X] SYSLOG With Syslog support
[ ] QUOTAS With Disk quota support
[X] UTMP With UTMP accounting support
[ ] MSDFS With MSDFS support
[ ] PAM_SMBPASS With PAM authentication vs passdb backends
[ ] CLUSTER With experimental cluster support
[ ] EXP_MODULES With experimental modules
[X] POPT With system-wide POPT library
[ ] MAX_DEBUG With maximum debuging
# cp /usr/local/etc/smb.conf.default /usr/local/etc/samba.conf \\复制Samba.conf配置文件
########################以下内容可实现用户自动登录home目录##########################
workgroup = WORKGROUP
server string = %h Samba Server
log file = /var/log/samba/%m.log
[homes]
comment = Home directory for %u on %h
browseable = no
writable = yes
path = /usr/home/%u/
valid users = %S
##################################################################
编辑/etc/rc.conf添加
winbindd_enable="YES"
samba_enable="YES"
然后添加使用者账号
# adduser username
设定samba user database (samba的使用者账号):
# smbpasswd -a username
/usr/local/etc/rc.d/samba start //启动samba服务
安装Apache22
1.可以使用ports安装
cd /usr/ports/www/apache22
make install clean
第一次安装由于没有配置config,所以会弹出窗口让你选择模块,选择所需要的模块进行安装
2.使用编译好的包远程安装
pkg_add -rv apache22
3.配置apache
apache的主配置文件是/usr/local/etc/apache22/httpd.conf,可以根据实际情况修改,主要并且重要的参考:http://lamp.linux.gov.cn/Apache/ApacheMenu/index.html
4.启动apache
echo 'apache22_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/apache22 start
FreeBSD 9.0 vncserver 安装与配置
# cd /usr/ports/net/vnc
# make
# make install \\查看vncserver路径
# which vncserver
/usr/local/bin/vncserver
# mkdir .vnc
# cd .vnc
# vncserver \\启动vnc第一次启动会要求输入密码
# vncserver -kill :1
# vi xstartup \\修改xstartup为以下内容
####################################################
#!/bin/sh
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
# 下面的2行是vncserver第一次启动的时候产生的,为了使用Gnome,我把它们给
# 注释掉了
# xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# twm &
fvwm &
#####################################################
# vncserver //重新启动vncserver,服务端配置完毕。
在客户端启动vnc viewer 输入:“192.168.1.111:1”,确认并输入密码即可远程登陆。