Shell's Home

Oct 17, 2006 - 4 minute read - Comments

LPI的表述问题

+————————————————————————–+ | {width=“181” height=“80”} | | 在您准备接受LPI认证考试前,必须在 LPI | | 官方网站上进行注册登记,注册后系统会发送一个LPI | | | | ID到您的邮箱中,同时登陆会员区也可查看 LPI | | ID。 | | | | 如果您在注册中遇到困难,请致电: 010-62670579,或发邮件到 | | candy@lpi-china.org 或 bai@lpi-china.org, | | 我们有考试官员为您服务,所有注册都是免费的。 | +————————————————————————–+ | {width=“183” height=“80”} | | 拿到您的LPI | | ID后,您可持本人身份证到LPI中国办公室、LPI授权培训中心及Prometric考试中心报名,同时一次性交纳考试费¥1300元,然后您会得到一个准考证,持准考证及身份证到指定的考场去参加考试。 | | | | | | 注:考生在报名时,请选择对应的考试级别和中、英文试题:LPIC-1 | | | | 和 LPIC-2。 | | | | ———————————————————————- | | – | | LPIC-1 | | 101 | | | | 102 | | | | LPIC-2 | | 201 | | | | 202 | | ———————————————————————- | | – | | | | 以任何顺序通过 101 和 102,可以获得 LPIC-1 证书,只有获得了 LPIC-1 | | 证书,又获得 201 和 202 考试的专业人士才能获得 LPIC-2 证书。 | +————————————————————————–+ | {width=“181” height=“80”} | | 在附近的 Prometric | | 考试中心预定考试时间,接受考试,成绩会立即出来,证书要等 7 | | 个工作日,从加 | +————————————————————————–+

Oct 6, 2006 - 1 minute read - Comments

Windows和Linux之争

