uniq和sort对汉字的识别差异 (Linux/Unix)
发布于 2008-03-29 22:56 阅读:75084 评论: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 阅读:12130 评论: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 阅读:8426 评论: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 阅读:66846 评论:3 标签: 生活 守财奴

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

  这是什么心态?

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

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

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

展开全文  
收起全文  
春节 回家不易 (随便说说)
发布于 2008-02-21 11:56 阅读:25540 评论: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 阅读:46070 评论: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 阅读:88854 评论: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

展开全文  
收起全文  
查看mysql版本的四种方法 (MySQL学习)
发布于 2008-01-22 15:54 阅读:189569 评论:4 标签: mysql 版本 方法
    1:在终端下:mysql -V。

以下是代码片段:

[shengting@login ~]$ mysql -V
mysql  Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

    2:在mysql中:mysql> status;

以下是代码片段:

mysql> status;
--------------
mysql  Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

Connection id:          416
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         3.23.56-log
Protocol version:       10
Connection:             Localhost via UNIX socket
Client characterset:    latin1
Server characterset:    latin1
UNIX socket:            /tmp/mysql_3311.sock
Uptime:                 62 days 21 hours 21 min 57 sec

Threads: 1  Questions: 584402560  Slow queries: 424  Opens: 59664208  Flush tables: 1  Open tables: 64 Queries per second avg: 107.551

    3:在help里面查找

以下是代码片段:

[shengting@login ~]$ mysql --help | grep Distrib
mysql  Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

    4:使用mysql的函数

以下是代码片段:

mysql> select version();
+-------------+
| version()   |
+-------------+
| 3.23.56-log |
+-------------+
1 row in set (0.00 sec)

 

展开全文  
收起全文  
linux和freebsd下的路由操作的区别 (Linux/Unix)
发布于 2008-01-16 15:31 阅读:105118 评论:1 标签: FreeBSD Linux 路由

    添加路由时如果想服务器重启时也能有效,则同时将命令写到/etc/rc.local中。但路由操作在linux和freebsd中是不一样的,区别如下:

    linux:

以下是代码片段:

查看路由:
 /sbin/route
增加路由:
 /sbin/route add -host 172.16.78.226 gw 10.55.40.1
 /sbin/route add -net 172.16.20.0/24 gw 10.55.40.1
删除路由
 /sbin/route del -host 172.16.78.226 gw 10.55.40.1
 /sbin/route del -net 172.16.20.0/24 gw 10.55.40.1

    freebsd:

以下是代码片段:

查看路由:
 netstat -nr
增加路由
 /sbin/route add -host 172.16.78.226 10.55.40.1
 /sbin/route add -net 172.16.20.0/24 10.55.40.1
删除路由
 /sbin/route delete -host 172.16.78.226 10.55.40.1
 /sbin/route delete -net 172.16.20.0/24 10.55.40.1

展开全文  
收起全文