第1部分 Linux基础 1
第1章 LINUX简介 1
1.1 Linux简介 1
1.1.1 UNIX操作系统的诞生 1
1.1.2 Minix操作系统 2
1.1.3 GNU早期简史 3
1.1.4 POSIX标准历史 3
1.1.5 Linux概述 4
1.1.6 Linux和开源软件的商业化 5
1.1.7 Linux和开源软件的商业模式 6
1.2 Linux内核和Linux发行版本 7
1.2.1 Linux发行版本概述 7
1.2.2 Linux内核的变迁 8
1.2.3 Linux主要发行版本 9
1.3 Linux的优势 12
1.4小结 14
第2部分 从系统管理角度学习Linux命令 15
第2章 LINUX文件系统及其相关处理命令 15
2.1 Linux的文件系统介绍 15
2.1.1文件系统定义 15
2.1.2 Linux文件系统的体系结构 15
2.1.3 Linux文件系统结构 16
2.1.4 /proc文件系统 18
2.1.5 Linux文件系统的组成 19
2.1.6文件类型 20
2.1.7文件系统的特性 21
2.1.8 Linux主流文件格式 22
2.2查看当前Linux支持的文件类型 26
2.2.1 Is:显示文件名 26
2.2.2 cat:显示文本文件内容 28
2.2.3 rm:删除文件 30
2.2.4 less:分屏显示文件 30
2.2.5 cp:复制文件 31
2.2.6 mv:更改文件名 33
2.2.7 grep:查找字符串 33
2.2.8 head:显示文件头部 35
2.2.9 tail:显示文件尾部 35
2.2.10 sort:按顺序显示文件内容 36
2.2.11 uniq:忽略文件中的重复行 37
2.2.12 diff:比较两个文件 37
2.2.13 diffstat命令:diff结果的统计信息 39
2.2.14 file:测试文件内容 39
2.2.15 echo:显示文本 40
2.2.16 date:显示日期和时间 41
2.2.17 scnpt:记录Linux会话信息 42
2.2.18 apropos:搜索关键字 43
2.2.19 locate:搜索文件 43
2.2.20 rmdir:删除目录 44
2.2.21 basename:显示文件或者目录的基本名称 44
2.2.22 chattr:改变文件的属性 45
2.2.23 cksum:文件的CRC校验 46
2.2.24 cmp:比较文件差异 47
2.2.25 split:分割文件 47
2.2.26 dirname:显示文件除名字外的路径 48
2.2.27 find:查找目录或者文件 48
2.2.28 findfs:通过列表或用户ID查找文件系统 49
2.2.29 ln:链接文件或目录 50
2.2.30 lndir:链接目录内容 51
2.2.31 lsattr:显示文件属性 51
2.2.32 od:输出文件内容 52
2.2.33 paste:合并文件的列 53
2.2.34 stat:显示inode内容 53
2.2.35 tee:读取标准输入到标准输出并可保存为文件 54
2.2.36 tmpwatch:删除临时文件 54
2.2.37 touch:更新文件或目录时间 54
2.2.38 tree:以树状图显示目录内容 55
2.2.39 umask:指定在建立文件时预设的权限掩码 56
2.2.40 chmod:设置文件或者目录的权限 58
2.2.41 chgrp:改变文件或者目录所属的群组 60
2.2.42 chown:改变文件的拥有者或者群组 60
2.3小结 61
第3章 LINUX磁盘管理及其相关命令 62
3.1硬盘相关的概念 62
3.1.1硬盘及其组成 62
3.1.2硬盘的性能指标 64
3.1.3硬盘接口方式 65
3.1.4 Linux服务器硬盘的选择 67
3.2 Linux磁盘分区 67
3.2.1 df:磁盘信息 69
3.2.2 du:显示目录或者文件所占的磁盘空间 70
3.2.3 dd:磁带驱动操作 71
3.2.4 fdisk:磁盘分区 74
3.2.5 mount:加载文件系统 75
3.2.6 umount:卸载文件系统 77
3.2.7 mkfs:建立各种文件系统 77
3.2.8 1 mkfs.ext2:建立一个ext2/ext3文件系统 78
3.2.9 mkbootdisk:建立启动盘 79
3.2.10 fsck:检查文件系统 79
3.2.11 fsck.ext2:检查文件系统 80
3.2.12 hdparm:设置磁盘参数 81
3.2.13 mkswap:建立交换分区 82
3.2.14 dump:备份文件系统 83
3.2.15 restore:还原文件 84
3.2.16 sync:写入磁盘 84
3.2.17 e21abel:设置卷标 85
3.2.18 badblock:检查磁盘 85
3.2.19 quota:显示磁盘已使用的空间与限制 85
3.2.20 quotacheck:检查磁盘的使用空间与限制 86
3.2.21 quotaoff:关闭磁盘空间限制 86
3.2.22 quotaon:开启磁盘空间限制 87
3.2.23 quotastats:显示磁盘空间的限制 87
3.2.24 repquota:检查磁盘空间限制的状态 87
3.2.25 mdadm:RAID工具 88
3.2.26 parted:磁盘分区工具 90
3.3 Linux磁盘操作实战 91
3.3.1为Linux添加新硬盘 91
3.3.2 Linux服务器磁盘配额配置 94
3.3.3优化Linux系统硬盘 99
3.4 RAID和LVM 101
3.4.1 Linux下软件RAID配置 101
3.4.2 LVM基础 105
3.4.3 LVM配置实战 108
3.4.4 LVM和RAID配合使用 115
3.5小结 119
第4章 LINUX进程及其管理命令 120
4.1 Linux进程的基础 120
4.1.1进程的基本概念 120
4.1.2进程的属性 120
4.1.3理解Linux下进程的结构 121
4.1.4进程状态 121
4.1.5 Linux进程的创建 121
4.1.6进程的管理 122
4.1.7 Linux的第一个进程:init 123
4.1.8 Linux的线程简介 126
4.2理解Linux守护进程 127
4.2.1守护进程简介 127
4.2.2查看守护进程的方法 128
4.2.3 100个最常见Linux守护进程简介 128
4.2.4 Linux守护进程工作原理和方式 132
4.3 Linux进程管理命令详解 135
4.3.1 at:定时运行命令 135
4.3.2 bg:后台运行命令 136
4.3.3 fg:挂起程序 136
4.3.4 jobs:显示后台程序 137
4.3.5 kill:终止进程 137
4.3.6 crontab:安装、删除或列出任务表 138
4.3.7 ps:查看权限 139
4.3.8 pstree:列出当前进程的树状结构 141
4.3.9 top:显示进程 141
4.3.10 nice:改变权限优先级 143
4.3.11 renice:修改优先级 143
4.3.12 sleep:暂停进程 144
4.3.13 nohup:用户退出系统之后继续工作 144
4.3.14 pgrep:查找当前进程并列出匹配给定条件的进程pid 144
4.3.15 chkconfig:设置系统的各种服务 145
4.4小结 146
第5章 LINUX网络体系及其相关命令 147
5.1 Linux网络体系简介 147
5.1.1 OSI模型 147
5.1.2 OSI七层功能说明 149
5.1.3 TCP/IP模型 152
5.1.4 IP寻址、子网和路由 154
5.2 Linux网络基础 157
5.2.1 Linux网络结构的特点 157
5.2.2 Linux下端口号分配 159
5.2.3 Linux的TCP/IP网络配置 161
5.3 Linux网络管理命令详解 162
5.3.1 arp:管理系统中的ARP高速缓存 162
5.3.2 arpwatch:监听ARP记录 163
5.3.3 ADSL:调制解调器命令 164
5.3.4 ifconfig:设置网络接口 164
5.3.5 iwconfig:设置无线网卡 165
5.3.6 hostname:显示主机名 169
5.3.7 ifup:激活设备 170
5.3.8 ifdown:禁用网络设备 170
5.3.9 mii-tool:调整网卡模式 171
5.3.10 route:设置路由表 172
5.3.11 netstat:查看网络连接 173
5.3.12 ping:检测网卡接口 174
5.3.13 minicom:设置调制解调器 175
5.3.14 pppd:建立PPP连接 176
5.3.15 pppstats:显示PPP连接状态 177
5.3.16 chat:拨号命令 178
5.3.17 traceroute:显示数据包到主机间的路径 178
5.3.18 rcp:远程复制 179
5.3.19 finger:查找并显示用户信息 179
5.3.20 tcpdump:网络数据分析器 180
5.3.21 ip:网络集成命令工具 181
5.3.22 yum:软件包管理 182
5.3.23 apt:管理套件的工具 186
5.4通过Linux命令行进行网络操作 188
5.4.1配置Linux的TCP/IP配置 188
5.4.2 Linux服务器的静态路由配置 193
5.4.3 Linux异构网络共享ADSL连接及其故障排除 197
5.4.4 Linux命令行下发送带有附件的邮件 204
5.4.5掌握Linux命令行下载工具 206
5.4.6掌握Linux命令行网络监控工具 213
5.5掌握Linux命令行嗅探器工具 223
5.5.1 Linux嗅探器简介 223
5.5.2使用Tcpdump 225
5.5.3嗅探器的防范 228
第6章 LINUX用户管理及其相关命令 232
6.1 Linux用户管理简介 232
6.1.1 Linux多用户、任务系统 232
6.1.2 Linux用户(user)和用户组(group)概念 233
6.1.3 Linux用户、组及私有用户组 234
6.1.4理解Linux用户配置文件 236
6.1.5理解Linux用户组配置文件 237
6.1.6 Linux用户相关配置文件 239
6.1.7定制Linux系统环境变量 241
6.2 Linux用户管理命令 243
6.2.1 useradd:建立用户 243
6.2.2 userdel:删除用户 244
6.2.3 usermod:修改已有用户信息 244
6.2.4 passwd:设置密码 245
6.2.5 chage:密码老化 246
6.2.6 groupadd:添加组 246
6.2.7 groupdel:删除组账户 247
6.2.8 groupmod:修改组 247
6.2.9 vipw:编辑/etc/passwd文件 247
6.2.10 vigr:编辑/etc/group文件 248
6.2.11 newgrp:转换组 248
6.2.12 groups:显示组 248
6.2.13 gpasswd:添加组 248
6.2.14 whoami:显示当前用户名称 249
6.2.15 who:显示登录用户 249
6.2.16 id:显示用户信息 250
6.2.17 su:切换身份 250
6.2.18 pwck:检测账户 251
6.2.19 grpck:检测用户组账号信息完整性 251
6.2.20 chsh:设置shell 251
6.2.21 chfn:修改用户信息 252
6.3 Linux用户管理实例 253
6.3.1 Linux用户管理小技巧 253
6.3.2配置sudo让Linux用户管理更加安全 257
6.3.3为Linux用户配置PAM 262
6.3.4 Linux用户安全策略 271
第7章 LINUX的备份和压缩及其相关命令 276
7.1 Linux备份恢复基础 276
7.1.1什么是备份 276
7.1.2备份的重要性 276
7.1.3备份前需考虑的因素 276
7.1.4选择备份介质 277
7.1.5 Linux备份策略 278
7.1.6确定要备份的内容 279
7.2 Linux下压缩文件格式简介 280
7.2.1 .arc格式 281
7.2.2 .arj格式 281
7.2.3 .lzh (.lha)格式 282
7.2.4 .rar格式 282
7.2.5 .zip格式 283
7.2.6压缩文件相关网址 284
7.3 Linux的备份和压缩及其相关命令 285
7.3.1 tar:备份文件 285
7.3.2 dump:备份文件系统 287
7.3.3 cpio(copy in/out):备份文件 288
7.3.4 restore:还原备份下来的文件或整个文件系统(一个分区) 290
7.3.5 ar:建立、修改或从档案文件中提取文件 291
7.3.6 bunzip2:解压缩.bz2文件 292
7.3.7 bzip2:解压缩.bz2文件 293
7.3.8 unzip:解压缩zip文件 293
7.3.9 bzip2recover:损坏bz2文件的修复 294
7.3.10 gzip:压缩文件 294
7.3.11 compress:压缩、解压文件 295
7.3.12 gzexe:压缩执行文件 296
7.3.13 lha:压缩或解压缩文件 296
7.3.14 unarj:解压缩文件 297
7.3.15 zip:压缩文件 297
7.3.16 zipinfo:显示压缩文件的信息 298
7.4 Linux命令行数据备份实例 299
7.4.1 Linux磁带机备份攻略 299
7.4.2用mirrordir做硬盘分区镜像 309
7.4.3使用partimage备份恢复Linux分区 310
7.4.4使用afio工具备份 311
7.4.5在RHEL5中使用Amanda实现服务器及客户端备份 312
7.4.6使用cfengine 工具备份Linux服务器 320
7.4.7部署开源磁盘备份服务器rsync 330
第8章 LINUX系统管理命令 336
8.1 Linux启动过程 336
8.1.1 Linux的启动过程详解 336
8.1.2 Linux运行级 339
8.1.3 /etc/inittab文件详解 340
8.1.4 init和/etc/inittab 342
8.2 Linux引导加载程序:LILO和GRUB 343
8.2.1 LILO 343
8.2.2 GRUB 347
8.3 Linux系统管理命令详解 359
8.3.1 apmd:高级电源管理 359
8.3.2 apmsleep:APM进入休眠状态 360
8.3.3 apropos:查找使用手册的名字和相关描述 360
8.3.4 arch:输出主机的体系结构 360
8.3.5 alias:设置别名 361
8.3.6 batch:执行批处理命令 361
8.3.7 cd:切换目录 362
8.3.8 chkconfig:设置服务 362
8.3.9 clear:清除终端屏幕 363
8.3.10 clock:系统RTC时间设置 363
8.3.11 cal:显示日历 364
8.3.12 chroot:改变根目录 364
8.3.13 date:显示或设置系统时间 365
8.3.14 dmesg:显示开机信息 366
8.3.15 dircolors:设置Is命令在显示目录或文件时所用色彩 367
8.3.16 depmod:分析模块 367
8.3.17 echo:显示文本行 367
8.3.18 exec:执行完命令后,交出控制权 368
8.3.19 exit:退出shell 368
8.3.20 eject:弹出介质 369
8.3.21 enable:关闭shell命令 369
8.3.22 fgconsole:显示虚拟终端的数目 370
8.3.23 free:显示内存信息 370
8.3.24 fuser:使用文件或文件结构识别进程 370
8.3.25 getty:设置终端机模式 371
8.3.26 gdialog:从shell显示文本信息 372
8.3.27 git:文件管理员 372
8.3.28 halt:关闭系统 372
8.3.29 history:显示历史命令 373
8.3.30 hwclock:显示与设定硬件时钟 374
8.3.31 init:进程处理初始化 374
8.3.32 last:显示登录用户信息 375
8.3.33 lilo:引导管理器 376
8.3.34 login:登录系统 376
8.3.35 local:显示本地支持的语言系统信息 377
8.3.36 logname:显示登录账号的信息 377
8.3.37 logout:退出系统 378
8.3.38 lsmod:显示Linux内核的模块信息 378
8.3.39 Isattr:显示文件在Linux第二扩展文件系统上的特有属性 378
8.3.40 modinfo:显示内核信息 379
8.3.41 modprobe:自动处理可载入模块 379
8.3.42 ntsysv:设置系统的各种服务 380
8.3.43 pmap:显示程序的内存信息 380
8.3.44 procinfo:显示系统状态 381
8.3.45 pwd:显示工作目录 382
8.3.46 reboot:重新启动系统 382
8.3.47 rlogin:远程登录 383
8.3.48 rmmod:删除模块 383
8.3.49 rpm:软件包管理 384
8.3.50 shutdown:系统关机命令 388
8.3.51 sleep:延迟指定数量的时间 388
8.3.52 suspend:暂停执行shell 389
8.3.53 swatch:系统监控程序 389
8.3.54 tload:显示系统负载 389
8.3.55 uname:显示系统信息 390
8.3.56 authconfig:配置系统的认证信息 390
8.3.57 declare:显示或者设定shell变量 392
8.3.58 enable:可用的shell内置命令 393
8.3.59 export:设置或者显示环境变量 393
8.3.60 hostid:打印出当前主机的标识 394
8.3.61 insmod:载入模块 394
8.3.62 rdate:显示其他主机的日期与时间 394
8.3.63 runlevel:显示执行等级 395
8.3.64 set:设置shell 395
8.3.65 setconsole:设置系统终端 396
8.3.66 setenv:查询或显示环境变量 397
8.3.67 setserial:设置或显示串口的相关信息 397
8.3.68 setup:设置公用程序 397
8.3.69 sync:将内存缓冲区内的数据写入磁盘 398
8.3.70 startx:启动X Window 398
8.3.71 sysctl:设置系统核心参数 399
8.3.72 timeconfig:设置时区 399
8.3.73 ulimit:控制shell程序的资源 400
8.3.74 unalias:删除别名 401
8.3.75 unset:删除变量或函数 402
8.3.76 up2date:软件包升级工具 402
8.3.77 uptime:告知系统运行了多长时间 403
8.3.78 mousconfig:设置鼠标相关参数 403
8.3.79 bind:显示或设置键盘按键与其相关的功能 404
8.3.80 kbdconfig:设置键盘类型 405
8.3.81 snapscreenshot:命令行截图 405
8.3.82 mt:磁带机控制 405
8.3.83 cdrecord:刻录工具 406
8.3.84 dvdrecord: DVD刻录工具 407
8.3.85 lspci:查看硬件插槽 407
8.3.86 sane-find-scanner:扫描仪搜索 408
8.3.87 scanimage:检测扫描仪型号 409
8.3.88 mtools:命令集 409
8.3.89 whereis:查找文件 410
8.3.90 ytalk:与其他用户交谈 411
8.4 Linux系统性能监控 411
8.4.1性能监控的重要性和方法 411
8.4.2系统负载监测 413
8.4.3 Linux进程运行的监测 415
8.4.4内存使用情况监测 416
8.4.5中央处理器使用情况监测 418
8.4.6使用iostat监测I/O性能 420
8.4.7网络性能的监测 422
8.4.8使用sar工具 424
8.4.9使用nmon工具 428
8.4.10 Linux内存泄漏及其回收 434
第9章 LINUX服务器管理命令 437
9.1 Linux服务器市场近况 437
9.2 apache服务器应用命令 440
9.2.1 apache服务器管理命令 440
9.2.2 Apache服务器日志管理命令 450
9.2.3Apache日志管理命令 453
9.3 dns服务器管理命令 459
9.3.1 dns服务器启动、停止、重新启动命令 459
9.3.2 Bind DNS服务器管理、检查查询命令 461
9.3.3 Bind DNS服务器辅助工具dlint和dnstop 475
9.4 NFS服务器管理命令 478
9.4.1 nfsd:NFS服务器启动、停止命令 478
9.4.2 portmap:portmap守护程序将RPC程序号转换成因特网端口号 478
9.4.3 rpcinfo:报告远程过程调用(RPC)服务器的状态 479
9.4.4 showmount:显示远程已安装文件系统的所有客户机的列表 480
9.4.5 umount:删除当前已挂载的远程文件系统 481
9.4.6 mount:mount命令将已命名的文件系统(本地或远程)连接到指定的挂载点 481
9.4.7 automount:安装自动安装点 482
9.4.8 mountall:挂载一组文件系统 482
9.4.9 exportfs:重新分享/etc/exports变更的目录资源 483
9.5 samba服务器管理命令 483
9.5.1启动samba服务器 483
9.5.2 testparm:检查smb.conf配置文件的内部正确性 484
9.5.3 smbd(samba daemon):samba服务器程序 485
9.5.4 smbclient:类似FTP操作方式的访问smb/cifs服务器资源的客户端 485
9.5.5 smbstatus:报告当前samba的连接状态 487
9.5.6 smbmount:装载一个smbfs文件系统 488
9.5.7 smbpasswd:设置用户的SMB密码 489
9.6 SSH服务器管理命令 490
9.6.1 SSH服务器启动停止命令 490
9.6.2 SSH客户端命令 494
9.7 squid服务器管理命令 498
9.7.1 squid:代理服务器squid守护进程 498
9.8 DHCP服务器管理命令 500
9.8.1 dhcpd:DHCP服务器守护进程 500
9.8.2 dhclient:DHCPv6客户端守护进程 501
9.8.3 dhcp6c:DHCPv6客户端守护进程 501
9.9 FTP服务器管理命令 501
9.9.1 FTP服务器管理命令 501
9.9.2 FTP客户端命令 504
9.10 E-mail服务器管理命令 507
9.10.1 sendmail:为本地或网络交付传送邮件 507
9.10.2 mail:E-mail管理程序 509
9.10.3 mailq:显示待寄邮件的清单 510
9.10.4 mailstats:显示关于邮件流量的统计信息 511
9.10.5 mutt:E-mail管理程序 512
9.10.6 Sendmail邮件服务器性能控制 513
9.11 Linux防火墙管理工具iptables 515
9.11.1 iptables:Linux防火墙管理工具 515
9.11.2 ip6tables:ipv6版本的iptables工具 521
9.11.3 iptables-save:iptables列表存储 521
9.11.4 iptables-restore:装载由iptables-save保存的规则集 521
9.11.5 iptables配置企业应用 522
9.12 xinetd和Linux服务器工作方式的关系 524
9.12.1什么是xinetd 524
9.12.2 xinetd的特色 524
9.12.3使用xinetd启动守护进程 525
9.12.4解读/etc/xinetd.conf和/etc/xinetd.d/ 526
9.12.5配置xinetd 527
9.12.6 Linux下服务器运行的两种模式 532
9.12.7 xinetd防止拒绝服务攻击(Denial of Services)的原因 533
第10章 LINUX打印系统及其相关命令 535
10.1 Linux打印系统发展路线图 535
10.1.1 PostScript语言 535
10.1.2 BSD LPD打印系统 537
10.1.3 LPRng打印系统 538
10.1.4通用UNIX打印系统(CUPS) 538
10.1.5 Linux打印过程 540
10.2配置CUPS打印系统 541
10.2.1打印机驱动程序查询和安装 541
10.2.2配置CUPS打印系统 542
10.2.3使用Red Hat Linux打印配置管理工具 545
10.2.4重要资料 550
10.3 Linux打印系统相关命令 551
10.3.1 redhat-config-printer-tui:打印机配置字符界面工具 551
10.3.2 cupsd:通用打印程序守护进程 552
10.3.3 lpadmin:配置LP打印服务 553
10.3.4 lp:打印 554
10.3.5 lpstat:显示行式打印机状态信息 555
10.3.6 lpr:排队打印作业 556
10.3.7 lprm:打印队列删除任务 556
10.3.8 Lpc:控制打印机 557
10.3.9 lpq:检查假脱机队列 558
10.3.10 lpinfo:显示驱动和设备 558
10.4 Linux打印技巧 559
10.4.1为Linux添加虚拟PDF打印机 559
10.4.2 Linux下应用Windows打印机 561
10.4.3 Linux打印故障排除 563
10.5小结 563
第3部分 Linux开发编程中需要使用的命令 564
第11章 LINUX库应用及其相关命令 564
11.1 Linux库简介 564
11.1.1 Linux库的定义 564
11.1.2 Linux库的种类 564
11.1.3 Linux库的命名和编号 566
11.1.4常用的Linux库 567
11.1.5目标文件和库 568
11.2 Linux库命令 569
11.2.1 ldconfig:配置查找共享库 569
11.2.2 nm:列举目标文件中的符号名 571
11.2.3 ar:建立修改文件或从文件中抽取成员 572
11.2.4 strip:去除目标文件中的无用信息 574
11.2.5 objdump:展开目标文件、静态库和共享库中的信息 575
11.2.6 ldd:显示共享库的依赖情况 576
12.2.7 diff:找出两个文件的不同点 577
11.2.8 patch:修补文件 579
11.3 Linux库编程应用 580
11.3.1构建共享库 580
11.3.2安装共享库 581
11.3.3应用实例 582
11.3.4新安装一个库后如何让系统找到 583
11.3.5可执行程序在执行的时候如何定位共享库文件 583
11.3.6深入了解共享库 583
11.3.7保持库兼容的建议 583
11.3.8在共享库中载入函数 584
11.4 Linux库升级 585
11.4.1为什么要升级库 585
11.4.2 gcc库升级过程 586
第12章 LINUX开发常用命令GCC和MAKE 589
12.1 gcc基础 589
12.1.1 gcc简介 589
12.1.2 gcc支持的基本语言 590
12.1.3 gcc支持平台 592
12.1.4 gcc安装 592
12.1.5 gcc基本应用 594
12.1.6运行gcc时调用的程序和命令 596
12.2 gcc应用进阶 597
12.2.1使用gcc处理多个文件 597
12.2.2 gcc命令详解 598
12.2.3 gcc函数库和包含文件 600
12.2.4 gcc警告提示功能 601
12.2.5 gcc的错误类型总结 603
12.3 gcc进阶应用 604
12.3.1 gcc调试选项 604
12.3.2使用gcc编译Fortran程序 605
12.3.3使用gcc编译Java文件 613
12.3.4使用gdb 618
12.3.5 gcc优化 623
12.3.6 gcc环境变量 625
12.4 gnu make命令简介 627
12.4.1 make基础入门 628
12.4.2 make命令参数、调试、错误机制 636
12.5 make的高级工具automake、autoconf和libtool 642
12.5.1 automake、 autoconf和libtool定义 643
12.5.2使用automake、 libtool和autoconf制作makefile文件 644
12.5.3应用实例 647
12.6本章参考资料 649
第13章 LINUX编辑器VI和EMACS 650
13.1 vi编辑器 650
13.1.1 Linux命令行编辑器简介 650
13.1.2 vi编辑器简介 654
13.1.3 vi编辑器的模式 654
13.1.4 vi三种模式的切换 655
13.1.5 vi编辑器基本操作 656
13.1.6在vi编辑器移动光标 657
13.1.7在文件中搜索、修改和删除文本 659
13.1.8 vi进阶应用 660
13.1.9 vi总结 664
13.2 Emacs编辑器简介 664
13.2.1 GNU Emacs是什么 664
13.2.2 Emacs安装 665
13.2.3 Emacs的启动和退出 665
13.2.4 Emacs屏幕的结构 666
13.2.5了解Emacs的键绑定 668
13.2.6退出Emacs 670
13.3使用Emacs进行编辑 670
13.3.1移动光标 670
13.3.2剪切和粘贴 671
13.3.3复制文本 671
13.3.4搜索和替换文本 671
13.3.5 Buffer缓冲区操作 672
13.3.6窗口操作 673
13.3.7获取帮助 673
13.3.8其他功能键 673
13.3.9 Emacs中的鼠标操作 674
13.3.10保存文档 674
13.3.11 Emacs下的编译 675
13.3.12 Emacs中的互联网操作 677
13.3.13 Emacs键绑定常用列表 678
第14章 使用SHELL 680
14.1 Shell简介 680
14.1.1什么是Shell 680
14.1.2 Shell类型 681
14.1.3 Shell与Linux内核的交互作用 683
14.2 Linux Shell的功能 683
14.2.1通配符 683
14.2.2重定向 684
14.2.3管道 685
14.2.4别名 686
14.2.5命令行补全 686
14.2.6命令替换 687
14.2.7命令历史 688
14.3 Linux Shell元字符 692
14.4 Shell变量和Shell环境 693
14.4.1变量简介 693
14.4.2常见的预定义变量详解 693
14.4.3设置环境变量 697
14.5 Shell常用关键术语及应用技巧 699
14.5.1 Shell常用关键术语 699
14.5.2 Shell应用技巧 702
14.5.3了解Shell的内置命令 704
第4部分 附录 708
附录A 解读LSB标准 708
命令索引 722