📄 index.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD> <TITLE>第一讲</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80"> <META NAME="GENERATOR" CONTENT="StarOffice/5.1 (Linux)"> <META NAME="COPYRIGHT" CONTENT="魏永明"> <META NAME="AUTHOR" CONTENT="魏永明"> <META NAME="CREATED" CONTENT="20000329;17342600"> <META > <STYLE> <!-- H1 { color: #ffff00; font-family: "timmons", serif } TD P { color: #ffff00 } P { color: #ffff00 } A:link { color: #00b8ff } A:visited { color: #ff3366 } --> </STYLE></HEAD><BODY TEXT="#ffff00" LINK="#00b8ff" VLINK="#ff3366" BACKGROUND="../images/velvet.jpg"><H1 ALIGN=CENTER>第一讲 Linux 编程入门与基本编程工具的使用</H1><H2>主要内容</H2><UL SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="whatis.html">什么是 Linux</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="history.html">Linux 的发展历史以及关键人物</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="others.html">Linux 与其他操作系统</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="basic.html">Linux 的编程常识</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="scenario.html">Linux 上进行程序开发的典型场景</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="vi.html">万年编辑器: vi</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="prog_script.html">程序和脚本</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="compiler.html">Linux 上的 C 编译器和调试器</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="make.html">GNU make 和 makefile</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="utilities.html">实用工具</A></P> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <A HREF="bash.html">Bash 命令行与脚本</A></P></UL><H2>整体思路</H2><P>本讲是系列讲座的第一讲。其目的主要是通过介绍 Linux 上编程的基本工具以及一些新手必须掌握的技巧,迅速引导新手入门,以避免走弯路。<BR>首先对 Linux 作一简单介绍,然后通过讲解 Linux 上进行编程的常识以及典型场景的演示,使大家对 Linux 上的程序开发有一个感性认识。在此基础上,重点讲述 Linux 上 C 语言编程的基本工具,包括编译器和调试器,主要是它们的重要选项和基本用法。接下来讲述在项目组织和开发过程中非常重要的工具,即 GNU make 和 makefile。最后,介绍程序开发过程最为常用的工具,以及将这些工具有机组织起来的 Shell 机制,即命令行和脚本。</P><H2>各部分要点</H2><UL SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.1 什么是 Linux</P> <UL> <LI>Linux 的发音</LI> <LI>Linux 的官方定义</LI> <LI>POSIX 及其重要地位</LI> <LI>GNU 和 Linux 的关系</LI> <LI>GPL 及其主要内容</LI> <LI>Linux 的主要发行版</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.2 Linux 的发展历史以及关键人物</P> <UL> <LI>UNIX, GNU, Linux 的关键人物及贡献</LI> <LI>Linux 发展的重要里程碑</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.3 Linux 与其他操作系统</P> <UL> <LI>Linux 与主要 UNIX 系统之间的关系</LI> <LI>Linux 与 Windows 操作系统</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.4 Linux 的编程常识</P> <UL> <LI>标准 (ANSI C, POSIX, SVID, XPG, ...)</LI> <LI>函数库和系统调用</LI> <LI>在线文档 (man, info, HOW-TO, ...)</LI> <LI>C 语言编程风格</LI> <LI>库和头文件的保存位置</LI> <LI>共享库及其相关配置</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.5 Linux 上进行程序开发的典型场景</P> <UL> <LI>控制台上的开发场景</LI> <LI>X Window 上的开发场景</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.6 万年编辑器: vi</P> <UL> <LI>vi 的工作模式</LI> <LI>编辑模式</LI> <LI>插入模式</LI> <LI>命令模式</LI> <LI>shell 切换</LI> <LI>选项设置</LI> <LI>vim 和 gvim 的高级特色</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.7 程序和脚本</P> <UL> <LI>程序:编写, 编译, 调试和执行</LI> <LI>脚本:编写, 执行</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.8 Linux 上的 C/C++ 编译器和调试器</P> <UL> <LI>运行 gcc/egcs</LI> <LI>gcc/egcs 的主要选项</LI> <LI>gdb</LI> <LI>gdb 的常用命令</LI> <LI>gdb 使用范例</LI> <LI>其他程序/库工具 (ar, objdump, nm, size, strings, strip, ...)</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.9 GNU make 和 makefile</P> <UL> <LI>GNU make</LI> <LI>makefile 基本结构</LI> <LI>makefile 变量</LI> <LI>GNU make 的主要预定义变量</LI> <LI>隐含规则</LI> <LI>makefile 范例</LI> <LI>运行 make</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.10 实用工具</P> <UL> <LI>正则表达式</LI> <LI>压缩和归档工具 (gzip, bzip2, tar, ...)</LI> <LI>搜索和排序 (grep, find, sort, ...)</LI> <LI>文件编辑 (sed, tr)</LI> <LI>文件比较 (cmp, comm, diff, ...)</LI> <LI>其他 (ed, emacs, ...)</LI> </UL> <P><IMG SRC="../images/poliball.gif" WIDTH=16 HEIGHT=16 ALIGN=ABSMIDDLE> 1.11 Bash 命令行与脚本</P> <UL> <LI>Bash 介绍</LI> <LI>重要的命令行机制 (I/O 重定向, 管道, ...)</LI> <LI>Bash 脚本介绍</LI> <LI>变量</LI> <LI>控制结构</LI> <LI>范例</LI> </UL></UL><H2>练习</H2><OL> <LI>如果还没有安装 Linux 系统的话,请安装一种 Linux 发行版,并掌握 Linux 的基本使用。</LI> <LI>在下面这些练习中需要编辑文件时,请使用 vi 编辑器。</LI> <LI>编写一个 Bash 脚本,用来将当前目录树中(递归)所有 DOS 格式的文本文件转换为 UNIX 格式的文本文件,新文件名称添加后缀 .unix。</LI> <LI>试着将自己在 DOS 或 Windows 下编写过的程序移植到 Linux,编译通过并测试正确性。</LI> <LI>从网上下载 CCE 或 MiniGUI 的源代码,然后研究其 Makefile 的结构。</LI> <LI>用 C 语言或自己喜欢的语言实现第 3 题。</LI></OL><H2>参考书目</H2><OL> <LI>Phil Cornes, <I>The Linux A - Z</I>, Prentice Hall Europe, 1997.<BR> (中译本已由电子工业出版社出版, 童寿彬等译)</LI> <LI>Naba Barkakati, <I>The Linux Secrets</I>, IDG Books Worldwide, Inc. 1999.<BR> (中译本即将由电子工业出版社出版, 魏永明等译)</LI> <LI>John Goerzen, <I>The Linux Programming Bible</I>, IDG Books Worldwide, Inc. 1999.<BR> (中译本即将由电子工业出版社出版, 魏永明等译)</LI></OL><H2>进一步读物</H2><UL> <LI>W. Richard Stevens, <I>Advanced Programming in the UNIX Environment</I>, Chpater 1 and Chapter 2.</LI></UL><H2>反馈</H2>本讲由<A HREF="mailto:ymwei@263.net">魏永明</A>讲解。欢迎任何意见和建议,可发 email: <A HREF="mailto:ymwei@263.net">ymwei@263.net</A> 与魏永明联系。<P><CENTER><A HREF="http://www.aka.citf.net">AKA 自由软件系列讲座</A></CENTER></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -