用户工具

站点工具


doc:t:tip

FreeBSD 作弊条

在 ls 时显示多种颜色

打开 /etc/csh.cshrc(全局生效) 或者 ~/.cshrc(当前用户有效),加入下列设置:

setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes

根据之前修改的配置文件,在命令行运行如下命令,以 /etc/csh.cshrc 为例:

source /etc/csh.cshrc

修改 rc.conf 之后让它立即生效

sh /etc/rc 

新建一个空白文件

touch filename

超级用户 ls 时默认不要显示隐藏文件

alias ls 'ls -I'

清空文件内容但保留文件本身

cat /dev/null > filename

更简单的:

true > filename

锁住控制台

在控制台工作时,如果你想离开一会儿,却又不想注销,那么 LOCK(1) 命令就派上用场了。

lock -v

该命令会要求输入两次密码,然后就把控制台锁定了。

即使按 Alt+F(N) 也无法切换,只有输入密码才能回到之前的状态。

这是一个 FreeBSD 特有的小程序。

快速注销

按下ctrl+d即可,代表EOF(End of File),适合于退出多种交互界面,如gdb、python、bc、ghci、数据库。

将 man 的内容转输出为 txt

man socket | col -b > socket.txt 

让 grep 高亮匹配出的字符串

在/etc/csh.cshrc中加入如下配置

setenv GREP_OPTIONS --color=auto

某些 USB 键盘与 X 的问题

此类问题包括,在使用某些 USB 键盘时造成声音断续,控制台切换时间过长等。解决方法,在 /boot/loader.conf 中写入下面一种(不能同时都写):

a 禁用 kbdmux(4)

hint.kbdmux.0.dsiabled="1"

注意!注意!禁用 kbdmux(4) 会导致 USB 键盘在进入单用户模式后不可用。所以 USB 键盘用户最好使用下面禁用 atkbd(4) 和 atkkbdc(4) 的方法!

b 禁用 atkbd(4) 和 atkbdc(4)

hint.atkbd.0.disabled="1"
hint.atkbdc.0.disabled="1"

修改root用户shell,导致无法登录

FreeBSD机器,而其依赖的库文件libintl.so.8发生丢失,导致了root不能登陆,具体报障如下: /libexec/ld-elf.so.1: Shared object “libintl.so.8” not found, required by “bash” Connection to 192.168.21.36 closed.

解决方法如下: 1.用单用户模式进入系统; 2.扫描磁盘(此步非做不可,而且是安全的)

fsck -y

3.将文件系统重新挂载

mount -a

4.将root的默认shell切换到sh

chsh -s sh

备注:尽可能不要修改root用户的shell。以避免不必要的麻烦。实际上FreeBSD自带的shell也不错。总不能处处依赖bash吧?

详见:常见 FreeBSD 问题

查看 sysctl 具体解释

常常有教程会贴出一些 sysctl xxx.xxx.xxx,却不告诉你理由,或者你想知道中文翻译的出处。

要查看原版的英文解释很简单,添加一个 -d 参数即可,例如:

% sysctl -d kern.maxvnodes           
kern.maxvnodes: Maximum number of vnodes
% sysctl -d kern.sched.preempt_thresh
kern.sched.preempt_thresh: Min priority for preemption, lower priorities have greater precedence

更新用 MBR 方式安装的 ZFS 的启动代码(bootcode)

如果你的 ZFS 是安装在一个 MBR 的硬盘上,更新 bootcode 可能会让你比较纠结。最近执行 zpool upgrade -a 后发现机器启动不了,提示 bootcode 不支持更新后的 pool 的某些属性。虽然我按照系统提示更新了 bootcode,但某些步骤无法完成。最后在网上找到了这个偷吃步(假设你已经执行了 zpool upgrade -a)。

  • 首先将 /boot/zfsboot 拷贝到你的移动硬盘或者 USB 闪存上。
  • 然后用 LiveCD 重启机器,启动完成后挂载你的移动硬盘或者 USB 到 /mnt 上。
  • 然后执行如下命令,假设你的 zfs pool 有两个硬盘 ada0 和 ada1(而且 ada0s1a 和 ada1s1a 为 pool 的组成部分):
  • # sysctl kern.geom.debugflags=0x10(这一步好像是为了去掉警告)
    # dd if=/mnt/zfsboot of=/dev/ada0s1 count=1
    # dd if=/mnt/zfsboot of=/dev/ada0s1a skip=1 seek=1024
  • 针对 /dev/ada1s1 和 /dev/ada1s1a 重复上述操作。
  • 重启机器。

可以参看 这个页面 的原文。

请帮助编写本文

编写之前请查看该页,或者参与讨论

/data/vhosts/wiki-data/pages/doc/t/tip.txt · 最后更改: 2014/04/27 12:58 由 kapo