循环中的逻辑陷阱 (PHP心得)
发布于 2008-04-10 18:42 阅读:7697 评论:1 标签: 陷阱 循环

  循环是个好东西,用循环加几条简单的语言可以实现处理多条数据的功能,充分展示了计算机是为人民服务的。但是如果利用不好,和谐社会便被打破了。现举两个陷阱。

  一:双重循环中建立的临时变量。

  首先临时变量就是临时的,不能和全局变量起重名,除非这个全局变量是个全局的临时变量(随用随赋值)。这一点在需要临时变量与某个变量做比较操作时尤为重要。现在举一个双重循环的例子:

以下是代码片段:
foreach($arr0 as $k0 => $arr1)
{
     foreach($arr1 as $k1 => $v1)
     {
          $total +=$v1;
     }
 
     if($total > 1000)
     {
          echo "No !\n";
     }
}

  如果你只是想单独分析数据$arr1,那很遗憾这个程序的结果是失败的。因为$total的值会被下一次循环继续累加,然后在判断大小的时候会一路报错。如果你在第二次循环前把$total置0就OK了。

  二:有序值查漏的陷阱。

  我想,这是思维严谨的问题。

  但一个有序排列的数组,我们可以简化为一个数字为键的数组$arr。原始数组是否有序是无所谓了,因为有ksort()函数,可以帮助我们排序。这个数字有序但不连续,例如键为:1、2、6、7,中间漏了3、4、5,现在弄个程序找出来。

  假定数组的键起点为0,终点以$arr为准。我一拍脑袋,写下如下程序:

以下是代码片段:
$i = 0;
foreach($arr as $k => $v)
{
     if($i++ != $v)
     {
          echo "$v | ";
     }
}

  此程序的恶果为,一旦遇到不连续的键,以后的键值都被认作不连续了,原因在于$i的自增方式有问题。你可以自己实践一下加强体验。

  有效的程序如下,用while我们可以避免风险。

以下是代码片段:
$i = -1;
foreach ($arr as $k => $v)
{
     while(++$i != $k)
     {
          echo "$i | ";
     }
}

  当然,实际程序中还得考虑$i溢出的问题。

展开全文  
收起全文  
[翻译]What is Linux? -- Linux从这里开始 (Linux/Unix)
发布于 2008-04-03 15:35 阅读:42068 评论:0 标签: Linux start 翻译

      想从现在开始,每周翻译一篇英语文章。请广大网友监督!

  原文: Linux starts here  同时发布:译言

开始了解Linux

  Linux(发音:LIH-nuks)是一个类似Windows或Mac的计算机操作系统。一般认为Linux是由芬兰的程序员Linus (发音:LEE-nus) Torvalds于1991年在遍及全球的开发者帮助下起源的。Linux类似早期的操作系统Unix,但与Unix不同的是,Linux是一种自由和开源的软件 -- 也就是说,你不仅可以下载并在你的电脑上运行,而且还可以下载它的源代码。你可以修改或扩展这些源代码以适应你的需求。

  Linux广泛运行在多种硬件平台上,从大型的主机到个人电脑,甚至手机上。Linux遵循自由软件基金会GNU项目GNU General Public License第二版规定,它允许用户改变和分发这个操作系统。

  你可以认为Linux由两部分组成 -- 一个被称为内核,它是连接硬件和系统软件系统的基本接口。二是在内核之上运行的各种程序,比如图形用户界面(GUI)和应用程序。

  没有专门的公司销售Linux。因为它是开源的软件,任何人都可以把一些程序和应用与Linux打包为一个整体,并分发它。这种不同的“味道”的Linux被称为分发版。你可以从我们的分发版页面上得到大部分流行的分发版的资料。分发版的一些丰富的资源可以在DistroWatch.com上找到。

  许多Linux的分发版被设计成在你电脑的硬盘上安装,它可以作为一个唯一的操作系统,也可以和其它的操作系统共同存在,这样你可以在每次电脑启动时选择使用哪个操作系统。还有一些分发版可以作为Live CD在你的移动媒体上引导运行,典型的如CD,当然也有Live DVD分发版,甚至有一些分发版可以从软盘或者USB上引导启动。Live类型的分发版是非常有用的,因为这样可以让你在不影响目前的硬盘上的东西的基础上运行不同的操作系统。

  如果你是一个对Linux完全不了解的Windows用户,请丢弃那些令人听起来对Linux沮丧的声音。为了你们,我们写了另一篇文章,可以让你在不改变你的Windows系统情况下测试Linux,也可以让你保留Windows程序和文件情况下安装Linux,你也可以根据你的需要选择适合你的分发版。

