I am LAZY bones? AN ancient AND boring SITE

2007年 10月 的归档

我的blog正式搬家了~

老的blog在这里: http://forum.ubuntu.org.cn/weblog.php?w=85

这个由于功能太简单,被淘汰了,呵呵,新的这个WordPress系统还是很不错的,虽然目前还没有完全摸透.

一些设置可能今后陆陆续续还会修改. :lol: :lol:

这里还要感谢下一叶,给我们提供这么好的一个空间.辛苦啦~

使用lsof恢复误删的文件

参考: http://www.bitscn.com/linux/command/200612/85236.html

先介绍一些文件的基本概念, 文件实际上是一个指向inode的链接, inode链接包含了文件的所有属性, 比如权限和所有者, 数据块地址(文件存储在磁盘的这些数据块中). 当你删除(rm)一个文件, 实际删除了指向inode的链接, 并没有删除inode的内容. 进程可能还在使用. 只有当inode的所有链接完全移去, 然后这些数据块将可以写入新的数据.

proc文件系统可以协助我们恢复数据. 每一个系统上的进程在/proc都有一个目录和自己的名字: 里面包含了一个fd(文件描述符)子目录(进程需要打开文件的所有链接). 如果从文件系统中删除一个文件, 此处还有一个inode的引用:

/proc/进程号/fd/文件描述符

接下来, 你需要知道打开文件的进程号(pid)和文件描述符(fd). 这些都可以通过lsof工具方便获得, lsof的意思是”list open files, 列出(进程)打开的文件”. 然后你将可以从/proc拷贝出需要恢复的数据.

下面介绍在Fedora Core 5系统上使用lsof恢复误删的文件:

环境
主机: 使用微睦独立主机, 一台基于vmware的虚拟独立主机.
系统: Fedora Core 5
内核: 2.6.16-1.2122_FC5
lsof版本:
[zhaoke@fedora5 ~]$ /usr/sbin/lsof -v
lsof version information:
revision: 4.77

预备工作:
如果你的系统没有安装lsof, 可以从作者网站或pbone获得.
作者网站: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
Pbone: http://rpm.pbone.net/

恢复过程:
首先, 我们需要创建一个文本文件, 删除然后恢复:

[zhaoke@fedora5 ~]$ man lsof | col -b > myfile

然后看一下文件内容:

[zhaoke@fedora5 ~]$ less myfile

你可以看到lsof所有的文本帮助信息.

现在按Ctrl-Z退出less命令, 然后在shell提示符下查看文件属性信息:

[zhaoke@fedora5 ~]$ stat myfile
File: `myfile’
Size: 116549 Blocks: 240 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 492686 Links: 1
Access: (0664/-rw-rw-r–) Uid: ( 505/ zhaoke) Gid: ( 505/ zhaoke)
Access: 2006-11-20 12:59:38.000000000 +0800
Modify: 2006-11-20 12:59:34.000000000 +0800
Change: 2006-11-20 12:59:34.000000000 +0800

没问题, 继续下面工作:

[zhaoke@fedora5 ~]$ rm myfile
[zhaoke@fedora5 ~]$ ls -l myfile
ls: myfile: No such file or directory
[zhaoke@fedora5 ~]$ stat myfile
stat: cannot stat `myfile’: No such file or directory

myfile文件删除了.

这时候, 你不要终止仍在使用文件的进程. 因为一旦终止, 文件将很难恢复.

现在我们开始找回数据, 首先用lsof查看一下:

[zhaoke@fedora5 ~]$ lsof | grep myfile

less 9104 zhaoke 4r REG 253,0 116549 492686 /home/zhaoke/myfile (deleted)

第一个纵行是进程的名称(命令名), 第二纵行是进程号(PID), 第四纵行是文件描述符(r意思是普通文件), 现在你知道9104进程仍有打开文件, 文件描述符是4. 那我们开始从/proc里面拷贝出数据. 你可能会考虑使用cp -a, 但实际上没有作用, 你将拷贝的是一个指向被删除文件的符号链接:

[zhaoke@fedora5 ~]$ ls -l /proc/9104/fd/4
lr-x—— 1 zhaoke zhaoke 64 Nov 20 13:00 /proc/9104/fd/4 -> /home/zhaoke/myfile (deleted)
[zhaoke@fedora5 ~]$ cp -a /proc/9104/fd/4 myfile.wrong
[zhaoke@fedora5 ~]$ ls -l myfile.wrong
lrwxrwxrwx 1 zhaoke zhaoke 29 Nov 20 13:02 myfile.wrong -> /home/zhaoke/myfile (deleted)
[zhaoke@fedora5 ~]$ file myfile.wrong
myfile.wrong: broken symbolic link to `/home/zhaoke/myfile (deleted)’
[zhaoke@fedora5 ~]$ file /proc/9104/fd/4
/proc/9104/fd/4: broken symbolic link to `/home/zhaoke/myfile (deleted)’

