Posts

Showing posts from 2006

bash编程教学实例

bash编程   Shell Script(bash)简介   众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台。    在众多的小工具中,Shell Script算得上是最基本、最强大、运用最广泛的一个。它运用围之广,不但从系统启动、程式编译、定期作业、上网连线,甚至安装整个Linux系统,都可以用它来完成。    因为Shell Script是利用您平日在使用的一些指令,将之组合起来,成为一个"程式"。如果您平日某些序列的指令下得特别频繁,便可以将这些指令组合起来,成为另一个新的指令。这样,不但可以简化并加速操作速度,甚至还可以干脆自动定期执行,大大简化系统管理工作。    *************************   Bash(GNU Bourne-Again SHell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等, Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种Shell上使用。    这里我介绍您bash的使用方法。事实上,当您"man bash"时,就可以看到bash的说明书,不过对许多人来说,这份说明书犹如"无字天书"一样难懂。这份文件,主要资料来源为"man bash",我加上一些实际日常的应用例来说明。希望这样能让那些始终不得其门而入的人们,多多少少能有点概念。    教学例子   "Hello world" Shell Script    照传统程式教学例,这一节介绍Shell Script的"Hello World"如何撰写。    *************************   #!/bin/sh    # Filename : hello    echo "Hello world!"    *************************   大家应该会注意到第一行的"#!/bin/sh

劝修念佛法门

劝修念佛法门 福建鼓山涌泉禅寺沙门圆瑛宏悟述 序 圆瑛法师法汇序 圆瑛法汇序 第一念佛发起因缘 第二念佛即是修行 第三念佛最为稳当 第四念佛有胜方便 第五念佛能消业障 第六念佛莫求福报 第七念佛能断烦恼 第八念佛速了生死 第九念佛具足三学 第十念佛普摄群机 十一念佛可度众生 十二念佛得成佛道 集白云法师撰望江南净土词十二首 序 净土法门。普被三根。实如来上成佛道。下化众生。成始成终之妙道。弥陀誓愿。九界齐资。乃众生速出苦海。顿预莲池。心作心是之良谟。此之一法。为一代时教中。仗佛力之特别法门。不可与一切大小权实。仗自力之诸法门同论者。世多不察。稍聪明者。多矜己之智力。不肯修持。且藐视修持之人。鄙之为愚夫愚妇。若将浼焉。是让此即生了生脱死。超凡入圣之大利益。于愚夫愚妇。而自己不愿得之。可不哀哉。不知净土法门。其大无外。为一切法门之发源归宿法门。是故一切法门。无不从此法界流。无不还归此法界也。果已三惑净尽。四德圆证。不修亦可。若尚未至此地位。且请随华藏海众。十住、十行、十回向、十地、等觉菩萨之班。一致进行。以十大愿王之不思议功德。回向往生。西方极乐世界。以期速圆佛果。能如是者。可谓大智慧。大丈夫。世出世间之能事毕矣。尚须随类现身。弘扬此法。作证佛果后之观音普贤。以期众生。咸成佛道而后已。光宿业深重。虽则五十余年。虚预僧伦。一切诸法。皆无所知。虽常念佛。以业重故。其心与佛。未能相应。然信佛无虚愿。当不弃我。故其志愿。任谁莫转。近圆瑛法师。讲演群经之暇。著劝修念佛法门之论。将欲流通。函命作序。光老矣。目力精神均不给。久已谢绝笔墨差事。今幸念佛一法。得人提倡。遂摄举大意。以塞其责云。 古吴灵岩山释印光撰年七十八 圆瑛法师法汇序 圆瑛上人。吾闽产也。幼失怙恃。依季父教养。颖悟绝人。甫成年。即受牒度于石鼓山之涌泉寺。早参三昧。夙擅说经。素以宏化利生为本愿。初主宁波接待寺。倡办宁波佛教孤儿院。次至泉州重兴开元寺。创办开元慈儿院。孤露子弟。薰育者众。旋历内地。并南洋群岛。周流说法。于大乘教义。多所阐明。生平著作。编成法汇。近被推为宁波天童七塔二大丛林及中国佛教会首席。去年天童寺不戒于火。上人则奔走四方。募化重修。规模闳敞。为四明道场之冠。间亦稍治生产。为发展化育基金。是皆躬行实践。以求达其利济宏愿。固不仅以舌粲莲花见称也。今秋上人莅京说法。持示所讲仁王护国般若波罗密经讲义

QT 3.0 简明安装、使用指南

编译 QT。 编辑 /etc/profile 文件,输入: QTDIR=”/usr/local/qt” PATH=”$QTDIR/bin:$PATH” LD_LIBRARY_PATH=”$LD_LIBRARY_PATH” QMAKESPEC=”linux-g++” export QTIDR PATH LD_LIBRARY_PATH QMAKESPEC QMAKESPEC 环境变量可参考 $QTDIR/mkspec 目录中的名字,各位可根据自己的系统编译环境进行设置。 比如你用 Microsoft Visual Studio 编译程序,那么就要设置如下环境变量: QMAKESPEC=”win32-msvc” 用 Linux 就这样设置: QMAKESPEC=”linux-g++” 2. 编译 QT。 cd /usr/local/qt ./configure make 美美地睡 N 个小时… qmake 3. 用 QT 3.0 编译程序。 这里假设你已经用 QT Designer 做好一个窗体并已写好了相关事件的响应代码,下面在 QT Designer 中选择 File|New 菜单并选择 “C++ Main-File (main.cpp)” 项,然后保存。 切换到命令行方式,输入: qmake make 第二次编译时就不必再输入 qmake 了,因为 make 会为你代劳。 OK! 事情就是这样了的了,要想知道更具体的使用方法请看 QT 的帮助文件。Enjoy!

define parameter

we'll run it at every 0.6 time units (about 10 times per period) via (at-every 0.6 output-efield-z).(run-until 200 (at-beginning output-epsilon) (to-appended "ez" (at-every 0.6 output-efield-z))) we often want to explore many different values of such parameters. For example, we may want to change the size of the cell, so we'll define it as: (define-param sx 16) ; size of cell in X direction (define-param sy 32) ; size of cell in Y direction (set! geometry-lattice (make lattice (size sx sy no-size))) define-param is a libctl feature to define variables that can be overridden from the command line. We could now do meep sx=17 tut-wvg-bend-trans.ctl to change the X size to 17, without editing the ctl file, for example. We'll also define a couple of parameters to set the width of the waveguide and the "padding" between it and the edge of the computational cell:
Moreover, since c = 1 in Meep units, a (or a / c) is our unit of time as well. In particular, the frequency ω in Meep (corresponding to a time dependence e − iωt) is always specified in units of 2πc / a, which is equivalent to specifying ω as 1 / T: the inverse of the optical period T in units of a / c. This, in turn, is equivalent to specifying ω as a / λ where λ is the vacuum wavelength. (A similar scheme is used in MPB.) For example, suppose we are describing some nanophotonic structure at infrared frequencies, where it is convenient to specify distances in microns. Thus, we let a = 1μm. Then, if we want to specify a source corresponding to λ = 1.55μm, we specify the frequency ω as 1/1.55 = 0.6452. If we want to run our simulation for 100 periods, we then run it for 155 time units (= 100 / ω). On a computer, we can only simulate a finite region of space, which means that we must terminate our simulation with some boundary conditions. Three basic types of terminations are supported i
The MIT Photonic-Bands ( MPB ) package is a free program for computing the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures, on both serial and parallel computers. This program computes definite-frequency eigenstates (harmonic modes) of Maxwell's equations in periodic dielectric structures for arbitrary wavevectors, using fully-vectorial and three-dimensional methods. It is especially designed for the study of photonic crystals (a.k.a. photonic band-gap materials), but is also applicable to many other problems in optics, such as waveguides and resonator systems. (For example, it can solve for the modes of waveguides with arbitrary cross-sections.) As complementary Meep package works for time-domain simulations, reflection/transmission spectra, etc. (MPB is frequency-domain; Meep is Time-domain.) There are two common computational approaches to studying dielectric structures such as photonic crystals: frequency-domain and time-domai

在Redhat Linux上安装 GCC 编译器过程

2004年4月20日最新版本的GCC编译器3.4.0发布了。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。GCC 3.4.0比以前版本更好地支持了C++标准。本文以在Redhat Linux上安装GCC3.4.0为例,介绍了GCC的安装过程。 安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.4.0。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。 系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.4.0,并且在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。 按照本文提供的步骤和设置选项,即使以前没有安装过GCC,也可以在系统上安装上一个可工作的新版本的GCC编译器。 1. 下载 在GCC网站上(http://gcc.gnu.org/)或者通过网上搜索可以查找到下载资源。目前GCC的最新版本为 3.4.0。可供下载的文件一般有两种形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是压缩格式不一样,内容完全一致,下载其中一种即可。 2. 解压缩 根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符): % tar xzvf gcc-3.4.0.tar.gz 或者 % bzcat gcc-3.4.0.tar.bz2 | tar xvf - 新生成的gcc-3.4.0这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。 在${srcdir}

REDHAT AS 3.0下安装 GCC

安装gcc后,你的系统就具有编译c/c++等源码的功能,我的安装过程如下 注意:要把安装过程中所用到的软件包复制到相关的目录 1. 输入命令rpm -i gcc-3.2.3-34.i386.rpm error: Failed dependencies: cpp = 3.2.3-34 is needed by gcc-3.2.3-34 glibc-devel >= 2.2.90-12 is needed by gcc-3.2.3-34 libgcc >= 3.2.3-34 is needed by gcc-3.2.3-34 Suggested resolutions: glibc-devel-2.3.2-95.3.i386.rpm 2. 输入命令rpm -i gcc-3.2.3-34.i386.rpm glibc-devel-2.3.2-95.20.i386.rpm libgcc-3.2.3-34.i386.rpm cpp-3.2.3-34.i386.rpm error: Failed dependencies: glibc-headers is needed by glibc-devel-2.3.2-95.20 glibc-headers = 2.3.2 is needed by glibc-devel-2.3.2-95.20 Suggested resolutions: glibc-headers-2.3.2-95.3.i386.rpm 3. 输入命令rpm -i gcc-3.2.3-34.i386.rpm glibc-devel-2.3.2-95.20.i386.rpm libgcc-3.2.3-34.i386.rpm cpp-3.2.3-34.i386.rpm glibc-headers-2.3.2-95.20.i386.rpm error: Failed dependencies: kernel-headers is needed by glibc-headers-2.3.2-95.20 kernel-headers >= 2.2.1 is needed by glibc-heade

简单硬盘安装magiclinux-1.2final-1的方法

1、下载ISO文件(magiclinux-1.2final-1.iso)到硬盘的FAT分区根目录,如D:\下面 2、拷贝出ISO文件里的miimages文件夹下的mbvmlinuz和mbinitrd-hd.gz两个文件,放到ISO文件所在的分区的根目录,如 D:\下面 3、引导设置: 首先,下载Grub for Dos,有两文件bootgrub和grldr,下载后将它们解压到C:\,然后找到C盘根下的boot.ini文件,在其最后加上这一行: c:\bootgrub="启动GRUB" 保存(注意:该文件默认是只读的,先将其只读属性去掉才能修改) 从这里下载Grub for Dos: http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=2332 4、启动到Grub界面,按C键进入命令行状态, 依次一次输入如下几行命令,其中的(hdx,y)就是你存放ISO文件的分区: grub>find /mbvmlinuz 注:可以显示(hdx,y) grub> kernel (hdx,y)/mbvmlinuz ro root=/dev/ram0 ramdisk_size=32768 vga=788 grub> initrd (hdx,y)/mbinitrd-hd.gz grub> boot

史上冤枉指数排行

木秀于林,风必摧之.你厉害,你辉煌,可是在一个阴暗的角落,总是有那么一小撮人在盯着你,想方设法弄死你.他们跟你没有什么仇,仅仅是因为嫉妒,他们不 明刀明枪的跟你动手,常常是借助一个拥有权利的蠢货去干这事儿.看到这样的冤案我们常常会无明火起,拍案痛骂.这也是历史的另一种魅力:让人愤怒,悲凉和 无奈.   NO10 范雎进谗杀白起   白起是春秋战国时代继孙子和吴起之后最出色的将军,在大秦统一全国的进程中,白起参与指挥了两次足以影响历史的大战:长平之战坑杀了赵国四十万人马, 使赵国一病不起;讨伐楚国的战争,成为了春秋战国时期继孙子之后第二个攻克楚国都城郢都的大将,还挖掘了楚国先王的陵墓,使东方六国心惊胆战.吓的普遍失 去了抵抗意志.   当时秦国文有范雎,武有白起,好象很快就能统一全国了.可悲的是范雎这样一个人物也犯了小人之过----嫉妒.利用自己和秦王的关系好,老是抓机会说 白起的坏话.终于有一天,秦王在外面征战,要求白起带兵配合一下.白起认为这次战役发动起来不值得,就给秦王提了个建议,说自己不去为好。这是个纯技术性 的建议,结果被范雎钻了空子,说白起要造反,秦王本来就对战无不胜的白起有忌惮,于是赐给了白起宝剑,让他自杀.白起愤怒的问到:”为什么?”后来转念一 下子想通了,”我在赵国杀了四十万人,难道还不应该死吗?”    白起死了,秦国一时将才接应不上来,起用了范雎的老乡一个叫郑安平的人,结果这个窝囊废一出兵就捅了漏子,被活捉了.秦王有一次不经意的在范雎面前 说:”白起要是活着,怎么会遭到这样的失败呢?”范雎羞臊的脸都红了,知道秦王在埋怨自己,于是找了个机会辞职走了.结果秦国统一的步伐又推迟了几十年.   冤枉指数:9    NO9 伍子胥被杀   伍子胥是司马迁最佩服的一个历史任务,司马迁在史记中写到:”伍员身负国耻家仇,却忍耐着巨大的悲痛和彻骨的愤怒等待时机,几十年艰苦奋斗矢志不渝, 最后终于杀回了故乡干掉了自己所有的仇人,真是一个有血性的烈丈夫!”伍子胥的伟大在于他对中国传统的那种以德报怨的观念不屑一顾,在他看来,烈火就是要 用冷水扑灭,恶人就是要用武力来制服!!!所以当好朋友申包胥责备他说:”即使国家对不起你,你也不应该反过来毁灭这个国家啊.”伍员须发倒竖说出了一句 让千古之下的小人为之颤抖的名言:”以德报怨,则何以报德!!!”

如何挽救台湾多数和大陆少数的媚日者

中国看错了日本 小的时候,我听有人说要“打倒刘少奇”。于是我就问:“刘少奇是个什么人?”回答自然是:“坏人。”如果,我当时有能力对答复我的人进行追问,那么,对方 就会围绕着“刘少奇是坏人”这一话题展开自己的论述,说出一大套理论来证实“他是个坏人”。当然,这个人根本不知道,自己要打倒的是好人,他没有读过刘少 奇的书,没有听过他的讲话,更不可能和他打过交道。他对刘少奇的真正态度是——不知道,不了解,也不明白。那么,他凭什么对之进行否定的评价呢。缘因两个 字而已——“听——说”。这个“听说”,可能发生在厕所里,澡堂子里或小饭馆里。事实依据呢?他也没见过。 在生活中,我们经常会做这样一些事:因为某些传媒的影响,我们对自己不知道,不了解,不明白的事物进行评价,而且还有一番振振有辞的“理论”。如:批判孔 子的人,没读过《论语》,说美国如何好的人,没去过美国,呼喊“某物品要涨价”的人,不知道市场行情,说某个地域闹鬼的人,只怕根本没有见过鬼。 错误的传媒危害很大,甚至可以取一个族群的性命。 13世纪初期,心智不正常的儿童埃提亚,在巴黎圣日内教堂前,自称是上帝的使者,承担着带领儿童十字军收复圣地的使命。结果,这种传言致使大量儿童自认为可以蹈海如平地,于是在马塞港口赤手空拳的跳海殉道,更使成千上万的儿童被人贩子诱骗,最终卖身为奴。 此事虽然发生于德国和法国,然而就中国来说也一样。任何被错误传媒误导的民族,都不可能摆脱悲剧式的命运。在当今之中国,很多人都知道日本是中国的潜在敌 人,都明白“知己知彼,百战不怠”这个道理。甚至预言“中日两国早晚一战”,但由于对日本认识上的偏差,终有一天,我们这个民族会蒙受不必要的灾难。要我 们被对手打倒并不难,只要我们对对手做出错误判断就可以。可悲的是,我们对日本的错误判断次数多,错误信息覆盖面广,错误思想之根深蒂固已难于改变。 我写这篇文章的目的,就是为了纠正我们这个民族对日本的种种错误认识。我写下这篇文章的同时,深知自己无力和各种传闻的力量进行抗衡,但我必须写下来。虽 然个人力量是微薄的。如果人人都因此而不愿出力,那么我们这个民族就真的无丝毫希望了。我也请各位读者积极转载我的文章。 我们这个民族,由于传闻的误导,导致集体的昏聩,不具备战胜对手的起码本领——“知己知彼,百战不怠”。因此,我们被日本人欺压一直到今天。至于明日的灾祸,则不是我们可以预测的了。