一、东西的运用
1、学会运用vim/emacs,vim/emacs是linux下最常用的源码修改具,不光要学会用它们修改源码,还要学会用它们进行查找、定位、替换等。新手的话引荐运用vim,这也是我现在运用的文本修改器。
linux操作体系文章专题:linux操作体系详解(linux不再难明)
2、学会makefile文件的编写规矩,并结合运用东西aclocal、autoconf和automake生成makefile文件。
3、把握gcc和gdb的根本用法。把握gcc的用法关于构建一个软件包很有好处,当软件包包含的文件比较多的时分,你还能用gcc把它手动编译出来,你就会对软件包中各个文件间的依靠联系有一个明晰的了解。
4、把握svn/cvs的根本用法。这是linux,也是开源社区最常用的版别办理体系。能够去试着参与sourceforge上的一些开源项目。
二、linux/unix体系调用与规范C库
体系调用应用软件与操作体系的接口,其重要性天然不用说,一定要把握。引荐学习材料为steven先生的UNIX环境高档编程(简称APUE)。
三、库的学习
无论是在哪个渠道做软件开发,关于库的学习都很重要,linux下的开发库许多,我首要介绍一下我常常用到的一些库。
1、glib库
glib 库是gtk+和gnome的根底库,并具是跨渠道的,在linux、unix和windows下都能够用。glib库关于linux渠道开发的影响就像 MFC对windows渠道开发的影响相同,许多开源项目都许多的运用了glib库,包含gimp、gnome、gaim、evolution和 linux下的集群软件heartbeat。由于glib库自带有根本的数据结构完成,所以在学习glib库的时分能够趁便学习一下根本的数据结构(包含 链表、树、行列和hash表)。
2、libxml库
libxml是linux渠道下解析XML文件的一个根底库,现在许多实用软件都用XML格局的配置文件,所以也有必要学习一下。
3、readline库
readline 库是bash shell用的库,假如要开发命令行程序,那么运用readline库能够削减许多工作量,比方bash里的命令行主动补全,在readline里就现已 有完成,当然你也能够用自己的完成代替库的行为。readline库有许多网站介绍的,只需google一下readline就能够找到一堆了。
4、curses库
curses 库曾经是vi程序的一部分,后来从vi里提取出来成为一个独立的库。curses库关于编写终端相关的程序特别有用,比方要在终端某一行某一列定位输出, 改动终端字体的色彩和终端形式。linux下的curses库用的是GNU完成的ncurses(new curses的意思)。
5、gtk+和KDE库
这两个库是开发GUI应用程序的根底库,现在linux下的大部份GUI程序都是根据这两个库开发的,关于它们 的学习也是很有必要的。
四、网络的学习
网络这个东西太宽了,引荐学习材料steven先生的UNIX网络编程(简称UNP)和TCP/IP协议详解,更进一步的话能够学习运用libnet编写网络程序。