在网络上大家经常能看到争论Linux和Windows哪个更实用的帖子。两者无非抱持两种论点,Linux胜在价格和灵活性,Windows胜在简便和可用。一般来说都是说,不论怎么说,Linux可以如何如何而Windows不行。或者是,Windows可以什么什么而Linux不行。 总体来说,Windows擅长于桌面应用而Linux擅长于服务系统。Windows最大的资本在于品牌和延伸。Windows的品牌和可乐的不同在于,可乐的品牌仅仅是牌子,是虚拟价值。一旦可乐公司全部烧毁,那么能否靠可乐的牌子重新站起还是一个问题。但是Windows的牌子还附带了用户对于UI操作方式的粘滞。一旦M$烧了,别人也是很难抢这个蛋糕的。Linux长处在于免费,就单机成本来说,Linux远远要低于Windows。但是这是不完全的运营模式。一个不赚钱的项目?如何吸引别人? 我不考虑Windows和Linux哪个更好,而是考虑另外两个问题。他们是否有存在的必要,以及他们谁更适合我。 大家想必知道,POSIX标准下还有Linux,BSD,Solaris的分别。如果今天不是WL之争,是否会出现UL之争呢?我不知道,历史无法假设。不过我相信,多个公司多种模式的混合竞争,会造成好的效应。很多Windows项目,都潜在的为Linux项目提供了资金(至少M$养活了很多程序员)。而很多Linux项目,又为Windows项目提供了技术和支持。最重要的是,没有Linux的追赶,windows就会无限制的膨胀,垄断,守旧,出现问题。而没有挑战Windows的需要,Linux也不会不断进步。 很多人往往把Windows和Linux等同到开源软件和商业软件。其实这是不严格的。软件往往分为商业软件,试用软件,共享软件和免费软件。商业软件是指代码封闭,作为公司的一个资产。可以转让,可以有条件开放。软件收取使用费用,并且出品公司对于功能提供保证。这样的一类软件。试用软件是商业软件的特殊版本,指限制或者取消了部分或全部功能,准许用户合法免费有限使用的一种特例。代码可以封闭也可以开放(但即使开放也往往是部分代码,甚至是理论代码),通常是全部软件的一个部分,或者是修改版。往往可以通过缴费来变成商业软件。共享软件指软件作者保留软件的所有权,但是免费的发行软件,不收取费用或者仅仅收取手续费。源码可以封闭也可以开放。免费软件指作者按照源码形式发布软件,并且放弃源码所有权力。一般有有条件发布和无条件发布。GPL就是一种发布条件,虽然作者不继续拥有代码所有权力,但是这些代码不得进入商业领域。而无条件的免费软件,所有者放弃所有权力,任何人可以合法的运用其中的代码。 由此来看的话,大致是商业软件和试用软件一个阵营,共享软件和免费软件一个阵营。然后,Windows上有大量的共享软件,例如Winamp,这已经是Windows得以生存的一个基础了。Linux上面也有很多的商业软件,例如MAYA。往往是属于免费阵营的共享软件稳固了Windows的存在基础,给Windows系统提供了大量的功能和定制。而属于商业阵营的MAYA等为开发4Linux的软件,而为Linux提供了大量的资金。 至于哪个更适合我(注意,这里的我,可不是贝壳本人),则要看系统的功能,成本,特性而定了。首先是成本问题,M$曾经提出所谓总体拥有成本。即,Windows通过一次购买就可以低成本的运行,而Linux一般都是要为机器配备高水准的管理员。所以管理员水平的上涨引发的费用应当被计入成本中。而且Windows系统对于操作者是基本不用培训的,而Linux需要培训操作者,因此也会产生成本。 问题在于,Windows一次购买1000台机器的时候,大约40W是的纯软件成本。如果原来是需要配置3个网管,现在要配置5个高水准的。那么原来大约需要12W一年,现在需要25W一年。如果3年内需要购买升级产品,则会导致Windows的成本反而高。问题在于,Windows也是会购买升级的,所以软件的成本也会平摊在每年上。当运行的机器多了,就会导致网管的工资上升不算啥的状况。而且注意,其中还不包括因为要在Windows上工作而需要购买的其他软件,例如Office。如此计算下来,单纯从配置的平均拥有成本讲,Windows不占有优势。 不过在雇员培训上,Windows就非常有优势了。现在会Office的雇员满天飞,不会才奇怪。因此可以说是无成本的。然后不会的人找起来反而困难,加上培训,每人成本就要高出100-200。而且非Windows环境和Windows环境交互上比较麻烦,所以这个成本还要更高。从这点来说,一般企业都不适合用Linux。什么企业适合呢?1000台以上机器,雇员学历偏高,在和他人交互上需要他人配合的企业。其实去了企业就可以明白说是政府了。 特性上说,Linux奉行的是专业分工合作的模式。由一个软件完成一个非常专的部分,例如排序,或者下载。然后通过交互通道来协调各个软件,达到一个复杂软件的构成。例如一个邮件软件,可以在里面加入HTML,加入加密,加入VIM编辑。定制性非常强,对于和某些常见任务接近但是细节上有区别,又强调细节必须实现的特殊任务。往往可以非常简单快速的完成。例如同样一个从Internel上面抓专利信息形成数据库的工作,Windows下要专门写程序,而Linux下面可以通过连接lynx|sed>来完成。 然而这对于使用者水平要求非常高,如果不熟悉系统,根本无法做到。对于学校,专家来说,使用Linux是非常方便的。而对于正常用户来说,Linux可就是鸡肋了。 windows的特性是大而全,思考是基于用户傻瓜的模式。固然没人愿意说自己是傻瓜,可是做傻瓜考量的软件总不做天才考量的软件好用。简单来说,windows不追求低成本,不追求好用,只追求用户最简单可以用。可见,随着电脑普及,windows这种思路是无法持续的,或者至少是要萎缩的。 最后一个是功能,Linux的功能和windows总体评价来看差不多。不过Linux的软件更多是专业用的,例如免费的符号表达求解。而windows更多是娱乐的,例如游戏。因此要实现有限功能的人可以自由选择,例如办公环境。需要专业的人最好用Linux,需要娱乐的人最好用windows。 综上来说,对于政府,学校,专家,需要专业软件的人,建议选择Linux。而对于中小企业,需要娱乐的个人,最好选择Windows。