Linux桌面

  能让Linux对你电脑有用的一方面是它的图形用户界面(GUI)。这个GUI使用可点击的图标、由屏幕面板、滚动条组成的小窗口让Linux秀色可餐(“look and feel”),而且用户使用的菜单和图标等是可以设置和改变的。这种可视可点击的环境,不依赖于命令行的可视化布局,让操作系统更加的直观可用。如果没有GUI,Linux(或其它任何操作系统)会要求用户依次输入各种命令,也就是命令行模式(CLI)。

  当大多数操作系统没有提供能让你选择你想要的用户界面的功能时,Linux却给你很多的选择。这些用户界面中的大多数不仅仅是提供了图形界面 -- 它们提供了一个具有多种工具、应用程序、游戏和其他应用的桌面环境,这样可以让用户的电脑体验可以更丰富一点。Linux下最流行的两种桌面环境是KDE和GNOME。

  KDE是K桌面环境的代表。KDE可以运行任何Unix操作系统下,包括Linux。KDE所有的源代码是遵循GNU General Public License的,这也意味着任何人能得到和改变KDE以适应自己的应用。KDE集成在大多数的Linux分发版里,包括一些标准化的菜单、工具条、配色方案,同时提供了完整的帮助系统,网络工具、图形和多媒体应用,以及完整的办公系统解决方案和其他多种软件工具。KDE项目是被自由软件开发社区支持的,对于Linux使用者来说是无需任何费用的。

  GNOME (发音:guh-NOME),全称是GNU Network Object Model Environment,是Linux另一种非常普及的GUI或桌面环境。它也是遵循GNU General Public License,这也意味着对于任何Unix操作系统的用户,包括它的源代码都是自由可用的。GNOME集成在每一种Linux分发版上。这也是GNU项目的一部分,GNU项目开发了GNU操作系统,其中的一部分包含在所有的标准Linux分发版中。

  正如KDE,GNOME桌面环境包含的不止是工具条、图标和菜单。整套自由软件包里还包括帮助文件、网络工具以及GNOME  Office办公套件。其它在Linux下的GUI有:

  XPDE desktop environment
    “让Windows XP用户更容易的使用Linux”

  Xfce
    “多种*NIX系统下的轻量级桌面环境。它设计得很有效率,它能快速加载和执行程序,而不耗用太多系统资源”

  Enlightenment
    “高级的图形库、工具和环境”

  IceWM
    “IceWM的目标是快速、简单,不阻碍用户使用”

  Blackbox 
    “Blackbox是一种你所寻找的X窗口系统的快速、轻量级的窗口管理工具,而且它不依赖于那些繁琐的资源库”

  Window Maker 
    “Window Maker是一个X11窗口管理工具,最初是为了综合的支持GNUstep桌面环境”

  FluxBox 
    “建立在Blackbox基础上的快速、紧凑的窗口管理工具,它还具有更多的功能”

命令行

  这些所有的桌面环境的共同点之一是让用户可以使用Linux命令行;你没有必要使用鼠标去执行每一次操作。输入一条或几条命令可能会让一些操作更为快速和容易,这就好像是用户在20年前使用DOS操作计算机一样。

  每个桌面环境进入命令行模式的方式是不一样的。通常会提供一个窗口让你输入命令。在GNOME下,这个窗口叫GNOME终端;KDE下,叫做Konsole。

  我们为你准备了一篇文章:命令行基本介绍。一个更进一步学习的网站是LinuxCommand.org

