`
897371388
  • 浏览: 529202 次
文章分类
社区版块
存档分类
最新评论

掌握Linux编程的10个步骤

 
阅读更多

做linux c语言开发有一小阵子了,在这边自己总结了些心得,相信能让不懂得Linux编程的人慢慢步入Linux殿堂。有任何不对或不准确之处欢迎讨论。

1. 安装 linux 操作系统

既然要学习linux下的c语言开发,那么安装个linux操作系统是必须的。建议安装Ubuntu,这是我目前见过界面最友好的linux操作系统了。关于如何使用Ubuntu以及在其上作开发,可参考我的另外一篇敝作《Ubuntu使用心得》:http://download.csdn.net/source/2206289

2. 熟悉 linux 操作系统下的命令

Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。

关于linux下的命令,欢迎参考我blog上一篇文章《Linux命令整理》:http://blog.csdn.net/sikinzen/archive/2010/04/19/5503769.aspx

3. 学会一种源码编辑器

很多大牛推荐使用 vim/emacs之类的工具,但我还是用着不习惯,应该是我能力未到。我个人比较喜欢的开发方式是:在windows下编辑代码,在linux下编译。

我自己非常喜欢用SourceInsight来编辑代码,这个工具的使用可参考我blog上一篇文章《Source Insight的应用技巧、宏功能》:http://blog.csdn.net/sikinzen/archive/2010/04/09/5468511.aspx

4. 掌握gcc和gdb

掌握gcc的基本用法,并且会用gdb来调试程序。

5. 用好 C 语言

工作中发现:C语言大家都会,但核心思想就不一定都能理会。我自己觉得也只是摸到了门径,还需要实践锻炼。

推荐:《C陷阱与缺陷》、《C专家编程》、《C程序设计语言》。

6. 学会写makefile,以及用它来组织源码

当项目大了后,用命令行逐个逐个编译、link文件的工作量是非常恐怖的,这时候make就起作用,即使是很小的项目,我认为也应该采用make组织。

关于makefile,请参考网上文章《跟我一起写Makefile》或《GNU make中文手册》。这两篇文章都相当得好。

7. Linux应用编程

终于说到正题了,呵呵。

Linux上的应用编程基本上两本书就搞定了:《APUE》和《UNP》,前者锻炼基本功,后者学习网络编程。

这边我直接引用网上某位先生的评论:

如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。 然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。

8. Linux驱动与内核编程
驱动程序的门槛较高,首先你要学会Linux应用编程,至少看过《APUE》。

驱动编程的主要工作我认为至少有两点:理解linux内核框架和模块的概念、懂得看芯片datasheet。

第一点其实就是先学会编写一个测试驱动程序。

推荐经典教材:《linux设备驱动程序》。

另外,还有 《深入理解Linux内核》。

最重要的是:手头要有一块嵌入式板子进行实践。

9. 掌握一种 cvs 工具

如果不懂cvs的话,赶紧到 baidu 搜索下。不用cvs的项目很容易面临代码丢失的问题,且不易做bug回归。

10. 数据结构和算法

上过计算机基础课的人都知道:程序=数据结构+算法。这两项才是程序员的根本,如同武侠小说中的“内功”。 有时间的话建议重温这两部分。推荐书籍:《Algorithms in C》、《算法导论》

呵呵,其实这一小块我没有发言权,我自己是从自动化专业转行来写程序的,数据结构和算法都没学过,目前正在自学恶补中。

分享到:
评论

相关推荐

    Linux环境编程 实验3.doc

    MYSQL数据库与Linux程序开发 实验三:MYSQL数据库与Linux程序开发(综合性、4学时) ...1)掌握MYSQL数据库命令与应用编程。 2)了解Linux多模块软件编译与链接过程。 3)熟悉Linux下软件剖析与度量工具的使用。

    实验一 Linux系统用户接口和编程界面

    4.掌握在Linux操作系统环境上编辑、编译、调试、运行一个C语言程序的全过程。 实验要求 1.熟悉使用Linux字符界面、窗口系统的常用命令。 2.熟悉运用Linux常用的编程工具。 3.熟悉运用Linux的在线求助系统。 4....

    实验一 文件和目录操作(Linux基础教程 第二版)

    1.理解和掌握Linux一般命令格式。 2.掌握有关文件和目录操作的常用命令。 3.熟练使用man命令。 二、实验仪器设备环境 装有Linux操作系统的计算机。 三、实验原理 我们经常要利用文件来存放信息和数据,进行创建/删除...

    Linux系统与编程 工业大学 实验三+思维导图总结+加分作业等 包括xmind ppt doc等格式文件 Linux 发展史

    1. 熟练掌握Linux下c的编译器gcc 2. 熟练掌握Linux下c的调试器gdb 3. 熟练掌握Linux下make用法 4. 熟悉Linux下使用c对进程操作 5. 熟悉Linux下使用c对文件操作 四、实验准备 参考教材、课件8章内容及笔记。 五...

    Linux课程设计-手机缴费系统(源码+报告).zip

    在本次课程设计中,设计的...掌握Linux操作系统下mysql数据库的安装、登陆及使用;掌握使用makefile文件对程序进行集体编译连接的方法。 在本次课程设计中,要求同学们掌握使用Linux系统、C语言做系统设计步骤和技巧。

    嵌入式Linux系统串口和AD转换器编程

    了解在 linux 环境下对 S3C2410 芯片的 8 通道 10 位 A/D 的操作与控制。理解总个实验的原理,能按步骤做出实验,得到实验结果,并能熟练操作相关器件,提高实际操作和动手能力,加深对嵌入式实验的理解。

    Linux学习相关代码.rar

    学习 Linux 源码需要以下几个步骤: 了解 Linux 操作系统的基本架构:Linux 是一个多任务、多用户的操作系统,它的基本架构包括内核、系统调用、文件系统、进程管理等。 获取 Linux 源码:可以从 Linux 官方网站或...

    嵌入式Linux应用程序开发标准教程(第2版全)

    第10章 嵌入式Linux网络编程 10.1 TCP/IP概述 10.1.1 OSI参考模型及TCP/IP参考模型 10.1.2 TCP/IP协议族 10.1.3 TCP和UDP 10.2 网络基础编程 10.2.1 socket概述 10.2.2 地址及顺序处理 10.2.3 socket基础编程 10.3 ...

    物联网人工智能项目实战之Linux 系统核心编程

    本系列课程中以生活中超市蔬菜水果商店在对蔬菜水果称重结算时都需要工作人员根据...本阶段的项目是基于WebSocket的屏幕共享应用,作为最终项目的子模块,同学们根据已有的C语言编程技术,熟练掌握Linux环境高级编程。

    大数据技术原理及应用课实验8 :Flink初级编程实践

    三、实验步骤(每个步骤下均需有运行截图) 1.使用IntelliJ IDEA工具开发WordCount程序 在Linux系统中安装IntelliJ IDEA,然后使用IntelliJ IDEA工具开发WordCount程序,并打包成JAR文件,提交到Flink中运行。 在...

    Linux2.6内核标准教程(共计8-- 第1个)

    最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的 同步机制。 《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关...

    linux操作系统命令大全

     本章主要介绍计算机的启动顺序,包括从硬件自检到进入Linux系统当中的各个步骤,还介绍了Linux下的多系统引导工作GRUB(需要掌握GRUB的工作机制)。 ·5.1 计算机的启动顺序 ·5.3 GRUB的使用 ·5.5 从软盘启动...

    LINUX应用程序编程指南 基于s3c2410

    本人对每一个应用程序的 关键步骤都进行了注释,方便大家学习。后面有驱动的编写方法和解释,结合前面的应用程序,能使开发者速度入门,掌握最清楚的开发思路。嵌入式arm9——linux就是这么简单!

    大数据技术原理及应用课实验5 :MapReduce初级编程实践

    三、实验步骤(每个步骤下均需有运行截图) (一)编程实现文件合并和去重操作 对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。下面是...

    Linux2.6内核标准教程(共计8--第6个)

    最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的 同步机制。 《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关...

    实验五、嵌入式Linux驱动编程实验

    一、实验目的 编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现,分析并理解驱动与...2. 掌握字符设备驱动程序开发的原理及步骤。 3. 编写加载驱动程序到Ubuntu系统或嵌入式实验箱的Makefile文件。

    Linux2.6内核标准教程(共计8--第8个)

    最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的 同步机制。 《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关...

    Linux2.6内核标准教程(共计8--第3个)

    最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的 同步机制。 《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关...

    Linux2.6内核标准教程(共计8--第7个)

    最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的 同步机制。 《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关...

    Shell脚本编程基础知识

    Shell脚本编程基础知识: 掌握创建 shell 脚本的基本步骤 学会使用条件测试 掌握 if 条件结构与 case 选择结构 掌握 for 循环、while 循环和 until 循环结构 学会 shift 命令的使用 学会 shell 脚本的调试

Global site tag (gtag.js) - Google Analytics