然后, 使用cp拷贝出数据:

[zhaoke@fedora5 ~]$ cp /proc/9104/fd/4 myfile.saved

最后, 确认一下文件:

[zhaoke@fedora5 ~]$ ls -l myfile.saved
-rw-rw-r– 1 zhaoke zhaoke 116549 Nov 20 13:03 myfile.saved
[zhaoke@fedora5 ~]$ man lsof | col -b > myfile.new
[zhaoke@fedora5 ~]$ cmp myfile.saved myfile.new

cmp比较无任何显示, 表示两个文件完全相同, 恢复成功.

参考:
Bring back deleted files with lsof

mo文件的打开方法(在Linux下开发多语言软件必备知识)

这里遇到一个ccsm的翻译bug,本想打开/usr/share/locale/zh_CN/LC_MESSAGES/ccsm.mo 看看原文是什么,然后提交个bug的,没想到那个”翻转的快照”居然没在这个里面,呵呵,倒是让我学会了 mo 和 po 文件的互转方法.

po 文件转成 mo 文件

msgfmt zh_CN.po -o zh_CN.mo

mo 文件转成 po 文件

msgunfmt zh_CN.mo -o zh_CN.po

参见: http://www.51umo.com/Linux/LinuxCode/20070823/38008.shtml

xfontsel

用linux的大多都见过选择字体的时候需要填写类似这样的字符串吧:
-*-fixed-medium-r-*-*-15-*-*-*-*-*-*-*
记得最早的时候,是在解决xmms的乱码问题的时候需要换字体,才要换一个这字符串,虽然说看到这串东西大致也能才出来什么意思,无非就是字体名,字型,字号之类的,但是要具体写出这一串来还真不容易.
所以就有了 xfontsel
不多说了,执行一下,自然就知道怎么用了. :lol: . Laughing

顺便几个地址: The Linux Documentation Project (记得带套访问)

7.10问题不断啊

7.10问题不断啊,今天打开电脑,输入完用户名和密码后就黑屏了,过了一会桌面出来了,还是CF的桌面,但是移动一下窗口就知道,已经变得很慢了,而且CPU占用超高,就像没装显卡3D驱动一样.另外fcitx也呼不出来了,中文都输入不了,不过结束掉fcitx后再重现启动一下,输入法倒是解决了.
于是又满世界找原因,发现一执行glxgears就重启X,应该是3D引擎的问题.看了下apt的log,发现昨天在解决窗口边框问题的时候,曾经把xserver-xgl给装上了,猜想这可能就是原因,于是马上把这个卸了,重启X,果然好了… Laughing
不过这个问题倒是不能怪7.10,都怪自己病急乱投医,明明知道7.10已经不需要xserver-xgl了还是装上试了下,才闹出这样的笑话…

7.10 CF窗口无边框一解

昨天记得还好好的,今天不知道怎么回事,一来公司发现刚升级的7.10所有窗口都没有边框了,肯定是CF出了问题,搜索论坛,发现一堆人说什么要改什么xorg.conf,要装什么显卡驱动,然后正好我昨天动过 xorg.conf,就瞎改了一通,无效,连恢复备份文件也无效.
正郁闷之际,偶然打开了 ccsm(CompizConfig Settings Manager)看了下,发现居然是因为里面的”窗口装饰”没选上…..
选上就OK了,随即@@

这件事也告诉我们,往往有些很简单的事情会被我们想得很复杂.

郁闷的man

7.10还真是有点郁闷,无缘无故,居然man都乱码了,幸好还是找到点蛛丝马迹,把问题解决了….详细过程见 http://forum.ubuntu.org.cn/viewtopic.php?t=83051&highlight=

方法: sudo apt-get install manpages-zh
替换掉原来的 manpages-zh-utf8 ,再 man ls 正常显示中文的帮助.

也升级到gutsy了

现在也算是升级到gutsy了.
昨天10月18号,gutsy刚刚发布,但由于想避开源的升级高峰,而且公司里有点事,没空去搞这个,就一直等到今天才升级.
不过这次升级对我来说倒也没多大吸引力.因为gutsy最大的变化就是集成了CF的3D桌面,但是我的feisty早就是3D桌面了,而且我也不喜欢用那个什么桌面搜索.所以升级完全是很平淡的,没有什么过多的期待.

早上,一来公司就想开始升级,下意识地执行了下apt-get update,却提示: 无法连接上 cn.archive.ubuntu.com:80 (222.73.255.64)。 – connect (111 Connection refused)之类的错误,一看是由于cn.archive.ubuntu.com挂掉了,据说是因为这几天流量太大,被ISP给封了…郁闷,叹一下中国的网络….
但是一看我的sources.list里面并没有这个源啊,后来上了irc问人,才知道原来是 /etc/apt/sources.list.d/prerequists-sources.list这个文件搞的鬼,把这个注释掉以后就只剩cn99的源了,更新之类一切正常.
然后就是 sudo sed -i ‘s/feisty/gutsy/’ /etc/apt/sources.list了.完了之后update,dist-upgrade.中间也有些许小错误,但是总算还是搞定了(也不是第一次了…呵呵)

