Friday, March 06, 2009

mysql删除root用户后的解决办法

一不小心,把root用户给删除了.结果,登陆时,输入密码总不对,提示:
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)
不输入密码,反倒可以进去,但少了很多权限,有些数据库看不到.开始还以为谁把我的数据库给删了呢.

解决办法:
1.关闭mysql服务--直接kill.
2.mysqld_safe --user=mysql --skip-grant-tables --skip-networking
3.重新启动mysql服务,并mysql -uroot mysql登陆.
4.添加root用户:INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv,...) VALUES ('localhost', 'root', PASSWORD(‘yourpassword’), 'Y', 'Y','Y'...);

再次重启mysql服务后,就ok了.

(转)mysql常用命令

转自:http://hi.baidu.com/%D4%C6%CB%AF%C1%CB/blog/item/d47057366fd0d1daa2cc2b65.html

1. 连接mysql:
mysqlbinmysql -h主机地址 -u 用户名 -p 用户密码

2.退出mysql:exit

3. 修改密码:
mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword

4.增加用户:
添加一个用户test1 密码为ABC;让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入

mysql,然后键入以下命令:grant select,insert,update,delete on *.* to test1@"%" Identified
by "abc";

增加一个用户test2密码为abc,让其只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地

主机,即mysql数据库所在的那台主机),这样用户即使用知道test2的密码,也无法从internet上直接访问数据库,只能通过mysql主机上的web页

来访问了。grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";

增加一个可以从任何地方连接服务器的一个完全的超级用户
grant all privileges on *.* to
test3@"%" identified by 'password' with grant option;

5.删除授权
revoke select,insert,update,delete om *.* from
test2@localhost ;

--------------------------------------------------------

6.显示数据库
show databases;

7.显示数据库中的表
use dataname;
show tables;

8.显示表的结构
describe tablesname;

9.建库
create database 库名;

10.建表
use dataname;
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表结束
//以下为插入字段
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');

注:在建表中
(1) 将ID设为长度为3的数字字段:int(3),并让它每个记录自动加一: auto_increment,
并不能为空:not null,而且让它成为主字段primary key
(2) 将NAME设为长度为10的字符字段
(3) 将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别
呢,只有等以后的文章再说了。
(4) 将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。 你可以将以上命令
原样写入一个文本文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录
mysql in,然后键入以下命令:
mysql -uroot -p密码 < c:school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你
只要将//的注释去掉即可使用)。


11.删除库和删除表
drop dataname;
drop tablename;

12.将表中的记录清空
delete from tablename;

13.显示表中的记录
select * from tablename;

14.表重命名
alter table t1 rename t2


---------------------------------------------------------

15. 备份数据库
mysqlbinmysqldump -h(ip) -uroot -p(password) databasename > database.sql

16. 恢复数据库
mysqlbinmysql -h(ip) -uroot -p(password) databasename <>

17.复制数据库
mysqldump --all-databases > all-databases.sal

18.备份表
mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql

19.恢复表(操作前先把原来的表删除)
mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename <>

----------------------------------------------------------

20.为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

增加一个新TIMESTAMP列,名为d:
ALTER TABLE t2 ADD d TIMESTAMP;

在列d上增加一个索引,并且使列a为主键:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

删除列c:
ALTER TABLE t2 DROP COLUMN c;

增加一个新的AUTO_INCREMENT整数列,命名为c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,
因为索引了的列不能是NULL

---------------------------------------------------------------

21.数据的导入导出
A。mysqlimport
语法:mysqlbinmysqlimport database tables.txt( 文件名需要与表名相同)
参数:-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息;
-f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据;
-i or --ignore mysqlimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略;
-l or -lock-tables 数据被插入之前锁住表,这样就防止了, 你在更新数据库时,用户的查询和更新受到影响;
--fields-enclosed- by= char
  指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。
  --fields-terminated- by=char
  指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。默认的分隔符是跳格符

(Tab)
  --lines-terminated- by=str
  此选项指定文本文件中行与行之间数据的分隔字符串 或者字符。 默认的情况下mysqlimport以newline为行分隔符。 您可以选择用一个字

符串来替代一个单个的字符: 一个新行或者一个回车。
  mysqlimport命令常用的选项还有-v 显示版本(version), -p 提示输入密码(password)等。

--------------------------------------------------------------

22.常用插入、修改、删除语句
插入记录:insert into teacher values('','glchengang','深圳一中','1976-10-10');
修改记录:update mytable set single=′y′ where name=′abccs′;
删除记录:delete from mytable where name=′abc′;

Wednesday, March 04, 2009

当音乐响起来的时候,想哭了

晚上本打算带张碟去看的,好不容易,各位大佬出差去了。尽实验室几天下来,新鲜感一过,剩下的就是身心的疲惫了。现在看到电脑,都有点反胃了,但又不得不坐过去,耳边总是萦绕众大佬的左叮右嘱的余音。今天起床晚了,把没预期逃的和预期逃的课都逃了,在实验室呆了一天,左思右想,这学期自打开学折腾gentoo起,就没有放松过,整天过着魂不守舍的生活,看部电影,应该不算过分吧?

不料,实验室的机子虽有光驱,但无法识别该刻录的DVD,该不会还是cd的吧?算了,幸好还带上了耳机,那就听听歌吧。于是下了mplayer的rpm,无奈无法解决依赖关系。Centos上的repository上的软件就是少哦,这个也没有,那个也没有,一个一个自己去找,然后再编译的话,估计今天晚上就不用回去了。

放mp3不行,用flashplayer总行吧。不料Adobe flashplayer linux上竟不支持X86_64。好不容易刚出了beta版,无奈前几天折腾上的X86版,死活卸不下来。。。

于是,在菜单里看到有Rythmbox音乐播放器,这个应该行吧,导入文件,居然说什么Gstream缺少mp3插件,真搞不懂gnome的人难道不听歌吗,搞个默认的播放器,连mp3,wma都放不了。Repository里没有插件,只好放弃。再考虑xmms,下载源码,编译,缺少qt4,kde等库,幸好Repository里都有,照着装上。居然cofigure时,说configure指定的是kde4.x,但我机子上装的是kd3。好吧,找了找,就把相关文件卸了,再configure,再提示,缺少kde库!耍我啊!自此,几乎崩溃。

最后,都不报什么希望了,下载了mplayer的源码来编译看看,死马当活马医。没想到,一路顺风。。。

(转)rpm一般用法

(转自http://hi.baidu.com/jw06/blog/item/978c4e30b0bb681feac4af22.html)
rpm -qpl xxxxxx.rpm
1.如何安装rpm软件包
rmp软件包的安装可以使用程序rpm来完成。执行下面的命令
rpm -i your-package.rpm
其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。
安装过程中可能出现下面的警告或者提示:
... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有
的文件,缺省时这样的情况下是无法正确安装的可以用
rpm --force -i 强制安装即可
... is needed by ...
... is not installed ... 此包需要的一些软件你没有安装可以用
rpm --nodeps -i 来忽略此信息
也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包
都能安装上,但这种强制安装的软件包不能保证完全发挥功能
2.如何安装.src.rpm软件包
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时
需要进行编译。这类软件包有两种安装方法,
方法一:
1.执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数
6. make
7. make install
方法二:
1.执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
前两步和方法一相同
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)
在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
执行rpm -i new-package.rpm即可安装完成。
3.如何卸载rpm软件包
使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm
比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:
rpm -e proftpd-1.2.8-1
rpm -e proftpd-1.2.8
rpm -e proftpd-
rpm -e proftpd
不可以是下列格式:
rpm -e proftpd-1.2.8-1.i386.rpm
rpm -e proftpd-1.2.8-1.i386
rpm -e proftpd-1.2
rpm -e proftpd-1
有时会出现一些错误或者警告:
... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载
可以用rpm -e --nodeps强制卸载
4.如何不安装但是获取rpm包中的文件
使用工具rpm2cpio和cpio
rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories
参数i和extract相同,表示提取文件。v表示指示执行进程
d和make-directory相同,表示根据包中文件原来的路径建立目录
m表示保持文件的更新时间。
5.如何查看与rpm包相关的文件和其他信息
下面所有的例子都假设使用软件包mysql-3.23.54a-11
1.我的系统中安装了那些rpm软件包
rpm -qa 讲列出所有安装过的包
如果要查找所有安装过的包含某个字符串sql的软件包
rpm -qa |grep sql
2.如何获得某个软件包的文件全名
rpm -q mysql 可以获得系统中安装的mysql软件包全名,从中可以获得
当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11
3.一个rpm包中的文件安装到那里去了?
rpm -ql 包名
注意这里的是不包括.rpm后缀的软件包的名称
也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。
如果只是想知道可执行程序放到那里去了,也可以用which,比如
which mysql
4.一个rpm包中包含那些文件
一个没有安装过的软件包,使用rpm -qlp ****.rpm
一个已经安装过的软件包,还可以使用rpm -ql ****.rpm
5.如何获取关于一个软件包的版本,用途等相关信息?
一个没有安装过的软件包,使用rpm -qip ****.rpm
一个已经安装过的软件包,还可以使用rpm -qi ****.rpm
6.某个程序是哪个软件包安装的,或者哪个软件包包含这个程序
rpm -qf `which 程序名` 返回软件包的全名
rpm -qif `which 程序名` 返回软件包的有关信息
rpm -qlf `which 程序名` 返回软件包的文件列表
注意,这里不是引号,而是`,就是键盘左上角的那个键。
也可以使用rpm -qilf,同时输出软件包信息和文件列表

7.某个文件是哪个软件包安装的,或者哪个软件包包含这个文件
注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以
用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。
首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如:
# whereis ftptop
ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz
# rpm -qf /usr/bin/ftptop
proftpd-1.2.8-1
# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
proftpd-1.2.8-1
总结:
获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如
i 表示info,获得软件包的信息;
l 表示list,获得文件列表;
a 表示all,在所有包中执行查询;
f 表示file,根据文件进行相关的查询;
p 表示package,根据软件包进行查询
需要的查询条件可以使用grep产生,或者从"` `"中的命令行产生
6.关于rpm软件包的一些相关知识
1.什么是rpm
rpm 即RedHat Package Management,是RedHat的发明之一
2.为什么需要rpm
在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的
程序,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,以及安装,
配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个
较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统
以后,只要是符合rpm文件标准的打包的程序都可以方便的安装,升级,卸载
3.是不是所有的linux都使用rpm
任何系统都需要包管理系统,因此很多linux都使用rpm系统。但rpm系统是为RH专门
但是TL,Mandrake等系统也都使用rpm。由于rpm的源程序可以在别的系统上进行编译,
所以有可能在别的系统上也使用rpm
除了rpm,其他一些系统也有自己的软件包管理程序,例如debian的deb包,
slakware也都有自己的包管理系统
4.rpm包的文件名为什么那么长
rpm包的文件名中包含了这个软件包的版本信息,操作系统信息,硬件要求等等。
比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字
1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。i386表示
用于intel x86平台,还可能是sparc等。
5.软件包文件名中的i386,i686是什么意思
rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构
的信息。
i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32)
i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32)
noarch指这个软件包于硬件架构无关,可以通用。
i686软件包的程序通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在
x86机器上都可以用。向前一般不兼容。不过现在的计算机,奔腾pro以下的CPU已经很少
用,通常配置的机器都可以使用i686软件包

6.不同操作系统发行的rpm包可否混用?
对于已经编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。
对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常可以在不同
系统下安装。
7.使用rpm时遇到的一些特殊问题
Q 我用rpm -e **.rpm无法删除rpm包
A 包名不要包括rpm,
rpm -e 包名,可以包含版本号等信息,但是不可以有后缀.rpm
Q 在MS的系统下有没有读RPM文件的工具?
A wincmd with rpm plugins.....
Q 是否可以通过ftp安装安装升级rpm包?
A 可以。rpm -ivh ftp://xxxxxxxx/PATH2SomeRPM
Q rpm安装时已有的包版本过高怎么办?
A 有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要
安装的包依赖的一些文件会找不到。这时有两种解决办法,
第一是在系统文件中找到和需要的文件功能相同或相似的文件,做一个符号链接到
需要的目录下。
第二是下载安装新版本的软件包。

Tuesday, March 03, 2009

(转)Bash shell 快捷键记录

这篇 Bash Shell Shortcuts 的快捷键总结的非常好。值得学习。下面内容大多数是拷贝粘贴与总结.

CTRL 键相关的快捷键:

Ctrl + a - Jump to the start of the line
Ctrl + b - Move back a char
Ctrl + c - Terminate the command //用的最多了吧?
Ctrl + d - Delete from under the cursor
Ctrl + e - Jump to the end of the line
Ctrl + f - Move forward a char
Ctrl + k - Delete to EOL
Ctrl + l - Clear the screen //清屏,类似 clear 命令
Ctrl + r - Search the history backwards //查找历史命令
Ctrl + R - Search the history backwards with multi occurrence
Ctrl + u - Delete backward from cursor // 密码输入错误的时候比较有用
Ctrl + xx - Move between EOL and current cursor position
Ctrl + x @ - Show possible hostname completions
Ctrl + z - Suspend/ Stop the command
补充:
Ctrl + h - 删除当前字符
Ctrl + w - 删除最后输入的单词

ALT 键相关的快捷键:

平时很少用。有些和远程登陆工具冲突。
Alt + < - Move to the first line in the history Alt + > - Move to the last line in the history
Alt + ? - Show current completion list
Alt + * - Insert all possible completions
Alt + / - Attempt to complete filename
Alt + . - Yank last argument to previous command
Alt + b - Move backward
Alt + c - Capitalize the word
Alt + d - Delete word
Alt + f - Move forward
Alt + l - Make word lowercase
Alt + n - Search the history forwards non-incremental
Alt + p - Search the history backwards non-incremental
Alt + r - Recall command
Alt + t - Move words around
Alt + u - Make word uppercase
Alt + back-space - Delete backward from cursor
// SecureCRT 如果没有配置好,这个就很管用了。

其他特定的键绑定:

输入 bind -P 可以查看所有的键盘绑定。这一系列我觉得更为实用。
Here "2T" means Press TAB twice
$ 2T - All available commands(common) //命令行补全,我认为是 Bash 最好用的一点
$ (string)2T - All available commands starting with (string)
$ /2T - Entire directory structure including Hidden one
$ ./2T - Only Sub Dirs inside including Hidden one
$ *2T - Only Sub Dirs inside without Hidden one
$ ~2T - All Present Users on system from "/etc/passwd" //第一次见到,很好用
$ $2T - All Sys variables //写Shell脚本的时候很实用
$ @2T - Entries from "/etc/hosts" //第一次见到
$ =2T - Output like ls or dir //好像还不如 ls 快捷
补充:
Esc + T - 交换光标前面的两个单词

很多来自GNU 的 readline 库。另外一份总结也很好

记忆是所有技术人员的敌人。一次要把所有的都记住是不可能的。针对自己的使用习惯,对少数快捷键反复使用,短期内就会有效果。

你还知道那些好用的快捷键 ? 补充一下 ?

--EOF--

恒乃贵--有感卢师兄与他的gui8.com

今日平日不甚言语的卢师兄兴致勃勃的介绍了他的网站之后,很是惭愧。自己从大一开始,就学做网站,受益于中南的在全国还算不错的网络建设环境,摸爬滚打,经手的网站数十个。虽然也多次尝试过自己建站,但每每有始无终,开头热血沸腾,到后来烧一退,便抛到九霄云外。

反观,卢师兄这个网站,无论从技术上还是美观程度上讲,并不专业(不过内容确实很新颖,很专注),但人家能从大二一直坚持到现在。目前每天能有数千的访问量,甚至还有人投稿,情形好时每月靠广告有七八百大洋入账。

想起了以前的一句老签名---凡事若不能坚持三年,注定无果。以往的不懈努力可能就付之东流了,这也就是你虽然比别人付出多得多,但却收益未必比别人好的原因了。

两年零两个月十天,我需要多久才能忘切。。。

Monday, March 02, 2009

Emacs tips

一些网上不常见,但又很方便的设置,不断增加中...
1.使emacs中剪贴或复制的文字能粘贴到其他程序:
(setq x-select-enable-clipboard t)

2.;scroll other window
(global-set-key (kbd "C-c C-v") 'scroll-other-window)
(global-set-key (kbd "C-c C-b") 'scroll-other-window-down)

很怀念长沙的旧书店

豆瓣上搜教材,忽然看到正好有个人转,查看资料,是长沙的。。。
真的很怀念长沙,成片成片的旧书市场。因为它们的存在,不必为买教材发愁;因为它们的存在,没事的时候,可以去那逛逛,享受淘书的乐趣。。。

来到北京之后,只知道清华有个独峰书院,路远价不低。北大人大的周末书市又尽是些垃圾书,唯有狠心上卓越、当当了。

Wednesday, February 25, 2009

正式进实验室第一天

昨天去那把电脑装上,由于现在资源不足,额外抽出一台服务器给我,其实跟新机器差不多。而且上面只装了Centos,真实非常合俺的意思。这几天,披星戴月,累死劳活的把宿舍机子上的windows xp给换成了Gentoo,虽然说不容易,但用起来真的很爽,什么东西,都让你知道的清清楚楚,就好像知心的朋友,从此以后打心眼里瞧不起windows了。--总之,我宣布,彻底告别windows!

这段日子被折腾的晕头转向的。开学近两周了,貌似还没一天早上准时(更别说提前了)到过教室,更惭愧的是某日清晨走在上学的路上思量着迟到实在太久,不好意思去,便发生了早退现-_!

以后会更忙的,赶紧把emacs整好,好用org-mode来管理管理自己的时间。

Monday, February 23, 2009

Gentoo安装之二:安装中文字体

英文环境的gentoo自带的中文字体很陋,所以必须重新安装字体。

emerge arphicfonts wqy-bitmapfont corefonts ttf-bitstream-vera

下载后的字体,位于/usr/share/fonts 中,为了便于管理,可将其移到/usr/local/share/fonts下,一般下下来的字体文件夹内都自带了font.scale和font.dir,无须再用mkfontscale和mkfontdir生成索引,系统能自动识别。当然,前提是,你把字体文件夹的路径加入的/etc/xorg.conf的Files section的FontPath
Section "Files"
RgbPath "/usr/share/X11/rgb"
............#以下开始是中文字体,fontconfig默认会选择第一个
FontPath "/usr/local/share/fonts/ttf-bitstream-vera/"
FontPath "/usr/local/share/fonts/arphicfonts/"
FontPath "/usr/local/share/fonts/wqy-bitmapfont/"
FontPath "/usr/local/share/fonts/corefonts/"
EndSection

另外,再本地化时,/etc/locale.gen应加入:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GB18030
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8
再用locale-gen生成以下locale,以便glibc使用。

Gentoo安装之三:fcitx在英文系统界面下的安装

为什么使用fcitx:支持双拼,配置性高,快,不和其他程序冲突(暂时没发现)。
这个问题折磨了了我一天有余,罪魁祸首是emerge下来的fictx是nostfx(fictx -v 可查看版本号)版的,装上之后,虽然可以勉强输入中文,但尽是些古怪的文字。网上也没找到到底什么是nostfx版,或许只有yuking自己知道吧。另外,最新的3.6.0测试版无法configure,没细究原因,后来emerge --unmerge fcitx,再到www.fcitx.org下了fictx-3.4.2稳定版

1.首先配置locale
其实fictx只要求LC_CTYPE=zh_CN,即可,所以为了可以这样设置,
LANG=C
LC_CTYPE=zh_CN
系统就可以仍为英文的。

2.到fictx源码目录下,./configure->make->make install

3.配置文件的GB2312编码
fcitx的配置文件~/.fcitx/config和profile默认是使用GB2312编码,用gedit读取时显示为乱码,可用gconftool-2来配置gedit让其自动识别(也可以在 gconf-editor 里面改):
$gconftool-2 --set /apps/gedit-2/preferences/encodings/auto_detected [UTF-8,CURRENT,GB18030,BIG5,ISO-8859-15,UTF-16] --type list --list-type string
注意,保存时,也要选择GB2312编码(再选择栏中有添加编码),否则fcitx无法读取。

4.让fcitx自动运行
按网上方法,我再~/.brashrc和/etc/env.d/99input中都添加了那三行代码,但都没成功,待进一步试验...

Sunday, February 15, 2009

在emacs中查字典

实验环境:windows下的emacs22.3,dictionary-1.8.7
1.下载dict mode支持包。

2.安装Windows下的make:
http://sourceforge.net/projects/gnuwin32/
这个开源项目就是要移植一些linux下的常用工具到windows下,其中包括make,grep等等。

3.然后安装dict mode。注意两点:
(1)为方便起见,应先把make的路径加到系统的环境变量中;
(2)修改dictionary-1.8.7的makefile中的EMACS变量的值为你的runemacs的路径。
2.在配置文件init.el或(.emacs)中添加如下代码:
;;-----------------dictionary------------------
(autoload 'dictionary-search "dictionary"
"Ask for a word and search it in all dictionaries" t)
(autoload 'dictionary-match-words "dictionary"
"Ask for a word and search all matching words in the dictionaries" t)
(autoload 'dictionary-lookup-definition "dictionary"
"Unconditionally lookup the word at point." t)
(autoload 'dictionary "dictionary"
"Create a new dictionary buffer" t)
(autoload 'dictionary-mouse-popup-matching-words "dictionary"
"Display entries matching the word at the cursor" t)
(autoload 'dictionary-popup-matching-words "dictionary"
"Display entries matching the word at the point" t)
(autoload 'dictionary-tooltip-mode "dictionary"
"Display tooltips for the current word" t)
(unless (boundp 'running-xemacs)
(autoload 'global-dictionary-tooltip-mode "dictionary"
"Enable/disable dictionary-tooltip-mode for all buffers" t))
;; key bindings
(global-set-key "\C-cs" 'dictionary-search)
(global-set-key "\C-cm" 'dictionary-match-words)
(global-set-key [mouse-3] 'dictionary-mouse-popup-matching-words)
(global-set-key "\C-cd" 'dictionary-lookup-definition)
;; for dictionary tooltip mode
;; "web1913" for Webster's Revised Unabridged Dictionary(1913)
;; 貌似在emacs 22.3中不支持tooltip,即鼠标取词,故去掉,节省内存
;;(setq dictionary-tooltip-dictionary "web1913")
;(global-dictionary-tooltip-mode t)
(setq dictionary-default-dictionary "web1913")

OK了,上面几个操作函数意思如下:
dictionary-search:请求输入一个单词,输出所有的解释条目。
dictionary-lookup-definition:查当前鼠标处的单词。
dictionary-match-words:输入一个匹配模式,输出匹配的单词。
dictionary-popup-matching-words:弹出一个菜单,显示各个字典中相的匹配单词(匹配策略点击按钮Select Match Strategy中选择)。
在查询结果窗口中,输入h可查看快捷键。

有了这个,看起英文文档来就方便多了,而且用的是原汁原味的英语词典,对英语水平的提升也很有帮助啦。

Saturday, February 14, 2009

Valentine's Day

此痛幽幽,十年不愈。云烟逝去,不再复返!

你一定要幸福...一定要!

Tell me why



这首歌是来自爱尔兰男孩declan galbraith 10岁的时候唱的。稚嫩的10岁男孩用自己的弱小但又十分有力的声音呼唤着战争的结束和平的到来。

很专业,很震撼!

归来

从家回到学校。

做人做事定理:不要为了做某事而做某事。

推论:不要为了爱而爱。否则,它将成为一种包袱,让人越来越累。好好吸取教训吧!

Sunday, January 18, 2009

做人、做事、做学问--胡伟武本学期最后一堂课摘录

听君一席话,胜读十年书。愿你我共勉。
一、全面优化你的人生设计
(1)简单经历与似是而非的机会:不要因为一件事不可能完成,而不去做。
(2)“运气好”的必然性与偶然性:吃小亏终占大便宜。
(3)修身为本,立志为先,成功平台的重要性:在你每个人生阶段,树立几个榜样,不断调整,看最终能否达到。
(4)不埋怨,不抱怨:困境是一时的,怨天尤人只会让你更消极,谁能在困境中做到这点,谁就是王者。
二、艰苦奋斗
(1)我做的比别人好,是因为我比别人更努力:世上真正的天才有几个,即使是天才成才的又有几个。不要期待不可能事件会发生在你的头上,问问自己是否比别人更加努力?
(2) 耐得住寂寞,抵得住诱惑:要有别人说我傻,我就笑他们傻的勇气。“当年我有公费出国的机会,但我没去,博士毕业后只有800多工资,村里的人都说我傻,但我就认为他们傻,出去干什么啊”,你有这个觉悟吗?
(3)除了艰苦奋斗,还是艰苦奋斗
三、勤于学习
(1)从书本中学习,从实践中学习,学而时习之,不亦悦乎
(2)学习知识,学习方法,学习哲学
(3)把握事物的简单性:“吾道一以贯之”
(4)在学习中提高修养

what is love--the movie "Artifcial intelligence" told us

The movie is told a young boy Davild,who is a high advanced robotic with love,dreams to receive his "mother" Monica's love--a real woman who is going to lost her  only son and then adopt Davild.But human beings,as you and I,can share our love to a machine?Most of us may think it is a silly thing,even the kindly mother can not absolutly.However,the "ignorant" automaton perceive love from his "mother",he thought the reason why she adapted him is just because he is not a real human.Therefore,the clining boy begin the way searching for "blue fairy" in legend,who can help him to be a real man.Two thousands year later,the silly robotic achieved his dream,with the help of the 2000-yeas-after robotics,his mother was cloned for one day's life.The day,only beyond to him and his mother,was full of happness,the only happy day in his life,but enough.The end of the day,the mom died again,and Davild sleeped beside she,with a sweet smile and a good dream.

In the world,one thing is very simple but we alawys take it complex and confusing.In fact,most time not because love we to do somthing,but we do that for love.That is the soure of love.In other words,love is not the reason but the result,a perpetual,constant feeling to the person you love.Motherhood is the best example.

That is the true love,which can move you deep into heart,I think,the others are presudo or jejune.

Friday, January 16, 2009

保护眼睛的字体增强补丁(只对液晶有效)

ClearType不是专门的字体,而是一种显示技术,可以称为"超清晰显示技术",它是专门为液晶显示器用的,可以大大增强所有文字的显示清晰度(包括中文),而且,普通的显示管显示器(阴极射线管显示器)也可以使用。效果大大增强,不妨试试吧:)
要实现这个效果,不是使用专用的字体文件,而是必须下载一个补丁,开启ClearType功能即可。

下载地址:
http://d.download.csdn.net/down/964411/fz_zhou

Thursday, January 15, 2009

The last exam of this semester

The result is always not as what you thinked before,even if you did hard.

May I take a rest?
No,many more tough missions have to be done.
May I come to delight?
No,I don't know how to make them and what are the results,just as I cannot image what my life likes tomorrow.

Nice day tomorrow!
PS:Giving in,I considerred,but it's beyond me.

Tuesday, January 13, 2009

彻底被打败了

梦想,多么美好啊!
但一次又一次的挣扎,
却还是逃不开现实的残酷。
看是每一步在前进,
其实不知不觉,
已被这个世界所渐渐打败。

是的,我已彻底被打败了,
这就是命运。。。

Insist On

English words
Go to bed at 23:30

About Me

Gtalk:l0he1g at gmail
Location:Beijing,China