在Unix-like系统里摸爬滚打,理解档案结构是基本功。但怎么查看目录结构的说明呢?难道要每个目录都cd进去看一遍?其实有个更聪明的办法:用好你的man。直接执行man hier,系统就会把所有目录结构的详细说明列给你看。 console下的屏幕与输入技巧 在控制台下操作,屏幕滚动太快,想回头看之
在控制台下操作,屏幕滚动太快,想回头看之前的输出怎么办?按一下 Pause 或 Scroll Lock 键,屏幕就“冻住”了。这时候就能用 PageUp、PageDown、Up、Down、Home、End 这些键随便翻看。再按一下同样的键,就恢复正常输入了。
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,在 /etc/ports/ 下执行 make update 就行。但很多时候我们只关心某一个ports的版本。在每个ports的Makefile里都有 PORTVERSION= x.x.x 这一行,直接用 grep 抓出来看更利索。比如想看看 mod_php4 的版本:
# grep PORTVERSION= /usr/ports/www/mod_php4/Makefile
如果版本太旧,有几种更新方法:
a. 用工具: 使用 portupgrade 或 portinstall,具体用法可以 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.pcx 或 logo.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版本默认是有的。如果内核没有,需要加上这一行然后重新编译内核。
以下快捷键在 tcsh 和 bash 下都通用:
光标移动:
编辑操作:
如果想要深入研究按键布局,可以看看 /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
ls 虽然能列出文件,但要直观地看到目录树却力不从心。还记得DOS下的 tree 命令吗? FreeBSD里也有类似的,通过ports安装一下就行:
# cd /usr/ports/sysutils ; make install
它会安装在 /usr/local/bin/ 下。
使用示例:
内容太多时可以配合 more 分页查看:tree /usr | more。
FreeBSD不像Windows那样有扩展名概念。想知道一个文件到底是什么类型,用 file 命令就好。语法很简单:file <文件名>。
history 可以显示之前输入过的所有命令。重复使用它们有很多高效的办法:
man是绝佳的学习资料,但在屏幕上看总不如纸上翻阅方便。用 col 命令就能转成文本文件。例如,把 ssh2 的帮助文档转成 ssh2.txt:
# man ssh2 | col -b > ssh2.txt
在 /usr/ports/ 下,可以用 make print-index > index.txt 或 make search key="... " 来搜索。但有时明明更新了ports tree,查到的却是旧资料。问题出在 /usr/ports/ 里的 INDEX 文件上,它不会随着ports更新而自动更新。需要手动重建索引:
# make index
这个过程需要几分钟到半小时,依机器性能而定。建完索引后,再刷新 index.txt 和 README.html 就能查到最新信息了。
网络排错时,ping、traceroute 和 nslookup 是经典三件套。但 nslookup 用起来有点啰嗦,如果只是快速查个主机记录或MX记录,用 host 和 dig 效率高得多:
FreeBSD开机默认有10秒钟的延迟,目的是等待用户按空格进入boot命令提示符。如果觉得这个等待太慢,可以在 /boot/loader.conf 里缩短它:
autoboot_delay="7"
这就把10秒缩短到了7秒。另外,/boot/defaults/loader.conf 文件里有很多实用的默认设置,值得花时间看看。
别慌,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有个很安全的设计:内核文件通常放在 / 目录下,一般会有 kernel、kernel.GENERIC 和编译后的 kernel.old。开机时,系统会先尝试加载 kernel;如果坏了,会自动尝试 kernel.old;如果这个也挂了,就会进入命令提示符,允许手动输入内核名来引导,比如 boot kernel.GENERIC。所以,kernel.GENERIC 这个安装时的原始内核千万不要动,它是你的“救命稻草”。
了解系统启动时都加载了哪些东西,对排错很有帮助。顺序大致如下:
另外,/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内存的示例建议:
以上只是通用建议,最重要的还是根据实际用途和目录性质来灵活调整。这方面,man hier 是最好的参考资料。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述