2013
01
12
08:21

汉字字符集-国家标准码

国家标准代码,简称国标码,是中华人民共和国的中文常用汉字编码集,亦为新加坡采用。

现时中华人民共和国官方强制使用GB 18030标准,但较旧的计算机仍然使用GB 2312

1.GB 2312

GB 2312GB 2312-80是一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集·基本集》,又称为GB0,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。

GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB 2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。

GB 2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。

对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。

2.GBK

由于GB 2312-80只收录了6763个汉字,有不少汉字,如部分在GB 2312-80推出以后才简化的汉字(如“啰”),部分人名用字(如中国前总理朱镕基的“镕”字),台湾及香港使用的繁体字,日语及朝鲜语汉字等,并未有收录在内。中文电脑开发商,于是利用了GB 2312-80未有使用的编码空间,收录了所有出现在Unicode 1.1及GB 13000.1-93之中的汉字,制定了GBK编码。

根据西方资料,GBK最初是由微软对GB2312的扩展,也就是CP936字码表 (Code Page 936)的扩展(原来的CP936和GB 2312-80一模一样),最初出现于Windows 95简体中文版中,由于Windows产品的流行和在大陆广泛被使用,中华人民共和国国家有关部门将其作为技术规范。注意GBK并非国家正式标准,只是国家技术监督局标准化司、电子工业部科技与质量监督司发布的“技术规范指导性文件”。虽然GBK收录了所有Unicode 1.1及GB 13000.1-93之中的汉字,但是编码方式与Unicode 1.1及GB 13000.1-93不同。仅仅是GB 2312到GB 13000.1-93之间的过渡方案。

3.GB 18030

GB 18030,全称:国家标准GB 18030-2005《信息技术 中文编码字符集》,是中华人民共和国于2000年3月17日发布,现时最新的内码字集,是GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》的修订版。与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000及Unicode的全部统一汉字,共收录汉字70244个。于2001年8月31日后发布或出厂的产品,必须符合GB 18030-2000的相关要求。

GB 18030主要有以下特点:

与 UTF-8相同,采用多字节编码,每个字可以由1个、2个或4个字节组成。

编码空间庞大,最多可定义161万个字符。

支持中国国内少数民族的文字,不需要动用造字区。

另附,

大五码

Big5,又称为大五码五大码,是使用繁体中文(正体中文)社群中最常用的计算机汉字字符集标准,共收录13,060个汉字。

中文码分为中文内码及中文交换码两类,Big5属中文内码,知名的中文交换码有CCCII、CNS11643。

Big5虽普及于台湾、香港与澳门等繁体中文通行区,但长期以来并非当地的国家标准,而只是业界标准。倚天中文系统、Windows等主要系统的字符集都是以Big5为基准,但厂商又各自增删,派生成多种不同版本。

2003年,Big5被收录到台湾官方标准的附录当中,取得了较正式的地位。这个最新版本被称为Big5-2003。

2013
01
12
08:12

FreeBSD中Firefox的安装、汉化以及Flash插件的安装

1.安装Firefox3.5

#pkg_add -r firefox35

注意:安装过程中会有以下提示:Firefox在显示HTML5的页面元素是会需要模块sem,否则会出现“Bad system call (core dumped)“的错误,可以在/boot/loader.conf加入”sem_load=”YES”来解决这个问题。

 

2.安装Firefox的多国语言包

#pkg_add -r firefox35-i18n

语言包是以Firefox插件的形式安装的,启动firefox后,只需在Tools->Quick Locals Switcher中修改为zh_CN,重启Firefox就可以看到中文界面。

 

3.安装Flash插件

众所周知,FreeBSD下没有原原生的Flash player,这也是FreeBSD没能在个人桌面领域没能大展拳脚的一方面的原因吧。这里使用linux的Flash插件,可真的拿人的手短,设置起来还真挺麻烦的。

3.1. 安装port:www/nspluginwrapper,它使的FreeBSD可以使用其它平台上的插件,这个port依赖:emulators/linux_base-f10,所以在这之前必须要设定好linux compability。

3.2. 安装port:www/linux-f10-flashplugin10,并创建以下链接:

#ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \

/usr/local/lib/browser_plugins/

 

3.3. 设置linux的进程文件系统

linux的进程文件系统linprocfs,必须被挂载到/usr/compat/liunx/proc:

# mount -t linprocfs linproc /usr/compat/linux/proc

或者把它写入/etc/fstab,以便开机时系统自动挂载:

linproc /usr/compat/linux/proc linprocfs rw 0 0

 

3.4. 为每个用户安装插件

%nspluginwrapper -v -a -i

%ln -s /usr/local/lib/browser_plugins/npwrapper.libflashplayer.so /usr/local/lib/firefox3/plugins/npwrapper.libflashplayer.so

 

重启Firefox,终于看到熟悉的flash啦。

2013
01
12
08:07

FreeBSD常用小技巧

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

答:在/etc/csh.cshrc里面加入:alias ls ls –G, 并重新登录

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

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

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

答:cd /etc && sh rc

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

答:$ source ~/.cshrc

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

答:$ rehash

问:csh中如何快速在命令行中移动?

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

问:快速回到上次访问的目录

答:cd –

问:快速回到用户的主目录

答:cd ~

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

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

问:如何清屏?

答:clear 或 ^l

问:敲错字滴滴滴的烦死了,还总被家里人发现而强制睡觉,怎么办?

答:set nobeep(tcsh)

问:我想暂时离开而又不想logout

答:lock –p

问:FreeBSD 下如何查看带宽使用率

答:systat -if 1

问:使用portupgrade升级多个ports时,有时会弹出配制对话框,暂停了整个过程

答:使用参数–batch,这样会使用默认的配置。

问:如何加速portupgrade升级

答:参数-P可以优先使用package升级(如果package不存在才会使用port), 而-PP会仅使用package升级

问:我不想在这里学这些tips

答:好吧,请安装fortune,它会在每次登录时给你一条tip

2013
01
09
10:39

详细介绍BSD系统的内核安全和级别

bsd一直是公认的最安全的unix操作系统,因为它提供了基于内核的安全保护而不仅仅是老式unix的基于访问控制的安全保护。bsd为内核划分了安全等级,这样就可以限制很多不安全的操作,而且bsd在安全设置上是单点的,使得不可能轻易改变安全级别。linux提供的lsm“可加载安全模块”可以从外部加载安全模块,而bsd将此行为也作为可能的安全隐患,所以bsd中由内核直接来负责安全,如果内核认为加载的安全模块是不可信的,那么内核将禁止加载模块,这在bsd内核中通过安全级别(securelevel)来实现。下面先引用一段介绍安全级别的文字然后我分析bsd的init程序中与安全级别相关的代码:

FreeBSD内核有一个安全级别(securelevel)的概念,这是指系统内核运行使用的安全等级,不同的等级具备不同的保护和检查机制。因为这是内核的检查机制,因此相当严格,没有办法能绕过这个机制提供的保护,因此就对保护FreeBSD的安全性十分有用。内核的安全级别按照提供安全保护的程度分为-1、0、1、2共分为四个级别,安全级别能提供的保护有:

系统文件:系统文件可以设置保护标志”不可更改”和 “只能附加” ,具有这些保护标志的文件在系统的文件属性之外,还受这些保护标志的保护。安全级别可以规定这些标志能否取消。

磁盘设备文件:磁盘设备文件具备两种访问方式,随机访问的方式对应的块设备文件和顺序访问方式对应的字符设备文件,其中字符设备文件可以直接读取硬件设备,因此对于安全至关重要。内核安全级别可以决定是否允许以直接读取硬件的方式操作硬盘设备文件。

