红联Linux门户
Linux帮助

Linux编程环境简介

发布时间:2005-06-18 00:28:18来源:红联作者:cooc
一、序言

说到编程,大家肯定会想到许许多多,例如Visual C++、Visual Basic、Delphi、PowerBuild、java、perl、asp等等。现在的程员们早已习惯了可视化的编程工具,习惯在“向导”的带领下step by step地编程。在一个象WORD一样的环境下轻松敲入源码,有人为你校对,有人提醒你的代码是否错误,完成后,轻轻点击菜单中的“编译”,就可以生成可执行程序了。甚至于,可以画出用户界面来,用一些“巫师”程序生成基本的程序框架,然后根据需要加以修改,就完成了程序。

我想这就是在Windows环境下的程序员所享受的生活。而Linux世界却是另一个世界,一切都显得是那样的原始、古朴、原汁原味。一定会勾起了那些从DOS世界、或更早的世界中走出来的程序员对往事的回忆。那些来自UNIX世界的程序员都会感到无比的亲切。

在操作系统这一舞台上,最活跃的是两大派系:Windows系列和UNIX系列。Windows是著名的Microsoft赖以文明的力作,以优秀图形界面完成人机交互,早已带着比尔盖茨“让电脑走进每个人的桌面”的愿望风靡全球,成为个人/桌面操作系统的首选。而UNIX则是具有悠久历史的操作系统,它以健壮、可靠,以及高深的人机交互语言著称,现在仍然是服务器操作系统的首选。

所以,Windows给程序员带来礼物就是---可视化的编程!一切都像在用WORD!而UNIX则以神鬼莫测的姿态现身于程序员之前。

“黑客”,这个名称,应该是您耳熟能详的吧!其实,黑客有好有坏,好的叫黑客,是对电脑系统有强烈兴趣的高人,以发现系统漏洞为乐,以钻研系统为趣的一群品德高尚的人;而坏的叫骇客,是以破坏电脑系统为乐的人,这些人的道德品质极为低下,让人不耻,是程序员中的败类。

Windows一面以最友好的界面展现给程序员,但却严格限制程序员对其透彻研究,装自己用华丽的外表包装起来了。而UNIX则一直以真面目示人,神秘、费解,而内心是对刻苦者敞开的。黑客大多就是UNIX系统下的这些刻苦者。

当你决定给我一起走进linux编程世界时,你一定牢记,从此你开始考古了,鼓起勇气向自己挑战,不惧怕麻烦、枯燥。

二、Linux下的编程环境

在Linux系统的程序设计中,有一些重要特性要特别注意:

1.Linux是多任务的。可以同时创建多个进程或者线程。绝不能认为自己的程序是系统唯一运实例;同一个用户或者不同的用户可以运行该程序的其他实例。因此,在某些情况下必须小心对待同步的问题。

2.Linux是个真正的多用户系统。这就意味着存在某种安全机制,以确保把不同用户的文件隔开。用户的程序不能像在其他操作系统中那样,可以修改或者移动任何文件,除非他是root。

3.Linux有分时机制。分时的意思是允许多个用户同时登录,或者一个用户登录多次。用户可以使用诸如telnet或者X技术远程登录。因些必须知道你的程序可能同时被许多用户使用。

Linux系统中提供了许许多多的编程工具,包括:

1.编辑工具:在Linux下编程,你不再拥有集成化环境,你可以使用类似于EDIT的工具---经典的vi来编辑源程序。当然,还有更高档一些的,如joe、emacs等。总之,编辑程序与编译工作是分开的。

2.编译工具:在Linux下支持大量的语言,有C、C++、Java、Pascal、Fortran、COBOL等等。在本讲义中以C/C++语言为主。在使用这些编译工具时,是使用命令行方式的,也就是说,你先用编辑工具输入源程序,然后再执行一长串的命令(参数比较复杂)进行编译。例如:gcc -o hello hello.c 就是将hello.c编译为hello,然后你还需要为其赋予可执行的权限,这样你才完成了整个工作。

3.软件工具:一个大型软件总是由多个源程序组成的,为了能够将大量的编译命令作一次完成,Linux中提供了make各autoconf工具,分别用于大型软件的编译,和编译前根据机器当前状态作相应配置。

4.开发工具包:在Linux下提供了优秀的GNU C库函数、Motif函数库、GTK函数库、QT函数库等为你的编程提供大量的支持。

5.项目管理工具:在Linux下还有CVS这样优秀的用于版本控制、管理的软件配置管理工具。

而且,Linux作为一个自由软件,同时来提供了大量的自由软件,这些自由软件不仅可执行文件自由,而且源程序也自由。你可以通过研习这些优秀的源码来提高自己的编程技艺。

三、Linux下的编程

1. Shell编程:Shell是Linux操作系统的最外层,直接与用户交互,负责解释命令。就像DOS中的COMMAND.COM程序。Shell编程与编写.BAT文件类似。但其提供了一整套机制,使其具有很强大的功能,所以不可小看,善于使用Shell编程可以更好地使用和管理Linux操作系统。

2. WEB编程:在Linux系统下,拥有最好、最普及的WEB服务器Apache,还有优秀的PHP脚本语言,所以在Linux系统下的WEB编程也是很有“钱途”的技能呀。其包括PHP、JSP、Perl的开发。

3. 普通程序开发:在Linux系统中,你可以使用C/C++语言开发出高效的、高可移植性的应用程序来。

4. 用户交互式程序:在Linux系统中,你可以使用ncursor库来实现字符界面下的用户交互式程序。

5. X-Win编程:在Linux系统下,有一个从UNIX系统过继来的图形界面系统X-Window,你可以在这里另辟天地。这方面的开发,MOTIF函数库、QT函数库、KDE函数库可以助你一臂之力。

四、获取帮助

1.手册页

在Linux和UNIX系统中,手册页(Manpage)中存放的是参考信息。手册页是主要的参考信息来源,对于每一条Shell命令、系统调用、库函数、配置文件和系统的守护程序,都有相关的一页对其进行说明。手册页分为八个部分:

第1部分:Shell命令和用户级程序;

第2部分:系统调用相关文档;

第3部分:C和C++库函数和宏调用相关文档;

第4部分:在内核模块、/dev目录、/proc等目录中的特殊文件和设备的相关文档;

第5部分:系统的不同文件格式;

第6部分:因历史原因而包含的游戏相关文档;

第7部分:有关语言或小语言的文档;

第8部分:守护程序或者其他系统管理员命令的相关文档。

你可以使用man命令进行查找。

2.INFO页:你可以使用Xemacs的浏览器来查看它。

五、结言

Linux操作系统下的编程是令人兴奋的,你可以在Linux环境下编写出高质量的服务器程序、应用程序。而且可以亲切地感受到内核,那是何等的惬意呀,让我们一往无前,进行Linux的编程世界吧!

本讲义是简介为主,纵向地作一概述,今后还将会选择一部分来详解。由于笔者的水平有限,所以是边学习,边写心得,希望我们一起交流,互相促进。让我们在Linux的编程世界中相会吧,我所有的朋友。
文章评论

共有 93 条评论

  1. 秦合六一 于 2014-01-14 22:27:16发表:

    支持一下。谢谢

  2. jeffkuang1 于 2013-10-12 20:05:59发表:

    感谢分享。。。

  3. emyatouma 于 2013-09-11 21:21:50发表:

    so ga

  4. ILLFQ128 于 2013-08-06 11:48:28发表:

    受教了

  5. snowlee 于 2013-08-04 03:29:28发表:

    有点用处

  6. sunskyjun 于 2013-07-31 16:49:48发表:

    谢谢分享

  7. yuquzou 于 2012-03-29 20:42:48发表:

    看过了

  8. samuel187 于 2012-03-28 23:52:27发表:

    没有了集成开发环境,程序的编译和较错估计对新人是个大问题,确实相当的有挑战性。

  9. silentwind 于 2012-03-27 15:37:48发表:

    谢谢分享

  10. silentwind 于 2012-03-27 15:37:01发表:

    挺好的 感谢分享了

  11. 于 2012-03-27 08:29:59发表:

    感谢分享,谢谢。

  12. weimin230 于 2012-03-22 19:44:37发表:

    好的很的东西

  13. weimin230 于 2012-03-22 19:43:25发表:

    good

  14. conquer008 于 2012-02-18 01:05:42发表:

    顶,支持

  15. lijunhuan 于 2011-11-15 00:03:58发表:

    看不到附件啊,难道还有权限

  16. lanlanlangzi 于 2011-11-02 17:11:26发表:

    {:3_112:}

  17. ai0909 于 2011-11-01 14:10:38发表:

    支持下楼主

  18. chaipeng 于 2011-08-18 17:48:07发表:

    支持!!!!!

  19. wanglezeng 于 2011-08-01 11:24:55发表:

    受益匪浅!

  20. ??微笑 于 2011-07-28 11:29:29发表:

    受教

  21. 花开花败2011 于 2011-02-12 17:18:45发表:

    我顶啊

  22. luguanhuang 于 2011-01-15 16:39:14发表:

    好东西 谢谢了

  23. pallana 于 2011-01-14 13:01:08发表:

    学习了

  24. bitforest_2010 于 2011-01-14 11:58:07发表:

    后文呢

  25. 登高必自 于 2011-01-13 00:47:57发表:

    有时间要好好看看,呵呵~~

  26. list0302 于 2010-08-07 22:11:26发表:

    学习了

  27. muqitieqi 于 2010-08-06 15:16:31发表:

    看了

  28. muqitieqi 于 2010-08-06 15:16:30发表:

    看了

  29. hua80788 于 2010-08-06 14:40:35发表:

  30. liwaye 于 2010-06-02 14:05:59发表:

    hehe

  31. 迷失的浪人 于 2010-05-31 18:59:31发表:

    顶一个

  32. lianshaohua 于 2010-05-31 17:40:25发表:

    不错,顶一下,可以让新人很好的入门

  33. lianshaohua 于 2010-05-31 17:40:22发表:

    不错,顶一下,可以让新人很好的入门

  34. 楼兰后主 于 2010-05-31 10:57:28发表:

    感激

  35. zguangyu0000 于 2010-05-29 14:36:54发表:

    vim+C大爱啊!

  36. beijunan 于 2010-05-28 14:50:45发表:

    学习

  37. axbyc123 于 2010-05-27 08:25:05发表:

    :0)1很好

  38. zhangbohtz 于 2010-02-04 18:07:30发表:

    1# cooc


    详细,建议整理成书!

  39. qazsnkkof 于 2010-01-17 10:16:56发表:

    感谢楼主

  40. nerissa 于 2010-01-08 11:11:46发表:

    学习学习