Linux 编程宝典


[General Information] 书名=Linux编程宝典 作者= 页数=748 SS号=0 出版日期= Vss号=61339796封面页 书名页 版权页 前言页 目录页 前言 第1部分 Shell和基本工具 第1章 Linux编程环境简介 1.1 Linux编程基本概念 1.2 Linux设计 1.3 Linux文档 1.4 手册页 1.5 Info页 1.6 Perl文档 1.7 程序文档 1.8 Internet资源 1.9 小结 第2章 Shell编程简介 2.1 Bash简介 2.1.1 创建脚本 2.1.2 启动Bash 2.1.3 返回值 2.1.4 简单命令组合 2.1.5 通配符 2.1.6 引号和转义 2.1.7 注释 2.2 重定向和管道 2.2.1 输出重定向 2.2.2 输入重定向 2.2.3 管道 2.2.4 命令置换 2.3 变量 2.3.1 环境变量 2.3.2 特殊变量 2.4 函数 2.5 条件和循环 2.5.1 if 2.5.2 使用[...]测试 2.5.3 case 2.5.4 while 2.5.5 for 2.6 Shell应用 2.7 小结 第3章 使用正则表达式 3.1 正则表达式简介 3.1.1 模式 3.1.2 正则表达式语法 3.1.3 egrep简介 3.1.4 sed简介 3.1.5 Perl中的正则表达式 3.2 理解字符类 3.3 使用量词 3.4 备选与分组 3.5 在Linux下对正则表达式的支持 3.5.1 Perl 3.5.2 sed和awk 3.5.3 C/C++ 3.6 小结 第4章 Emacs简介 4.1 Emacs入门 4.1.1 Emacs键盘操作符号 4.1.2 浏览 4.1.3 搜索 4.1.4 Emacs区域 4.1.5 缓冲区 4.1.6 窗口 4.1.7 框架 4.1.8 语法和括弧高亮显示 4.2 主模式 4.2.1 C模式 4.2.2 Perl模式 4.2.3 其他模式 4.3 Emacs是一个IDE 4.3.1 编译程序 4.3.2 调试 4.3.3 使用标记 4.3.4 在Emacs中的Sehll 4.3.5 Term模式 4.3.6 Dired 4.3.7 w3 4.3.8 Gnus 4.3.9 版本控制 4.4 获取帮助 4.5 小结 第5章 理解Linux数据文件和脚本 5.1 基本概念 5.2 文件系统层次 5.2.1 根目录 5.2.2 /dev:设备文件 5.2.3 /etc:配置和启动文件 5.2.4 /usr:标准系统程序 5.2.5 /var:变量数据 5.3 passwd和shadow文件 5.3.1 从Shell中获取账号信息 5.3.2 从C中获取账号信息 5.3.3 从Perl中获取账号信息 5.4 组文件 5.5 init文件 5.6 网络文件 5.6.1 DNS文件 5.6.2 安全性文件 5.6.3 超级服务器文件 5.7 小结 第2部分 C环境 第6章 使用gcc 6.1 使用gcc编译程序 6.1.1 警告 6.1.2 优化gcc 6.1.3 产生调试标记 6.2 gcc编译流程简介 6.2.1 C编译器:gcc 6.2.2 C++编译器:g++ 6.2.3 C预处理器:cpp 6.2.4 程序员“礼品店” 6.3 管理大型项目 6.4 使用高级gcc选项 6.4.1 指定查找路径 6.4.2 连接库 6.4.3 使用管道加速编译过程 6.4.4 使用gcc的-v选项 6.4.5 使用ANSIC 6.5 小结 第7章 使用GNU Make管理项目 7.1 CNU make简介 7.1.1 Makefile规则 7.1.2 一个简单的Makefile文件 7.1.3 更巧妙的Makefile文件 7.2 使用智能的Makefile 7.2.1 两种变量类型 7.2.2 通配符:问题和解决办法 7.2.3 依赖性计算 7.3 创建其他文件 7.4 使用递归make 7.5 小结 第8章 内存管理 8.1 静态与动态内存 8.1.1 静态分配内存 8.1.2 动态分配内存 8.2 安全性和设计着眼点 8.3 高级指针 8.3.1 解析数据 8.3.2 代码分析 8.4 发现问题 8.5 小结 第9章 库和连接 9.1 库简介 9.2 创建和使用静态库 9.3 创建和使用共享库 9.4 使用高级共享库特性 9.4.1 ldd工具 9.4.2 soname 9.4.3 共享库装载器 9.4.4 使用LD_PRELOAD 9.4.5 使用dlopen 9.5 小结 第10章 使用gdb调试 10.1 gdb需求 10.2 调试步骤 10.2.1 调试指南 10.2.2 调试其他进程 10.3 显示数据 10.3.1 使用print和display命令 10.3.2 内存检查 10.3.3 使用Printf命令 10.3.4 使用set命令 10.4 使用断点和观察窗口 10.4.1 设置断点 10.4.2 设置观察窗口 10.5 core dump分析 10.6 命令小结 10.7 小结 第3部分 Linux模型 第11章 文件、目录和设备 11.1 文件的实质 11.1.1 系统调用stat( )和lstat( ) 11.1.2 opendir( )、readdir( )及其相关函数 11.2 I/O方法 11.2.1 基于流的I/O方法 11.2.2 系统调用I/O方法 11.3 特殊文件 11.4 小结 第12章 Linux系统中的进程 12.1 理解进程模型 12.2 进程基础知识 12.3 启动和终止进程 12.3.1 派生的基本原理 12.3.2 执行其他程序 12.3.3 等待进程 12.3.4 一起使用 12.4 使用返回代码 12.5 进程的同步措施 12.5.1 原子操作和非原子操作 12.5.2 死锁 12.5.3 竞争条件 12.5.4 自旋和忙等待 12.6 了解安全性 12.6.1 安全性的基本知识 12.6.2 安全性秘密 12.6.3 setuid和setgid 12.6.4 setuid和setgid的负效应 12.6.5 保证setuid和seteid的安全 12.7 小结 第13章 了解信号 13.1 信号的使用 13.2 信号处理程序 13.2.1 基本信号处理程序 13.2.2 阻塞信号 13.2.3 高级信号处理程序 13.3 信号发送 13.4 信号和系统调用 13.5 信号处理程序带来的危险 13.6 小结 第14章 Linux的I/O系统简介 14.1 程序库和系统调用 14.1.1 基于流的I/O方法 14.1.1 系统调用I/O方法 14.2 错误情况 14.2.1 使用封装的函数库 14.2.2 在读者自己的程序中使用封装函数库 14.3 高级I/O 14.3.1 稀疏文件 14.3.2 非阻塞I/O方式 14.4 内存映射的I/O 14.5 函数调用select( )和poll( ) 14.5.1 select( )函数 14.5.2 poll( )函数 14.6 咨询锁定 14.7 小结 第15章 终端编程 15.1 终端属性 15.2 伪终端 15.3 Ncurses 15.4 小结 第4部分 与世界交流 第16章 共享内存和信号量 16.1 使用共享内存 16.2 使用信号量同步 16.3 利用共享内存通信 16.4 小结 第17章 使用管道和FIFO 17.1 建立管道 17.2 实现重定向 17.3 解决通信问题 17.4 使用FIFO 17.5 小结 第18章 Internet套接字 18.1 TCP/IP简介 18.1.1 问题 18.1.2 解决方案 18.1.3 术语注解 18.2 TCP/IP的独特挑战 18.3 协议 18.4 寻址 18.5 客户端连接 18.6 服务器端连接 18.7 一个网络函数库 18.8 小结 第19章 高级ICP/IP套接字 19.1 服务器设计和多工化 19.2 用户数据报协议 19.3 小结 第5部分 利用Perl协同工作 第20章 Perl简介 20.1 Perl的设计思想 20.1.1 变量 20.1.2 数组 20.1.3 哈希表 20.2 第一步 20.3 数据结构 20.3.1 引用 20.3.2 匿名引用 20.3.3 符号引用 20.3.4 数组 20.3.5 嵌套哈希表 20.4 子例程和作用域 20.5 流控制 20.6 OOP特征 20.7 小结 第21章 利用Perl操作数据 21.1 读取数据 21.2 分析和处理数据 21.2.1 使用split 21.2.2 使用grep 21.3 保存数据 21.3.1 使用数据库 21.3.2 使用Data Dumper 21.3.3 Data Dumper选项 21.4 输出和特别考虑的问题 21.4.1 基本输出 21.4.2 输出到文件或命令 21.4.3 open的选项 21.4.4 传递文件句柄 21.4.5 文件句柄的作用域 21.5 小结 第22章 CGI编程 22.1 CGI与Web 22.2 编写CGI脚本 22.3 处理无连接问题 22.4 解决性能问题 22.5 小结 第23章 利用DBI访问SQL数据库 23.1 数据库简介 23.2 使用DBI的第一步 23.3 使用SQL 23.3.1 创建表 23.3.2 插入数据 23.3.3 读取数据 23.3.4 更新表 23.3.5 删除信息 23.3.6 连接表 23.4 在应用程序中使用数据库 23.4.1 DBI和命令行 23.4.2 DBI和CGI 23.5 小结 第6部分 使用X的图形界面 第24章 利用Perl/TK的GUI 24.1 Linux中的CUI编程 24.1.1 X Window系统基础 24.1.2 位置无关性 24.2 客户解剖 24.2.1 Xlib 24.2.2 构件集 24.2.3 层次化窗口 24.2.4 配置 24.3 基于事件的编程 24.4 使用Perl/TK的第一步 24.5 对象属性 24.6 特殊对象 24.6.1 窗框 24.6.2 菜单 24.6.3 文本和画布 24.7 几何管理器 24.8 特别考虑的问题 24.9 SpecTcl/SpecPerl 24.10 小结 第25章 利用GNOME建立GUI 25.1 使用GNOME组件 25.2 第一步 25.3 绘制窗口 25.4 其他GNOME注解 25.5 小结 第7部分 将一切组织起来 第26章 利用CVS管理归档和协作 26.1 CVS简介 26.2 建立仓库 26.3 CVS的日常使用 26.4 使用标记和分支 26.4.1 标记 26.4.2 分支 26.5 访问网络 26.5.1 设置服务器 26.5.2 生成ssh键 26.5.3 境变量 26.6 技巧和诀窍 26.6.1 关键词 26.6.2 二进制文件 26.6.3 使用子目录 26.6.4 CVSROOT文件 26.7 小结 第27章 理解安全性和代码 27.1 好代码的重要性 27.2 Linux安全性概览 27.2.1 验证 27.2.2 访问控制 27.3 安全性的指导方针 27.3.1 安全性原则 27.3.2 常见问题 27.3.3 编写安全代码 27.4 小结 第28章 优化性能 28.1 更快代码的原则 28.1.1 三种度量 28.1.2 循环 28.1.3 帮助优化器 28.1.4 避免浮点数 28.1.5 重新编写时间关键代码块 28.1.6 增加块大小 28.2 高价操作和廉价操作 28.2.1 系统调用 28.2.2 fork 28.2.3 exec 28.2.4 system 28.3 编译器优化 28.4 使用gprof 28.5 小结 附录页
还剩771页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

cymt

贡献于2015-05-02

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf