FreeBSD小技巧

tips
为什么有些软件编译不了?

因为有些软件依赖/usr/src,所以你装系统的时,在安装内容里应选上src

——————————————————————————–
如何让FreeBSD像RedHat那样在ls时显示多种颜色的目录?

在/etc/csh.cshrc里面加入:

setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
然后,执行:

sed -i.bak -E s/set\ prompt/#set\ prompt/g /root/.cshrc
并重新登录.

——————————————————————————–

如何让FreeBSD的csh像bash那样按tab列出列出无法补齐的候选文件?

标准的方法是按Ctrl+D。但如果一定要用tab的话,在/etc/csh.cshrc中加入:

set autolist

——————————————————————————–

如何让FreeBSD的csh显示类似[delphij@spirit] ~这样的提示符?

在/etc/csh.cshrc中加入:

set prompt = ‘[%B%n@%m%b] %B%~%b%# ‘
然后,执行:

sed -i.bak -E s/set\ prompt/#set\ prompt/g /root/.cshrc

——————————————————————————–

——————————————————————————–

如何让普通用户也拥有类似root用户那样的命令行编辑能力?

在/etc/csh.cshrc中加入:

bindkey “^W” backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward

——————————————————————————–

——————————————————————————–

使用port来安装软件的理由是什么?

ports是FreeBSD推荐的安装方式,它提供了依赖关系检查、自动安全审计(portaudit)、更新等多种功能。此外,还有一些其他理由:

并不是每一个开发人员都了解FreeBSD,但是每一个ports committer都了解。他们可以帮助那些第三方软件的开发者将软件更好地运行在FreeBSD上
几乎每一个port都符合hier(7)标准。你可以轻易地找到文件
可以完整地卸载port,但手工安装的不行
port出了问题你可以去邮件列表里抱怨port有问题,手工安装一个人一个办法,没人知道你的问题是什么
FreeBSD的POLA政策保证了绝大多数情况下ports的使用方式的延续性(阅读ports/UPDATING基本上不会遇到大的困难)

——————————————————————————–

bash, sh, csh哪一个更好?我是否可以把普通用户或root的shell改为bash或者ksh?

答案是,习惯哪个哪个就更好。唯一要注意的一点是,尽量不要改变root的shell,特别是要避免使用第三方的shell,因为这会在升级时带来麻烦

改变shell官方的作法是chsh(1),然而你也可以用vipw或另外一大打工具来完成类似的工作。

——————————————————————————–

tcsh(csh兼用) 提示符的变量常用的都有哪些?

! 和%h一样
%B 开始粗体模式
%b 结束粗体模式
%c 当前工作目录名称的最后部分
%c2,%c3等等 当前工作目录名称的最后两个、三个(等等)组成部分
%C 跟%c类似,但是使用长形式的目录名称
%d 本周的当天
%D 今天是当月中的第几天
%h 当前命令的历史记录编号
%l shell的当前控制终端
%L 清除从提示符末尾到下一行的所有内容
%m 机器的主机名称
%M 机器的完全符合规范的域名
%n 用户名
%p 用精确格式(包括秒)显示的12小时制时间
%P 用精确格式(包括秒)显示的24小时制时间
%S 开始标准输出格式
%s 结束标准输出格式
%t 以12小时制格式显示时间
%T 以24小时制格式显示时间
%U 开始下划线模式
%u 结束下划线模式
%w 当前月的名称
%W 当前月的序数
%y 以2位格式表示的年
%Y 以4位格式表示的年
%% %字符
%! 跟%h相同
%@ 跟%t相同
$# 扩展到>供常规使用,如果用户正以root身份运行的话,就扩展到#

%/ 当前工作目录的完整名称
%- 以短格式表示的当前工作目录
C 跟C匹配的控制字符:例如G代表Ctrl+G

\a 使tcsh在任何时候显示提示符时嘟嘟响
\e 终止的escape符0x1B
\f 终止的换页符
\n 在这个位置开始一个新行
\r 回车符
\t Tab制表符
\v 垂直制表符
\nnn 由八进制数字nnn所指定的字符

