导航:首页 > 编程知识 > unix环境高级编程该看哪些

unix环境高级编程该看哪些

发布时间:2024-09-03 17:33:22

Ⅰ 关于linux 编程方面的书籍

假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过

我想大概可以分为4个阶段,水平从低到高
从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码

其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数

安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式

系统编程推荐《高级unix环境编程》,黑话叫APUE
还有《unix网络编程》
这时候大概还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好

内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发
参考书如下《linux device drivers》,黑话叫ldd
《linux kernel development》,黑话叫lkd
《understading the linux kernel》,黑话叫utlk
《linux源码情景分析》
这四本书为搞内核的必读书籍

最后,第三阶段和第四阶段最重动手,空言无益,光看书也不罩,不动手那些东西理解不了

学习linux/unix编程方法的建议

建议学习路径:

首先先学学编辑器,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设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。

Ⅱ 《unix环境高级编程》中的apue.h怎么配置

能把程序还有头文件粘下吗?
其实我写的时候直接自己写头文件就行了,那个头文件里几个函数看名字就知道是干什么的,可以自己实现。

Ⅲ 学习linux看unix书可以吗 最近刚刚看完鸟哥那本书再看《unix 环境高级编程》可以吗

可以,如果要学编程的话。找本靠谱的书跟着学是有道理的,《UNIX环境 高级编程》不错,只是内容大而全,要读完要点时间,另外 《Linu就该这么学》对于初学者不错,如果要找配套视频,网上也有。

Ⅳ UNIX环境高级编程(第2版) UNIX网络编程(卷2):进程间通信(第2版)这两本书哪个好

我把三本都买了
环境高级编程:讲解unix api的,所以会涉及到其他两本的一些api,但讲解不多。
网络编程卷一:讲解套接字socket编程的,重点讲网络编程的方方面面,比如协议、服务器架构、io使用。
网络编程卷二:讲解进程间通信的,这是相对于卷一的,卷一是网络通信,而卷二是单台机子的进程、线程之间的通信。
=========================================================================
所以这三本都有不同侧重,我一般以卷一卷二为主,高级编程为辅,这三本都是工作后常用的资料书,建议备齐。

另外如有兴趣可以读该作者的另外3本书:tcp/ip协议详解卷一、二、三,尤其是卷一超级有用

Ⅳ 学习linux系统,看那几本书比较好

《鸟哥的Linux私房菜 基础学习篇(第三版)》,鸟哥著

一本大而全的LINUX入门指点,主要讲解Linux一些命令,Linux的实际操作及Linux基础理论。很适合Linux初学者学习。
《嵌入式 Linux 应用开发完全手册》,韦东山著

这本书综合了常见的嵌入式开发经验技巧,以及常见的嵌入式系统应用,系统移植,调试及异常处理等,内容非常丰富,是中文 Linux 领域难得的一本好书。嵌入式处理器种类繁多,韦老师着重讲了目前国内最常用的ARM系统,实用性很强,是国内嵌入式程序员不容错过的一本工具书。
《UNIX环境高级编程》(第2版),史蒂文斯著

《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。
《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,宋宝华著

随着通信、电子行业的迅速发展,全世界每天都会生产大量芯片,设计大量新电路板,也因此,会有大量设备驱动需要开发。本书主要对驱动编程所涉及Linux内核最底层机理的讲解。也是即Linux设备驱动开发详解第二版畅销后,作者又进行第三版的编著。
《Linux 设备驱动程序》,科波特著

《LINUX设备驱动程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对linux外围驱动有很全面的讲解。
《深入理解 Linux 内核》(第三版) ,博韦等著

学习 Linux ,就要学习 Linux 的精华。而 Linux 的精华,则在于 Linux 的内核。本书以 Linux 2.6 版架构为基础,分门别类地向初学者介绍了 Linux 内核的架构、编程思想、以及功能模块。在本书的指导下学习,对于你读懂 Linux 操作系统的精华部分,会取得事半功倍的效果。

-------------------

学习linux shell 下的编程有什么用?
我是刚开始学linux的,现在开始学了一些shell下的编程,是比较初步的,觉得不是很难,但是不知道学了到底能在那些方面运用?有谁能给指点一下

