随笔-49  评论-67  文章-27  trackbacks-0
 
suse:~ # help test
test: test [expr]
    Exits with a status of 0 (true) or 1 (false) depending on
    the evaluation of EXPR.  Expressions may be unary or binary.  Unary
    expressions are often used to examine the status of a file.  There
    are string operators as well, and numeric comparison operators.
   
    File operators:
   
        -a FILE        True if file exists.
        -b FILE        True if file is block special.
        -c FILE        True if file is character special.
        -d FILE        True if file is a directory.
        -e FILE        True if file exists.
        -f FILE        True if file exists and is a regular file.
        -g FILE        True if file is set-group-id.
        -h FILE        True if file is a symbolic link.
        -L FILE        True if file is a symbolic link.
        -k FILE        True if file has its `sticky' bit set.
        -p FILE        True if file is a named pipe.
        -r FILE        True if file is readable by you.
        -s FILE        True if file exists and is not empty.
        -S FILE        True if file is a socket.
        -t FD          True if FD is opened on a terminal.
        -u FILE        True if the file is set-user-id.
        -w FILE        True if the file is writable by you.
        -x FILE        True if the file is executable by you.
        -O FILE        True if the file is effectively owned by you.
        -G FILE        True if the file is effectively owned by your group.
        -N FILE        True if the file has been modified since it was last read.
   
      FILE1 -nt FILE2  True if file1 is newer than file2 (according to
                       modification date).
   
      FILE1 -ot FILE2  True if file1 is older than file2.
   
      FILE1 -ef FILE2  True if file1 is a hard link to file2.
   
    String operators:
   
        -z STRING      True if string is empty.
   
        -n STRING
        STRING         True if string is not empty.
   
        STRING1 = STRING2
                       True if the strings are equal.
        STRING1 != STRING2
                       True if the strings are not equal.
        STRING1 < STRING2
                       True if STRING1 sorts before STRING2 lexicographically.
        STRING1 > STRING2
                       True if STRING1 sorts after STRING2 lexicographically.
   
    Other operators:
   
        -o OPTION      True if the shell option OPTION is enabled.
        ! EXPR         True if expr is false.
        EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.
        EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.
   
        arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                       -lt, -le, -gt, or -ge.
   
    Arithmetic binary operators return true if ARG1 is equal, not-equal,
    less-than, less-than-or-equal, greater-than, or greater-than-or-equal
    than ARG2.
posted @ 2007-08-12 10:38 思考 阅读(237) | 评论 (0)编辑 收藏
在SuSE Linux Enterprise Server 9上安装Oracle9i后,及时使用了安装了orarun-1.8-109.15.i586.rpm包,也无法正常启动。

后来跟踪了启动的Shell脚本,最后发现是需要更改$ORACLE_HOME/bin/dbstart文件。在该文件中,定义变量PFILE:
PFILE=${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora
其中,在Oracle9i中已经通过spfile${ORACLE_SID}.ora。因此,将PFILE变量修改为:
PFILE=${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora
同时,为了可以在关机的时候关闭数据库,同时在$ORACLE_HOME/bin/dbshut文件中对应的位置也需要修改PFILE文件的定义。

另外,还有一种方法,就是生成pfile。用sqlplus连接数据库,
conn / as sysdba
create pfile from spfile;
这样,就会参考${ORACLE_HOME}/dbs/spfileora9i.ora生成initora9i.ora这个pfile。这样就不用改启动脚本文件了。

以上两种方法已经证明都可以正常工作。
posted @ 2007-07-15 18:26 思考 阅读(883) | 评论 (0)编辑 收藏
在SuSE下,由于SuSE特有的脚本管理方法,Should-Stop和Default-Stop选项被忽略了。同时,在脚本开始处执行/etc/rc.status脚本,可以通过调用rc_status -v检查启动命令的执行结果并彩色显示出来。

#!/bin/bash
#
# /etc/init.d/oracle
#
### BEGIN INIT INFO
# Provides:
# Required-Start: $network $syslog
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: Startup/shutdown script for oracle listener and instance;
### END
. /etc/rc.status
rc_reset
       
start()
{
       
        #when system stop redhat  check /var/lock/subsys/oracle
        #to make sure oracle is running.
        touch /var/lock/subsys/oracle
        # start tsnlisnter    
        echo -n "Start tsnlisnter:"
                su - oracle -c "lsnrctl start" >/dev/null 2>/dev/null
        rc_status -v
        # start database
        echo -n "Start Oracle database instance:"
        su - oracle -c "echo \"
                        CONN / AS SYSDBA
                        STARTUP
                        exit \"|sqlplus /NOLOG" >/dev/null 2>/dev/null
        rc_status -v
        # start enterprise manager
        echo -n "Start Enterprise Manager:"
        su - oracle -c "emctl start dbconsole" >/dev/null 2>/dev/null
        rc_status -v
        #start isqlplus
        echo -n "Start isqlplus"
        su - oracle -c "isqlplusctl start">/dev/null 2>/dev/null
        rc_status -v
}
stop()
{
        #when system stop redhat  check /var/lock/subsys/oracle
        #to make sure oracle is running.
        rm -rf /var/lock/subsys/oracle
        # shutdown database
        echo -n "Shutdown Oracle database instance:"
        su - oracle -c "echo \"
                        CONN / AS SYSDBA
                        SHUTDOWN immediate
                        exit \"|sqlplus /NOLOG">/dev/null 2>/dev/null
        rc_status -v
        # stop tsnlisnter
        echo -n "Stop tsnlisnter:"
                su - oracle -c "lsnrctl stop">/dev/null 2>/dev/null
        rc_status -v
        # stop enterprise manager
        echo -n "Stop Enterprise Manager:"
        su - oracle -c "emctl stop dbconsole"
        rc_status -v
        # stop isqlplus
        echo -n "Stop isqlplus:"
        su - oracle -c "isqlplusctl stop"
        rc_status -v
}
case "$1" in
start)
        start
        echo "Oracle Start at:" `date` >>/var/log/oracle.log
        ;;
stop)
        stop
        echo "Oracle Stop at:" `date` >>/var/log/oracle.log
        ;;
restart)
        echo "Oracle Restart at:" `date` >>/var/log/oracle.log
        stop
        start
        ;;
*)
        echo "Usage: $0 { start | stop| restart }"
        exit 1
 
       ;;
esac
rc_exit
posted @ 2007-06-05 09:50 思考 阅读(1482) | 评论 (0)编辑 收藏

在用Struts开发项目的时候遇到了一个问题,当上传文件时,中文文件名会出现乱码问题。
于是,在Google和Baidu上面进行了搜索。结果发现有无数人遇到了相同的问题,大家也都在迫切的询问此类问题。但是回帖的结果却让人特别生气!

回帖的内容大致可分为两类:
第一类,都是把别人的帖子转来转去,也不著名出处。更是有几个人都在自己的博客上写的内容完全一样,还说是自己写的!
另一类相对要好一些,对问题进行了解答。但是,按照他们所说的进行了更改,根本就不能解决问题。真是不知道他们是这么解决这个问题的。

后来在玉米田http://www.yumt.com/showlog.jspe?log_id=56#71的博客上有一篇文章说道了此事,才能彻底解决这个问题。看了之后才知道,原来Struts的upload功能是对jakarta apache的commons-fileUpload进行了封装实现的。但是在实现时,没有考虑到文件编码的问题。所以,需要对struts.jar中的文件进行修改并重新编译打包。事实证明,这样作问题解决了。

但是回过头来,那些通过在JSP页面中设置编码方式为UTF-8或者在得到文件名进行编码转译的人是如何解决这个问题的,难道我的系统跟他们的不一样吗?

由此,可以看出很多网友不能够踏踏实实的做人,人云亦云。抱着一种极其不负责任的态度,这样作不但是自己不能真正理解问题的本质,得不到提高和进步,更加影响了对此类问题不甚了解并渴望解答的人所误解。

同时,一旦这种风气发展下去,下次提问者作为解答者的时候这种现象又会出现。如果此类现象愈演愈烈,势必会对我们中国整个软件业甚至这个中华民族带来及其深刻的影响!

希望跟我有同感的IT同仁可以从自己做起,认真回答网友的提问。我们从自己做起,从现在做起!

posted @ 2006-12-20 20:33 思考 阅读(260) | 评论 (0)编辑 收藏
今天看了Sun的Java编程习惯,记录一下:
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
posted @ 2006-11-12 17:08 思考 阅读(314) | 评论 (1)编辑 收藏

好久没来了,感觉没有对社区做出点贡献,有愧版主的头衔,今日在这里为大家提供两则小技巧,以便帮你强行杀死“顽固不化”的病毒进程。 


  根据进程名查杀 


  这种方法是通过WinXP系统下的taskkill命令来实现的,在使用该方法之前,首先需要打开系统的进程列表界面,找到病毒进程所对应的具体进程名。 

接着依次单击“开始→运行”命令,在弹出的系统运行框中,运行“cmd”命令;再在DOS命令行中输入“taskkill /im aaa”格式的字符串命令,单击回车键后,顽固的病毒进程“aaa”就被强行杀死了。比方说,要强行杀死“conime.exe”病毒进程,只要在命令提示符下执行“taskkill /im conime.exe”命令,要不了多久,系统就会自动返回结果。 


  根据进程号查杀 


  上面的方法,只对部分病毒进程有效,遇到一些更“顽固”的病毒进程,可能就无济于事了。此时你可以通过Win2000以上系统的内置命令——ntsd,来强行杀死一切病毒进程,因为该命令除System进程、SMSS.EXE进程、CSRSS.EXE进程不能“对付”外,基本可以对付其它一切进程。但是在使用该命令杀死病毒进程之前,需要先查找到对应病毒进程的具体进程号。 


  考虑到系统进程列表界面在默认状态下,是不显示具体进程号的,因此你可以首先打开系统任务管理器窗口,再单击“查看”菜单项下面的“选择列”命令,在弹出的设置框中,将“PID(进程标志符)”选项选中,单击“确定”按钮。返回到系统进程列表页面中后,你就能查看到对应病毒进程的具体PID了。 


  接着打开系统运行对话框,在其中运行“cmd”命令,在命令提示符状态下输入“ntsd -c q -p PID”命令,就可以强行将指定PID的病毒进程杀死了。例如,发现某个病毒进程的PID为“444”,那么可以执行“ntsd -c q -p 444”命令,来杀死这个病毒进程。

posted @ 2006-08-21 14:50 思考 阅读(914) | 评论 (0)编辑 收藏
1.在拖地的水中加入幾滴薰衣草精油
2.家中几个角落放些"灭蚁灵",一元一包,一天至两天,让它一窝端
3.家人无意收听到了一则红蚂蚁遇到橡皮筋就走开的广播,便打算试一试。
4.用鸡蛋壳数个,放在炉子上烤黄(不能烤焦),然后辗成粉末状,撒在蚂蚁窝周围及其经常出入的地方,因为此粉末有香味,蚂蚁特别爱吃,吃多了就会被撑死。
posted @ 2006-08-13 13:00 思考 阅读(394) | 评论 (0)编辑 收藏
今天看了一则报道“广州现新型犯罪方式 将路边行人拉上车抢劫强奸”,其中说道广州警察为了打击犯罪,依法开了12枪,3个被击毙,9个被打伤。这个命中率也太高了吧,100%。
posted @ 2006-07-21 22:03 思考 阅读(307) | 评论 (1)编辑 收藏
首先声名,本人不是球迷,看球完全是一种消遣。
在看完昨天世界杯后,中央5台的主持人张斌在节目中,首先讲述了很多足球解说人的路子都是从球迷、记者到主持人这样一步一步走过来的。然后,就请现场的一位观众对刚刚进行完的比赛中德国队的第一个进球做现场解说。结果,那位是中国宽带网的观众的表现可想而知,不能令人满意。接下来,张斌就得出这样一个结论:你看,做一名足球解说不是那么容易的事吧……如果你说了3000场比赛,你也可以说的很好。大概是这样的吧,具体我也没有记住。然后他大腹便便、心满意足的回到了主持人的坐席上,继续支持他的节目。
说实话,当时我真想冲到北京打他一顿,说的什么狗屁话。他的言外之意就是他们的工作有难度,不想我们想象中那么简单,所以口误是正常的。首先,那个观众是第一次说球,能说成这样已经不错了。但是不能因为他说的不好,就能够证明你们的工作有多么多么的难。其次,即使我们承认解说员工作存在难度,也不能为你们的口误找借口啊。不然,中央台为什么付薪水给你,而不去找其它人。话说回来,我也听过ESPN的主持人的解说,虽然不是常听,但是至少在我收看时没有发现口误的问题。最后,不能因为工作存在困难,就堂而皇之的为自己的失职寻找客观原因。不要说是人,就连机器都有出错的时候,这点我们是可以理解的。但是,如果希望观众,至少是那些吹毛求疵的观众,可以理解你们,最起码的为自己失职的道歉还是应该有的吧!
posted @ 2006-06-21 12:05 思考 阅读(210) | 评论 (0)编辑 收藏

         1、孔子路过泰山脚下,有一个妇女在墓前哀伤地哭泣。孔子手扶车沿听她哭诉,并让弟子问她缘由,妇女说:“以前我的公公被老虎咬死,我的丈夫跟着被老虎咬死,现在我的儿子也被老虎咬死了;”
  孔子说:“事情都过去了,又何必伤心?”
  妇女说:“不仅如此,这里还有繁重的苛捐杂税”;
  孔子道:“那为什么不离开这里呢?”
  妇女说:“我怕失去低收入者作为纳税人的荣誉!”
  孔子于是对弟子道:“小子识之,苛政虽猛于虎,然纳税人的荣誉牛B于苛政也!”
  ----全国人大农业与农村委员会委员任正隆则认为,起征点太高剥夺了低收入者作为“纳税人”的荣誉。  
  
  2、汉朝的淮南王刘安派人进山访仙,从仙翁手里得到了一张仙方。他把自己关进暗房里,炼起仙丹来。八卦炉里炼出一些圆滚滚的仙丹,他一口气吞下5颗,飘飘悠悠飞上天去了!门外的鸡犬一看,也跟着大吃起来,不一会,空中一阵鸡鸣狗叫,原来它们也飞上天了!有人问道:“刘安,你家的鸡犬怎么也跟着成仙了?”
  刘安说:“为了防止拉登发动恐怖袭击、撞击天庭,我特意实行“一人得道,鸡犬升天”制,在任何紧急情况下,都能及时帮助疏散与救援,这是一个安全上的举措,并不是专门把成仙作为福利”。
  ----广州地铁线网听政会上,地铁员工家属免费坐地铁引起代表争议,地铁总经理解释,是为了“反恐需要”。
  
  3、秦始皇修筑万里长城时死了许多人,孟姜女的丈夫万喜良也在其中。听到这个消息,孟姜女只觉得天昏地暗,一下子昏倒在地,醒来后,她伤心地痛哭起来,只哭得天愁地惨,日月无光。不知哭了多久,忽听得天摇地动般地一声巨响,长城崩塌了几十里,露出了数不清的尸骨。孟姜女咬破手指,把血滴在一具具的尸骨上,她心里暗暗祷告:如果是丈夫的尸骨,血就会渗进骨头,如果不是,血就会流向四方。终于,孟姜女用这种方法找到了万喜良的尸骨。她抱着这堆白骨,哭着说道:“老万,你的死跟你丫本人素质不高有关啊!”
  ----11月30日,七煤公司一领导在接受采访时表示,“11·27”矿难的主要原因归咎于井下矿工对规章制度执行不力,劳动者的素质离我们的要求还差很远。
  
  4、三国演义里,诸葛亮造木牛流马,用来运送粮草,以此大败曹军。但后来木牛流马却失传了,即便是诸葛亮的得意弟子姜维也不会造。诸葛军师临终前众将问他:“军师,木牛流马这般好用,为何您再也不造了?”
  孔明长叹一声曰:“某交通学大学士、大教授的研究结果表明,木牛流马的污染比汽车飞机大,为了子孙后代的幸福,你们还是等着坐汽车吧!”
  ----“中国城市环境污染不是由汽车造成的,而是由自行车造成的”。国内一家搞环境研究的权威机构经过一番调查与研究后得出的一个“科学”结论。
  
  5、老栓也向那边看,却只见一堆人的后背;颈项都伸得很长,仿佛许多鸭,被无形的手捏住了的,向上提着。静了一会,似乎有点声音,便又动摇起来,轰的一声,都向后退;一直散到老栓立着的地方,几乎将他挤倒了。
  “喂!一手交钱,一手交货!”一个浑身黑色的人,站在老栓面前,眼光正像两把刀,刺得老栓缩小了一半。那人一只大手,向他摊着;一只手却撮着一个鲜红的馒头,那红的还是一点一点的往下滴。
  老栓慌忙摸出洋钱,抖抖的想交给他,却又不敢去接他的东西。那人便焦急起来,嚷道,“怎么?嫌贵?舍不得银子?” 老栓还踌躇着,黑的人便抢过灯笼,一把扯下纸罩,裹了馒头,
  塞与老栓;一手抓过洋钱,捏一捏,转身去了。嘴里哼着说:“这血馒头是药,不能当馒头卖!价格不贵,不同意降价!”
  ----“药品怎么能当馒头卖?”在“看病难,药价贵”呼声高涨时,东盛制药集团总裁陶朝辉却反其道而行之,抛出“馒头论”,坚持“药价不贵,不同意降价”。
  
  6、宋代穷儒陈世美,进京考中状元,被招为驸马。其发妻秦香莲带二子上京寻亲,陈世美翻脸不认人;秦香莲悲痛欲绝,发誓要讨还情债。陈世美勃然大怒,上表朝廷奏曰:臣以为,开封自古就是神圣之地,岂容外地人随便进入?应该建立人口准入制度!同时,对那些恶意讨情之人,应坚决打击!”
  ----在刚刚结束的北京市“两会”上,政协委员张惟英教授提出“建立人口准入制度”的建议:目前北京市的居住人口已超过各种资源的人口承载极限,严重制约了北京的发展,建议摸清北京市实际需要的人才类别,用准入制度进行合理的引入,规范人口流动。
  
  7、武松醉打蒋门神、替施恩夺了快活林之后,中了张都监、张团练的计,几乎命丧飞云浦。武松杀了张都监的几名爪牙,寻思了半晌,怨恨冲天:“不杀得张都监,如何出得这口恨气!”便去死尸身边解下腰刀,选好的取把将来跨了,拣条好朴刀提着,直奔孟州城张都监的后花园。
  张都监、张团练、蒋门神正在鸳鸯楼吃酒,冷不防武松闯了进来,噗噗几刀砍死蒋门神、张团练。武松踏着张都监的脑袋喝道:“你们这帮贼子,为何黑道白道勾结、串通一气害我?”
  张都监颤颤巍巍地答道:“说句实话,官匪勾结的重要原因,是我们的待遇过低了!”
  
  --成都火车站派出所副所长付小华接受采访时表示:“出现‘警匪勾结’这种情况的重要原因是警察待遇过低”  
  
  8、有一日,窦娥碰到苏三、杨乃武、小白菜等人,就问他们:“你们都平反昭雪了吗?”众人说:“都昭雪了”;窦娥又问:“那少奇兄弟、德怀兄弟、志新妹妹呢?”众人说:“也都平反了”。窦娥便道:“我说什么来着,咱们的司法就是公正!那么多案件从错的纠成正的,这难道不是司法公正的体现吗?”
  ----被无辜关押11年的佘祥林被宣告无罪了,但这一悲剧投石入湖的震荡,远远没有平息。当事人申请国家赔偿、责任人被追究法律责任,尚都在公众的持续关注中。种种怨怒未消之下,另一方面却居然频频出现奇怪的言论:4月1日湖北高院向该省法院系统发出通知,要求认真总结避免佘祥林被冤杀的经验;最高法副院长万鄂湘日前在就此案答媒体问时又说:“是否司法不公应该从最后纠正的结果看。这个案件从错的又纠成正的,难道不是司法公正的体现吗?”
  
  9、一天,周扒皮去找刘文彩,“刘大哥,我们村那些穷棒子们发牢骚,说他们活得太苦、活得没意思”;
  刘文彩说:“他们是我国巨大的财富,没有他们的辛苦哪有咱们少数人的享乐,他们的存在和维持现在的状态是很有必要的。”
  周扒皮说:“有的长工说他想读书!”
  刘文彩道:“咱们的教育改革已经成功了,他还嚷嚷个屁!”
  周扒皮说:“他们说收租院放高利贷是暴利”;
  刘文彩道:“放高利贷就该暴利,谁让他们不幸生在X国了?我们就是要把暴利进行到底!”
  周扒皮说:“他们还说现在收入差距过大,存在两极分化”;
  刘文彩道:“纯属放屁!大家都在同一个经纬度上,又不是一个在南极、一个在北极,哪来的两极分化?!”
  -- 经济学家厉以宁如是说“8亿多农民和下岗工人是中国巨大的财富,没有他们的辛苦哪有少数人的享乐,他们的存在和维持现在的状态是很有必要的。”
  
  10、董存瑞牺牲后到了天堂,上帝问他:“你是怎么死的?”董存瑞说:“为了炸敌人的碉堡,被炸药包炸死的”;
  上帝听后勃然大怒,说道:“胡说!你胆敢骗我?”
  董存瑞说:“我没骗您啊!”
  上帝说:“你以为我不懂科学吗?谁不知道,爆炸只会产生水和二氧化碳,你不是被水淹死的、就是被二氧化碳薰死的,怎么可能是被炸死的呢?!”
  吉林石化的人所说:爆炸产生水和二氧化碳,不会污染水源!

posted @ 2006-06-19 10:58 思考 阅读(302) | 评论 (0)编辑 收藏
仅列出标题
共5页: 上一页 1 2 3 4 5 下一页