——————————————————————————–

在 console 下操作时,由于屏幕显示有限,如何查看前面显示的资料?

按一下 Pause or Scroll Lock键后,则可利用 PageUp PageDown Up Down Home End 等键来看前后显示的资料

再按一下 Pause or Scroll Lock则可回复等待输入画面

——————————————————————————–

加速按键速度和改善cusror 的位置有些时不太明显

在 /etc/rc.conf 中加入:

keyrate=”fast”
cursor=”blink或destructive”

——————————————————————————–

——————————————————————————–

一些 console 下使用的快速键

以下按键皆适用于 tcsh 及 bash

快速移动光标
ctrl+a -> 到最前面

ctrl+e -> 到最后面

编辑方面
ctrl+d -> 删除光标所在字符

ctrl+w -> 删除光标所在字前面的字符

ctrl+u -> bash:将光标前所有的字及字符删掉,tcsh:删除所有字

ctrl+k -> 将光标后所有字符删掉

ctrl+b -> 下个字符

ctrl+f -> 前一个字符

ctrl+m -> 和按下 enter 的结果一样

ctrl+h -> 和按下 del 或 backspace 键一样

del 或 backspace -> 删除前一个字符

如果对按键有研究兴趣者,不妨参考 /usr/share/syscons/keymaps/ 这个目录,其中 us.iso.kbd 是一般我们使用的按键

——————————————————————————–

——————————————————————————–

如何快速切换目录?

在 FreeBSD 中常常需要切换目录,有时目录名称较长、或是有大小写、或是只记得前面几个字,怎么办?

其实只要输入部份字再加上 * 这个符号就可以了.

如我们要切换到 /usr/local/ 这个目录,只需输入 cd /usr/lo* 就可以了.

如果输入 cd /usr/l* 会如何呢?则会进到 /usr/lib/ 这个目录,这是因为 shell 找到第一个符合的条件便停止了.

——————————————————————————–

——————————————————————————–

如何清空档案内容?

如我们要将 /var/log/httpd-access.log 清空,则使用以下指令

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

——————————————————————————–

——————————————————————————–

显示目录及档案[tree]

有时需显示某个目录下所有的目录及档案,虽使用 ls 可达到部份功能,但并不是很方便.

以下我们就透过 ports 来安装 tree

#cd /usr/ports/sysutils ; make install clean
如此会将 tree 这个指令安装在 /usr/local/bin/ 这个目录下.

使用例子:

显示 /usr/ 下的目录及档案

#tree /usr
只显示 /usr 下的目录

#tree -d /usr
详细用法请参考:

#man tree
PS:可透过管道 | 及 more 来显示

#tree /usr | more

——————————————————————————–

——————————————————————————–

重复使用先前使用过的指令

你可以使用以下的方法来重复使用先前使用过的指令:

例如,我们先用 history 显示先前输入的指令:

# history
.
..

10 clear
11 cd /usr/local
12 ls
13 ls etc
14 cd ~
15 clear
用 up down 可用上下一个指令,或是 ctrl+p ctrl+n 亦然
配合 ! 的用法,例如以下(ps: 在<...>内代表要输入的东东)

!!

# !! => 重复执行上个一个指令
!<编号>

# !11 => 执行 cd /usr/local
!<指令> 可输入部份字,但前面部份需符合

# !cl => 执行 15 clear 指令
! 输入部份字符,部份吻合

# !?etc? =>执行 13 ls etc
以上指令在 tcsh 及 bash 下皆可使用,如此是不是可帮你省下许多时间.

——————————————————————————–

——————————————————————————–

如何将 man 的档案印出来?

man 是大家学习 FreeBSD 的最佳资料参考来源,但在显示器上看到底不是很方便,有没有方法转成一般的文件档案呢?

使用 col 这个指令吧.

例我们要将 ssh2 转成 ssh2.txt,则使用以下语法:

# man ssh2 | col -b > ssh2.txt

——————————————————————————–

——————————————————————————–

为何查不到正确的 ports 资料

在 /usr/ports/ 下有着几千个 ports 的安装资料,有时我们可使用以下方式来查相关的 ports.

以下都是在 /usr/ports/ 这个目录下执行.

先将 ports 资料转换成一个文字文件,如 index.txt

# make print-index > index.txt
使用 make search key=”….” 来查
将 ports 内容转换成 README.html

# make readmes
用以上方法,可很容易的查到相关的 ports 资料,但很奇怪的是,为何我更新一个 ports 的资料后(或 ports tree),为何会查不到,查到的仍然是旧的资料.

原来,在 /usr/ports/ 中有一个 INDEX 檔,以上的查询方式都是在这个 INDEX 档中查询,当你更新 ports 资料时,这个 INDEX 档并不会随之更新.

所以为了查询方便,我们需以手动的方式来做.

# make index
做完后,再更新 index.txt 及 README.html.

——————————————————————————–

——————————————————————————–

如何在 FreeBSD 同一片网硌卡加一个 ip 地址

有的时候,需要在同一片网络卡上加 ip 以达到一些特殊的要求.

在 FreeBSD 这是非常简单的,假设原先网络卡的 ip 是 211.211.211.211,想加一个 211.211.211.212,使用的是 rl0 这片网络卡,则做法如下.

在 /etc/rc.conf 加上这一行

ifconfig_rl0_alias0=”inet 211.211.211.212 netmask 255.255.255.255″
其中的 alias0 就是加装的第一个 ip,如要设定多个可在此修正,如 alias1、alias2.. aliasN

重新激活网络卡,执行 /etc/netstart

# /etc/netstart

——————————————————————————–

——————————————————————————–

更新了rc.conf,如何生效?

#cd /etc && sh rc

——————————————————————————–

——————————————————————————–

修改更新.cshrc(或者类似文件)之后如何不退出登录立即生效?

# source ~/.cshrc

——————————————————————————–

——————————————————————————–

我新装了程序在 path (/usr/bin /usr/local/bin etc.,)路径中,如何不重新登录就能直接使用?

#rehash
———————————————–
csh中如何快速在命令行中移动?

移动到行首:a,行尾:e,清除:^u

——————————————————————————–

——————————————————————————–

如何看一个文件而不需要先解压?

#zcat

——————————————————————————–

——————————————————————————–

我总是工作到很晚而忘了睡觉的时间怎么办?

#leave +hhmm(hh小时,mm分钟)

——————————————————————————–

——————————————————————————–

如何清屏?

#clear

——————————————————————————–

——————————————————————————–

分割和合并文件

$ split -b 650m file # 将大文件分块成多个650MB的小文件
$ cat x* >largefile # 将所有小文件合并成一个大文

——————————————————————————–

为什么改了.xinitrc但是当我使用xdm/gdm/kdm时没有效果

应该改.xprofile,或者直接在.xprofile中source .xinitrc

——————————————————————————–

如何锁定终端登陆?

$lock -p
当你使用终端登陆时想暂时离开而又不想logout,那么可以用lock -p. 当你返回时输入密码就可以.

——————————————————————————–

双系统中 重装Windows后怎样再进FreeBSD

在能进FreeBSD时先备份好FreeBSD的引导文件

#dd bs=512 count=1 if=/dev/ad0s3 of=bootsect.bsd ##说明:/dev/ad0s3是你的FreeBSD所在分区,用mount命令可以查看
拷贝文件

#cp bootsect.bsd /mnt/c/ ##说明:/mnt/c/是你挂载的Windows所在分区
修改Windows的启动文件boot.ini,在最后一行加入”C:\bootsect.bsd=”FreeBSD” ” 说明:这里假设你的Windows装在C盘

——————————————————————————–

在终端(命令行)下怎么使用鼠标进行复制,粘贴?

按住左键拖动进行复制,在光标所在的地方点击鼠标中键(也就是鼠标滚轮,假如有)进行粘贴,X下也同样适用

参考文章
freebsdchina.org的FreeBSD使用作弊条

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据