存档

文章标签 ‘Linux’

Linux Shell中的返回值

2012年3月31日 没有评论 11,139 views

在bash中,也有返回值,返回值存在 $? 变量中,例如diff命令,假如两个文件一样,则返回0,反之返回1。eg:

#!/bin/sh

diff file1.txt file.txt > /dev/null
if [ $? == 0 ]
then
    echo "Two file are same"
else
    echo "Two file are different"
fi
分类: 贝壳 标签: ,

[整理]陈怀临-闲聊Kernel engineer的境界

2012年3月19日 没有评论 7,025 views

今天,看到@陈怀临的微博谈Kernel engineer的境界,觉得挺不错的,整理在此。

  1. 境界(一):1. 喜欢OS。别的啥也看不上。2. 读kernel代码,每天特来劲。饭桌上特牛逼:-)3. 觉得自己啥也不懂,看了就忘,特沮丧。4. 玩板子,特来劲,饭桌上具牛逼。
  2. 境界(二) 1. 开始谁也看不起,觉得做网络的其实就是大傻。 做Driver的其实就是脑残。 (2)喜欢做芯片的,特别是做CPU的。会开始补充体系结构的知识。 (3)发现bus很重要,但大多数人不懂。(4)慢慢往硬件上靠。
  3. 境界(三)(1)轻微自闭症倾向开始。会在办公室贴时序tu,die图,觉得漂亮。(2)会好奇做编译后端。发现做编译的人其实都不懂编译。(3)发现绝大多数人不会调程序。(4)很奇怪身边的傻子们如何混到工作,而且一个个还不知道自己特傻。(4)很痛苦ing
  4. 境界(四)(1)价值观开始改变,Open Source里的大腕才是心目中的Hero。其他的都看不起。自己的老板,老板的老板基本上都不在眼里 (2)天天琢磨如何在Open Source做贡献,而非在自己的公司做贡献。 (3)上班就是混。自己做的东西公司的人基本上不懂。
  5. 境界(五)1. 狂喜欢写汇编,而且特意从来不加注释。(2)经常看着2,3行知道有错误的priviledge的代码但不知道哪里有错,感叹网络工程师用GDB还不会抓bug,可见智商有多低 (3)最怕的不是crash,而是板子的LED不闪了,系统死了。
  6. 境界(六)1. 当一个晚上去调 5 块板子,每个板子都是不同的CPU的时候,离崩溃已经不远。2. 世界上最难的不是调厂商开发板子+自己的kernel;也不是自己的烂板子+linux;而是自己的烂板子+自己写的烂kernel。没有技术底线就与一个女人没有道德底线一样,不是可怕;而是噩梦。
  7. 境界(七) 1. Kernel工程师在某一天突然会害怕。对不确定性(undeterministic)的无法控制(板子不稳定,dram不稳定,kernel不问题) 2. 会开始往上做,看stack。发现网络的精华:代码就是一堆callback指针;实质就是几个Queue。才突然了解为什么大傻都能做网络工程师。
  8. 境界(八)1.会发现网络最难的不是转发,而是控制。2. 会特别羡慕能把网络设备config的特溜的Testing工程师。Kernel工程师通常喜欢手快和对设备熟悉的,不喜欢大傻。 3. 总是试图建立一个完整的网络Picture,但感觉不好,很喜欢去数据中心看看。

上面八条境界分别来自八条微博,原链接:

http://weibo.com/1645518723/yanDemGGg
http://weibo.com/1645518723/yarEe4eXS
http://weibo.com/1645518723/yawvk5SQ0
http://weibo.com/1645518723/yazpjjCEc
http://weibo.com/1645518723/yaBjJoUsf
http://weibo.com/1645518723/yaBLKk3iK
http://weibo.com/1645518723/yaFfC2WeB
http://weibo.com/1645518723/yaFkpBJSH

分类: 贝壳 标签: ,

启用FTS编译sqlite并用update更新列值

2012年3月16日 没有评论 5,388 views

今天,折腾sqlite,需要update一个数据库,发现可以用下面的命令:

UPDATE <table> SET  <col=new_val> WHERE <oth_col=val>

但是,在ubuntu里面用apt-get安装sqlite后,直接执行上面的语句,会报“no such module:FTS3”,因为默认sqlite编译是没有启用FTS3的。因此,需要自己下源码编译,手动编译是加入以下编译选项:

-DSQLITE_ENABLE_FTS3 
-DSQLITE_ENABLE_FTS3_PARENTHESIS

用autoconf版本的话,在configure时,加入:

CPPFLAGS= "-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS "/configure <options>

上面两种方法的目的都是一样的,就是在编译时定义SQLITE_ENABLE_FTS3 和SQLITE_ENABLE_FTS3_PARENTHESIS宏。

参考资料:http://www.sqlite.org/fts3.html

分类: 沙子 标签: ,

ls只列出目录

2012年2月29日 没有评论 4,642 views

ls只列出目录方法:

ls -d */

 

分类: 沙子 标签: , ,

Screen中止某个会话(session)

2012年2月24日 没有评论 10,000 views

在linux服务器上跑东西,为了防止出现网络中断或者本地终端死机导致服务器程序中断,一般可以用screen跑,具体使用可以screen –help。但是,有时远程的进程没有响应,用screen -r过去也不能杀掉,这是想吧会话中止,方法如下:

screen -S some_name -X quit

 

分类: 沙子 标签: , ,

Linux命令删除重复行

2012年2月9日 没有评论 7,045 views

有时候处理文本,需要删除重复的行,可以通过uniq命令完成。

比如文本test.txt:

aaa
aaa
bbb
bbb
aaa
aaa
aaa

可以通过下面命令删除连续重复行:

cat test.txt | uniq

得到文本: 阅读全文…

分类: 沙子 标签: ,

Linux趣图一张 关于sudo

2012年2月5日 没有评论 3,765 views
分类: 沙子 标签: , ,

无觅相关文章插件,快速提升流量