首页 > 操作系统 >FreeBSD简单使用技巧

FreeBSD简单使用技巧

来源:互联网 2026-07-30 16:23:12

在Unix-like系统里摸爬滚打,理解档案结构是基本功。但怎么查看目录结构的说明呢?难道要每个目录都cd进去看一遍?其实有个更聪明的办法:用好你的man。直接执行man hier,系统就会把所有目录结构的详细说明列给你看。 console下的屏幕与输入技巧 在控制台下操作,屏幕滚动太快,想回头看之

在Unix-like系统里摸爬滚打,理解档案结构是基本功。但怎么查看目录结构的说明呢?难道要每个目录都cd进去看一遍?其实有个更聪明的办法:用好你的man。直接执行man hier,系统就会把所有目录结构的详细说明列给你看。

console下的屏幕与输入技巧

在控制台下操作,屏幕滚动太快,想回头看之前的输出怎么办?按一下 PauseScroll Lock 键,屏幕就“冻住”了。这时候就能用 PageUpPageDownUpDownHomeEnd 这些键随便翻看。再按一下同样的键,就恢复正常输入了。

高效管理用户账户:pw命令

FreeBSD下用 adduser 建账户有时候挺啰嗦的,更高效的方式是直接用 pw

长期稳定更新的攒劲资源: >>>点此立即查看<<<

新增用户:

pw useradd -n  -g  -m -s /bin/csh

-m 参数会自动创建用户的家目录。

顺便设置密码:

echo "" | pw useradd -n  -g  -m -s /bin/csh -h 0

删除用户:

pw userdel -n  -r

-r 会连同家目录和相关资料一并删除。

修改用户属性:

pw usermod  -g  -s /bin/csh

需要注意,pw 不能直接修改用户名。

锁定和解锁用户:

pw lock 
pw unlock 

让屏幕歇会儿:开启屏幕保护

FreeBSD常常作为服务器常年不关机,屏幕一直亮着既费电又容易老化。要么直接关掉,要么打开屏幕保护功能。在 /etc/rc.conf 里加上这两行就可以了:

blanktime="900"
sa ver="logo"

blanktime 的单位是秒,“900”就是15分钟。“logo”是FreeBSD吉祥物的图形屏保,如果想用文字模式的,可以改成daemon

Ports版本检查与更新

想更新所有ports,在 /etc/ports/ 下执行 make update 就行。但很多时候我们只关心某一个ports的版本。在每个ports的Makefile里都有 PORTVERSION= x.x.x 这一行,直接用 grep 抓出来看更利索。比如想看看 mod_php4 的版本:

# grep PORTVERSION= /usr/ports/www/mod_php4/Makefile

如果版本太旧,有几种更新方法:

a. 用工具: 使用 portupgradeportinstall,具体用法可以 man 一下。

b. 手动下载: 到FreeBSD网站(http://freebsd.org/cgi/cvsweb.cgi/ports/)查最新的ports信息并下载回来。假设下载的是 mod_php4.tar.gz,存到 /usr/tmp/ 目录下,然后在目标ports目录里解压覆盖:

# cd /usr/ports/www/mod_php4
# tar xzvf /usr/tmp/mod_php4.tar.gz

提升操作手感:按键加速与光标设置

很多人在控制台下操作,重复按键速度慢得让人着急,而且光标有时也不够醒目。在 /etc/rc.conf 里加上这两行就能改善:

keyrate="fast"
cursor="blink"

这里光标模式也可以设为 destructive,看个人习惯。

定制开机画面

FreeBSD也能像Windows那样拥有开机画面,而且设置起来更简单:

第一步: 准备一张图片。支持 logo.pcxlogo.bmp 格式。注意:.bmp 文件不能压缩,分辨率要小于等于 640x480,色深为256色。

第二步: 把图片复制到 /boot/ 目录下。

第三步: 配置 /boot/loader.conf,加入以下内容:

splash_bmp_load="YES"   # 如果用的是 .bmp 格式
splash_pcx_load="YES"   # 如果用的是 .pcx 格式
vera_load="YES"
bitmap_load="YES"
bitmap_name="/boot/logo.pcx"   # 根据实际文件名修改
bitmap_type="splash_image_data"

第四步: 重启。

额外提醒:确认一下你的内核里有没有 preudo-device splash 这个选项。4.x版本默认是有的。如果内核没有,需要加上这一行然后重新编译内核。

控制台下常用的快捷键

以下快捷键在 tcshbash 下都通用:

光标移动:

  • ctrl + a:跳到行首。
  • ctrl + e:跳到行尾。

编辑操作:

  • ctrl + d:删除光标所在字符。
  • ctrl + w:删除光标前的一个单词。
  • ctrl + u:在bash中删除光标前的所有字符;在tcsh中则是删除整行。
  • ctrl + k:删除光标后的所有字符。
  • ctrl + b:光标移向下一个字符。
  • ctrl + f:光标移向前一个字符。
  • ctrl + m:等同于回车键。
  • ctrl + h:等同于删除键(Del/Backspace)。
  • DelBackspace:删除前一个字符。

如果想要深入研究按键布局,可以看看 /usr/share/syscons/keymaps/ 这个目录,其中 us.iso.kbd 就是我们常用的标准按键配置。

快速切换目录:善用通配符

经常要在目录间跳转,碰上长路径、大小写混淆或者只记得前面几个字怎么办?用通配符 * 就搞定了。比如想去 /usr/local/,直接输入 cd /usr/lo* 就行。如果输入 cd /usr/l*,shell会匹配到第一个符合条件的目录,这里是 /usr/lib/

时间与时区:一个都不能错

服务器的时间准确性至关重要。

手动调整时间:

使用 date 指令,格式是 date [年年月月日日]时时分分。例如,date 02102233 表示将时间设为2002年10月22日23时33分。

网络同步时间:

ntpdate 跟网络上的标准时间服务器同步,前提是机器能联网。例如:# ntpdate clock.stdtime.gov.tw

设置时区:

最简单的方式是用 tzsetup。也有更取巧的办法:/etc/localtime 文件就是本机的时区设置,直接复制一份过来就行:

# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime

快速清空文件内容

有时候只想清空一个文件的内容,但又想保留这个文件本身。用vi打开再全删保存?太麻烦了。一条 true 指令就搞定:

# true > /var/log/httpd-access.log

树形显示目录结构:tree

ls 虽然能列出文件,但要直观地看到目录树却力不从心。还记得DOS下的 tree 命令吗? FreeBSD里也有类似的,通过ports安装一下就行:

# cd /usr/ports/sysutils ; make install

它会安装在 /usr/local/bin/ 下。

使用示例:

  • # tree /usr:显示 /usr 下的所有目录和文件。
  • # tree -d /usr:只显示目录。

内容太多时可以配合 more 分页查看:tree /usr | more

检查文件类型:file命令

FreeBSD不像Windows那样有扩展名概念。想知道一个文件到底是什么类型,用 file 命令就好。语法很简单:file <文件名>

重复使用历史命令

history 可以显示之前输入过的所有命令。重复使用它们有很多高效的办法:

  • Up/Down 方向键或者 ctrl+p/ctrl+n 上下翻看。
  • !!:重复执行上一条命令。
  • !<编号>:执行历史记录中指定编号的命令。例如 !11 就执行第11条命令(cd /usr/local)。
  • !<指令开头几个字符>:执行最近一次以这些字符开头的命令。例如 !cl 会执行 clear
  • !<包含的字符>:执行包含指定字符串的命令。例如 !etc 会执行包含 etc 的那条命令。

把man手册打印出来

man是绝佳的学习资料,但在屏幕上看总不如纸上翻阅方便。用 col 命令就能转成文本文件。例如,把 ssh2 的帮助文档转成 ssh2.txt

# man ssh2 | col -b > ssh2.txt

查不到正确的ports资料?

/usr/ports/ 下,可以用 make print-index > index.txtmake search key="... " 来搜索。但有时明明更新了ports tree,查到的却是旧资料。问题出在 /usr/ports/ 里的 INDEX 文件上,它不会随着ports更新而自动更新。需要手动重建索引:

# make index

这个过程需要几分钟到半小时,依机器性能而定。建完索引后,再刷新 index.txtREADME.html 就能查到最新信息了。

用dig和host代替nslookup

网络排错时,pingtraceroutenslookup 是经典三件套。但 nslookup 用起来有点啰嗦,如果只是快速查个主机记录或MX记录,用 hostdig 效率高得多:

  • # host -a <主机名># host :可以显示正向或反向解析记录。
  • # dig <主机名或IP>:类似,更强大。比如查MX记录:# dig 主机名 mx

加快开机速度

FreeBSD开机默认有10秒钟的延迟,目的是等待用户按空格进入boot命令提示符。如果觉得这个等待太慢,可以在 /boot/loader.conf 里缩短它:

autoboot_delay="7"

这就把10秒缩短到了7秒。另外,/boot/defaults/loader.conf 文件里有很多实用的默认设置,值得花时间看看。

忘了root密码怎么办?

别慌,FreeBSD处理起来很方便:

1. 进入单用户模式: 开机看到 Hit [Enter] to boot immediately, or any other key for command prompt. 提示时,按空格键(或除回车外的任意键)进入命令提示符,在 ok 提示符后输入 boot -s

2. 选择shell: 系统会询问使用哪个shell,默认的 /bin/sh 就行,直接回车。

3. 挂载所有硬盘分区: # mount -a

4. 修改密码: # passwd,然后按要求输入两次新密码(长度至少6位)。

5. 重启: # reboot

内核的备份与恢复机制

内核出问题可能导致系统无法启动。FreeBSD有个很安全的设计:内核文件通常放在 / 目录下,一般会有 kernelkernel.GENERIC 和编译后的 kernel.old。开机时,系统会先尝试加载 kernel;如果坏了,会自动尝试 kernel.old;如果这个也挂了,就会进入命令提示符,允许手动输入内核名来引导,比如 boot kernel.GENERIC。所以,kernel.GENERIC 这个安装时的原始内核千万不要动,它是你的“救命稻草”。

FreeBSD的启动顺序

了解系统启动时都加载了哪些东西,对排错很有帮助。顺序大致如下:

  1. /etc/rc.conf 几乎所有系统服务(如sendmail、sshd)都在这里启动。执行前会参考 /etc/defaults/rc.conf 的默认设置。
  2. /usr/local/etc/rc.d/ 下的脚本: 这里存放着第三方软件(如Apache、Samba)的启动脚本。
  3. /etc/rc.local 可以在这里自定义启动项。例如启动postfix:/usr/local/sbin/postfix start & (加 & 是为了不输出信息)。
  4. cron定时任务:cron 控制,到了设定的时间会自动执行。

另外,/etc/inetd.conf 里设置的服务实际上在第一步就通过 inetd 启动了。

加快主机名查询速度

很多程序(比如sendmail)在解析主机名时会先查 /etc/hosts 文件。如果设置不当,会影响效率。一个典型的 /etc/hosts 文件示例:

127.0.0.1   localhost.cmlab.idv.tw localhost
61.219.230.5   cmlab.idv.tw cmlab
61.219.230.5   cmlab.idv.tw.

可以通过 /etc/host.conf 文件控制查询顺序。比如,如果配置成 hosts 优先,再查 bind(即DNS)。

另一个重要文件是 /etc/resolv.conf,它设定了DNS服务器的搜索顺序。典型配置如下:

domain cmlab.idv.tw
nameserver 61.219.230.5
nameserver 168.95.1.1
nameserver 168.95.192.1

建议至少设置两组 nameserver,确保高可用。

如何规划硬盘分区

分区规划得好,能避免日后空间不足的烦恼。下面是一个基于40GB硬盘、128MB内存的示例建议:

  • /(根目录): 250~500MB足矣。它只是放一些内核、模块和系统二进制文件,我自己的用了一年多还不到70MB。
  • swap(交换分区): 大小取决于内存和用途。内存大于等于256MB时,设为内存的1倍;内存为64~128MB时,设为2倍。可以用 pstat -T 查看swap使用情况。
  • /var/usr 这是占用空间最大的两个目录。/var 变化较小,但如果邮件都存放在 /var/mail/ 下,就需要留出足够空间。我的建议是 /usr/var 的比例在3:1到2:1之间。
  • /home 如果用户较多,建议单独分区。大小设个3-5GB通常就够用。如果不单独分区,/home 会被放在 /usr 下。

以上只是通用建议,最重要的还是根据实际用途和目录性质来灵活调整。这方面,man hier 是最好的参考资料。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。