FreeBSD学习指南
freebsd 的版本命名规则
a-主要版本编号
b-次要版本编号
c-修正版本编号
tag-名称标签,如 release、stable、current
install.iso 安装时用这一片即可!mini.iso 也是可以用来安装,但里面没有一些常用的 package ,所以档案比较小。
硬盘分割表的概念
ide 硬盘在 freebsd 中的代号分别是 ad0 、ad1 ,在 freebsd 可将主要扇区分割成许多逻辑扇区 logical slice ,a 在传统上是指根目录,b 是指 swap 虚拟内存,c 指整个主要扇区,d 指整个硬盘, efgh 可以任意使用!
改变 inode 的设定
按 n 并输入参数 newfs -i 1024 -b 4096 -f 1024
选安装套件,除了最后二项 local 和 xfree86 外,全部都选。
在 configuration menu 所做的设定都会存放在 /etc/rc.conf 中,可以修改这个档案!
安装完 freebsd 要安装的软件 vim-lite less gnuls pkg_tree elm+me bash2 unzip nmap wget ncftp3 pstree
freebsd 的目录结构
/etc/defaults | 放置预设的系统设定文件。 |
/etc/mtree | 目录权限的设定文件。 |
/etc/periodic | 每天、每周、每月定时要执行的设定。 |
/usr/ports | freebsd 移植软件的原始程序目录,我们可以从这个目录中找到自己想要的软件来快速安装。 |
/usr/src | 放置 bsd 或其它软件原始程序代码的目录。 |
/var/account | 使用者执行过的指令记录文件。 |
/var/db | 重要的系统数据库。 |
/var/quotas | 档案系统使用容量限制的记录。 |
修改、编译核心
/usr/src/sys/i386/conf 中有二个档案,一个是 generic ,是安装时用的一般核心,一个是 lint 则是完整的核心及说明。
编译新的核心
options quota
pseudo-device snp 可以监看使用者
#nat
一、options ipfirewall
#支援 nat
二、options ipdivert
#下面这一行是预设允许所有的封包通过,如果没有这一行,就必须在 /etc/rc.firewall 中设定封包的规则
三、options ipfirewall_default_to_accept
#下面一行是让您可以在 ipfw 中设定要记录哪些封包,如果没有这一行,这算设定了要留下记录也不会有作用
四、options ipfirewall_verbose
#防火墙
除了 nat 的一、三、四外
#这一行是限制每一条规则所要记录的封包数量,因为同样的规则可能有许多的记录,加上这一条可以使同样的记录重复数减少,以避免记录文件爆。
options ipfirewall_verbose_limit=10
#下面这一行是用来支持封包转向,当您要使用 fwd 动作时必须要有这一项设定
options ipfirewall_forward
#如果要使用 pipe 来限制频宽,必须加入下列选项以支持 dummynet
options dummynet
编译核心第一种方法
config generic
cd ../../compile/generic/
make depend;make;make install
第二种方法
在 freebsd 4.2-stable 之后可以用的新的方法
cd /usr/src
make buildkernel kernconf=generic
make installkernel kernconf=generic
cd /;rm -rf /usr/src/sys/compile/generic
sync;sync;sync;reboot
新的核心有问题时
当编译完核心重新开机,无法进入 freebsd 时,要在开机时看到倒数计时的时候,按 enter 以外的键,会出现 boot:,这时候就打 unload 来将已加载的数据移除,再打 /kernel.old 以使用旧的核心。万一连旧的核心也不能开机,就要使用安装时的核心,/kernel.generic,如果您想删掉坏的核心,由于 kernel 文件有特殊的档案属性,必须先下指令修改属性才能删除。
chflags noschg /kernel
建立友善的使用者接口
编辑 /etc/csh.cshrc 或 /.cshrc 使用 tcsh 或 csh shell 时
加入 alias ls gnuls --color -f
如果想要新增使用时都能加入,则要修改 /usr/share/skel/dot.cshrc
想改 path 及一些设定也是在 /usr/share/skel 下的一些档案修改
常见的环境变量
editor:设定文书编辑器
pager:设定分页程序 more 或 less
支持中文的环境,只支持 tcsh csh
编辑 /etc/csh.login
setenv enable_startup_locale zh_tw.big5
# 使用远程登入时才能打出中文
setenv lc_ctype is_is.iso_8859-1
# console 下用才能打出中文
setenv lang zh_tw.big5
如果是 bash 要改用
export enable_startup_locale='zh_tw.big5'
export lc_ctype='is_is.iso_8859-1'
export lang='zh_tw.big5'
取消登入后,会自动秀出的一段文字 修改 /etc/motd message of the day
如果不希望 motd 内容出现 freebsd 的版本信息,可以在 /etc/rc.conf 中加入
update_motd="yes"
freebsd 的账号管理
adduser 新增使用者
pw groupadd newgroup 新增一个群组
pw groupshow newgroup 显示成果
vipw
freebsd 使用 shadow passowrd 的方式来保护密码文件,只有 root 才可以读取编码过的密码文件 /etc/master.passwd ,但是这并不是系统用来验证的档案,为了加快速度,freebsd 将该文件做成数据库 /etc/spwd.db 及 /etc/pw.db ,因此修改完 master.passwd 后要下指令 pwd_mkdb 来将 master.passwd 做成数据库,但使用 vipw 就会自动完成这项工作!
rmuser 删除使用者
freebsd 磁盘配额
一、在核心设定中加入 options quota 这一行,并重新编译核心。
二、在 /etc/rc.conf 加入 enable_quotas="yes"
三、在 /etc/fstab 中加入要启动磁盘限制的分割区中加入参数 userquota
options 下 rw 的后面加入 rw,userquota
好了之后重新开机,再下 edquota -u username 来限制
在 4.5-release 中,开机内定会检查所有使用者的 quota ,如果不要检查,就在 /etc/rc.conf 中加入 check_quotas="no"。
freebsd 网络相关指令
ftp -a 以匿名者自动登入
sockstat 查看主机 internet 或 domain socket 。您可以用来查询有谁连到您的机器中,由哪一个网络服务接收,该网络服务的 pid 是多少,还可以查询本机开放了哪些 port ,提供了哪些服务。
/etc 下的档案介绍
csh.cshrc 这是 csh tcsh 用的内定 .cshrc 档案,也就是进入该 shell 时会加载的设定。
csh.login 这是 csh tcsh 用的内定 .login 档案,也就是进入该 shell 时会加载的设定。
defaults/make.conf 通常会复制一份到 /etc 下,用 port 安装软件时,会参考这个档案,把里面的 ftp 站台改成距离国内比较近的。
login.access 用来设定登入系统使用者的权限,我们可以在这里设定是否允许使用者从 console 登入、从不同的区域登入的权限等。
login.conf 这个档案用来控制不同账号可以使用的系统资源,它会依照使用者在密码文件中的 login class 来寻找相对的 class 设定,如果没有分类则使用 default 的默认值。修改完该档后,要执行 cap_mkdb /etc/login.conf 重建系统数据库。
newsyslog.conf 用来定期检查 /var/log/ 的档案,设定当 log 到一定大小或是定期的将旧的档案压缩备份,并删除太老旧的档案。
语法:logfilename [owner:group] mode count size when [zb] [/pid_file] [sig_num]
logfilename | log 文件名称 |
[owner:group] | log 档拥有人:群组 |
mode | 该 log 文件的权限[档案属性] |
count | 最多计算到多少,例如 cron 是 3 ,表示有 4 个压缩档,从 cron.0.gz 到 cron.3.gz |
size | 档案最大到多少即压缩备份,以 kb 计。 |
when | 什么时候做备份,请 man newsyslog 来看详细说明。以 @ 为首代表用 iso 8601 结构的时间格式。以 $ 为首代表使用每天、每周、每月。
$d0 每天半夜十二点 $d23 每天 23:00 时 $w0d23 每周日 23:00 $w5d16 每周五 16:00 $mld0 每月最一天半夜十二点 $m5d6 每月第五天 6:00 |
[zb] | z 表示要将该档以 gzip 压缩,b 代表该档是 binary 档。 |
[/pid_file] | pid 文件的绝对路径 |
[sig_num] | 要送给该 daemon 程的 signal number |
freebsd 的软件安装
上一篇: FREEBSD6.2 详细安装图解
推荐阅读
-
FreeBSD inet_network() 函数中的单字节溢出漏洞
-
Flask框架的学习指南之制作简单blog系统
-
Flask框架的学习指南之开发环境搭建
-
vue学习指南:第十篇(详细) - Vue的 动画
-
Python正规则表达式学习指南
-
Python正规则表达式学习指南
-
html5+svg学习指南之SVG基础知识
-
shell脚本学习指南[四](Arnold Robbins & Nelson H.F. Beebe著)
-
shell脚本学习指南[六](Arnold Robbins & Nelson H.F. Beebe著)
-
shell脚本学习指南[一](Arnold Robbins & Nelson H.F. Beebe著)