如何学习linux编程

如何学习linux编程,第1张

这样基本上系统方面的就可以掌握了。如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。 建议学习路径: 首先先学学编辑器,vim, emacs什么的都行。 然后学make file文件,只要知道一点就行,这样就可以准备编程序了。 然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。 如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。 然后再看Douglus E Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。 如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。 对于几本经典教材的评价: 《The C Programing Language》K&R 经典的C语言程序设计教材,作者是C语言的发明者,教材内容深入浅出。虽然有点老,但是必备的一本手册,现在有时候 我还常翻翻。篇幅比较小,但是每看一遍,就有一遍的收获。另外也可用谭浩强的《C语言程序设计》代替。 《Advanced Programing in Unix Envirement》 WRichard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来 得容易。 《Unix Network Programing》WRichard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书 只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由 《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》 ,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。 《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。 《用TCP/IP进行网际互连》DouglusEComer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会知道Qterm的telnet实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。 《Operating System - Design and Implement》这个是讲 *** 作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是 《 *** 作系统 设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对 *** 作系统的底层怎么工作的就会 有一个清晰的认识。 《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。

1、首先你要懂c++/c的程序结构。内存处理等基础知识。 2、tcp/ip的联网知识 3、linux的一些概念,进程、线程、信号量、同步等等。 4、socket API的知识 5、内核调用等 需要的很多知识。 也可以采用Apache的组织提供的结构来写程序,可能稍简单的。

用 vim 写代码

用 gcc 编译 c/c++ (主要是c) 程序

用 gdb 调试

如果你要写其他程序的话(例如 java), 那么就要自己安装开发环境 推荐 <<unix环境高级编程>> <<Linux程序设计 >> , 不过考虑你没有 Linux基础, 建议先看一下 <<鸟哥的Linux私房菜-基础学习篇>>

要想在linux下面编程,首先得熟习linux的使用才行,学习的大体过程我描迅在下面,希望对你有帮助:

1基础篇

这是学习linux系统的使用

2服务器篇

可以看些简单的服务器构建:tftp,ftp,nfs,dhcp

以后用的到

3shell编程及高级编程

这里可以了解,不一定深入,有个概念就好了

4c语言编程(cprogramplus第五版,C与指针,C专家编程,C陷阱,这几本书是经典之作)5g,make,ctags,dbg的使用以及makefile的编写(这一步与4同步进行)

6unix高级环境编程(这是书名,也是你要学的)

7QT的编写,或则GTK的编写(这是图形界面的开始)至此软件工程师结束(下面是开发工程师要继续的)

8gunarm的使用,交叉编译环境的搭建

9arm下面的编程与qtopia的搭建

包括qt/emled(记不下来,你自己搜下)交叉编译环境的搭建(完成arm上面的图形化)

10对arm开发板的熟悉

11gunarm汇编的编写与内嵌汇编的编写

12u-boot下面驱动的编写(根据芯片手册来编写)

13u-boot的移植,这里也可以用vivi

14kernel的裁减与移植

15文件系统的构建与移植

16系统级别的驱动编写//到此开发工程师初步形成

然后就是不停的练就慢慢成为高级了

对于Linux的学习,可以分为四个阶段,Linux初级入门阶段→Linux中级进阶→Linux高级进阶→Linux资深方向细化阶段

第一阶段:初级阶段

初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线。

1 Linux基础知识、基本命令;

2 Linux用户及权限基础;

3 Linux系统进程管理进阶;

4 linux高效文本、文件处理命令;

5 shell脚本入门

第二阶段:中级进阶

中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。

1 TCP/IP网络基础;

2 Linux企业常用服务;

3 Linux企业级安全原理和防范技巧;

4 加密/解密原理及数据安全、系统服务访问控制及服务安全基础;

5 iptables安全策略构建;

6 shell脚本进阶;

7 MySQL应用原理及管理入门

第三阶段:Linux高级进阶

1 >

linux下java编程与在windows下一样,重点在于搭建java开发环境。

linux下搭建java开发环境步骤:

1、下载linux环境下的JDK,前往java官网下载:>

1进入字符界面

2创建文件夹用于存放源文件

mkdir helloworld    //创建文件夹命令

cd helloworld        //进入新建的文件夹,这里应该说目录比较好,windows用习惯了

vim mainc        //打开vim并创建mainc文件

//按 i 键进入编辑状态,以下是程序

#include

         int main()

          {

               printf("Hello world!/n");

               return 0;

          }

按Esc进入命令模式,按 ZZ 保存退出

gcc mainc           //编译

/aout                   //运行,默认情况生成aout可执行文件

虽然本程序很简单,但包含了在Linux上编程的基本思想,当看到熟悉的结果时,还是小得意了一下。

嘻嘻……

以上就是关于如何学习linux编程全部的内容,包括:如何学习linux编程、如何一步步学习linux服务器编程、如何在Linux系统下编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10143155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存