Friday, June 01, 2007

VI: 一旦拥有,别无所求

"To me, vi is Zen.
To use vi is to practice zen.
Every command is a koan.
Profound to the user,
unintelligible to the uninitiated.
You discover truth every time you use it."
--reddy@lion.austin.com

"对我来说,vi就是禅。
用vi就是坐禅。
每一个命令就是一个心印
对皈依者意义深远
对不了解者不可捉摸
每一次使用都会有新的发现"

VI是所有*NIX类系统都内置的一个命令行文本编辑软件,功能强大,命令繁多。初学时很难上手,但是一旦你熟悉之后,相信你不会再想使用其他的编辑软件。

本篇假定你已经熟悉VI的一些基本命令,如:
vi httpd.conf #打开一个名为httpd.conf的文档,如果不存在,将在当前目录下创建此文档;
输入“:wq”:存盘推出命令。
输入“:q!”:不存盘,强制推出
ESC:在命令模式与输入模式之间切换
i,I或者o等:插入文本命令........

VI之一:光标移动篇

这里我们先学习一下如何在一篇打开的文档中进行光标移动。

1. 方向键h,j,k,l.
h: 将光标向移动一个字符
j: 将光标向移动一个字符
k: 将光标向移动一个字符
l: 将光标向移动一个字符

这四个键相当于方向键,另设它们的好处是:你的手指不必离开正常的输入位置

2. 按字符移动的命令
fx: 移动光标至当前行下一个x字符处;使用;来重复上一次的f移动
tx: 同fx,但是移动光标至x字符前,而不是x字符上
Fx:通fx,但反方向移动

w:前移光标至下一个单词第一字符
W:前移光标至下一个长单词第一字符
e: 前移光标至下一个单词最后字符
E: 前移光标至下一个长单词最后字符
b: 前一单词第一字符
B: 前一长单词第一字符
(vi 按空格或标点符号分隔单词,按空格或新行来分隔长单词)

(: 到句首
): 到句尾

0: 到行首
^: 到行首第一字符
$: 到行尾

{: 到段首
}: 到段尾

*: 读取光标当前所在位置的字符,并将向前移动至下一个同样的字符
#: 和*功能相同,但反方向移动光标

Ctrl+F: 向前滚屏
Ctrl+B: 向后滚屏
H,M,L: 移动光标至屏幕的顶端,中间,底端

G: 移动光标至文档最后一行
numG: 移动光标至第num行

/text: 从光标处开始,向前搜索"text"字串
?text: 同上,但搜索方向相反

同时也发现一个图片vi教程,讲的也很清晰:www.litrin.org/UserFiles/Image/vi_png.jpg

Tuesday, May 29, 2007

PCBSD内核编译/升级

目的:将PCBSD的内核由FreeBSD 6.1升级至 6.2

步骤:

1. 升级source file至6.2

首先编辑/usr/share/examples/cvsup/standard-supfile文件,修改其中的两个地方:
将其中的*default release=cvs tag=RELENG_6_1一行改为 RELENG_6_2,
将*default host=CHANGE_THIS.FreeBSD.org中的CHANGE_THIS.freebsd.org替换为cvsup.cn.freebsd.org

修改完成後,运行如下命令:
cvsup /usr/share/examples/cvsup/standard-supfile

这个命令将会更新系统源文件至6.2版。

2. 创建内核配置文件MYKERNEL(或任何其他你喜欢的名字)

请以root帐户运行如下的命令:

# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp /PCBSD/conf/PCBSDv1.3 /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL

这里,你可以编辑MYKERNEL文件,将一些不需要的内核选项去掉,这样编译出的内核将会更简洁,效率更高。比如其中有cpu 486/cpu 586,如果你的CPU是PII以上的,你就可以删除这两行,或者通过在行首加一个#符号来注释掉他们,只保留cpu686就可。

但你一定要清楚每个选项的意思,否则请不要随意更改,不然很可能导致系统无法启动。


3. 编辑/etc/make.conf文件
如果下面的内容不在make.conf文件中,请添加:
CPUTYPE=i686 #i486, i586, i586/mmx, i686, p2, p3, p4, athlon,athlon-xp, athlon64, opteron
RELEASETAG="RELENG_6_2"
SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS=-g -L 2
SUPHOST=cvsup.cn.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
#DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile
KERNCONF=MYKERNEL

4.编译并安装内核

依次运行如下命令:
#cd /usr/src
#make buildkernel
#make installkernel
#reboot

重启後你的PCBSD系统就是6.2版的内核了。其中buildkernel和installkernel的过程需要很长的时间,尤其是你的CPU和内存不是很多的话。

5. 验证

重启完成後,可以运行如下命令来查看目前的内核版本:

# dmesg | grep RELEASE
FreeBSD 6.2-RELEASE #0: Fri Jan 12 10:40:27 UTC 2007

每个人的输出并不相同,但只要你看到6.2-RELEASE的字样,就表示你已经成功了~

ENJOY!

Thursday, May 24, 2007

命令行下使用代理服务器

在企业环境下经常需要PCBSD穿过代理服务器来访问外网,尤其是使用ports进行软件安装的时候。要设置HTTP代理服务器,请使用如下命令:

setenv HTTP_PROXY http://username:password@proxy_server_name:PortNumber

不需要验证的,就把username:password@部分去掉就行了。

没有测试过这个方案对微软的ISA server代理是否有效,ISA的验证是结合AD账户进行的,和普通的代理在密码验证协议上会有些差别。不过可以试试:

setenv HTTP_PROXY http://proxy_server_name:portNumber
setenv HTTP_PROXY_AUTH basic:*:username:password

用Windows引导启动WinXP+PCBSD

安装XP+PCBSD双启动以后,PCBSD boot manager启动的时候那声beep实在让我讨厌,尤其是在办公室打开电脑的时候。于是我决定改用Windows的启动菜单。

这次的修改需要两个工具:
1. 可启动的、带有fdisk的工具盘
2. PCBSD的启动记录(pcbsd.pbr)

第一个工具请自备,我讲一下如何获得第二个。

方法a: 启动到windows下,从PCBSD的安装盘上copy /boot/boot1 到你的Windows启动分区下,比如C:\,并将它重命名为"pcbsd.pbr"

方法b:启动到PCBSD下,以root身份运行如下命令:
dd if=/dev/XXX of=pcbsd.pbr bs=512 count=1

这里的 XXX 是你的PCBSD的盘符, 比如ad0s2a。
然后再将PCBSD.PBR拷贝到Windows的启动盘下,比如C:\。注意,虽然PCBSD下可以直接查看NTFS分区,但不能写入,你需要通过移动硬盘或者网络来完成这一步。

将pcbsd.pbr拷贝到windows的启动分区以后,你需要编辑windows的boot.ini文件,让它看起来如下如下:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP"
c:\pcbsd.pbr="My PCBSD 1.3"

这里要注意的是,boot.ini是一个默认的隐藏只读文件,你需要去掉它的的只读属性才能保存。

上面的步骤完成後,用你的启动盘重启系统,然后运行“fdisk /mbr”命令,然后从硬盘重启,你就不会再听到那讨厌的声响了,Windows的启动菜单里就会显示出“My PCBSD 1.3”的选项了。

Tuesday, May 22, 2007

PCBSD: Intel显卡上使用宽屏分辨率

要在Intel系列的显卡上使用宽屏,尤其是9XX系列的,需要自己动手修改一些东西。下面是我在Dell Latitude 620(Intel945GM芯片)上测试的结果,大致也适用于其他的Intel显示芯片。步骤如下:

1. 下载并编译、安装915resolution 程序。
对于915或者更早的显卡,可以直接使用ports进行安装。
a. “开始”》“系统”》“终端程序”(或者是叫K-console什么的,忘记中文名称了),打开一个命令行窗口。
b. 运行“su”,然后输入root帐号密码,准备以root身份进行安装。
c. cd /usr/ports/sysutils/915resolution
d. make install clean

对于945GM芯片的用户,目前请不要直接使用上面的安装方式,因为ports里面的是0,5.1版,还不支持945GM,你需要这里下载0.5.2版的源码包然后编译、安装。
URL:http://www.geocities.com/stomljen/915resolution-0.5.2.tar.gz
步骤如下:

a. 解压:tar -zxvf 915resolution-0.5.2.tar.gz
b. 安装:make && make install (需要root权限)

2. 安装完成后,运行:915resolution -l,列出所有可能的模式:

# 915resolution -l
Intel 945GM VBIOS Hack : version 0.2

Chipset: 945GM

Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1920x1440, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1920x1440, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1920x1440, 32 bits/pixel
Mode 60 : 1280x770, 8 bits/pixel
Mode 61 : 1280x770, 16 bits/pixel
Mode 62 : 1280x770, 32 bits/pixel
Mode 63 : 512x771, 8 bits/pixel
Mode 64 : 512x771, 16 bits/pixel
Mode 65 : 512x771, 32 bits/pixel
3. 选择其中的一个和你当前的分辨率一样的mode的代码,16 bits或者是32bits色深的。例如我的系统修改前是1024x768,而我想使用1280x800的分辨率,我使用如下的命令:

915resolution 45 1280 800

命令结束后再次运行 915resolution -l,你会看到mode 45已经变成1280x800了。

这里是915resolution的一些用法指南,可以参考一下:http://www.geocities.com/stomljen/readme.html

4. 编辑/etc/rc.local文件,添加如下语句:
/usr/sbin/915resolution 45 1280 800

5. 编辑/etc/X11/xorg.conf,找到LOAD DRI一行,在此行的最前面加一个#,将此行注释掉。你或许并不需要这一步,在其他任何资料上都没有看到,但对我的945来讲,Load DRI会在log里报错,我只有将它去掉。

6. 重启系统,如果分辨率没有自动改为你设置的模式的话,在桌面上右键单击,然后”重新配置桌面“》”显示“,选择你需要的分辨率即可。

下面是一些相关的资源,如果你的安装不顺利的话,可以参考一下。

检查/var/log/Xorg.0.log文件,查看其中的报错信息。
http://www.geocities.com/stomljen/
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/laptop/article.html
http://forums.pcbsd.org/viewtopic.php?t=8196

Wednesday, May 16, 2007

WINXP+PCBSD双启动安装指南

鉴于目前的实际情况,可能很大一部分使用/学习PCBSD的人都还需要WinXP,双启动就成了一个很自然的选择。

对于新手来说,如果你的机子性能还可以的话(1G或者更多内存,2G或更快的CPU),我推荐先用VMWare虚拟机软件安装PCBSD体验一下,毕竟一个全新的操作系统还是需要一定的时间来适应的,尤其是对于PCBSD这类的非主流操作系统来说,和windows的差别还是相当大的,尤其是平时习惯的一些软件在新系统下可能都没了。

言归正传,要想双启动,你的硬盘上至少需要8GB的磁盘空间,一张PCBSD的安装盘。本文假定你已经有一个安装好的XP系统。

第一步:备份现有系统上的那些对你至关重要的文件,存放在移动硬盘或者网络硬盘上,或者任何其他存储介质。重要重要!!

第二步:为PCBSD准备磁盘空间。

这里你需要一个空白的分区,不小于8GB,而且要是一个主分区,不能是扩展分区。为了保证这一点,你可以先删除这个分区(删除操作会使该分区上的所有数据丢失),然后重新创建一个主分区。步骤如下:

1.点击“开始”》“运行”,输入“diskmgmt.msc",确定后出现磁盘管理界面。在窗口中会列出当前系统中所有的磁盘和分区情况。
2. 右键单击你想要删除的分区的图标,选择”删除分区“(或者”删除逻辑磁盘“)即可。然后那部分空间会变成自由空间。
3. 在自由空间上右键单击,选择”创建分区“,在分区类型中选择”主分区(Primary Partition)“,不必勾选格式化选项,反正安装PCBSD的时候会格式化。

至此,空间准备的操作就已经完成,可以进行PCBSD的装了。

第三步:安装PCBSD
详细的安装步骤请参考“PCBSD安装”中的另一篇文章。这里只提一下安装过程中需要注意的一个地方。

在选择安装介质的时候,请不要勾选“使用整个磁盘”的选项,否则会将整个磁盘格式化,导致数据丢失,你的XP系统也无法使用。你需要点击从而选中原来删除的那个分区(在第二步中腾出来的那部分空间),如下图。(图片被编辑过)
http://www.mediamax.com/auctionweb/Hosted/gfd.gif

第四步:安装完成。
PCBSD的安装完成后,直接重启,应该就可以看到启动选择菜单了。系统会自动分配F2给原来的XP系统,并以DOS来显示。现在你就可以通过F1或者F2来选择系统进行启动了。

Enjoy!

PCBSD下如何安装软件

PCBSD下的软件是通过.PBI格式发布的,安装和在Windows下一样,安装时有图形界面的向导,你只需接受协议,然后点击“下一步”就行了。所以软件安装的关键就在于如何找到/得到你想要的PBI文件。

