常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

征集“FreeBSD使用作弊条”
前往页面 1, 2, 3  下一页
 
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 技术交流
阅读上一个主题 :: 阅读下一个主题  
作者 留言
delphij
精神病


注册时间: 2002-08-07
文章: 10721
来自: San Jose, California

文章发表于: Mon 2005-04-04 19:37:56    发表主题: 征集“FreeBSD使用作弊条” 引用并回复

欢迎大家分享一些日常使用的小技巧、配置建议等等。注意:任何没有意义的跟贴,如“支持”,“反对”,“顶”等将被无条件删除。同一作弊条如果有更新,请联系作弊条作者。

我来开个头:

问:如何让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

_________________
BSD是独立的一蹴,我们有自己的圈子,我们不以商业驱动,追求完美是我们的源动力,任何不好的代码都不能在这里存活。

天下没有白费的努力。成功不必在我,而功力必不唐捐。
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页
gvim
半仙


注册时间: 2005-01-06
文章: 20

文章发表于: Mon 2005-04-04 20:00:44    发表主题: 引用并回复

总舵主,我想提个意见,能不能让大家在写出tips的同时,稍微解释一下为什么这样做,让我们这些菜鸟,可以知其然也知其所以然。

比如说 set prompt = '[%B%n@%m%b] %B%~%b%# ',为什么可以产生[delphij@spirit] ~这样的提示符?那一串[%B%n@%m%b] %B%~%b%#应该怎样解释呢?
因为很少有资料说为什么这样,所以只好厚脸皮问问了 Embarassed Embarassed

引用:
delphij回复:这些通常可以在好男人man(1)那里找到答案。
返回页首
阅览会员资料 发送站内信件
Howard
道士


注册时间: 2003-12-16
文章: 785
来自: 北京

文章发表于: Mon 2005-04-04 21:14:29    发表主题: 引用并回复

问:为什么我非得在这里学习tips?
答:因为你安装freebsd是总是不装games包,而fortune程序在games包里,而tips是由fortune程序生成的,而shell会在你每次登陆都送你一条tip.
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页 MSN Messenger
Howard
道士


注册时间: 2003-12-16
文章: 785
来自: 北京

文章发表于: Mon 2005-04-04 21:15:05    发表主题: 引用并回复

问:为什么有些人(delphij)推崇csh而Howard却推崇用bash?
答:因为sh是各个*nix中最兼容的shell,而sh的真名是bsh,而bash是b(Again)sh,而业界通用的shell脚本多是用sh格式的语法,而写shell脚本应该尽量写得兼容,而sysadmin需要经常写shell脚本,而Howard曾经是sysadmin,而......
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页 MSN Messenger
Howard
道士


注册时间: 2003-12-16
文章: 785
来自: 北京

文章发表于: Mon 2005-04-04 21:31:18    发表主题: 引用并回复

问:关键的服务程序为什么不用ports安装?
答:关键的服务程序如:apache,php,mysql,bind,MTA等大多是激进地项目组织在维护,这些项目组的工作进度当然要领先于freebsd的ports组的进度。另外ports二次包装了configure程序的参数,但又不是完全完整地映射,以至于个别的configure参数无法通过ports传递到原始程序包的编译环境中。安装其他的程序如:autoconf,glibc,各种shell,libiconv,perl-xx等应尽量用ports装,因为这些程序更新速度慢,但依赖性又较复杂,用ports安装正合适。
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页 MSN Messenger
Howard
道士


注册时间: 2003-12-16
文章: 785
来自: 北京

文章发表于: Mon 2005-04-04 21:49:56    发表主题: 引用并回复

问: 如何用简易的方式快速学习freebsd系统的操作命令?
答: 在bash里,连按两下tab键,既列出了所有的命令(如果嫌多可以用"a-tab-tab","b-tab-tab"分别列出)。(csh里的操作方法delphij教过)然后看哪个命令是不会用的,不懂的,没见过的,就 man 那个命令,但却只看第一页.这样全部坚持下来,你就了解的整个系统都"能"做什么了。以后遇到一个问题,你自然就知道freebsd能不能做;具体到真要去做的时候在去详细地看man.
这样还可以帮助你了解各种*nix之间的差异。
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页 MSN Messenger
dryice
道士


注册时间: 2003-04-30
文章: 535

文章发表于: Mon 2005-04-04 22:18:16    发表主题: 引用并回复

我记得原来有位老大收集了不少的tip
还专门做了一个页面还是project
应该就在这几个CN的BSD站上
一时找不到了
资源合并如何?

引用:
delphij回复:hd老大的机器遭遇了不幸,所以我们决定重新发起和建立新的作弊条计划。

_________________
http://dryice.name
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页 AIM
evil_knight
半仙


注册时间: 2004-01-20
文章: 64

文章发表于: Mon 2005-04-04 22:51:40    发表主题: 引用并回复

引用:
问:关键的服务程序为什么不用ports安装?
答:关键的服务程序如:apache,php,mysql,bind,MTA等大多是激进地项目组织在维护,这些项目组的工作进度当然要领先于 freebsd的ports组的进度。另外ports二次包装了configure程序的参数,但又不是完全完整地映射,以至于个别的configure 参数无法通过ports传递到原始程序包的编译环境中。安装其他的程序如:autoconf,glibc,各种shell,libiconv,perl- xx等应尽量用ports装,因为这些程序更新速度慢,但依赖性又较复杂,用ports安装正合适。


我想你有几十台服务器干的都是差不多的事情时,你就会放弃不用ports的想法了,呵呵!ports很方便,提供的软件都很稳定而且功能并不比新版本落后!有时追新是要付出代价的!呵呵!
返回页首
阅览会员资料 发送站内信件
delphij
精神病


注册时间: 2002-08-07
文章: 10721
来自: San Jose, California

文章发表于: Mon 2005-04-04 23:06:32    发表主题: 引用并回复

问:使用port来安装软件的理由是什么?
答:ports是FreeBSD推荐的安装方式,它提供了依赖关系检查、自动安全审计(portaudit)、更新等多种功能。此外,还有一些其他理由:
a) 并不是每一个开发人员都了解FreeBSD,但是每一个ports committer都了解。他们可以帮助那些第三方软件的开发者将软件更好地运行在FreeBSD上。
b) 几乎每一个port都符合hier(7)标准。你可以轻易地找到文件。
c) 可以完整地卸载port,但手工安装的不行。
d) port出了问题你可以去邮件列表里抱怨port有问题,手工安装一个人一个办法,没人知道你的问题是什么。
e) FreeBSD的POLA政策保证了绝大多数情况下ports的使用方式的延续性(阅读ports/UPDATING基本上不会遇到大的困难)

_________________
BSD是独立的一蹴,我们有自己的圈子,我们不以商业驱动,追求完美是我们的源动力,任何不好的代码都不能在这里存活。

天下没有白费的努力。成功不必在我,而功力必不唐捐。
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页
delphij
精神病


注册时间: 2002-08-07
文章: 10721
来自: San Jose, California

文章发表于: Mon 2005-04-04 23:11:31    发表主题: 引用并回复

问:bash, sh, csh哪一个更好?我是否可以把普通用户或root的shell改为bash或者ksh?
答:答案是,习惯哪个哪个就更好。唯一要注意的一点是,尽量不要改变root的shell,特别是要避免使用第三方的shell,因为这会在升级时带来麻烦。

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

_________________
BSD是独立的一蹴,我们有自己的圈子,我们不以商业驱动,追求完美是我们的源动力,任何不好的代码都不能在这里存活。

天下没有白费的努力。成功不必在我,而功力必不唐捐。
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页
itjiang
道童


注册时间: 2002-10-31
文章: 292

文章发表于: Tue 2005-04-05 10:00:26    发表主题: zsh的提示符修改 引用并回复

路径 .zshrc
export PROMPT='%/>'

other as:

PROMPT='%/> '
[displays the current working directory]

/home/matt> PROMPT='%~> '
[use short form of current directory]

PROMPT='%m> '
[the first part of the hostname
(use %M for the full hostname)]

PROMPT='[%!]> '
[current history event number]
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 MSN Messenger
unix
道童


注册时间: 2003-10-08
文章: 447

文章发表于: Tue 2005-04-05 16:24:42    发表主题: 引用并回复

问: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所指定的字符
返回页首
阅览会员资料 发送站内信件
50g
道童


注册时间: 2003-08-21
文章: 260

文章发表于: Wed 2005-04-06 01:04:30    发表主题: 老大发话,拥护拥护! 引用并回复

以下是本人收集的小tips,不是原创,只是网上收集,希望对大伙有帮助!
1、在 console 下操作时,由于屏幕显示有限,有时需看前面显示的资料,这时你可:

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

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

2、 使用 pw 来管理你的帐号

在 FreeBSD 下使用 adduser 来新增帐号,有些时会满烦的,可用以下方式:

pw useradd -n <username> -g <group> -m -s /bin/csh

=> -m 代表建立使用者目录

●同时设密码

echo <password> | pw useradd -n <username> -g <group> -m -s /bin/csh -h 0

● 删除帐号

pw userdel -n <username> -r

=> -r 代表同时删除其 home 目录等相关资料

● 修改帐号

pw usermod -g <group> -s /bin/csh

PS:无法修改帐号名称

● lock 及 unlock 使用者帐号

pw lock <username>
pw unlock <username>

3、 加速你的按键速度..

相信使用 FreeBSD 的人很多都是在 console 下操作吧,有些时,要重复某一按键速度实在很慢..

另一个问题就是 cusror 的位置有些时不太明显..

可用以下方法来改善:

在 /etc/rc.conf 中加入以下资料..

keyrate="fast"
cursor="blink" 或 "destructive"

4、 一些 console 下使用的快速键..

相信大多使用 unix-like 的使用者,还是在 console 下执行你的日常维护工作吧,那有那些按键组合可帮我们提高效率呢..

以下按键皆适用于 tcsh 及 bash..

1. 快速移动光标

ctrl+a -> 到最前面
ctrl+e -> 到最后面

2. 编辑方面

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 是一般我们使用的按键..

5、 快速切换目录

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

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

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

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

6、 有关时间及时区的?#123;校

使用 FreeBSD 大多是拿来当做主机使用,那时间及时区的正确与否就非常重要了,以下介绍如何?#123;整时间及时区

● 时间?#123;整椒?br />
1. 使用 date 指令

格式 date [yymmdd]HHMM
说明:
yy 年数,如 02 代表 2002 年
mm 月份 01-12
dd 日数 01-31
HH 时数 01-59
MM 分钟 01-59

yy mm dd 皆可省略

例:

?#123;整日期为 2002-03-25
# date 022325

?#123;整时间为 14:20
# date 1420

2. 使用对时主机

# ntpdate clock.stdtime.gov.tw

这项需能连上网络,其中 clock.stdtime.gov.tw 是一标准时间的主机

● 时区的设定

1. 使用 tzsetup

2. 在 /etc/ 下有个档案 localtime,这个就是本机的时区设定档案,因此我们可用个取巧方式(不经由 tzsetup),如以下:

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

这样是不是比较快呢..

7、 如何清空档案内容..

有时我们需将一个档案内容清空,但需保留这个档案..

一般常见的用法是用文字编辑器,如 vi 将这个档案叫出来,再将其内容全部删掉,再存盘..

这样是不是有些烦呢?

有一个更好的方法,使用 true 指令..

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

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

8、 显示目录及档案 => tree

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

在 dos 中,有个 tree 指令,是不是满好用的..

其实在 FreeBSD 中也有类似的指令 => tree..

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

# cd /usr/ports/sysutils ; make install

如此会将 tree 这个指令安装在 /usr/local/bin/ 这个目录下..

使用例子:

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

# tree /usr

2. 只显示 /usr 下的目录

# tree -d /usr

详细用法请参考 man tree

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

如 tree /usr | more..

9、 如何检视档案类型

由于 FreeBSD 并没有像 dos 或 windows 般有扩展名的观念,因此要如何检查一个档案的类型呢?

用 file 吧..

语法: file <file_name>

详细用法请参考 man file

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

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

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

# history
.
..
...
10 clear
11 cd /usr/local
12 ls
13 ls etc
14 cd ~
15 clear

1. 用 up down 可用上下一个指令,或是 ctrl+p ctrl+n 亦然

2. 配合 ! 的用法,例如以下(ps: 在<...>内代表要输入的东东)

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

!<编号>
# !11 => 执行 cd /usr/local

!<指令> 可输入部份字,但前面部份需符合
# !cl
执行 15 clear 指令

!<?指令?> 输入部份字符,部份吻合
# !?etc?
执行 13 ls etc

以上指令在 tcsh 及 bash 下皆可使用,如此是不是可帮你省下许多时间..

11、 如何将 man 的档案印出来..

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

使用 col 这个指令吧..

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

# man ssh2 | col -b > ssh2.txt

12、 为何查不到正确的 ports 资料..

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

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

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

# make print-index > index.txt

2. 使用 make search key="...." 来查

3. 将 ports 内容转换成 README.html

# make readmes

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

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

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

# make index

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

不过更新 INDEX 档需要一些时间,大约 12-30 分钟..(视计算机等级而定).

13、 用 dig 及 host 来取代 nslookup

一般我们用来检查网络是否有问题,大多是用以下三个指令..

nslookup
ping
traceroute

其中 nsllokup 是用来检查 dns 的相关设定, ping 用来检查自己和对方网络是否通顺,而 traceroute 则是用来检查从自己的计算机到对方的计算机所经过的线路状况..

不过以 nslookup 而言,个人觉得不是很实用,有时我们只是想单纯的查一下某台主机或是 MX 记录,那使用 nslookup 就有点噜嗦了..

在此介绍二个好用的指令 host 及 dig,这二个指令很类似,不过效率较 nslookup 高

# host -a <主机名称> 或 <ip>

=> 输入主机名称显示 dns 正向解析的部份,输入 ip 则是显示反向(ptr)

# dig <主机名称或ip> <any a mx soa txt.. 任选一项>

如要显示 MX 记录

# dig 主机名称 mx

个人是觉得比 nslookup 方便多了,你觉得呢.. ^.^

当然功能不只这些,详情请 man dig 或 host..

14、 加快你的开机速度..

严格说起来,FreeBSD 的开机速度算满快的,不过中间会有个 10 秒的延迟时间(以便让你进入 boot 的 command prompt mode),如果你嫌这10秒还是太慢了,那你可将时间?#123;短一些..

FreeBSD 激活时会先去参考 /boot/defaults/loader.conf 档的设定,然后再参考 /boot/loader.conf,一般我们都不去?#123;整 /boot/defaults/loader.conf 这个档,而直接?#123;整 /boot/loader.conf..

只要在 /boot/loader.conf 中加上以下这一行即可

autoboot_delay="秒数" 即可,如

autoboot_delay="7" 代表7秒

这样开机是不是更快了..

另外建议,有时间可参考一下 /boot/defaults/loader.conf 这个档案的设定,其中有许多实用的设定哦..

15、 忘了 root 密码

如果你忘了 root 的密码怎么办,这在 FreeBSD 中满好解决的,请照以下 steps 来处理..

1. 进入单人模式

开机后,当出现

Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 10 seconds...

按 space(或除了 enter 以外的键) 键则会进入 command prompt mode,同时出现一个 ok ..

这时请输入 boot -s 以进入单人模式

2. 选择 sh

进入单人模式后,系统会询问你要使用那个 sh,内定是 /bin/sh ,就使用这个吧,直接按 enter 跳过

3. 将所有的硬盘分割架起来

# mount -a

4. 更改密码

# passwd

长度要在 6 个以上,输入二次

5. 重新激活

# reboot


16、 有关 kernel 的激活..

kernel 对 unix-like 系统来说,是非常重要的一环,如果 kernel 损坏或编译出了问题,可能会导致严重的后果..

FreeBSD 一向以安全著称,在这方面有什么防护的措施呢?

FreeBSD 的 kernel 是放在 / 目录下,一般会有二个

kernel
kernel.GENERIC

如果你有编译过核心(kernel)的话,则原先的 kernel 会转换成 kernel.old,新的核心会变成 kernel,也就是在 / 下的 kernel 档案如下:

kernel => 新编译过的核心
kernel.GENERIC
kernel.old => 原先的核心

那 kernel.GENERIC 是什么呢,这个是系统安装时所装好的,一般都不会变动,即使编译过核心亦然,这个档案可说是救命核心,最好不要乱动,理由如下所言..

FreeBSD 激活时,会使用 kernel 这个核心,如果这个档案不存在,则会抓 kernel.old 这个档案..

如果这二个档案不幸都不在,那怎么办..这时则会进入 command prompt mode,你必需自行输入 kernel 的名称,如

boot <kernel 名称> 如

boot kernel.GENERIC

了解以上之后,在编译核心无法正常执行时,相信各位知道如何处理了..

17、 FreeBSD 在那激活程序..

一般 FreeBSD 激活后会依序执行以下位置的程序..

1. /etc/rc.conf 这个档案内的程序,如 sendmail、sshd .. 都是在此执行,另外要注意的是,在执行这个档案之前,会先参考 /etc/defaults/rc.conf 的设定

2. /usr/local/etc/rc.d 下的一些 .sh �n,这些档案的权限都是被设定成 x ,如 apache samba .. 都是在此设定

3. /etc/rc.local 这里也可设定,如我要把 postfix 设定在此,只需在这个档案内加一行,如下

/use/local/sbin/postfix start &

加上 & ,就不会显示出讯息

4. 由 cron 所控制的一些档案,当时间到了,便会自动执行..

那心细的人可能会问, /etc/inetd.conf 内设定的呢?这些在第 1 项就执行了..

了解以上并时时注意是否有不明的程序在执行(可能是被人植入木马程序),也是日常检视系统的重要工作..

18、 加快你的主机名称查询速度..

unix-like 系统,初期都是使用 hosts 这个设定文件来做主机的查询,因此有些程序在查主机名称时,都会参照这个设定档,像 sendmail 就是一个很好的例子..

系统内定第一个是会查 /etc/hosts 这个档案,因此如果里面设定有问题,则会影响到某些程序的执行..

典型的 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.

其中第一及第二行最后一个项目是 aliases 名称(主机别名),比如我们在主机

ping cmlab.idv.tw



ping cmlab

是同样的结果..

你可把一些常用的主机加到这个项目内,如有一台 mail.cmlab.idv.tw ,假设 IP 为 61.219.230.8

则在这个 hosts 中加入以下

61.219.230.8 mail.cmlab.idv.tw mail
61.219.230.8 mail.cmlab.idv.tw.

这样就行了..

另外如果有自行架设 dns server,请注意在 /etc/host.conf 这个档案,典型的档案如下:

# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $
# First try the /etc/hosts file
hosts
# Now try the nameserver next.
bind
# If you have YP/NIS configured, uncomment the next line
# nis

由以上可以看得出来,在查询主机名称时的顺序,是先查 hosts 再查 bind 也就是 dns,你可视你的需要修改其顺序..

另外要注意的就是 /etc/resolv.conf 文件,这个是有关 dns 主机 search 的顺序,如以我的设定如下:

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

其中第一行是设定我的网域名称,第 2-4 行则是 dns 主机的设定,建议至少设二个以上,以免一个挂了,还有个备用的..

第2行是我的 dns 主机,3-4 行是 hinet 的 dns 主机..

了解以上并有正确的设定,是有助于主机的查询的及速度的提升..

19、 简单编辑你的文件档..

在 unix-like 中,标准的文字编辑器是 vi,不过 vi 对于初学者而言,并不是很容易上手..

而在 FreeBSD 中使用的是 ee ,这个文字编辑器,虽功能没 vi 这么强大,但使用简便..新手不妨初期时使用个编辑器..

其使用方式很简单,只要在 command line 下 ee 即可

# ee <要编辑的档案>
进入 ee 画面后,最上方是一些按键说明,如要取得相关的 ee 说明,可先按 ctrl+c 键,再输入 help,则会显示详细说明

有时可能只想在一个档案内加入一小部份的资料,那使用文字编辑器来处理,就显得没效率,其实我们可以利用 cat > [�n名]和 cat >> [�n名] 来做..

那这二个方式有何差异呢..

cat > [�n名] 时,如果档案不存在,则会自动产生一个档案;如档案存在则会将档案清空..

cat >> [�n名],档案不存在则自动建立此档,如存在则将所编辑的资料加在档案的最后..

举个例子,如我们要编辑 /etc/mail/access 这个是 sendmail 的 relay 设定档..

想在这个档案中加入 192.168.88.5 relay

则可用此方法(假设 access 档案已存在,故使用 cat >> .. 的方法) ..

# cat >> /etc/mail/access
192.168.88.5 RELAY
按 ctrl+d 存盘

如此则可将 192.168.88.5 relay 加到 access 的最后一行..

不过,建议大家,unix-like 的共通文字编辑器是 vi,有时间不妨好好的学一下 vi..

20、 FreeBSD 帐号及密码的注意事项

在架完 FreeBSD 后,再来就是新增人员(使用者)的资料了..

在设定帐号时,请注意以下事项:

1.其长度需在 1-16 个字符
2.使用英文小写字母、数字及 - _ 符号

在设定密码时,请注意以下事项

1. 密码可设可不设,但建议你一定要设
2. 长度最好在 6 个字以上,你知道据安全专家的说法,破解一个长度6及长度4密码,至少要多花 10 倍的时间
3. 请勿用你的生日、相关证照号码、电话..等资料,而使用大小写英文字母及混合特殊符号,如 ct!Home-12 就是一个相当不容易破解的密码
4. 长度最长我曾设到 16 位数(最大长度多少,有兴趣者可自行试试)

21、 有关系统的一些激活问题..

有时,会修改 FreeBSD 的一些设定,如一些网络参数、软件的 .conf 设定,或是 /etc/r.conf �n,那么如何让设定值生效,是否一定要重新开机呢?

这可分为三方面来说..

1. 网络相关设定,如网络适配卡、hostname .. 等,只要执行以下指令就可以重新加载你的网络设定..

# sh /etc/netstart

netstart 是一个 script 档案,执行时会去参考 /etc/rc.network。因此只要执行这个指令就能够重新激活网络设定..

有兴趣者可参考一下 netstart 及 rc.network 这二个档的内容,研究看看到底做了些什么东东..

2. 修改了 rc.conf 中其它的设定

可参考以下三个 step 来做..

. 进入单人模式
# shutdown now

. 选择 sh,造内定值即可,即 /bin/sh

. 离开单人模式
# exit

这样就会重新激活系统了..

3. 软件的设定,如一些 *.conf �n,像是修正了 apache sendmail .. 等

通常在 /etc/local/rc.d/ 这个目录中会有相关的 .sh �n,直接执行就可以了,注意的是一般要加上参数,一般的参数有以下(视软件而定会有不同)..

start 激活
stop 停止
reload 或 restart 重新激活

第二种方法就是直接使用 killall,如我们要重新激活 inetd,可用以下方法:

# killall -1 inetd

或是

# killall -HUP inetd

这样就可以重新激活这个 daemon 了

22、 保护你的档案
在系统中,有许多档案或一些设定档是非常重要的,加上 FreeBSD (或是一般 unix-like)系统都没有类似 ms 的垃圾回收桶的功能,万一不幸删掉(或修改)某个重要的档案,可能会造成不小的困扰..

虽然,FreeBSD 对于档案的权限设定的非常严密,但有些时候,我们以 root 身份工作,仍会有此风险..

那要如何避免这种情形发生或是保护某些重要的档案呢?

我们可以用 chflags 来达成这个目的,顾名思义, chflags 是由二个字所组成,即 change 和 flags(档案的旗标)..

例如我们要保护 /etc/inetd.conf 这个档案,以免误删或被修改,则指令如下:

# chflags schg /etc/inetd.conf

这样就可以保护这些档案,如要显示这些档案的旗标(flag),可用 ls 来看..

# ls -lo /etc/inetd.conf => l 是小写的 L

-rw------- 1 root wheel schg 47 Mar 28 21:29 inetd.conf

要解除旗标设定,可用 unschg,也就是在 schg 前加 un ,如:

# chflags unschg /etc/inetd.conf

大部份我们进入主机都是以 root 身份执行,因此稍不小心,可能就..因此建议将一些重要的档案及设定档设定为 schg flags,以保护档案..

如 /bin、 /sbin、 /etc/.conf、 /usr/lcaol/etc/*.conf .. 这些档案最好都是定成 schg 旗标..

chflags 详细用法请参考 man chflags..

23、 谈谈软件的安装路径..

FreeBSD 对于档案目录的观念非常重,什么样的档案要放在那个目录都有规定,这也是有别于其它 unix-like 系统..

一般我们将软件安装分成二个部份,在这里来探讨一下软件到底都安装到那去了..

在安装软件时,通常会安装诸如 执行档、设定档、man file、doc 文件..

1. 安装系统时所安装的软件

执行档通常装在 /bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec 下
设定文件通在在 /etc 目录下
man file 通常在 /usr/man 或 /usr/share/man
doc 文件通常在 /usr/share/doc 下

2. 经由 package 或 port 安装的软件

执行档通常装在 /usr/local/bin、/usr/local/sbin、/usr/local/libexec 下
设定文件通在在 /use/local/etc 目录下
man file 通常在 /usr/local/man ..
doc 文件通常在 /usr/share/doc 下

以上并不是绝对的(所以我用通常..^.^),因为有些特殊情况需视软件而定..

如此有时可能会造成些许困扰,因为如 ssh 、 bind .. 大多是在系统安统时就安装的,那如果升级新版时怎么办..

由于 FreeBSD 找寻执行档时会依照 $PATH 这个环境变量找寻,因为 /bin、/sbin、/usr/bin、/usr/sbin 比 /usr/local/bin 或 /usr/local/sbin 先,所以会先执行..也就是先抓到旧版的执行档..

因此在更新时要注意这种情况,以免更新了还是执行旧的程序..

那么如何看安时程序时的相关档案的安装路径呢?通常有以下方法

1. 看 port 的 pkg-plist �n
2. 有时用 man [执行档名称] 可看到一些重要档案的位置
3. 看说明文件,通常在 /usr/local/share/doc 目录下

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

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

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

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

ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255"

其中的 alias0 就是加装的第一个 ip,如要设定多个可在此修正,如 alias1、alias2.. aliasN

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

# /etc/netstart

25、 简单的加密你的资料
在实务上我们常需要将某些敏感的资料加密,一般我们可使用 pgp 或在这里所介绍的 crypt 来达到这个功能..

crypt 是透过 | 这个管道转换功能及密码设定来达成加密的功能,也就是说将你所设的密码当做加密产生的种子随机数..

先说明一下 crypt 的使用方法:

crypt [-s] [-k] [password]

一般 -s 及 -k 参数可不予理会,password 是加密或解密的密码

在这里假设我们先产生一个 test.txt 档,内容为 test,然后用 1234 这个密码加密

# cat > test.txt
test
按 ctrl+d 存盘

先看看 test.txt 内容

# more test.txt
test

将 test.txt 这个档案用 1234 这个密码加密,需配合管道 | 及转向符号使用,加密后的文件名称为 test2.txt

# cat test.txt | crypt 1234 > test2.txt

如此则会产生一个加密后的档案 test2.txt,另外密码可先不输入,按 enter 键后会显示 enter key: 让你输入密码

我们来看看加密后的档案内容,原先是 test 结果变成了:

# more test2.txt
e<A8>&<A7>h => 已经不是原来的 test

接着来将 test2.txt 解开,如下,假设解开后的档名为 test3.txt:

# cyrpt 1234 < test2.txt > test3.txt

以上的意思是

1234 加密时的密码
< test2.txt 将加密的档案转给 crypt 处理
> test3.txt 解密后的资料转向到 test3.txt

再显示 test3.txt 的内容是否和原来一样,即 test

# more test3.txt
test


PS:

1. 加密或解密时档名如和源文件一样,则会将原来的档案取代
2. 另有一个指令 enigma 和 crypt 用法完全一样

参考资料 man crypt

26、用 telnet 简测你的服务器(Server)有无在跑

有时你可以用 telnet 测试你的 Server 有无正常的 run
例如:我要查看 ftpd 有无在跑
可下指令:# telnet localhost 21
若跑出类似以下的讯息, 表示有在跑
--------------------------------
Trying 127.0.0.1...
Connected to localhost.ahkun.
Escape character is '^]'.
220-=(<*> )=-.:. (( Welcome to PureFTPd 1.0.11 )) .:.-=(<*> )=-
220-You are user number 1 of 50 allowed
220-Local time is now 18:52 and the load is 0.06. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.

若跑出以下的讯息, 表示没在跑
------------------------------------------------
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host

同理你也可以用:
telnet localhost 25 测 stmpd
telnet localhost 110 测 pop3d

结论:
正确来讲是用 telnet 测 port 啦~

27、 如何防止别人登录到你的计算机

有时,我们并不想让别人直接登入到我们的主机或是只想限定某些人可使用,如 telnet、ssh..

或者是开放了些服务,如 ftp、smtpd ..等,由于这些都必需在主机端建有帐号,因此防止不相干的人登入到你的主机是非常重要的,也是一个安全上的考量..

但一般限定的方式都是使用 ip 或是 domain 的方式,那么有无方法可解决这个问题呢?

答案是可从 /etc/login.access 来着手,这个档案就是限定 login 的..

一个典型的设定如下,例如我们想限定只有 root 及 使用者 john 可登入到主机(含local 及 remote):

-:ALL EXCEPT root john:ALL

可分为三个项目,每个项目间以 : 分隔,说明如下:

1. + 或 - 代表允许或禁止
2. 设定的使用者或群组,可用 ALL EXCEPT 来强化限定的范围

3. 限定的来源,如 ALL 代表全部、61.219.230. 、LOCAL、console、.bad.com ..等

适当的设定,可让你的系统更加的安全..

详细用法可 man login.access..


28、 一个 ./ 的技巧

众所周知,在 nix-like 中执行目前目录中的可执行文件时,必需加上 ./ 这二个符号,很多 unix-like 的初学者都会感觉较不习惯,因为在 dos 或 windows 的 dos 窗口中并不是如此..

其实在 unix-like 中如此设定是有其安全考量的,在使用指令或执行文件时,一般是建议使用完整的目录,例如要使用 ls,则如下:

# /bin/ls

当然,你直接输入 ls 亦可正确的执行,这是因为你所使用的 shell 中环境变量 $PATH 的因素..

你可键入 echo $PATH,来看目前 $PATH 的设定,当我们执行一个指令时,系统会依照这个环境变量来搜寻这个执行档并加以执行..

内定 shell 不会将目前目录 . 加到 $PATH 中,因此如果你想在目前目录执行这个目录下的执行文件而不想加上 ./ 时,可在你的 shell 中将 . 加入..

如一般在 FreeBSD 都是使用 tcsh,你可编辑个人 home 目录下的 .cshrc �n set path = ( ........ ,在此加入 . 即可..

记得重新退出 shell 再登录,以便让你的新设定生效.

29、在提示列秀出 [使用者]目前工作目录 (可以少打很多次pwd)

# cd /root
编辑 .cshrc

# set prompt="'hostname -s'# " ### 找到这一行并 mark 起来
set prompt = "[%n]%/# " ### 新增此行并存盘离开

# logout

login: root ....重新登入

ps.其它user id 是否可照办? 我还没试过哩..刚装freebsd而已

30、rm 是 DEL 一个档案
rm -r 是 DEL 整个目录

31、介绍一些一些有用的参数(注意大小写)..

%B 代表高亮度
%n 代表用者名称
%m 主机名称
%/ 目前的目录

一般我们可能比较在意以上几点,如我要管理好几台 FreeBSD 主机,那么以上几个参数就很重要了..

举个实例来说,如我想把我的 prompt 改成这样,而且要高亮度显示:

使用者名称@主机名称[目录名称]>

则 prompt 的设定应该是这样的..

set prompt = "%B%n@%m[%/]> "

注意 = 左右都要有一个空白,否则会出错,导致无法登入,另外如果要统一所有使用者的 prompt 的话,除了更改 /home/使用者/.cshrc 外,最好也在 /etc/csh.cshrc 中设定这一行,另外如要新增新用者也用这种提示,则请在 /usr/share/skel/dot.cshrc 中也加上(或改成)这一行,这是因为:

tcsh 在使用时会先参考 /etc/csh.cshrc 这个档案,再依 user 去抓其 home 目录下的 .cshrc,而设定 /usr/share/skel/dot.cshrc 是让你新使用者时,自动将其 prompt 设定成 set prompt = "%B%n@%m[%/]> "

这种设法,当你在管理多台主机及切换目录时,就不易搞错而发生一些惨剧
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页
evil_knight
半仙


注册时间: 2004-01-20
文章: 64

文章发表于: Wed 2005-04-06 15:26:48    发表主题: 引用并回复

我也来一个:
Q:添加用户时怎样自动建立用户目录,同时设定密码,同时拷贝系统管理员设定的个性文件,如 .bashrc .profile等
A:
echo <password>|pw useradd <username> -g <group> -s <shellpath> -m -k /etc/skel -h 0
返回页首
阅览会员资料 发送站内信件
geel
道士


注册时间: 2003-09-09
文章: 757

文章发表于: Wed 2005-04-06 22:12:30    发表主题: 引用并回复

我来说一些比较实用但是曝光率比较低的:

问:更新了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

问:怎么看滚上去的字?
答:按scroll lock,然后上下键翻动(这个最经典,因为没有用过这类系统或者没有做过图形设计的人,几乎100%不知道这个键是干吗的)

技巧:
・迅速建立文件:touch filename
・敲错字滴滴滴的烦死了,还总被家里人发现而强制睡觉: set nobeep(tcsh)

问:没有装freebsdtips,怎么看那些技巧?
答:刷新本贴,看我的签名 Laughing


最后进行编辑的是 geel on Thu 2005-04-07 08:04:26, 总计第 1 次编辑
返回页首
阅览会员资料 发送站内信件 MSN Messenger
liude
半仙


注册时间: 2004-04-23
文章: 34
来自: HUST

文章发表于: Wed 2005-04-06 23:24:52    发表主题: 引用并回复

Q:怎样在一个新的Tab中打开新链接而不是在一个新的浏览器窗口中
A:点击超链接的同时按住Ctrl键不放
(说明,我的浏览器是 GNOME自带的Eliphany)
-----
另外请教一下xsim中打字时怎么翻页
返回页首
阅览会员资料 发送站内信件
quakelee
道童


注册时间: 2002-09-16
文章: 273

文章发表于: Thu 2005-04-07 01:03:20    发表主题: 引用并回复

C shell
如何用快捷键删掉一个词(上一个空格到下一个空格或者行尾之间的部分)?
ctrl + w
如何用快捷键清屏?
ctrl + l
如何用快捷键推出shell?
ctrl + d
如何用快捷键挂起前台进程
ctrl + z
如何将挂起进程送入后台?
bg
如何将后台进程或者挂起进程调回前台?
fg
如何自动补全上次使用的某个命令?
敲命令的前几个字母然后按上箭头。
(这个功能是bash所没有的,也是我不爱用bash的主要原因,bash没有旧命令自动补全的能力,你要想找到你上次执行这个命令的所有部分,需要按无数次上箭头,csh能够满足我用bash时的所有常用功能,而反之bash不行,这就是为什么用csh而不是bash的原因)
还有个比较搞笑的快捷键ctrl + t,作用是调换光标之前两个字符的顺序,开始觉得比较BT,仔细想想也有道理,因为我们经常会把ls敲成sl,cd敲成dc....

csh or bash?
bash恐怕是和sh区别最大的shell了,而且频繁的更新造成了潜在的不稳定因素,如果你是一个sa的话还是用csh吧,如果你是linux developer,那随你便。

其他
如何在向屏幕回显的同时输出一份到一个文件里去?
netstat 1 | tee log

freebsd 5.3 and up
我修改了rc.conf中的网络设置如何立刻生效?
/etc/netstart

像apache,mysql等应用是否手动安装会比Ports装更灵活而且快捷?
确实灵活而快捷,但是有几个生产系统一个月会升级十七八次?为什么不等ports更新呢?你有没有想过ports更新略晚的原因呢?maintainer是需要时间来测试这个应用更新后是不是会造成意外的问题的。如果你想拥有一个安全而且稳定的apache还是用ports装吧,因为一些潜在的安全问题和不稳定的问题ports里带的补丁会修正,并且将一些在FreeBSD上造成问题的部分移植。我连给这些应用写补丁都用ports,因为写完了,我可以随时放入ports的补丁目录里,生成新的package。不用Ports就好像明明有艘快艇停在你身旁,你非要游过去一样。
“以至于个别的configure参数无法通过ports传递到原始程序包的编译环境中。”特殊的ports的Makefile不包括的选项,你可以直接写入该ports的Makefile里面,我不觉得这有什么困难的。

_________________
看到/etc/rc.subr,才发现自己真的不会用shell。看到bsd.*.mk,才发现自己根本不懂makefile
返回页首
阅览会员资料 发送站内信件 MSN Messenger
Helvin
道士


注册时间: 2003-10-24
文章: 574

文章发表于: Thu 2005-04-07 01:10:16    发表主题: 不好意思,来晚了 引用并回复

Q:To run a daemon as non root

A:#su -f -m nobody -c "command args"



Q:清空文件内容

要清空某些文件如日志文件的内容,千万不要使用rm删除文件然后再创建一个新的空文件,因为在两次操作的间隔,系统可能需要访问该文件。下面是清空文件内容的安全方法:

A:$ :>file-to-be-cleared

_________________
2^p-1
返回页首
阅览会员资料 发送站内信件
Helvin
道士


注册时间: 2003-10-24
文章: 574

文章发表于: Thu 2005-04-07 01:12:06    发表主题: 引用并回复

Q:分割大文件

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

_________________
2^p-1
返回页首
阅览会员资料 发送站内信件
quakelee
道童


注册时间: 2002-09-16
文章: 273

文章发表于: Thu 2005-04-07 01:12:34    发表主题: 引用并回复

接下来补充一些X的tips

我装好了gnome,但是starx之后还是xterm?
需要在你的用户目录中建立一个叫做.xinitrc的文件,内容是
exec gnome-session

我如何配置X?
最简单快捷的办法就是
/usr/X11R6/X -configure
会生成一个xorg.conf.new的文件,那个文件会帮助你配置好显卡和鼠标键盘,你需要对屏幕设置做一些修改,然后就可以用了

我进入了X如何在不退出的情况下切回控制台?
通常我们在控制台下可以通过alt + f1~f8来切换8个控制台。但是如果进入了X,需要按住ctrl + alt + f1~f8切换,切出来以后继续按alt + f1~f8,切回X按alt + f9。
我试图退出X,但是它不理我怎么办?
如果X状态还正常的话按住ctrl + alt + backspace就可以杀死它。但是如果X挂了,这样也是杀不死的,只有按照上面的方法切换出来kill -9

_________________
看到/etc/rc.subr,才发现自己真的不会用shell。看到bsd.*.mk,才发现自己根本不懂makefile
返回页首
阅览会员资料 发送站内信件 MSN Messenger
从以前的文章开始显示:   
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 技术交流 论坛时间为 北京时间
前往页面 1, 2, 3  下一页
1页/共3

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标