首先先学学编辑器,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》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易。

  《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。

  《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。

  《用TCP/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会知道Qterm的telnet 实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。

  《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是《操作系统 设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会
有一个清晰的认识。

  《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。

学习linux/unix编程方法的建议[转]相关推荐

  1. 学习linux/unix编程方法的建议-转

    假设你是计算机科班出身,计算机系的基本课程如数据结构.操作系统.体系结构.编译原理.计算机网络你全修过  我想大概可以分为4个阶段,水平从低到高  从安装使用=>linux常用命令=>li ...

  2. Proxy源代码分析--谈谈如何学习linux网络编程

    Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该是 ...

  3. 忠告初学者学习Linux系统的8点建议

    忠告初学者学习Linux系统的8点建议 新手或者说即将要入坑的小伙伴们,常常在QQ群或者在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:如何给添加的用户归属用户组,复制整个文件到 ...

  4. linux/unix编程手册-56_60

    title: linux/unix编程手册-55_56 date: 2018-10-05 11:53:07 categories: programming tags: tips linux/unix编 ...

  5. 资深系统管理员给Linux/Unix新人们的建议

    前言:抚琴煮酒有幸担任过一段时间的RHCE教学工作,发现在教学过程中,许多学员都对为什么学习Linux感到很迷惘,更别谈什么职业规划了.我在工作和学习中,也接触了不少爱学习的朋友,但发现他们在学习的过 ...

  6. linux/unix编程手册-6_10

    title: linux/unix编程手册-6_10 date: 2018-05-15 11:53:07 categories: programming tags: tips linux/unix编程 ...

  7. 由su和su -的区别谈学习linux运维方法

    由su和su -的区别谈学习linux运维方法一例 老男孩Linux培训新班刚开始,老男孩发现群里就在讨论这个su和su -的区别,有的同学们说,直接su就可以,有的说必须要su -.有的同学直接发问 ...

  8. linux/unix编程手册-61_64

    title: linux/unix编程手册-61_64 date: 2018-10-07 11:53:07 categories: programming tags: tips linux/unix编 ...

  9. linux/unix编程手册-16_20

    title: linux/unix编程手册-16_20 date: 2018-06-06 11:53:07 categories: programming tags: tips linux/unix编 ...

最新文章

  1. DoS***原理和防御方法
  2. 《现代操作系统(原书第3版)》pdf
  3. PPC 调用约定 r0-r31寄存器介绍
  4. #define 和 const 区别
  5. LeetCode【7--整数反转】 LeetCode【8--字符串转整数】
  6. python 画出决策边界_Python3入门机器学习 - 逻辑回归与决策边界
  7. Python--tkinter迷你天气预报软件(11.8)
  8. dart map 转list_Dart 集合类型List Set Map循环forEach map where any every
  9. 【选手分享】拿不到周冠军,我就只能写个好点的经验分享上首页了
  10. 面对未来的 Java,旧式桌面应用的出路何在?
  11. 虚拟化安全:瑞星的下一个战场
  12. 小顶堆时间复杂度_时间轮算法以及时间轮在Netty和Kafka中的应用的
  13. AFNetWorking 之 网络请求的基本知识
  14. 好好的虚拟机不能用了, 出现无法打开内核设备\\.\Global\vmx86: 系统找不到指定的文件的错误, 以下是网上找到的解决方法,亲测可用...
  15. 数据挖掘领头人韩家炜教授:如何从无结构文本到有用的知识?
  16. 论文查重格式有什么影响?
  17. 十、Cadence ic 617 D触发器版图设计
  18. 显示360阻止html打开,360启动不了 怎么让360安全浏览器不开机启动
  19. Android视频缓存机制——AndroidVideoCache
  20. 统计绘图软件--SYSTAT SigmaPlot

热门文章

  1. MySQL数据库事务中的行级锁,表级锁,页级锁
  2. php代码导入sql,php导入SQL文件(示例代码)
  3. 如何 循环 字母 php,PHP-php循环打印a-z字母的疑惑
  4. docker绑定端口主机访问curl: (56) Recv failure: Connection reset by peer
  5. 第12章 存储器的保护
  6. 【算法设计与分析】13 分治策略的设计思想
  7. 修改linux的最大文件句柄数限制
  8. bzoj 1024 [SCOI2009]生日快乐——模拟
  9. 谈谈我对Javascript中This对象的理解
  10. loadrunner controller:实时查看VUser的运行情况