想要浏览/查找pbi格式的软件,到www.pbidir.com网站,那里是PCBSD的官方软件发布站点,汇集了所有开发好的以及正在开发中的PBI软件;同时你也可以查看一个PBI的wishlist,并且把自己希望但目前并没有的软件添加到wishlist中,或许某个developer会感兴趣也不一定。

另外,由于一些授权协议方面的原因,一些软件的PBI包从官方的站点上删除了,但是你可以在这个站点找到:www.pbis.in. 请注意自己是否有相应的授权。

另外,如果你对PBI很有兴趣的话,可以尝试自己创建一个PBI软件。这里有一篇英文的教程,出自Dru Lavigne教你如何利用已有的FreeBSD软件包和PCBSD提供的PBI Creator程序来创建自己的PBI软件。

Building Binary PC-BSD Packages

*PCBSD是FreeBSD的一个小的变体,但他们的内核基本是相同的,所以FreeBSD的软件包都可以用在PCBSD上的,只是要在命令行下安装。

Monday, May 14, 2007

PCBSD FAQ (不定期更新)

Q. 可以自定义PCBSD的安装软件包吗?
A. 不可以。默认情况下PCBSD是作为一个完整的安装包来安装的。你可以在安装完成后使用pkg_delete命令来删除一些你不想要的软件。但是不建议这样做,因为你很可能把KDE桌面环境搞坏掉。

Q. 我的电脑上已经安装了Windows系统,安装PCBSD会影响我的程序和数据吗?如何才能保留原来的数据?
A. 如果你的硬盘上还有剩余空间(未分区的空间,free space,不是某个分区未用完剩下的空间),那就不要把PCBSD安装到Windows分区上,否则你原来的数据丢失。

Q. PCBSD和FreeBSD的区别是什么?
A. 见下表:


PC-BSD FreeBSD
默认桌面环境
KDE 无 (用户需自行安装)
应用程序安装 PBIs (就像Windows), Ports, Packages Ports, Packages
64 位架构
兼容 内核级支持(Native)
支持平台 x86 (包括 Pentium® 和 Athlon™) x86 (包括 Pentium® 和 Athlon™), amd64 compatible (包括 Opteron™, Athlon™64, 和 EM64T), UltraSPARC®, IA-64, PC-98 以及 ARM 架构
应用程序集成 一般
系统安装 PC-BSD 系统安装向导
sysinstall (基于文本的安装工具)
Linux 兼容性 可选 可选
内核 FreeBSD FreeBSD
最小安装要求 i686 CPU, 128MB 内存 和 4GB 硬盘空间 非常小
对称多处理器 优化 可选
目标群体 桌面 (也可兼作服务器
服务器

Q. 如果我忘记了root帐号的密码怎么办?
A. 在系统启动出现倒计时后按空格键停止计时(也可以直接按6,如果你足够快的话),然后按6,出现提示符,输入 "boot -s",进入单用户模式,出现#符后,运行 "/sbin/mount -a" 命令,然后"passwd root",即可重设root的密码。完成后reboot,重新启动。

补充一下:在PCBSD1.3里,在启动选择菜单里直接选择4即可进入单用户模式。进去以后直接运行mount -a命令,然后即可passwd root来修改root的密码。

Q. PCBSD 下如何进行中文输入?
A. 请参考此连接: http://pcbsd.bokee.com/tb.b?diaryId=15269431

Q。如何让英文的PCBSD系统正确显示中文字符?
A。 首先,需要添加简繁体中文支持程序。通过pkg_add程序添加zh_CN-kde-i18n-3.5.5.tbz和zh_TW-kde-i18n- 3.5.5.tbz两个程序包.它们都在PCBSD第二张ISO的LANG文件夹下;第二,再通过Settings >> regional & accessibility >> country & language程序来添加中文语言支持;第三,修改你自己的home文件夹下的.profile文件,将其中的LANG=和LC_CTYPE=设置为 zh_CN.UTF8.
另外,关于系统和语言以及LOCALE的关系,chinaunix.net上有一篇比较好的文章可以参考,虽然这个问题并无直接的联系.URL: http://linux.chinaunix.net/bbs/viewthread.php?tid=894403&extra=page%3D1

Q。为什么将LC_TYPE设置为中文编码以后FIREFOX的菜单栏字体会变化,模糊?
A.在"开始>>设置>>控制中心>>外观与主题>>GTK字体与风格"中 选中"在GTK应用程序中使用我的KDE字体",保存,重新登录即可.