直接内存访问:/dev/mem和/dev/kmem是系统内存的映射文件,访问它们就能直接访问系统内存,一些需要获取系统信息和需要进程间共享内存机制的程序需要访问这两个设备文件以直接访问内存,然而访问内存空间显然也影响系统的安全运行。内核安全级别可以决定是否允许访问系统内存。

安全级别-1为一种永久性的不安全级别,系统内核不提供任何额外的保护。系统缺省就处于这个级别,此时系统文件的保护标志能被root用户取消,所有的设备,包括磁盘设备和内存映射设备,均能按照其属性来访问。

安全级别0为不安全的级别,它和等级-1一样没有对系统提供额外的安全保护,但它影响到内核进程init的行为。当内核处于级别-1时,内核init程序不会自动更改运行级别,因此一直到进入能够登录的状态,系统安全级别仍然为-1。这是系统的缺省行为,没有打开安全级别保护机制。但如果安全级别不为 -1,init在进入单用户状态时将改变为0级别,在进入多用户模式时改变为安全级别 1。因此安全级别0为设置了安全级别保护之后,单用户状态下的安全级别。

安全级别1为安全的级别,提供了对系统的保护能力。此时系统文件的那两个保护标志不能被取消,已安装文件系统对应的磁盘设备,以及/dev/mem,/dev/kmem不可以用写入模式打开。

安全级别2与级别1类似,只是进一步增加了对磁盘设备低级操作的限制,不管该磁盘设备是否安装,都不允许直接以写入方式访问,这样就无法进行fdisk、disklabel以及newfs等操作。

可以使用sysctl来查看当前系统的安全级别,但如果没有经过特别设置,FreeBSD的缺省安全级别应该为-1:

bash-2.03# sysctl kern.securelevel

kern.securelevel: -1

安全级别中最重要的一点是,除了内核的init进程之外,即使是root用户,也只能不断提高安全级别,没有办法将安全级别降低。这样就基本上保证远程入侵者在没有重新启动计算机的情况下,无法降低系统运行级别。如果root 想提高系统运行的安全级别,也需要使用sysctl命令。

bash-2.03# sysctl -w kern.securelevel=0

kern.securelevel: -1 -> 0

安全级别的意义就在于对文件和设备的保护,如果要对文件提供保护,就需要对文件设置保护标志schg。设置这个标志需要使用chflags命令,系统文件如 /kernel,系统安全的时候就具备这个保护标志。即使在非安全级别下要更改这些文件的时候,也要首先取消保护标志才能进行正常操作。

bash-2.03# mv /kernel /kernel.bak

mv: rename /kernel to /kernel.bak: Operation not permitted

bash-2.03# chflags noschg /kernel

bash-2.03# mv /kernel /kernel.bak

bash-2.03# mv /kernel.bak /kernel

bash-2.03# chflags schg /kernel

上面操作先取消了kernel文件的不可更改标志schg,显然这是在非安全级别下的操作。当安全级别处于 1或2时,就不能使用chflags改变文件的保护标志了。

bash-2.03# chflags noschg /kernel

chflags: /kernel: Operation not permitted

可以使用带-o参数的ls来查看文件具备的标志。

bash-2.03# ls -lo /kernel

-r-xr-xr-x 1 root wheel schg 1061679 Jun 30 01:27 /kernel

因此可以将系统安全相关的很多程序都设置保护标志,这样入侵者就不能轻易更改这些文件了。建议将/bin,/sbin下的文件都设置这个标志。

bash-2.03# chflags schg /bin

bash-2.03# chflags schg /bin/*

bash-2.03# chflags schg /sbin

bash-2.03# chflags schg /sbin/*

这里首先将相关目录本身设置保护标志,这样入侵者就不能通过将目录更改名字的方法创造一个新的/sbin或 /bin目录。

当文件具备了保护标志,并且安全级别高于1时,保护标志就无法取消,这些文件就不能更改,因此就带来一些必要的操作无法进行,例如重新生成内核的操作等。此时就必须再重新启动系统进入单用户状态执行这些操作。通常情况下,如果FreeBSD系统只提供网络服务,那么使用安全级别1或2毫无问题。然而如果要运行X Server ,由于X Server使用了共享内存机制,需要访问/dev/mem和/dev/kmem,这样就会带来问题。这时的一种解决办法是在启动X Server之后(例如使用Xdm),再升高安全级别,以避开这个问题,但此时 X Server已经打开了/dev/mem和/dev/kmem,安全级别的保护就不再是完美无缺的了(dog250:攻击者可以利用X的漏洞实施攻击)。如果不使用X Server之类的程序,那么就可以将设置安全级别的命令直接放入系统的启动rc文件中,以便自动提高安全级别。这需要在rc.conf文件中设置两个变量:kern_securelevel_enable和kern_securelevel。

kern_securelevel_enable=”YES”

kern_securelevel=0

上面将安全级别设置为0,那么在启动之后将自动更改为1,这是一种标准的做法。

以上就是关于bsd安全级别的标准描述,那么有句话说只有init进程可以调整安全级别是什么意思呢?还得通过bsd的init源代码来理解,于是翻出bsd的init.c文件(前面的文章分析过),里面有一个函数:setsecuritylevel

以下为引用的内容:

void setsecuritylevel(int newlevel)

{

#ifdef KERN_SECURELVL //在定义安全级别的情况下使能此函数

int name[2], curlevel;

extern int errno;

curlevel = getsecuritylevel(); //得到当前的安全级别

if (newlevel == curlevel) //已经是当前的级别了,直接返回

return;

name[0] = CTL_KERN;

name[1] = KERN_SECURELVL;

if (sysctl(name, 2, NULL, NULL, &newlevel, sizeof newlevel) == -1) { //一切ok,无条件设置

emergency( “cannot change kernel security level from %d to %d: %s”, curlevel, newlevel, strerror(errno));

return;

}

#ifdef SECURE

warning(“kernel security level changed from %d to %d”, curlevel, newlevel);

#endif

#endif

}

下面是getsecuritylevel:

以下为引用的内容:

int getsecuritylevel(void)

{

#ifdef KERN_SECURELVL

int name[2], curlevel;

size_t len;

name[0] = CTL_KERN;

name[1] = KERN_SECURELVL;

len = sizeof curlevel;

if (sysctl(name, 2, &curlevel, &len, NULL, 0) == -1) {

emergency(“cannot get kernel security level: %s”, strerror(errno));

return (-1);

}

return (curlevel);

#else

return (-1);

#endif

}

安全性体现在哪里呢?前面的设置函数可是无条件设置的啊,如果我在我自己的程序里面也来一个sysctl调用,岂不是也成功了,实际上,sysctl是个系统调用,bsd的实现是在该系统调用的实现里面如果是设置安全级别那么就检查进程的pid,如果pid不是1还想降低安全级别,那么很抱歉,出错返回。见FreeBSD的代码:src/sys/kern/kern_mib.c

以下为引用的内容:

mtx_lock(&securelevel_mtx);

