Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2034352
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类: LINUX

2007-04-25 23:58:29

荒了好几天,今天就把n久前就计划要写的内容补上吧。本想把本篇命名为“解读男人(man)”,仔细考虑了一番,为了不误导读者,还是选个更加庄重些的,也就是现在的标题,确实也没必要太。

刚接触Linux的时候,曾经在自己的机器上开过http和ftp服务,还在上面搭建了论坛,为了吸引读者,在同学中间更好地推广Linux操作系统,有一段时间,天天忙于在各大Linux论坛上拷贝精华内容到自己的论坛上,通过各种途径搜罗各式各样的电子版教程和参考书,一方面是方便大家查阅,其实更重要的是方便自己学习。但是,事实证明,这些东西自己也很少过问,几近被遗忘。后来,几乎所有的资料都是需要的时候用搜索获得。当然,这需要一个前提:相关理论和基础知识基本明白,也就是说你必须对知识有个总的系统的认识,毕竟互联网上的东西还是零碎的经验居多。

我们学习一门全新的编程语言:第一步通常是读书,了解其基本的数据结构和语法结构,如果再深入些就是其背后所蕴含的编程思想,当然这些并不是初学者能够在短期内领悟到的;第二步应该就是实践了,实际上实践通常和读书穿插在一起,或者说两者是个交替的过程;窃深深认为:人的认识也是螺旋式上升的,所以当你有了一定实践经验之后,再反过来读书,同一本书你会有不同的收获,所以第三步肯定又回归为读书;以此类推...

不仅仅是学习编程语言,学习其它的东西亦如此:循序渐进、理论结合实践、螺旋式上升。所以当你突然感觉自己又回到原点的时候,不要惊慌,因为你已然站在了一个全新的高度上。

再次回到对具体编程问题的讨论,一门语言的兴衰,除了和语言本身的优劣相关,也深深地受相关库和应用的多少所影响。这点从那庞大的社区,和借助框架红透半边天的身上都能看到一些端倪。在编程过程中,为了避免重复劳动,节约生产力,我们不可避免地要站在巨人们的肩膀上,要引用到其它人的劳动成果,这通常表现为对库的引用。

那么我们如何、从哪里找到我们所需要的库和相关说明文档呢?

有人可能认为这是一项比较“简单”的工作,进而不屑。愚深不以为然,恰恰相反,我认为这是每一本关于编程的书里面都应该回答的问题,并且应该是需要着重说明的部分,最好把这部分内容稍微放前些。比较遗憾的是,这样的书并不多(当然,你也可以认为我读书有限,孤陋寡闻)。

当今的互联网规模庞大,信息量巨大,几乎无所不包,所以一般问题你都能在上面找到满意的答案,但是如何从几近天文数字的信息仓库中快速而准确地挖掘到信息就成了一项极具挑战的工作。这一点上,通用的互联网搜索引擎帮了我们很大的忙,尤其是google,如果关键字选取得当,在其搜索结果的前几页你就能找到你想要的东西。但是,搜索引擎固然强大,却远没有达到智能的程度,为了在搜索的结果里面帅选出你想要的东西,你有时还是不得不多费番力气,这时,缩小搜索范围就变得积极而有意义。UNIX的在线手册页(manual page)就是为系统管理员和程序员准备的参考手册,如果你的需求能够被限定在这个里面,相比于庞大的互联网,哪个更有优势就勿需多言了吧?

下面举个例子:一个管理员想结束一个有问题的进程的执行,由于某些原因(如:很长时间没有用过Linux操作系统),他只记得要给问题进程发送一个信号,至于具体的命令和信号,他都不清楚了。这时他可以通过man命令的搜索来定位具体的命令:

xiaosuo@gentux ~ $ man -k signal
Tcl_SignalId (3) - Convert signal codes
Tcl_SignalId [Tcl_SignalMsg] (3) - Convert signal codes
Tcl_SignalMsg (3) - Convert signal codes

...

kill                 (1)  - send a signal to a process
kill                 (1p)  - terminate or signal processes
kill                 (2)  - send signal to a process
...


翻看结果后,他记起来了:命令是kill,接下来他需要知道具体的信号,再次启用man命令:

xiaosuo@gentux ~ $ man kill


在man显示的页面中,他找到了这个命令的具体格式:

kill -signal pid ... Send a signal to every process listed.


和相关信号:

       INT 2 exit
       KILL 9 exit this signal may not be blocked


最终他用命令:

xiaosuo@gentux ~ $ kill -9 1234


结束了问题进程(假设进程号为1234)的执行。

是不是很方便呢?当然,这只是一个简单的例子,man能提供的信息远比这个多。

相关链接

解读UNIX在线手册页(2)



废话说得太多了,导致时间过晚,只能断开,明天继续!
阅读(2550) | 评论(3) | 转发(0) |
0

上一篇:大饱口福

下一篇:我是“纯爷们”

给主人留下些什么吧!~~