Oct 5, 2006 - 1 minute read - Comments

租房和买房

租房和买房的选择中其实有两个问题。报酬率,还有投资选择。 首先看报酬率问题,我们看房价/租房比值。 假定一个房子没有装修,这个房子每个月租金理论应当是多少?答案是房价在当前长期存款中的一个月平均利息(注意不是复利,房租可不会计算复利),简单来说是总房价X乘r,其中r是长期存款的单月收入率。因为买房,在没有价格波动的情况下,和长期存款一样。都是一个投资,指望获得利润。如果理论租金高,那么会更多人买房子去租,导致房价上涨。而且出租间竞争导致房租下跌。由此平衡到利率。我们假定一般这两个投资期限都是五年,并且都没有风险(这两个投资对于货币贬值这个风险的反应是一样的)。注意这里的两个前提,理性投资,价格不波动,房子不装修。 投资者有一个等式,他对某个资产的每个月所得减去每个月支出,应当等于这个资产价值的当月获利。 那么我们再考虑房子装修的情况。一个房子是固定资产,可是装修就是更短期的损耗品。如果装修的可以使用期限是N个月,而一次装修费用是裸房总价的k倍(当然,k可以小于1)。那么装修在每期的费用就是总房价X乘k/N。然后我们综合上面,得到了房价/租房比值。每月所得(房租x),每月支出(Xk/N),每月利息(Xr),x-Xk/N=Xr。X/x应当是1/(r+k/N)。还是注意这里的前提,理性投资,价格不波动。 我们先计算下,当前中国升息后5年期以上的月利率是0.345%(银行注明是月利率0.3%,我现在还不知道怎么计算出来的)。一次装修普遍是120个月为周期,大约投入资金为房价的1成(伪推定,按照房子地段和装修水平,此处变化非常大)。这样我们计算出233倍。如果是两成的装修,就是195倍。但是基本都在200-290倍间。装修越好,比值越小。房价/租房比值是指明你租房多少时间可以买一个房子的数值。当你装修很好的时候,很短的时间就可以重新买一个房子了。国际上一般这个值都在100-200间,可能是由于装修比较好,而且当前美元利率也比人民币高出一倍。当前上海的此比值在320-370间浮动,和我们计算的并不符合,原因就是在于远期预计。 我们现在保持理性投资的假定不变,那么当我们预计房价会以一定比值变化的时候。我们会改变买房和租房的行为,从而导致房价/租房比值的变化。那么,我们预计投资者的收入会在租房房价外加上房子上涨在每个月的平均所得XR(假定房价上涨当场折现,事实上你必须在一定时候出手折现,然后平摊在你拥有房子的这些年上。如果跌了,R为负)。现在,每月所得(房租x+房子上涨在每个月的所得XR),每月支出(Xk/N),每月利息(Xr),x+XR-Xk/N=Xr。X/x应当是1/(r+k/N-R)。 同样,我们按照上面的假定来进行计算,1/350=1⁄233-R或者是1/350=1⁄195-R。R应当是0.143%-0.227%的样子,换算平均年预期房价上涨是大约是1.66%到2.59%。预期房价上涨越高,当前的房价/租房比值越高。关系式很简单,R=r+k/N-P,其中P是预期房价上涨带来的平均每月收入。 显然,当前房价/租房比值的状态显示大众的心理还是基本相信房价逐年上涨的状态。 当然,消费者未必在房屋上全理性,因为受到工作,生活,个性的影响,我们对于房子的选择也是非理性的。而且上面的市场也是完全市场。因此上面的分析仅仅是分析而已。 另外一个问题,就是投资选择问题。简单来说,就是房贷和存款利率的差的问题。这涉及风险评估问题,根据不同的风险,商业贷款的利率应当不同。但是中国目前利率固定,因此开始就没有讨论价值(加上公积金等等问题,更难说清楚)。但是一般来说,如果风险不变化,存款利率不变。提升贷款利率的结果会催生地下钱庄。反之则会疯狂贷款,催生呆帐。因为同样通胀水平下,风险越大,投资回报比例越高。 同理,如果说没有其他问题,贷款利率升高,风险也增大。不知道这是否预示着中国的领导层预期到中国将来房贷的返还风险增加。换句话说,失业或者房价下跌(高失业率或者高通胀率),痛苦指数增加。

Sep 30, 2006 - 2 minute read - Comments

网络性能测试和标准

前两天弄有线通的事情弄的郁闷了,所以就研究了网络性能测试。以后不用也是浪费,大家需要就看看吧。 1.目标 测试目的往往是测试清楚几个值,包括:IP包传输往返时延(RTT),IP包时延变化(抖动),IP包丢失率(Lost rate),IP业务可用性,还有带宽(Bandwidth)。 2.适用标准 RFC 1242, RFC1944, RFC2285, RFC2432。 ** 中华人民共和国信息产业部令第36号(http://www.chinanetcom.com.cn/mj/dxsc.asp?Unid=3810) ** IP网络技术要求– 网络性能参数与指标(YD/T 1171-2001) 3.测试平台和工具 我们假定基于POSIX兼容平台测试,演示用的例子来自Debian Etch/Kernel 2.6.17-2-686。Windows下所需要工具可以参考移植工具。 iperf 网络带宽测试工具 paratrace 被动路由测试工具 hping2 网络联通和时延测试工具 wireshark(ethereal) 抓包分析工具 p0f 被动指纹分析工具 4.测试对象,方法,和结果分析 以下为实例测试,参数需要根据具体情况变化。 4.1.测试网络带宽 在服务器端运行iperf -s。 在客户端运行iperf -c 192.168.0.2 100Mbps网络环境下,得到结果为92.6Mbps,折合为11.5MB/s。即数据极限传输速度。 4.2.测试网络IP包传输往返时延(RTT)和IP包时延变化(抖动) 分主动被动方法,被动方法用wireshark抓包分析。下面主要介绍主动方法: 运行hping2 www.google.com -p 80。得到 56 packets transmitted, 56 packets received, 0% packet loss round-trip min/avg/max = 242.5/269.9/381.1 ms 即在主动建立的到www.google.com的TCP连接中(默认为TCP,可以使用UDP,ICMP,IP,具体请看hping2 –help),丢包率为0。平均传输延迟为269.9,抖动为138.6。 注:按照《中华人民共和国信息产业部令第36号》,往返时延平均值≤200毫秒,时延变化平均值≤80毫秒。此处已经超标。但因为测试环境和适用条件不完全吻合,因此无法作为有效证据。 4.3.IP包丢失率(Lost rate) 也分主动方法和被动方法,主动方法见上。被动方法是用wireshark抓包后,通过tpc.analysis.lost_segment标志分析丢包数量和总体数量。具体为。 用wireshark抓包。 用( tcp.srcport == 7007 || tcp.

Sep 30, 2006 - 1 minute read - Comments

从踢牙老奶奶到火星文,从火星文到人工智能

先复制一个小的密码—— £³¨Ç£ê£±£¬£µ¨É¨Ù¨Ó¡££±¨Ð¨Ç¨Í£¬£±¨Ð£ä¨Ê¡£ ¨×£²£ä£´£¬¨ß¨Ç¨Ñ¨È¡£¨ÙYA¨È£ã£¬£ê£±£´¨Ø¡£ £´¨Ñ£´£õ£¬£â£ã£â¨Ó¡££±£ã£±¨É£¬¨Í¨Ø£´¨Ó¡£ 看的出来的——请和火星总部联系。 很多朋友可能不知道一个事情,不过不少人应该听说过无冬城之夜。台湾版的无冬城之夜本地化(l10n)中有一个重大bug。俗称踢牙老奶奶。 原文是:我看到一位老奶奶慈祥的脸——我抓住她的手,但是她竟然一脚踢到我的牙齿。 估计所谓踢牙,应当是英文kicked my teeth in,指漠视。最后应当是她竟然无视我。这是典型的一个翻译错误,而且估计可能是机器辅助翻译没有修润的结果。这个错误和当年大菠萝的温暖骷髅情况不一样,没有任何一个电脑会把蠕虫骷髅(wormskull)错成温暖骷髅(warmskull)。 由此肇因产生了很多火星文,例如说:这个游戏里面到处是踢牙老奶奶。 不过,无论是机器翻译不完善造成的火星文,还是人造的火星文。其实都是一个核心问题,NLP。 机器可以理解形式化的编程语言,并且转换为机器代码。是因为语言是具备一定的形式(form)的,或者叫做范式(pattern)。而例如说可以借助符号来做唯一分割(语法树的生成,或者说波兰树的生成),符号的唯一性。(所谓重载,是用将参数等重载辨识元素附加在名字里面,导致名字的定义仍旧唯一,详细大家可以看有做对象导出的库的导出符号表)然而自然语言本身分割未必唯一,符号也是和上下文相关的。例如最有名的例子,中国队大败美国队获得冠军。(中国队大败美国队获得冠军。和中国队大败美国队获得冠军。前一句中的败是动词,后一个应当是使动用法)这句同时出现了非唯一分割和符号歧义,即使对于人来说,也是具备歧义句特征的。只有在特定的语境中,歧义才会消除。例如如果在表扬中国队表现的文章中,那应当是后面一个解释。 对于自然语言的理解,人工智能中叫做NLP问题(Nature Language Precess)。首先要处理的就是断词和消除歧义。其中涉及的问题到不繁复,但是很庞大。最关键就在于数据量上。 断句的话,一般简单的都采用HMM算法,这就需要有前后词或者词组的衔接概率作为基础。中文又具备一个恶心的特性,就是假借。尤其在口语和古语方言一类的东西里面,倒置使动频繁。所以单纯做HMM还不完全解决问题。现在有很多分词软件,是基于HMM的。拿古文上去试试就知道是不是了,例如:古之人诚不余欺也。 至于消除歧义,更是麻烦的要死的东西。要消除歧义,只有把所有歧义可能全部列举出来。然后查看上下文中相关词汇出现的频率,选择比较高的一个。然而对于上面那个使动用法的例子,两者相关词汇的频率应当差不多。而电脑又不会像人一样判断语境,因此要误判就不奇怪了。 还有一个就是上面踢牙老奶奶出现的原因,俗语(idiom)或者叫俚语。例如百口莫辩,如果不加处理,至少也是can’t argue with one hundred mouth(people)。事实上比较恰当的翻译应当是unable to give a convincing explanation for self-defense。当然,NLP的目的未必是翻译,因此可能出现别的错误。不过错误的原因是一样的,就是俗语不了解。这个问题人也会出现,只是人的智能就比电脑高一些。百口莫辩不知道典故错误翻译过去还算难免,买椟还珠这种东西即使知道椟怎么翻译,在真的翻译前也会问问典故的吧。

Sep 27, 2006 - 1 minute read - Comments

玉女穿梭

今天弄了一个好玩的东西,esound4win。 现在在我的linux和windows上面有一堆穿来穿去的协议,大家看看实现方法,然后头晕不头晕。 首先是VNC,在windows上面安装RealVNC,启动服务。然后用linux的xvncviewer访问,就可以无缝在linux上面访问windows。 然后是Xming,这个是Cygwin的一个部分。可以在windows上启动X服务,这样我们可以运行一个远程跨平台的图形界面。在我的Debian上面是这样的。 用一个tty登录进去,然后 $export DISPLAY=192.168.0.X:0 $/etc/X11/Xsession & 这样就完成了完整的一个界面,界面控制是在windows下,但是程序是在linux下跑。和VNC不一样的是,windows的前端在操作的时候,其他的前端可以同步操作。 再然后是esound,这也是Cygwin的一个部分。可以在windows上开启一个esound daemon。方法是运行。 esound -tcp -public 在linux下面,esound可以跨站传输,方法是设定。 $export ESPEAKER=192.168.0.X:16001 当然,监听端口可以自行设定。 这样,就完成了从linux上将声音输出到windows听的功能。 最后,我讲讲我的实现。我先开了一个VNC穿到windows上操作,然后启动Xming。按F8退出到本地,用Ctrl+Atl+F2切换到tty登录,并且连接上Xming的前台X。然后Atl+F7返回GUI,F8返回VNC全屏模式。在Xming里面,开了个term。export了参数后启动xmms,并且切换到esound输出。再在windows下面运行esound4win,插上耳机。最后我点了下VNC中的Xming中的xmms的播放,声音出来了——世界多么奇妙?

Sep 26, 2006 - 1 minute read - Comments

电脑程度测试

随便写了点问题玩玩——大家开心就好哦—— 1.电脑开机和关机一样简单 2.会按照标准流程关机 3.非常习惯的在关机的时候点关机去 4.电脑不经常关机 5.为啥要关机? 1.不知道啥叫重装系统 2.定期找人重装系统 3.会自己重装系统 4.用过windows以外的系统 5.用的是自己定制的系统 1.从来都只在网络上听歌而不下载 2.没有用过CMD窗口下的命令 3.会按照网络上的说明调整系统 4.中了木马会手工查找 5.经常在自己的论坛或者wiki上写东西 1.看到弹出一个对话框就习惯的按回车 2.删除错误了去回收站里面找 3.文件按照分类摆放 4.经常写两个脚本用用 5.经常猜到将来会流行什么类型的软件 1.电脑里的软件都是中文的 2.可以用一些英文软件 3.偶尔自己装几个软件试用一下 4.经常试用各种软件 5.一般只用自己熟悉的软件 1.出现异常的时候手足无措 2.出现异常时候的反应是,中病毒了 3.出现异常会去论坛上提问 4.出现异常会提交报告 5.出现异常会条件反应出出错的原因 评: 5-8分:您是标准的电脑白痴,除非有人帮忙,否则电脑就是废物。 9-12分:您刚刚学会用电脑,不过还不是很熟练 13-16分:您的电脑还算不错 17-20分:已经算是个高手了 21-25分:对您来说,用电脑和呼吸一样自然,你是神吗?

Sep 12, 2006 - 1 minute read - Comments

上海有线通网络封锁解析

OK,今天贝壳稍微辛苦了点。给用有线通的朋友们准备了份礼物。 贝壳今天解析了有线通的抓包,发现了有线通限制P2P的方法,那就是,丢包。 TCP传输的时候,会有一定几率的丢失部分或者全部传输的数据,对方会根据你的SEQ和checksum来分析是否接收到了所有的包,并且返回一个包,告诉你报文状况。一般来说,丢包率都是很小的,大约是0.1%以下。丢包太多往往意味着各种网络异常,例如抢占MAC的sniffer方式就会有大量的丢包。这里是丢包率的详细解释。 贝壳刚刚截取了32秒的数据,总共传输3082个,丢包率是ED数据丢失119个,其余总共丢失2个,总丢包率3.9%。图片内有相应的截图,并且贝壳可以提供多次的抓包分析证明。 贝壳又做了一次分析,这次贝壳从skycn.com上面下载directx9c,同时保持ED通信。ED是7K上传40K下载的样子,HTTP是15K的样子。在60秒内总共是16763个包,其中ED相关丢包321个,非ED相关丢包13个,丢包率1.99%。 通过这个就可以证明,即使不说有线通封锁P2P的问题,有线通的网络服务质量也存在硬性问题。

Sep 11, 2006 - 1 minute read - Comments

X system 配置文件执行流程分析

1.startx启动流程 /usr/bin/startx +->/etc/X11/xinit/xinitrc |->/etc/X11/Xsession |->~/.xinitrc |->/etc/X11/xinit/xserverrc |->/usr/bin/X11/X ->~/.xserverrc startx脚本会分析用户主目录下是否存在特殊配置文件,如果不存在则使用系统默认脚本。默认脚本分两个部份,xinitrc启动客户端部份,xserverrc启动服务器端部份。 xserverrc内容仅为启动X。xinitrc会执行/etc/X11/Xsession,而后进入session分析。 2.Xsession /etc/X11/Xsession -> /etc/X11/Xsession.d/* /etc/X11/Xsession和/etc/init.d/rc很类似,是用来循环依次启动其他脚本的控制脚本。他负责启动/etc/X11/Xsession.d/下的所有文件。其中50xfree86-common_determine-startup文件会依次检测以下3个文件,并且设置到STARTUP变量中。x-session-manager;x-window-manager;x-terminal-emulator;最后99xfree86-common_start文件会执行exec $STARTUP;完成整个系统的启动过程。 3.gdm gdm服务被/etc/init.d/gdm启动,而后读取/etc/gdm/gdm.conf配置自身。后面是基于理论分析,没有加以验证。 |-gdm---gdm-+-Xorg | `-x-session-manag-+-scim | `-ssh-agent 上面是pstree的结果,第1个gdm是/etc/init.d/gdm,第2个gdm是/usr/bin/gdm。gdm先启动一个X作为服务端,否则自身也无法以图形方式显示登录界面。而后gdm成为此X界面的唯一用户,显示登录系统。在用户登录后,gdm启动/etc/gdm/Xsession。这个脚本的内容和/etc/X11/Xsession非常类似,我怀疑为什么他们不用链接的方式(可能是因为包的关系?)。这时整个启动活动就结束了。

Sep 11, 2006 - 1 minute read - Comments

Linux配置文件测序

CopyRight: Written by Shell.E.Xu. Published under GPL. KeyWord: Linux bash profile 配置文件。 Abstract: 利用变量声明次序测定多个配置文件是否被调用以及调用的次序。 环境: Debian/GNU Linux starg 3.1 Kernel:2.6.16-686-2 测定方法,加入变量TEST=XXX。此方法可能被某些变量解除函数解除,因此不予执行的反应未必是真,不过执行次序一般假不了。 1.tty登录时 /etc/environment;/etc/profile;~/.bash_profile->~/.bashrc->/etc/bashrc; /etc/environment;/etc/profile;~/.bash_login /etc/environment;/etc/profile;~/.profile 当上级启动过程中文件不存在时,才进行下面的过程。 2.GDM登录时 /etc/environment 3.新启动bash时 /etc/bash.bashrc;~/.bashrc->/etc/bashrc; 4.~/.inputrc 根据文档,这个函数在readline函数初始化时启用。 5.结论 如果需要有效执行命令,需要同时修改/etc/profile和/etc/bash.bashrc。因为GDM登录的时候不执行登录脚本顺序,所以仅仅修改/etc/profile会造成对GUI下面开的term无效。虽然/etc/bashrc在理论上也有效,但是一旦~/.bashrc中没有引用,则无效(例如Debian中的root,由于安装系统的时候没有copy skel,所以缺少很多.XX文件)。如果仅仅是设定变量,可以用/etc/environment。该文件没有找到资料,其中仅可以设定变量(不用export,应当是被某程序作为配置读取而非脚本执行),据分析是登录时当即起效。