工作或者读书等)需要学习linux的人,需要系统的学习一下,最好有一本好的书来学习。
linux是世界各地的黑客们写出来的开源系统,对于热爱学习计算机技术(算法、数据结构、编程、操作系统……)的人来说,linux是一个天堂。
我个人就是完全因为兴趣而捣鼓linux,和工作不沾边。
有几种不同的学习:
a)使用->需要学习linux的一些历史、各种命令、桌面的操作、shell的知识
b)编程->学习linux的接口
c)系统管理->学习一些管理员需要掌握的命令
d)内核、源码->先要学好操作系统原理,然后慢慢钻研。
linux是一个很奇怪的东西,因为你知道的越多,你的问题就越多。
如果你将来用的上,那么学习linux自然有用。
如果用不上,学习linux的作用在于折腾你的精力、开拓你的思维、视野、提高自学能力。从你付出的机会成本的角度来说,学习linux不合算,因为你应该把有限的时间用来学习对你更重要的东西,而不是不沾边的linux。
除非把linux当作一种爱好。所谓“衣带渐宽终不悔,为伊消得人憔悴”。自然是另一番感受。
当你用shell编写个自己能用上的脚本 你就知道有用拉
而且还老有成就感拉
比如你需要搜索全盘文件,把大写名字改为小写,这样的程序用几行shell就能写,但是无论C还是其它语言都非常麻烦,手工修改就更麻烦。
明白shell程序设计的用处吗,任何一种语言都有他自己的适用领域
-------------------
linux shell 学习
分类:读书笔记
首先恭喜你,看了这个文章,推荐两本书,Linux shell 脚本攻略, shell脚本学习指南 ^_^ 。
shell脚本学习指南大概很多人都看过,但是看完之后对于shell能干什么,可能并不十分清楚,而linux shell 脚本攻略则以一个个任务的形式,用脚本解决。 而且有详细的解释。相当于cookbook。包含了各个方面,基础的,网络的,系统管理的。但是对于基础知识的介绍,可能需要读者查看相关书籍,所以shell脚本学习指南可以拿来翻翻。

以下是个人的一点粗浅认识,不一定对。
关于shell
lilnux与windows不同之处在于提供了很多工具。而且多个命令之间用管道|连接,可以实现一系列任务,这在windows应用程序界限很明显的地方是很难实现的。
linux的shell提供了很多工具。工具就相当于函数,但是与我们编程语言的函数不同在于,并不需要写一个入口函数来调用它,而多个工具可以一起使用。
find,sed,awk,grep等命令都可以称为工具。
find 查找
grep 也是查找
sed 可以实现一些替换等
awk 相当与编程语言,在awk ' '包含里面进行简单编码,实现相应的功能
还有很多工具,具体要查看书籍。
而一行一行的命令不适合批处理,不适应管理自动化。所以需要脚本。
脚本就是把一堆命令写在一起。在#!/bin/bash 指明这是个脚本。具体参见书籍。

关于linux shell 脚本攻略
前面几章介绍基础知识,以及应用。后面的对于网路的操作,引入了curl,wget,利用了服务提供商的rss feed。其它的与前面的编程一样,都是文本替换啥的。(这里显示出shell的好用之处,不必专门写一个程序来操作,不用自己写很多函数,且多个操作结合方便,灵活)。后面介绍了归档,压缩,加密工具。最后两章是一些系统运维的知识,查看系统磁盘状态,查看进程使用cpu的情况等等。要用的时候细看。
看了很久了,有点忘记了,以后看书,再详细记录一些知识点。现在都忘光了。提供一个方向罢。

p130 pattern 用于匹配字符串
\1 代表匹配到的第一个子串 后向引用
对结果进行分组,利于后向引用
p26 使用反引用或者$()来存储命令,如cmd_output =$(ls | cat -n) 或者 cmd_output=`ls | cat -n`

阅读全文

与unix环境高级编程该看哪些相关的资料

热点内容
ps入门必备文件 浏览:348
以前的相亲网站怎么没有了 浏览:15
苹果6耳机听歌有滋滋声 浏览:768
怎么彻底删除linux文件 浏览:379
编程中字体的颜色是什么意思 浏览:534
网站关键词多少个字符 浏览:917
汇川am系列用什么编程 浏览:41
笔记本win10我的电脑在哪里打开摄像头 浏览:827
医院单位基本工资去哪个app查询 浏览:18
css源码应该用什么文件 浏览:915
编程ts是什么意思呢 浏览:509
c盘cad占用空间的文件 浏览:89
不锈钢大小头模具如何编程 浏览:972
什么格式的配置文件比较主流 浏览:984
增加目录word 浏览:5
提取不相邻两列数据如何做图表 浏览:45
r9s支持的网络制式 浏览:633
什么是提交事务的编程 浏览:237
win10打字卡住 浏览:774
linux普通用户关机 浏览:114

友情链接