Linux环境编程:从应用到内核下载地址https://pan.baidu.com/s/1gduUSjb1scnJXW8RX8TEpw扫描下方二维码关注公众号回复100076获取分享codebook全书目录结构如下:第一章Linux基础11.1概述11.1.1Linux内核与发行版11.1.2Linux开发要素31.2Linux安装51.2.1在虚拟机上安装51.2.2在物理机上安装121.3Linux运行环境121.3.1GNOME简介121.3.2Linux文件系统171.3.3Shell221.4总结241.5习题25第二章LinuxShell命令操作262.1获取帮助262.1.1--helpoption272.1.2man282.1.3info292.2通配符,引号,管道和输入输出重定向292.2.1通配符292.2.2转义字符302.2.3引号302.2.4管道312.2.5输入输出重定向312.3基本操作332.3.1sudo332.3.2路径和当前工作目录332.3.3创建和删除文件342.3.4创建和删除目录352.3.5查看用户、日期和打印简单信息352.3.6命令历史和名称完成362.3.7ls命令372.3.8别名382.4浏览和搜索文件系统392.4.1查找392.4.2which402.4.3whereis402.4.4locate412.5读取文本文件422.5.1cat422.5.2moreandless422.5.3headandtail432.6编辑文本文件432.6.1vi432.6.2gedit462.7文件内容操作命令462.7.1grep462.7.2sort482.7.3diff492.7.4wc502.8复制、移动、链接和归档文件512.8.1cp512.8.2mv522.8.3ln532.8.4tar532.9文件系统操作552.9.1安装--mount552.9.2卸载--umount572.9.3查看系统信息572.10用户管理582.11文件权限操作592.12进程相关命令612.12.1进程和作业612.12.2查看进程-ps622.12.3结束进程-kill642.13网络相关命令642.14总结662.15习题66号第3章LinuxShell编程683.1基础知识683.1.1第一个Shell程序683.1.2如何运行一个Shell程序693.1.3Shell命令的类型703.1.4Shell执行命令的顺序713.1.5注释、退出状态和逻辑操作713.1.6复合命令723.2Shell变量733.2.1变量赋值和引用733.2.2命令替换743.2.3变量属性声明753.2.4数组变量753.2.5变量引用运算符773.2.6位置参数和特殊变量793.2.7读取命令813.2.8导出语句823.3控制结构833.3.1条件测试833.3.2if语句883.3.3case语句893.3.4while语句913.3.5until语句923.3.6for语句933.3.7break,continueandexit963.4shell函数983.5shell内部命令993.6Shell程序调试1013.7总结1033.8习题103第4章LinuxC语言编程基础1054.1gcc编译器1054.1.1概述1054.1.2第一个C程序1064.1.3编译选项1074.2EclipseCDT1114.2.1介绍、安装和启动1114.2.2创建工程并运行1124.2.3程序调试方法1164.3C语言基础1184.3.1C语言概述1184.3.2数据类型1194.3.3运算符和表达式1284.3.4C语言语句1304.3.5控制结构1304.3.6函数1354.3.7内存管理1374.3.8编译器预处理1384.4总结1424.5练习143第5章文件1445.1Linux文件I/O概述1445.1.1简介1445.1.2文件和目录1445.1.3文件和设备1455.1.4系统调用和标准函数库1465.2低级文件访问1465.2.1文件描述符1465.2.2文件创建,打开和关闭1475.2.3文件的读写1485.2.4文件的定位1505.2.5文件属性的读取1525.2.6修改文件属性1575.3链接文件的操作1625.3.1创建硬链接1625.3.2创建和读取符号链接1625.3.3删除链接1635.4目录文件操作1655.4.1目录文件的创建和删除1655.4.2目录文件的打开和关闭1665.4.3目录文件的读取1675.5设备文件1685.6总结1685.7习题169第6章 标准I/O库1706.1流和文件指针1706.2缓存1716.3打开和关闭流1716.3.1打开流1716.3.2关闭流1736.4字符和基于行的I/O1736.4.1字符I/O1736.4.2行I/O1766.5二进制I/O1786.5。1读取二进制流1786.5.2写入二进制流1796.5.3二进制I/O的常见用途1796.6定位流1816.7格式化I/O1826.7.1格式化输出1826.7.2格式化输入1856.8临时文件1866.9文件流和文件描述符1886.10总结1886.11习题188第7章 进程和信号1927.1进程的基本概念1927.1.1什么是进程1927.1.2Linux进程环境1937.2进程结构1997.2.1进程控制块和进程表1997.2.2进程标识1997.2.3进程状态2007.3进程控制2027.3.1系统函数2027.3.2exec函数2037.3.3fork函数2067.3.4vfork函数2087.3.5进程终止状态2097.3.6wait和waitpid函数2107.4信号2137.4.1介绍2137.4.2捕获信号2147.4.3发送信号2167.4.4信号集2197.4.5sigaction函数2207.5小结2227.6习题222第8章 进程间通信2248.1IPC简介2248.2管道2258.2.1管道函数2258.2.2popen和pcolse函数2278.3命名管道(FIFO)2298.4SysVIPC2328.5信号量2338.5.1简介2338.5.2semget函数2338.5.3semopctl函数2348.5.5信号量的应用2358.6共享内存2388.6.1简介2388.6.2shmget函数2398.6.3shmat和shmdt函数2398.6.4shmctl函数2408.6.5共享内存的应用2408.7消息队列2438.7.1简介2438.7.2ms4.gget7函数.3msgsnd函数2458.7.4msgrcv函数2458.7.5msgctl函数2468.7.6消息队列的应用2468.8总结2488.9习题249第9章Gtk+编程基础2509.1Gtk+介绍2509.2glib库2519.3Gtk+程序结构2549.3.Gtk+程序2549.3.2Gtk+数据类型2559.3.3初始化Gtk+2569.3.4创建和显示窗口/组件2569.3.5Gtk+主循环2579.4响应Gtk+信号2579.4.1完善第一个Gtk+程序2579.4.2事件和信号2599.5基本概念组件数量2649.5.1窗口组件和无窗口组件2649.5.2灵敏度2649.5.3焦点组件、独占组件和默认组件2659.5.4组件状态2659.6组件排列2669.6.1容器组件2669.6.2大小分配2669.6.3GtkWindow2679.6.4GtkBox2689.6.5GtkTable2699.7小结2729.8习题272第10章Gtk+构件27310.1基础构件27310.1.1GtkImage27310.1.2GtkButton27410.1.3GtkEntry27510.1.4GtkLabel27810.1.5GtkCheckButton28010.1.6GtkComboBoxText28210.1.7GtkRadioButton28410.1.8GtkScrolledWindow28710.1.9GtkTextView28710.1.10GtkSeparator29110.1.11GtkFrame29110.2菜单29310.3工具栏29910.4树型构件和列表构件30410.4.1模型30410.4.2视图30610.5对话框31310.5.1GtkMessageDialog31310.5.2GtkFileChooserDialog31410.5.3Customdialog31610.6Summary31810.7Exercise318