if (!regression_securelevel_nonmonotonic &&

(level < securelevel) && //新安全级别小于原安全级别

(req->td->td_proc->p_pid != 1)) { //设置安全级别的进程不是init进程

mtx_unlock(&securelevel_mtx);

return (EPERM); //则出错返回

bsd的init不允许重新加载也是通过pid来判断的,在main函数里面的第二个大句:

以下为引用的内容:

if (getpid() != 1) { //这就禁止了init的重新加载,以不给别的存在不轨意图的人任何机会

(void)fprintf(stderr, “init: already running\n”);

exit (1);

}

说bsd的安全设置是单点的就是上面这个意思,这样不至于最后混乱,那么init在什么时候调用setsecuritylevel了呢?通查代码发现在两个地方调用了setsecuritylevel,一个就是multi_user,另一个是single_user。(如果不明白这两个函数是干甚的,请查阅我前面的文章《System V的启动风格和BSD的启动风格(2)—代码角度》)就是进入多用户模式和进入单用户模式的时候进行调用。

以下为引用的内容:

state_func_t multi_user(void)

{

…//前面没有什么语句,仅仅是一些变量的定义。

if (getsecuritylevel() == 0) //如果当前级别为0,那么就调整为1

setsecuritylevel(1);

}

state_func_t single_user(void)

{

…//前面没有什么语句,仅仅是一些变量的定义。

if (getsecuritylevel() > 0) //这个判断说明内核处于安全保护之下,那么进入单用户后将安全级别降为0,否则单用户就什么也做不了

setsecuritylevel(0);

}

由上面的代码可见,安全级别为0就是一个占位符的作用,提示init一会一旦进入多用户就将安全级别升为1,除此之外它和安全级别-1没有任何区别。深入到了init内部,是不是对安全级别的控制有了一些新的认识呢?init进程并没有什么神力,只不过是内核将这个单点控制权给了1号进程而已。

2013
01
09
10:15

FreeBSD中显示Apache进程运行情况脚本

在FreeBSD中查看进程情况最常用的就是ps命令了,我们当然可以利用ps来查看apache进程运行的情况(假定apache的运行用户为www)脚本如下:

ps -U www -axo comm,pcpu,pmem,vsz,rss,mwchan | awk ‘/^httpd/ {++state[$NF];cpu+=$2;mem+=$3;vsz+=$4;rss+=$5;} END {for(key in state){total+=state[key];print(key,”\t”,state[key]);}print(“total\t” total “\ncpu\t” cpu “%\nmem\t” mem “%\nvsz\t” vsz “k\nrss\t” rss “k”);}’

输出大致结果如下:

select 1

accept 9

total 10

cpu 7.1%

mem 6.1%

vsz 227152k

rss 128768k

呵呵,这样便看到了apache的进程运行的统计情况了。

2013
01
09
09:58

FreeBSD桌面笔记

安装FreeBSD

此部分可以参照http://www.freebsd.org/doc/zh_CN/books/handbook/install.html

 

系统配置

 

关于软件源的配置:

FreeBSD的软件源分为两部分,一部分是pkg_add所用的预编译包软件源,一部分是编译安装所用的ports软件源。

关于预编译包软件源的设置,可用root身份运行以下命令(以FreeBSD China的地址为例):

ee ~/.cshrc

添加

setenv PACKAGESITE http://mirrors.163.com/FreeBSD/ports/packages/Latest/

到配置文件中。

关于ports软件源的设置,可用root身份运行以下命令(以我自己的配置文件为例):

ee /etc/make.conf

然后添加如下内容:

DISABLE_SIZE=yes

MASTER_SITE_OVERRIDE=\

 

http://mirrors.163.com/FreeBSD/distfiles/${DIST_SUBDIR}/\

http://ports.hshh.org/${DIST_SUBDIR}/

 

网络设置:

使用系统的sysinstall命令,会出现一个配置界面,里面包含了系统的一些基本设置,根据提示进行设置即可。

 

更新源代码和ports:

cd /usr/share/examples/cvsup

然后用喜欢的编辑器修改standard-supfile,ports-supfile,把其中default host后面的网址改为cvsup.freebsdchina.org,然后运行

cvsup -g -L 2 standard-supfile(其他文件也如此),就可以得到最新的ports和源代码树了。

 

使ports能够多线程下载源代码:

首先要安装wget:

pkg_add -r wget

然后在/etc/make.conf中加入:

FETCH_CMD=/usr/local/bin/wget -c -t 1

这样的话,ports安装时候就能使用wget的多线程下载源代码了。

 

安装基本的xorg环境:

用root身份运行:

pkg_add -r xorg

然后就会自动联网下载所需要的包,自动解决依赖关系。

为了得到一个可用的配置文件,以root身份运行一下

Xorg -configure

然后

mv /root/xorg.conf.new /etc/X11/xorg.conf

 

安装桌面环境,以GNOME为例:

pkg_add -r gnome2 gdm

安装完GNOME以后,为了让开机可以自动运行GDM,把如下配置行加入/etc/rc.conf文件中:

hald_enable=”YES”

dbus_enable=”YES”

gdm_enable=”YES”

另外,还要运行:

echo “/usr/local/bin/gnome-session” > ~/.xinitrc

 

安装Linux兼容层:

 

首先需要加载一次Linux模块,否则无法安装成功:

 

kldload linux

 

然后

 

pkg_add -r linux_base-f10

 

为了让开机加载Linux模块,需要在/boot/loader.conf中加入

linux_load=”YES”

同时,在/etc/rc.conf中加入

linux_enable=”YES”

 

安装显卡驱动,需要Linux兼容层,以我的nVidia显卡为例:

nVidia驱动按照自己的显卡型号,选择适应的驱动。驱动在/usr/ports/x11

nvidia-driver-173/

nvidia-driver-71/

nvidia-driver-96/

nvidia-driver/

我7300 GO所以直接选择了nvidia-driver

cd/usr/ports/x11/nvidia-driver && makeinstall clean

为了让FreeBSD开机加载nVidia驱动,需要在/boot/loader.conf加入

nvidia_load=”YES”

另外,还要编辑/etc/X11/xorg.conf

Driver “nv”

改为

Driver “nvidia”

 

设置GNOME的中文环境:

由于GNOME默认是英文环境,所以需要在/etc/profile中加入如下内容:

export LANG=zh_CN.UTF-8

export LC_TYPE=zh_CN.UTF-8

export LC_ALL=zh_CN.UTF-8

重启一下就可以看到中文化的界面了。

另外,由于默认中文字体很难看,可以安装个文泉驿字体:

cd /usr/ports/x11-fonts/wqy && make install clean

 

安装ibus中文输入法:

pkg_add -r ibus ibus-pinyin

安装完以后,在中文环境下,ibus可以自动启动,无需修改配置。

 

安装火狐浏览器:

pkg_add -r firefox

 

安装Flash插件:

cd /usr/ports/www/linux-f10-flashplugin11 && make install clean

mkdir /usr/local/lib/browser_plugins

ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so /usr/local/lib/browser_plugins/

按照 FreeBSD 版本, 在安装了正确的 Flash port 之后, 插件必须由每个用户运行 nspluginwrapper 安装:

nspluginwrapper -v -a -i把以下这行加入 /etc/fstab

linproc /usr/compat/linux/proc linprocfs rw 0 0

cd /usr/local/lib/firefox/plugins && ln -s /usr/local/lib/browser_plugins/npwrapper.libflashplayer.so npwrapper.libflashplayer.so

 

新版的Flash插件似乎已经不需要拷贝so和做链接了,直接用nspluginwrapper -v -a -i就能识别出来。

 

声卡驱动安装:

首先使用命令加载所有能用声卡驱动

kldload snd_driver

使用命令查看你的声卡型号

cat/dev/sndstat

在出现 kldsnd_*** 字符位置 ***就是你的声卡信息

然后在编辑/boot/loader.conf.加上snd_***_load=”YES”

重启,不出现意外的话你就能听到声音了。

如果是集成AC97声卡,试试:

ee /boot/defaults/loader.conf

修改snd_ich_load=”NO” #Intel ich 把“NO”改为“YES”。

 

安装QQ:

由于FreeBSD的QQ是使用的QQ for Linux,所以需要按照前面的步骤安装并且开启Linux兼容层,然后终端输入命令:

ee/etc/sysctl.conf

然后加入

compat.linux.osrelease=2.6.16

终端输入:

cd /usr/ports/net-im/qq && make install clean

如果QQ不能中文输入,执行:

/compat/linux/usr/bin/localedef-i zh_CN -f UTF-8 zh_CN

 

安装NTFS-3G:

cd /usr/ports/sysutils/fusefs-ntfs && make install clean

加入fuse加载:

ee /etc/rc.conf

加入以下这一行:

fusefs_enable=”YES”

保存退出。

ee /boot/loader.conf

加入以下这一行:

fuse_load=”YES”

保存退出。

注意:这两行一个是fusefs,一个是fuse,千万小心!

2013
01
09
09:55

FreeBSD正确配置中文环境的方法

以前一直以为是直接修改全局的profile或者cshrc来进行locale设置,现在才发现其实完全不用这么麻烦,而且那样是不规范的。

按照官方手册,正确的方法是修改/etc/login.conf,比如我要使用简体中文环境,那么就在/etc/login.conf添加:

chinese|Simplified Chinese Users Account:\

:charset=UTF-8:\

:lang=zh_CN.UTF-8:\

:tc=default:

然后需要重建数据库:

cap_mkdb /etc/login.conf

之后把需要的用户加入中文登录环境即可:

pw usermod YOUR_USER -L chinese

2013
01
08
10:00

wordpress调用最新文章

wordpress调用最新文章

<?php $recentPosts = new WP_Query();

$recentPosts->query(‘showposts=7’);

?>

<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>

<li> <span style=”display:none”>[<?php the_time(‘m/d’) ?>]</span>

<a href=”<?php the_permalink() ?>” rel=”bookmark” target=”_blank”><?php the_title(); ?></a>

</li>

<?php endwhile; ?>

2013
01
06
14:59

CSS 控制最小宽度( IE 与 Mozilla Firefox 都好使)

1.宽度最小值:

 

min-width:785px;

width:expression(document.body.clientWidth < 800 ? “785px” : “100%” );

 

(IE 与 Mozilla Firefox 都好使)

 

 

 

2.高度最小值:

box {

min-height:100px; /*高度最小值设置为:100px*/

height:auto !important; /*兼容FF,IE7也支持 !important标签*/

height:100px; /*兼容ie6*/

overflow:visible;

}

2013
01
06
14:56

电脑屏幕分辨率多少合适

笔记本屏幕分辨率多少比较合适,台式机屏幕分辨率多少合适。下面是比较常用的各个尺寸的屏幕分辨率设置。

屏幕尺寸是指笔记本屏幕对角线的尺寸,一般用英寸来表示。常见的笔记本屏幕尺寸有:12.1英寸、13.3英寸;14英寸和15英寸。

屏幕的尺寸可以从一定程度上决定了它的重量。对于追求移动性的超轻薄机型,大都采用的是14英寸以下的液晶屏,而14英寸和15英寸则是一些同时注重性能与便携性的机型最常见的屏幕尺寸。例如现在主流的学生机。而定位为台式机替代品的大型笔记本通常采用15.4和15.6英寸,还有些电脑采用了17.3英寸的屏幕。

如果想要震撼的视觉效果,大屏幕当然是首选,但这样也降低了笔记本的便携性。所以选择一款适合自己的笔记本,屏幕尺寸也是很重要的。

在各个尺寸的屏幕中,还分不同的屏幕比例,常见的屏幕笔记有16:9和16:10。

笔记本各个尺寸所对应的分辨率如下:

12.1寸 1280*800

13.3寸 1024*600或1280*800

14.1寸 1366*768

15.4寸 1280*800或1440*900

15.6寸 1600*900

台式机显示器最佳分辨率:

14寸显像管(CRT)显示器 800×600

17寸液晶或CRT显示器 1024×768

19寸液晶显示器(普屏) 1280×1024

19寸液晶显示器(宽屏) 1440×900

22寸液晶显示器有宽屏16:10和宽屏16:9的比例,最佳分辨率分别是:

16:10的分辨率是1680×1050

16:9的分辨率是1920×1080