重启回来,先是发现原先的gaim变成了新的pidgin了,而且我的启动项里面的命令是gaim,居然也能正确启动pidgin,这点似乎不错,看了下,是做了个符号链接搞定的,呵呵,原先的账号和聊天记录都毫发无损,不错.还有个好的地方在于Thunderbird已经从1.5版本的升级到了新的2.0.0.6了,不过原先的启动器要改一下了,因为启动的命令都不一样了.
再就是发现fcitx被scim给替换了,由于本人不是很喜欢scim,所以毫不留情得把scim给remove了…换回了原来了fcitx.
然后,新的CF似乎和原来的有点不一样,反正刚开始的时候大部分东西都不能用,CompizConfig Setting Manager也不能用了,把几个相关的包删了重装后,正常一点了,能够起来3D桌面了,但是郁闷的是居然用鼠标拖动窗口标题栏,窗口却不会动了,幸好irc里面早有前例,原因是因为”移动窗口”这个特效,默认居然是关闭的,晕…不知道他们怎么想的,还有”调整窗口大小”也关着,把这两个打开,一切正常了,似乎又回到了原来的状态….除了版本已经是7.10

Linux系统的相关专业术语发音

原文: http://www.91linux.com/html/article/go/20070618/2855.html

Linux 相关专业术语发音 和 Linux 相关方面有很多专业术语,这些词语一般都不好直接翻译成中文,如果不知道它们的发音在交流时要不念它们的字母,要不就想当然的乱说,特别是为人师表更应该正确的掌握它们的发音,不然很容易误人子弟。就像那天妹跟我说,他们的英语老师每天都会教一些课外常用词汇,如:我们经常在加油站看见 CNG 的标识,那是什么意思呢?老师认真的说道,那是中国天然气 (China Natural Gas) 的意思,瞧,这不是闹笑话了吗?

这些专业术语要分两类,一种是原本就有这个词,但在 IT 业中它已经是另外一种意思了 (一般都是根据原有词来命名的),但读法保持不变,代表有:Fedora (一种浅顶软呢帽)、Opera (歌剧)、Safari (旅行)、Apache (印第安人的一个种族)、python (蟒蛇) 等等,Ubuntu 也应该属于这类;另外一种就是合成词、自造词,这种东西的读法最困难,代表有:GNU (GNU’s Not Unix)、Linux、GNOME (GNU Network Object Model Environment)。

以下专业术语都注有音标,可以按照他们的音标来正确发音,对于以上说的第一类词语是完全没有问题的,但那些合成词或自造词发音都来源于互联网,我不能保证它们百分百的正确,只是一个参考而已。以下词语有些并不和 Linux 相关,也一并放上去了。

操作系统相关
Unix: [ ju:niks ] 发音 (yew-nicks) 尤里克斯
GNU [ gəˈnju: ] 发音 (guh-noo) 葛扭
Linux: [ ‘li:nэks ] 里那克斯
GNOME: [ gəˈnoʊm ] 发音 (guh-nome) 葛擩呣
Debian: [ ˈdebiən ] 发音 (deb-e-un)
Ubuntu: [ ùbúntú ] 发音 (oo-BOON-too) 乌班图
SuSE: [ zuzə ] 发音 (su-zee)
Fedora: [ fi’dɔ:rə ]
Solaris: [ səu’leris ] 瑟’拉瑞丝
Leopard: [ ‘lepəd ]

浏览器相关
Mozilla = Mosaic + Godzilla ( Mo=[’mәu] zilla=[zilʌ] )
Mozilla: [mәu’zilʌ] 官方中文译法 “谋智“
Firefox: [ faiefɔ:ks ]
Opera: [ ‘ɔpərə ]
Safari: [ sə’fa:ri ]
Netscape: [ netskeip ]
Konqueror: [ ‘kɔŋkərə ]

其他方面
Apache: [ ə’pætʃi ] 阿帕奇
python: [ ‘paiθɔn ] 派森
perl: [ pə:l ] 泼尔
Pidgin: [ ‘pidʒin ] 裴金
Beryl: [ ‘beril ] 贝里尔
Samba: [ ’sæmbə ] 桑巴
Rhythmbox: [ ‘riðəmbɔks ]
WiFi: [ ‘waifai ]
WYSIWYG: [ ‘wiziwig ]

刚发现个Linux软件网站

http://www.linuxgem.org/

每天到处搜刮实用好玩的Linux软件,还有游戏,还有一些Linux相关的基础知识和技巧。

由于不只是针对ubuntu的,所以没有给出ubuntu下的安装方法,不过大家都查得到,而且软件主页多有deb包。

另:
http://linux.softpedia.com 也不错,只是英文的.