桌面应用

  和所有操作系统一样,Linux也提供了广泛的桌面应用程序的支持。典型的程序包括电子邮件、办公软件、音乐盒电影播放、个人信息处理、诸如即时和聊天室的网络通讯,以及文件共享。

游戏

  Linux对游戏并不陌生。Linux的分发版总是包含着游戏;例如,GNOME游戏包里面包含了16款街机游戏和智力游戏;KDE游戏中心包含的游戏有街机、棋、牌、骰子、逻辑推理、谋略游戏,和一些小玩具。如果你的分发版没有你想要的游戏,你可以到一些商业性的网站,如Linux Game PublishingTux Games,或者你也可以直接到一些小的公司、独立出版人,个人爱好者手中直接购买。如果这个游戏是为微软的Windows操作系统或者家庭游戏而设计的,那么你可以通过模拟器得到帮助。有关Linux游戏的更多信息,你可以去下面的网站看看:Enjoying games with GNU/Linux

文章并未结束

  不久的将来,我们会提供更多的篇幅来介绍不同种类的桌面和服务方面的应用、编程工具、练习和支持方面的内容。我们非常欢迎你给我们来信提出一个Linux初学者应该知道的内容:editors@linux.com。如果你现在想提问题,可以到这个版面来:http://www.linux.com/forums/forum/1

展开全文  
收起全文  
uniq和sort对汉字的识别差异 (Linux/Unix)
发布于 2008-03-29 22:56 阅读:74615 评论:1 标签: Linux sort uniq

  在处理文本文件中经常会使用的到sort和uniq命令,组合使用时通常是为了得到文本中共有多少行不同的信息。
 
  比如“sort a.txt | uniq”。这个命令的意识是说先对文本进行行排序,然后把相邻中的相同行的内容只取一行。
 
  然而在实践中发现这两个命令对汉字的支持不一样,解决方法如下:

以下是引用片段:

[yayu@login log_result]$ echo $LANG
en_US.UTF-8
[yayu@login log_result]$ LANG=zh_cn

展开全文  
收起全文  
PHP字符串类型转化的例子 (PHP心得)
发布于 2008-03-28 13:01 阅读:11692 评论:1 标签: PHP 类型

以下是代码片段:
if('dgfdg' == 0)
   echo 'Yes';
else
   echo 'No';
?>

  上面的程序会输出什么?这个例子是从其他blog上看见的,时间长了记不清是那个blog了。这个blog上说,如果答不出来说明基础知识还不够。偶很惭愧,觉得自己的回答没有底气。于是实践了一下。

  发现这是个PHP类型转换的例子,字符串与数字同时操作的时候,字符串会转化为整型,看下面的例子

以下是引用片段:
[root@login yayu]# php -r "if('gfd' == 0) echo 'Yes'; else echo 'No'; echo \"\n\";"
Yes
[root@login yayu]# php -r "if('gfd544' == 0) echo 'Yes'; else echo 'No'; echo \"\n\";"
Yes
[root@login yayu]# php -r "if('56gfd544' == 0) echo 'Yes'; else echo 'No'; echo \"\n\";"
No
[root@login yayu]# php -r "if('5gfd544' == 5) echo 'Yes'; else echo 'No'; echo \"\n\";"
Yes

  再看一下,字符串是如何转化为整型的:

以下是引用片段:
[root@login shengting]# php -r "echo (int) 10; echo \"\n\";"
10
[root@login shengting]# php -r "echo (int) '10gdfgfd'; echo \"\n\";"
10
[root@login shengting]# php -r "echo (int) 'gdfgfd'; echo \"\n\";"
0
[root@login shengting]# php -r "echo (int) 'gdfgfd10'; echo \"\n\";"
0

  从上面可以看出,转换的时候和第一个字符有很大关系。纯字母会直接转换为0,字母开头的字符串也会转换为0,只有以数字开头才会转换为该字符串前几个数字,此时有字母在后则完全截断了。

  下面是手册上的例子:

