创作团队
(按姓名首字母,排名不分先后)
以下摘自
博客地址
高明
龚琴
顾修忠
何路
胡鹏磊
梁光明
刘省
刘洋
卢友娟
沈晓伟
孙艳辉
王雷
王兴林
吴敬伟
张羽宽
赵志远
朱世翔
张明智
http://blog.csdn.net/gm9415
http://blog.csdn.net/svasan
http://blog.csdn.net/ta893115871
http://hi.baidu.com/luckylulovezy
http://hi.baidu.com/alberthuyy
http://hi.baidu.com/puce_love
http://hi.baidu.com/lsbflayun
http://blog.csdn.net/liuyang1990i
http://hi.baidu.com/386939024
http://hi.baidu.com/daveweicomeon
http://blog.csdn.net/syh19378888
http://blog.csdn.net/wang_leiboke
http://blog.csdn.net/wangxinglin133521
http://blog.csdn.net/aile770339804
http://blog.csdn.net/jack_zyk
http://blog.csdn.net/ZY_zhao
http://hi.baidu.com/zsx0415
http://hi.baidu.com/newbee520
目 录
1
2
Linux 环境基础..............................................................................................................1
Linux 系统安装 ................................................................................................1
1.1.1
Linux 环境配置 ..............................................................................................22
1.1.2
1.1.3
Linux 常用命令 ..............................................................................................37
Linux 用户管理 ..............................................................................................39
1.1.4
Linux 网络管理 ..............................................................................................40
1.1.5
1.1.6
Linux 编辑开发工具的使用——vim .............................................................. 41
1.1.7
Linux 编译开发工具的使用——gcc .............................................................. 43
1.1.8 小结 ...............................................................................................................44
1.1.9 习题 ...............................................................................................................44
Linux 的 shell 编程.....................................................................................................45
2.1.1
shell 语法规则 ............................................................................................... 45
shell 变量 .......................................................................................................46
2.1.2
shell 基础编程 ............................................................................................... 47
2.1.3
2.1.4
shell 高级编程 ............................................................................................... 49
2.1.5 小结 ...............................................................................................................55
2.1.6 习题 ...............................................................................................................59
3 文件 I/O 编程................................................................................................................60
open 函数 ............................................................................................................. 60
3.1
close 函数 .............................................................................................................62
3.2
read 函数 .............................................................................................................. 63
3.3
write 函数 ................................................................................ 错误!未定义书签。
3.4
lseek 函数 .............................................................................................................69
3.5
rewind 函数 ...........................................................................................................70
3.6
dup 函数 ............................................................................................................... 71
3.7
dup2 函数 ............................................................................................................. 72
3.8
3.9
fcntl 函数 ...............................................................................................................76
3.10 ioctl 函数 ...............................................................................................................76
3.11
标准 IO 与缓存 ..................................................................................................79
3.11.1 标准 I/O 标准 .................................................................................................80
3.11.2 ANSI C 缓存 ..................................................................................................81
3.11.3
fdopen 函数 ...................................................................................................82
I/O 效率 ......................................................................................................... 82
3.11.4
小结 ...................................................................................................................85
3.12
5
3.13
习题 ...................................................................................................................87
4 文件与目录编程........................................................................................................... 88
opendir 函数 ..................................................................................................88
4.1.1
readdir 函数 ...................................................................................................88
4.1.2
stat 函数 ........................................................................................................ 89
4.1.3
chdir 函数 ...................................................................................................... 90
4.1.4
4.1.5 小结 ...............................................................................................................91
4.1.6 习题 ...............................................................................................................92
Linux 进程编程............................................................................................................93
fork 函数——孕育生命的摇篮 .............................................................................. 93
5.1
wait 函数——侦探柯南 .........................................................................................94
5.2
waitpid 函数——侦探柯南 ....................................................................................97
5.3
exec 函数——偷梁换柱 ......................................................................................100
5.4
system 函数——接(借)生婆 .......................................................................... 101
5.5
5.6 设置用户 ID 和组 ID ........................................................................................... 102
5.7 进程执行时间 ......................................................................................................102
5.8 小结 .................................................................................................................... 102
5.9 习题 .................................................................................................................... 102
Linux 进程间通信 ......................................................................................................103
6.1.1 有名管道(fifo)和无名管道(pipe) .........................................................103
6.1.2 信号 .............................................................................................................107
6.1.3 信号量 ......................................................................................................... 127
6.1.4 共享内存 ......................................................................................................109
6.1.5 消息队列 ......................................................................................................116
6.1.6
socket ..........................................................................................................134
Linux 线程编程..........................................................................................................136
7.1.1
pthread_create 函数 ................................................................................... 136
7.1.2 线程库文件 .......................................................................错误!未定义书签。
pthread_join ................................................................................................137
7.1.3
7.1.4
pthread_exit ................................................................................................138
7.1.5 线程属性 ......................................................................................................139
7.1.6 线程互斥锁 ..................................................................................................140
7.1.7 线程条件变量 .............................................................................................. 142
Linux 高级 I/O 编程...................................................................................................145
fcntl 函数 ..................................................................................................... 145
8.1.1
select 函数 .................................................................................................. 146
8.1.2
8.1.3
ioctl 函数 ..................................................................................................... 148
Linux 网络编程..........................................................................................................153
8
9
6
7
9.1.1 网络基础 ......................................................................................................153
socket 函数 ................................................................................................. 153
9.1.2
bind 函数 ..................................................................................................... 154
9.1.3
9.1.4
select 函数 .................................................................................................. 154
accept 函数 ................................................................................................. 157
9.1.5
connect 函数 ............................................................................................... 157
9.1.6
10 附录:习题答案和解说.......................................................................................... 165
1 Linux 环境基础
1.1.1Linux 系统安装
1.安装引导
首先要设置计算机的 BIOS 启动顺序为光驱启动,保存设置后将安装光盘放入光
驱,重新启动计算机。
计算机启动以后会出现如下图所示的界面。
你可以直接按下来进入图形介面的安装方式或者等待 60 秒。
下面是上图所示引导菜单选项如下:
安装或升级现有系统(Install or upgrade an existing system):
这个选项是默认的。 选择此选项,安装到您的计算机使用 CentOS 的图形安装程
序的系统。
1
安装系统,基本的视频驱动程序(Install system with basic video driver):
此选项允许您安装 CentOS 的模式,即使在图形安装程序无法加载视频卡的正确
驱动程序为您的。如果你的屏幕上出现扭曲或一片空白时使用的安装或升级现有
系统的选项,重新启动计算机,并尝试此选项。
救援安装的系统(Rescue installed system):
选择这个选项来修复您的安装 CentOS 系统,防止正常启动你一个问题。虽然
CentOS 是一个非常稳定的计算平台,它是偶然的问题仍有可能发生,防止启动。
救援环境包含实用程序,允许您解决这些问题,品种繁多。
从本地驱动器启动(Boot frome local drive):
此选项将引导从第一个安装的磁盘系统。 如果你意外地启动这个光盘,使用未
立即启动安装程序这是从硬盘启动选项。
2.检测光盘介质
如下图所示,如果是一张完整的安装盘,可以直接单击“Skip”按钮跳过,否则
单击“OK”按钮检测安装盘的完整性。
Tips:如果你确定你所下载的 DVD 或光盘没有问题的话,那么这里可以选择
‘Skip(忽略)’, 不过,你也可以按下‘OK’来进行 DVD 的分析,因为通过 DVD
的分析后,后续的安装比较不会出现奇怪的问题。 不过如果你按下‘OK’后,
程式会开始分析光盘内的所有文件的资讯,会花非常多的时间喔!
3.安装欢迎界面
当检测完电脑硬件信息后,进入安装欢迎界面,如下图所示。