前言 编写目的 这一简明教材引导学生在LINUX/UNIX环境中编程。本书作者具有28年以上的大学教学经验,这些年来,曾讲授了有关LINUX/UNIX平台的广泛课程,包括程序设计、数据结构、操作系统和软件工程,但并未找到一本适合于当前使用的、系统描述LINUX和UNIX编程工具和实用程序(用于编译多模块程序、调试、处理库、软件剖析和版本控制)的教材,于是决定编写本书。本书全面系统地阐述这些工具,并提供教学知识点章节练习和有用的章末问题。尽管描述的绝大多数命令和工具可同时用于LINUX和UNIX,但所有shell会话都是在Mandrake和RedHat LINUX系统上获得的。 主要内容 本书分3部分:第Ⅰ部分“有效地使用LINUX和UNIX”,第Ⅱ部分“LINUX/UNIX平台上的软件开发”,第Ⅲ部分为附录。前两部分各有7章。第Ⅰ部分系统讨论用于文件、进程和打印机控制的LINUX和UNIX命令和工具,并介绍登录和退出过程、文件安全以及文件系统的备份和恢复;通过这些命令和工具,您可以有序、高效并安全地使用他人的LINUX/UNIX系统。本书的首要目标是向C/C++软件开发人员介绍LINUX和UNIX软件编程工具,因此第Ⅱ部分对此进行详细介绍,包括gcc、make、ar、gdb、gprof、nm、size、rcs和cvs等。在编写本书时,我们假设读者以前不了解LINUX/UNIX及编程知识,对所涉及编程工具的深度和广度进行了恰当安排,使初学者或有经验的程序员都可从中获益。 读者对象 本书可用作LINUX或UNIX平台上介绍编程和数据结构课程方面主要教材的辅导读物,也可作为高级编程、软件工程概述和操作系统课程的补充教材。 编排形式 本书附有图、表、上百个交互式shell会话、章节练习和章末问题。为详细介绍的各个命令、工具和应用程序安排一个语法框,以描述命令的语法、目的、输出、常用选项/特性。多数章都有一个有用的Web资源表。另外,每章都有一个内容小结。本书末尾还附有一个术语表。 使用本书 如果把本书用作介绍LINUX/UNIX的CSI和CSII主要教材的辅助读物,应该包括除第13和第14章以外的所有章节。在数据结构课程中,应该包括第Ⅰ部分中的相关章节和第8~12章。如果把本书用作软件工程主要教材的辅助读物,则应该完全包括第Ⅱ部分。如用于操作系统课程,第Ⅰ部分中的第1、2、3、5、6章和第Ⅱ部分中的第8、9、11、13章将最有帮助。 本书约定 书中的粗体表示从键盘键入的任何字符或字符串(命令、shell变量、按键和用户输入)。键盘按键都放在尖括号中(例如,和)。指令“按”表示同时按下键和键。该指令也表示为 ^D或。 补充材料 Addison Wesley Web站点是一个内容全面、信息丰富的Web站点,其中包含章节练习的解答、源代码、详细参考以及到其他LINUX/UNIX站点的链接。 另外,本书的授课教师还可得到章末问题解答。请与本地Addison-Wesley销售代表联系。 我们乐于接受错误报告和评价。如果您有任何意见或看法,请发邮件给msarwar@lums.edu.pk。我们将在后续版本中纳入您的反馈意见,并改正所有错误。