以下是代码片段:
$foo "10.5";                // $foo is float (11.5)
$foo "-1.3e3";              
// $foo is float (-1299)
$foo "bob-1.3e3";           
// $foo is integer (1)
$foo "bob3";                
// $foo is integer (1)
$foo "10 Small Pigs";       
// $foo is integer (11)
$foo "10.2 Little Piggies"
// $foo is float (14.2)
$foo "10.0 pigs " 1;          
// $foo is float (11)
$foo "10.0 pigs " 1.0;        
// $foo is float (11)
?>

展开全文  
收起全文  
创业的理想与环境 (随便说说)
发布于 2008-03-22 13:23 阅读:8003 评论:0 标签: 创业 寒泉 环境 理想 谢文 一起
  最近比较火的事情一个是关于新浪的传闻,由一个高管的人事变动引发的互联网想像力大展示竞赛。一时风云突起,掉足了大家的胃口。

  同样掉足了大家的胃口的是互联网理论家、老兵的谢文。当然,这个“大家”指的是关心互联网发展的人(其他行业的人谁会关心这呢?)。他写了一个blog说他做了一个网站,叫“一起”(http://www.yiqi.com)。然后很多人在后面跟着说好。

  从大家的好评中,也从他网站的自我介绍中:“‘一起’是一个开放的网络城市,我们欢迎各种网络服务提供商到我们的城市中来开店、建厂,为我们的居民提供更加丰富的生活,和我们一起建设这座城市”。看上去要制造一个虚拟的完整的生活环境了。不得不惊叹这是些有远大理想的人。然后我在想这个网站所要面向的人员阶层。

  2006年我还是在学校的时候,我受邀参加了学校的门户网站寒泉网的改版。当时我曾和团队的朋友们谈起同学们是如何进入寒泉网的。

  首先,像我们这些参与网站建设的人,追求快捷的进入方式,直接达到目的:在浏览器里面直接输入”202.207.177.9“即可。熟悉网络、并且常上寒泉网的同学,可能会直接输入网址”www.hanquan.com.cn“。那么,很遗憾,以上两种人很少。如此以来,不得不考虑追踪一下大多数同学是如何进入寒泉网的。

  当时,我提出了我的看法。首先学校的官方主页的链接是一个主要来源,可以说还是有一部分同学,估计不多,一个班40个人,大概10个能一次性直接输入网址就不错了,而且没事上学校主页的人相当相当少。这个来源我认为占到90%了。而且,关键是还是有很多同学是通过baidu、google查询”中北大学“或”华北工学院“进入学校主页的。

  当时的寒泉网面对的就是这个上网环境。后来在我毕业后的一次校友聚会上,在谈及新浪网的时候,一个人问“新浪网是不是和那些什么搜狐网易是一样的网站”(大意),我说“是”,然后对方继续接着问“是看新闻的地方么?”于是,我更坚信了我当初的观点!

  那么,现在我不知道如果谢文或和谢文有着同样梦想的人,看见上面的那句话会如何作想。中国人虽多,但能承载他们梦想的网民貌似不够。

  也许,这又是一个培育市场的例子。
展开全文  
收起全文  
成守财奴了 (随便说说)
发布于 2008-03-16 22:03 阅读:66436 评论:3 标签: 生活 守财奴

  不知道什么时候开始从公司楼下的取款机路过时,总是无意识的想看看卡里还有多少。

  这是什么心态?

展开全文  
收起全文  
继续“世界上最痛苦的事” (随便说说)
发布于 2008-03-05 19:27 阅读:64244 评论:0 标签: C C++ 工作 痛苦

    曾经说过“世界上最痛苦的事”,现在在原有的基础上回退重来一次,发现已然清晰了很多。C++不再是那么的可怕了。

    但可怕的事还是有很多,不经意中蔓延、随处而生。

展开全文  
收起全文  
春节 回家不易 (随便说说)
发布于 2008-02-21 11:56 阅读:25161 评论:3 标签: 春节 火车票 票贩子

    回家不易啊!

    南方大雪纷飞,加上冰冻天气,只见那脖子粗的树也招架不住,只得断腰自保!家乡已经全县瘫痪,手慌脚乱之下只好在主要干线上的每个电线杆上派两个人在不停的敲冰。这还不算了已经断了的电线杆。估计全县通电得三个月了。

    每年回家火车都是令人头痛的事情。今年回家遭遇大雪和冰冻,回家的日期迟迟不能确定,票贩子按惯例肆意张狂。回家的车票被加了100元,还好是个卧铺,人在车上没怎么受罪。

    由于下了火车无论从哪个方向走都要3个小时的距离。从郴州下吧,路已经被封,郴州可是受灾最严重的地区,停水停电十来天!从永州回吧,有一个大岭由于冰冻行走危险。只得绕道广西全州。无语,从湖南跑到广西再到湖南。

    和家里商量决定到株洲亲戚家过年。还好在火车上得到信息,家里有朋友开车到长沙接她乖女儿,随便到株洲办事,心里那个美啊!第二天到了株洲在亲戚家吃了饭,便搭上了回家的顺风车,爽!一路沿京珠高速南下,只见那北上从广州回家的车把路面照的闪闪的,可谓灯火通明,如闪烁之长龙。偶见堵车,则如长城般壮观!而南下的汽车则孤影单行、畅通无阻。中国人的过年关啊!

    万事不能尽完美。

    到了郴州,一片漆黑,还是停水停电!不过回家的路已经打通了!本来按照国家规定,由于冰冻受灾,为了让大家畅通行路,所有灾区及附近的公路收费站停止收费。但到了郴州,往桂阳方向的收费站却仍然坚守岗位,坚持平时的规定,以坚定的信念、坚强的拒责精神,向过往车辆收取过路费!其职业精神之敬业,实令我辈敬仰!我不得不考虑今晚是否要通宵学习呢。这个时间是2008年2月5日傍晚,既大年二十九。据说某领导来某市视察工作回去后打电话问这市领导,大年三十晚上是否全市区通电了,结果9个领导有8个说全市通电了。这大概就是所谓的上梁不什么下梁什么吧。此据说纯属虚构,如有雷同甚感荣幸,欢迎对号入座!

    刚出桂阳,车子出了故障,只得下车维修,幸好附近有维修站。但很遗憾,店主很忙想休息,只好借用工具师傅自己修车了,不得不说开车师傅还是有经验的。印象深刻的是附近一家小卖店并没在这个灾难的日子里哄抬物价,给我们介绍了适合的方便面,婉拒了我们购买礼品饼干解饥的行为,并且加价不到一元。可惜是个小店并无名字,无法帮其扬名,甚憾甚憾!

    回到家已经是大年三十凌晨一点。不管如何,能在这个灾难的季节回到家中见到父母,心情还是舒畅的!年三十下午5点终于来电,但很遗憾电视台没有信号,只能不看春晚了。手机也终于能在奄奄一息中得以焕发出生命的气息!好景不长,初一下午三点又停电了。原来是电力不足,只能部分供电。还好在初二的时候貌似全县城供电了,电视也有了信号。

    来北京的时候那叫个惨。

    家里距郴州火车站3个小时的长途,又没法托人买票,只好随到随上了。找了个票贩子带进了火车站,那经历可叫个曲折。

    到了火车站先是自己到进站碰运气,用过期的票混进站,但被档在候车室的那一关,检票的阿姨可真叫个认真,一张一张的查看,我被揪出两次,气得那阿姨向我怒吼,顺带把票也没收了,呜呼!还说什么这个车票已经见过四次了,莫非还有和我同样命苦的弟兄?然后混进南下广州的一个候车室,这个候车室管理松点。想找个差不多时间的车混进站台,然后溜向目的地,结果一看车的出发时间都差开老远。没法啊!

    然后找到票贩子A,A君甚广通,家乡很多人都说你没票就找他,效果好疗效也好!无奈A说你来迟了,很遗憾,有一张北京的票早晨刚被卖出,而且几分钟前刚带了一批人进火车站,现在就你一个人不太好弄。一听就傻了。还好A继续说,没关系傍晚7点多还有一个T16,可以坐那个车。没法,只得又先自己去碰碰运气,于是便出现了检票阿姨向我怒吼的一幕,哈哈!如此一来只能等T16了,不然我一靠近候车室的检票口,检票阿姨就直接向我打招呼可咋办呢!在A开的小饭馆里吃了一个盒饭,辣椒粉白菜,10元钱,黑!

    到了下午5点钟,精彩的一幕来了!票贩子专业性在此体现!这段经历是不是要写出来,我很犹豫。写吧,显得我不厚道,过河拆桥!不写吧,不利于国家的正常运转,我真是忧国忧民啊!人嘛,总是复杂的!

    还是不写了,毕竟,我明年可能还是要靠他们上火车。铁道部,你何时不让我这么矛盾呢!

展开全文  
收起全文  
eAccelerator 0.9.5.2 安装 (Linux/Unix)
发布于 2008-01-24 18:53 阅读:45545 评论:0 标签: eAccelerator Linux 安装

    有关eAccelerator的资料请看本站我翻译的:PHP加速器eAccelerator文档翻译

    一:eAccelerator把编译好的PHP程序存储在共享内存里面,并直接在这里面执行程序。不适合放入共享内存的文件将被缓存到硬盘上。所以先建立eAccelera缓存目录:

以下是引用片段:

[shengting@login sso]$ pwd
/data1/apache/sso
[shengting@login sso]$ mkdir cache-eaccelerator
[shengting@login sso]$ chmod 777 cache-eaccelerator/
[root@login sso]# chown nobody:nobody cache-eaccelerator/

    二:下载文件:

以下是引用片段:

[shengting@login sso_front_soft]$ cd /home/sso_front_soft/
[shengting@login sso_front_soft]$ pwd
/home/sso_front_soft
[shengting@login sso_front_soft]$ su
Password:
[root@login sso_front_soft]# wget "http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2"
--10:31:00--  http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2
     => `eaccelerator-0.9.5.2.tar.bz2'
 Resolving bart.eaccelerator.net... 193.190.253.234
 Connecting to bart.eaccelerator.net[193.190.253.234]:80... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 121,935 [application/x-tar]

 100%[===================================================================>] 121,935       55.29K/s            

 10:31:03 (55.23 KB/s) - `eaccelerator-0.9.5.2.tar.bz2' saved [121,935/121,935]

    三:解压并进入文件

以下是引用片段:

[root@login sso_front_soft]# tar -jxvf eaccelerator-0.9.5.2.tar.bz2
[root@login sso_front_soft]# cd eaccelerator-0.9.5.2
[root@login eaccelerator-0.9.5.2]# pwd
/home/sso_front_soft/eaccelerator-0.9.5.2

    四:which一下phpize得到phpize地址:/usr/local/bin/phpize
phpize 命令是用来准备 PHP 扩展库的编译环境的,成功的安装将创建 extname.so 并放置于 PHP 的扩展库目录中。需要调整 php.ini,加入 extension=extname.so 这一行之后才能使用此扩展库。

    而eaccelerator的编译需要使用这个命令:

以下是引用片段:

[root@login eaccelerator-0.9.5.2]# /usr/local/bin/phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20050922
Zend Extension Api No:   220051025

    五:编译eaccelerator

以下是引用片段:

[root@login eaccelerator-0.9.5.2]# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config
[root@login eaccelerator-0.9.5.2]# make
[root@login eaccelerator-0.9.5.2]# make install
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20050922/

    注意上面的“Installing shared extensions”的地址,这是phpize告诉我们的扩展库的地址。如下:

以下是引用片段:

[root@login eaccelerator-0.9.5.2]# ls -l  /usr/local/lib/php/extensions/no-debug-non-zts-20050922/
total 768
-rwxr-xr-x  1 root root 425775 Oct 26 11:28 eaccelerator.so
-rwxr-xr-x  1 root root  78031 Jan 22  2007 memcache.so
-rwxr-xr-x  1 root root  26273 Oct 10 11:55 String2Int.so

    六:以下安装为PHP扩展

以下是引用片段:

[root@login eaccelerator-0.9.5.2]# find / -name php.ini
/usr/local/lib/php.ini

    修改php.ini文件,加入:(注意extension的地址)

以下是引用片段:

[eaccelerator]
extension="/usr/local/lib/php/extensions/no-debug-non-zts-20050922/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/data1/apache/sso/cache-eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="0"
eaccelerator.compress_level="9"

    七:重启apache

以下是引用片段:

[root@login eaccelerator-0.9.5.2]# /data1/apache/bin/apachectl stop
/data1/apache/bin/apachectl stop: httpd stopped
[root@login eaccelerator-0.9.5.2]# /data1/apache/bin/apachectl startssl
/data1/apache/bin/apachectl start: httpd started

    注意:
    1 : 使用ssl 443端口,启动时:/data1/apache/bin/apachectl startssl
    2 : 定期清理cache-eaccelerator,如果是把cache-eaccelerator下的目录也删除,则需要重启apache,否则会出现异常。(具体什么异常需要测试)

展开全文  
收起全文  
cut命令学习 (Linux/Unix)
发布于 2008-01-23 10:35 阅读:86851 评论:0 标签: cut linux

    链接:http://www.ifpubs.com/books/aix52/cut.htm

    cut命令用途:从文件的每个行中写出选定的字节、字符或字段。

    语法:

以下是引用片段:
cut {  -b List [  -n ] |  -c List |  -f List [  -s ] [  -d Character ] } [ File ... ]

    必须指定 -b、-c 或 -f 标志之一。List 参数为一个以逗号分隔、以空格分隔或连字符分隔的整数的列表(顺序递增)。连字符分隔符表示范围。以下条目是 List 参数的一些示例,它可以用来指代字节、字符或字段:

以下是引用片段:
1,4,7
1-3,8
-5,10
3-

    其中 -5 为从第一个到第五个的简写形式,3- 为从第三个到最后一个的简写形式。

    参数:

以下是引用片段:

-b List 指定字节位置。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c List 指定字符位置。例如,如果您指定 -c 1-72,cut 命令将写出文件每一行的头 72 个字符。
-d Character 使用 Character 变量指定的字符作为指定 -f 标志时的字段定界符。您必须在对 shell 有特殊意义的字符(比如空格字符)上加上引号。
-f List 指定文件中设想被定界符(缺省情况下为制表符)隔开的字段的列表。例如,如果您指定 -f 1,7,cut 命令将仅写出每个行的第一和第七个字段。如果行中不包含字段定界符,cut 命令将通过它们而不对其进行任何操作(对表格的副标题有用),除非指定了 -s 标志。
-n 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除。
-s 取消不包含定界符的行。仅和 -f 标志一起使用。

    该命令返回以下退出值:

以下是引用片段:
0 所有输入文件被成功输出。
>0 发生一个错误。

    遇到的例子:找出服务器的ip地址。

    在FreeBSD中:

以下是引用片段:
/sbin/ifconfig | grep "inet 172" | cut -d " " -f2

    其中的"inet 172"为显示ip那一行的一个标志,目的是取出这一行。

    在CentOS中:

以下是引用片段:
/sbin/ifconfig | grep "inet addr:10.55" | cut -d ":" -f 2 | cut -d " " -f 1

    同上,"inet addr:10.55"目的是取出这一行。这个使用两次cut,因为偶使用一次时死活取不出来,晕死。

    可能根据自己的情况,上面的数字需要自己确定。

    注:使用“-d”参数时,需要注意只能是单个字符。否则会报错:

以下是引用片段:
cut: the delimiter must be a single character

展开全文  
收起全文