《Linux程序员与用户指南》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)格拉斯(Glass,G.),(美)阿伯雷斯(Ables,K.)著;刘颖等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302137811
  • 页数:486 页
图书介绍:本书将Linux的重要主题、大量实例来介绍广泛使用的Linux实用程序。

第1章 Linux的定义 1

1.1 计算机系统 1

1.2.2 总线 2

1.2.1 中央处理器(CPU) 2

1.2 硬件 2

1.2.12 磁带 3

1.2.11 打印机 3

1.2.3 随机存储器(RAM) 3

1.2.4 只读存储器(ROM) 3

1.2.5 外存储器 3

1.2.6 光驱 3

1.2.7 显示器 3

1.2.8 图形卡 3

1.2.9 键盘 3

1.2.10 鼠标 3

1.3 操作系统 4

1.4 软件 4

1.2.13 调制解调器 4

1.2.14 网络接口 4

1.2.15 其他外围设备 4

1.5 共享资源 5

1.6 通信 5

1.7 实用程序 6

1.8 程序员支持 6

1.9 标准 7

1.10 Linux家族 7

1.10.1 UNIX 7

1.10.3 Linus 9

1.10.2 开源软件和自由软件基金 9

1.11 Linux的软件打包 10

1.12 Linux和UNIX的基本方法 10

1.13 Linux的特性 11

1.14 本书内容展望 12

2.1 引言 14

第2章 安装Linux系统 14

2.2.1 CPU类型 15

2.2.3 内存 15

2.2.2 总线结构 15

2.2 支持Linux的硬件 15

2.2.4 磁盘 16

2.3 选择Linux分发版 16

2.2.5 显示器、键盘和鼠标 16

2.3.2 Fedora 17

2.3.1 Debian 17

2.3.4 Slackware 18

2.3.3 Mandrake 18

2.4.1 X Window系统 19

2.4 选择软件包 19

2.3.5 SuSe 19

2.3.6 TurboLinux 19

2.4.2 桌面环境 20

2.4.3 联网 21

2.5 设计系统 22

2.4.5 编程语言和工具 22

2.4.4 Office工具 22

2.5.2 磁盘分区 23

2.5.1 运行Linux的方式 23

2.5.3 Linux文件系统 24

2.5.5 引导软盘 26

2.5.4 引导加载程序 26

2.6.1 光盘 27

2.6 获得Linux 27

2.7.1 获得Linux分发版的文档 28

2.7 安装Linux 28

2.6.2 下载 28

2.7.3 分区工具 29

2.7.2 引导 29

2.7.5 系统设置 30

2.7.4 重新设置Windows分区的大小 30

第3章 非程序员使用的GNU实用程序 31

2.7.6 引导加载程序 31

3.2 登录 34

3.1 获得账户 34

3.4 运行GNU实用程序 35

3.3 Shells 35

3.6 获得联机帮助:man 36

3.5 输入、输出和错误通道 36

3.7 特殊字符 38

3.8 设置密码:passwd 39

3.7.2 输入结束:Contro1-D 39

3.7.1 终止进程:Control-C 39

3.9 登出 40

3.11 打印shell的当前工作目录:pwd 41

3.10 浏览文件系统 41

3.12 绝对路径名和相对路径名 42

3.13 创建文件 43

3.14 列出目录内容:ls 44

3.15 列出文件的内容:cat/more/head/tail 45

3.17 创建目录:mkdir 46

3.16 重命名文件:mv 46

3.18 切换目录:cd 47

3.19 复制文件:cp 48

3.21 删除目录:rmdir 49

3.20 编辑文件:vim 49

3.22 删除文件:rm 50

3.23 打印文件:lp/lpstat/cancel 51

3.24 打印文件:lpr/lpq/lprm 52

3.26.1 文件存储空间 54

3.26 文件属性 54

3.25 计算文件字数:wc 54

3.26.6 文件类型 55

3.26.5 文件组 55

3.26.2 文件名 55

3.26.3 文件修改时间 55

3.26.4 文件所有者 55

3.26.7 文件权限 56

3.28 列出组:groups 58

3.27 组 58

3.26.8 硬链接数 58

3.30 修改文件权限:chmod 59

3.29 改变文件组:chgrp 59

3.32 改变组:newgrp 61

3.31 改变文件所有者:chown 61

3.34 确定终端类型:tset 62

3.33 尾声 62

3.35 改变终端的特性:stty 64

3.36.2 文本输入模式 66

3.36.1 启动vim 66

3.36 编辑文件:vim 66

3.36.3 命令模式 67

3.36.6 光标移动 68

3.36.5 常见的编辑功能 68

3.36.4 内存缓冲区和临时文件 68

3.36.7 删除文本 69

3.36.9 粘贴文本 70

3.36.8 替换文本 70

3.36.10 查找 71

3.36.12 保存/加载文件 72

3.36.11 查找/替换 72

3.36.14 自定义vim 73

3.36.13 其他操作 73

3.37.1 启动emacs 74

3.37 编辑文件:emacs 74

3.36.15 保存自定义设置 74

3.37.3 脱困 75

3.37.2 emacs命令 75

3.37.9 移动光标 76

3.37.8 常见编辑功能 76

3.37.4 获得帮助 76

3.37.5 退出emacs 76

3.37.6 emacs的模式 76

3.37.7 输入文本 76

3.37.10 删除、粘贴和撤销 77

3.37.13 保存/加载文件 78

3.37.12 查找/替换 78

3.37.11 查找 78

3.38 电子邮件:mail 79

3.37.14 其他操作 79

3.38.1 发邮件 80

3.38.2 读邮件 81

第4章 特权用户使用的GNU实用程序 82

3.38.3 联系系统管理员 82

4.1 引言 85

4.2.1 过滤模式:egrep/fgrep/grep 86

4.2 过滤文件:egrep,fgrep,grep,uniq 86

4.2.2 删除重复行:uniq 89

4.3 排序文件:sort 90

4.4.1 测试同一性:cmp 92

4.4 比较文件:cmp和diff 92

4.4.2 文件差异:diff 93

4.5 查找文件:find 94

4.6.1 复制文件:cpio 96

4.6 归档文件:cpio,tar和dump/restore 96

4.6.2 磁带归档:tar 98

4.6.3 增量备份:dump和restore 100

4.7 调度命令:crontab和at 101

4.7.1 定期执行:crontab 102

4.7.2 一次性执行:at 103

4.8.1 gawk程序 105

4.8 可编程的文本处理:gawk 105

4.8.3 BEGIN和END 106

4.8.2 访问单个的域 106

4.8.6 控制结构 107

4.8.5 变量 107

4.8.4 运算符 107

4.8.9 域分隔符 108

4.8.8 条件范围 108

4.8.7 扩展的正则表达式 108

4.9 硬链接和软链接:ln 109

4.8.10 内建函数 109

4.11 替换用户:su 111

4.10 标识shell:whoami 111

4.12.1 压缩文件:gzip和gunzip 112

4.12 转换文件 112

4.12.2 流编辑:sed 113

4.12.3 转换字符:tr 117

4.13 查看原始文件内容:od 118

4.12.4 转换下划线序列:ul 118

4.15 标识终端:tty 120

4.14 挂接文件系统:mount和umount 120

4.17 自己编写程序:perl 121

4.16 测试执行时间:time 121

4.17.3 打印文本 122

4.17.2 运行Perl 122

4.17.1 获得Perl 122

4.17.5 数组 123

4.17.4 变量、字符串和整数 123

4.17.6 算术和逻辑运算符 125

4.17.9 if,while和foreach循环结构 126

4.17.8 比较运算符 126

4.17.7 字符串运算符 126

4.17.10 文件 127

4.17.12 库函数 128

4.17.11 函数 128

4.17.13 命令行参数 129

4.17.14 现实世界的例子 130

5.2 选择shell 135

5.1 引言 135

第5章 Linux shell 135

5.3 shell操作 136

5.5 元字符 137

5.4.2 切换目录:cd 137

5.4 可执行文件对内建命令 137

5.4.1 显示信息:echo 137

5.6.1 输出重定向 138

5.6 重定向 138

5.6.2 输入重定向 139

5.7 文件名替换(通配符) 140

5.8 命令替换 142

5.9 序列 143

5.11 后台处理 144

5.10 组合命令 144

5.12 重定向后台进程 145

5.13 shell程序(脚本) 146

5.14 子shell 147

5.15 变量 148

5.17 here文档 150

5.16 引用 150

5.18.1 进程状态:ps 151

5.18 作业控制 151

5.18.2 进程发送信号:kill 154

5.18.3 等待子进程:wait 155

5.19 查找命令:$PATH 156

5.21 终止和退出码 157

5.20 替换标准实用程序 157

5.22.1 eval 158

5.22 通用的核心内建命令 158

5.22.4 umask 159

5.22.3 shift 159

5.22.2 exec 159

6.3 变量 164

6.2 动 164

第6章 Bourne Again shell 164

6.1 引言 164

6.3.1 简单变量的创建/赋值 165

6.3.2 访问简单变量 166

6.3.3 列表变量的创建/赋值 167

6.3.5 建立列表 168

6.3.4 访问列表变量 168

6.3.7 从标准输入读取变量 169

6.3.6 摧毁列表 169

6.3.8 导出变量 170

6.3.9 只读变量 171

6.3.10 预定义变量 172

6.4 命令的快捷方式 173

6.4.2 命令历史 174

6.4.1 别名 174

6.5 代字号替换 176

6.4.3 命令补全 176

6.6 重定向 177

6.8 算术运算 178

6.7 命令替换 178

6.9.2 字符串比较 179

6.9.1 算术测试 179

6.9 条件表达式 179

6.10 控制结构 180

6.9.3 面向文件的表达式 180

6.10.1 case..in..esac 181

6.10.2 if..then..elif..then..else..fi 182

6.10.3 for..do..done 183

6.10.4 while/until..do..done 184

6.10.5 trap 185

6.11.1 使用参数 186

6.11 函数 186

6.11.3 访问函数 187

6.11.2 从函数返回 187

6.11.4 递归 188

6.12 菜单:select 189

6.11.5 共享函数 189

6.13 目录访问和目录堆栈 190

6.14.2 bg 192

6.14.1 指定作业 192

6.14 作业控制 192

6.15 命令行选项 193

6.14.4 kill 193

6.14.3 fg 193

7.1 引言 196

第7章 Korn shell 196

7.2 启动 197

7.3.1 变量的创建/赋值 198

7.3 变量 198

7.3.2 访问变量 199

7.3.3 从标准输入读取变量 200

7.3.4 导出变量 201

7.3.6 预定义的局部变量 202

7.3.5 只读变量 202

7.3.7 预定义的环境变量 203

7.4.2 删除别名 204

7.4.1 给内建命令指定别名 204

7.4 别名 204

7.4.5 被跟踪的别名 205

7.4.4 几个有用的别名 205

7.4.3 预定义的别名 205

7.4.6 共享别名 206

7.5.3 命令重执行 207

7.5.2 命令的存储 207

7.5 历史 207

7.5.1 命令的编号 207

7.5.4 编辑命令 208

7.6.1 内建的vi编辑器 209

7.6 编辑命令 209

7.7 算术运算 211

7.6.2 内建的emacs/gmacs编辑器 211

7.7.1 防止元字符的特殊解释 212

7.8 代字号替换 213

7.7.2 测试值 213

7.9 菜单:select 214

7.10 函数 215

7.10.2 从函数返回 216

7.10.1 使用参数 216

7.10.5 递归 217

7.10.4 局部变量 217

7.10.3 上下文 217

7.11 作业控制 218

7.10.6 共享函数 218

7.11.2 指定作业 219

7.11.1 jobs 219

7.11.5 kill 220

7.11.4 Fg 220

7.11.3 bg 220

7.12.1 重定向 221

7.12 增强功能 221

7.12.4 变量 222

7.12.3 命令替换 222

7.12.2 管道 222

7.12.5 内建命令 227

7.13 示范项目:junk 232

7.14 命令行选项 234

8.2 启动 238

8.1 引言 238

第8章 C shell 238

8.3.1 简单变量的创建/赋值 239

8.3 变量 239

8.3.3 列表变量的创建/赋值 240

8.3.2 访问简单变量 240

8.3.5 建立列表 241

8.3.4 访问列表变量 241

8.3.6 预定义局部变量 242

8.4.1 字符串表达式 243

8.4 表达式 243

8.3.7 环境变量的创建/赋值 243

8.3.8 预定义的环境变量 243

8.4.2 算术表达式 244

8.4.3 面向文件的表达式 245

8.6 命令编辑 246

8.5 文件名补全 246

8.7 别名 247

8.7.4 带参数的别名 248

8.7.3 共享别名 248

8.7.1 删除别名 248

8.7.2 有用的别名 248

8.8.3 读取历史 249

8.8.2 命令的存储 249

8.8 历史 249

8.8.1 命令的编号 249

8.8.5 访问历史的某个部分 250

8.8.4 命令重执行 250

8.8.6 访问文件名的某个部分 251

8.9 控制结构 252

8.8.7 历史替换 252

8.9.2 goto 253

8.9.1 foreach..end 253

8.9.3 if..then..else..endif 254

8.9.5 repeat 255

8.9.4 onintr 255

8.9.6 switch..case..endsw 256

8.9.7 while..end 257

8.10 示例项目:junk 258

8.11.1 元字符:{} 260

8.11 增强功能 260

8.11.3 重定向 261

8.11.2 文件名替换 261

8.11.5 作业控制 262

8.11.4 管道 262

8.12.1 chdir 264

8.12 内建命令 264

8.11.6 终止登录shell 264

8.13 目录堆栈 265

8.12.3 source 265

8.12.2 glob 265

8.14 命令行选项 267

9.2.1 以太网 270

9.2 组网 270

第9章 联网与Internet 270

9.1 引言 270

9.2.3 路由器 271

9.2.2 网桥 271

9.3 网络互联 272

9.2.4 网关 272

9.3.2 IP地址 273

9.3.1 包交换 273

9.3.5 安全 274

9.3.4 路由 274

9.3.3 命名 274

9.4 标识网络用户 276

9.3.7 网络编程 276

9.3.6 端口和常见服务 276

9.4.2 更详细的用户列表:who和w 277

9.4.1 列出用户:users 277

9.4.4 个人数据:finger 278

9.4.3 本地主机名:hostname 278

9.5.2 一次发送一行文本:write 279

9.5.1 屏蔽通信:mesg 279

9.5 与网络用户通信 279

9.5.4 把消息发送给所有用户:wall 280

9.5.3 互动交谈:talk 280

9.6.1 在两台Linux或UNIX主机间复制文件:rcp和scp 281

9.6 分发数据 281

9.6.2 在非Linux/UNIX主机间复制文件:ftp和sftp 282

9.7.1 远程登录:rlogin和slogin 284

9.7 分布式处理 284

9.7.3 远程连接:telnet 285

9.7.2 执行远程命令:rsh和ssh 285

9.8 Internet的演变 287

9.8.2 Intenet的标准化——20纪70年代 288

9.8.1 开端——20世纪60代 288

9.8.3 重新架构和重新命名Internet——20世纪90代 290

9.8.4 web——20 世纪90代 293

9.9.2 web搜索 297

9.9.1 URL 297

9.9 使用当今的Internet 297

9.9.3 查找用户和域 298

10.1 引言 300

第10章 Linux桌面 300

10.2 X服务器 301

10.1.2 MIT 301

10.1.1 图形用户界面 301

10.2.2 安全性和授权 302

10.2.1 屏幕几何学 302

10.3 桌面环境 303

10.3.3 KDE 304

10.3.2 GNOME 304

10.3.1 CDE 304

10.4.2 程序启动 305

10.4.1 焦点 305

10.4 窗口管理器 305

10.4.4 选择 306

10.4.3 打开和关闭窗口 306

10.5.1 菜单 308

10.5 控件 308

10.5.4 滚动条 309

10.5.3 复选框/单选按钮 309

10.5.2 按钮 309

10.6.3 最小化窗口 310

10.6.2 打开和关闭窗口 310

10.6 桌面操作 310

10.6.1 弹出根菜单 310

10.7.1 xclock 311

10.7 客户端应用程序 311

10.6.4 最大化窗口 311

10.6.5 移动窗口 311

10.6.6 重新调整窗口大小 311

10.6.7 升起或降低窗口 311

10.6.8 弹出窗口菜单 311

10.8.1 几何学 312

10.8 X客户端的标准参数 312

10.7.2 xterm 312

10.9.1 复制和粘贴 313

10.9 高级话题 313

10.8.2 前景和背景 313

10.8.3 标题 313

10.8.4 iconic 313

10.9.2 联网功能 314

10.9.3 应用程序资源 315

11.1 C语言 318

第11章 C编程工具 318

11.3 单模块程序 319

11.2 C编译器 319

11.3.1 编译C程序 320

11.3.3 运行C程序 321

11.3.2 修改的程序清单 321

11.4.2 创建可重用的函数 322

11.4.1 可重用的函数 322

11.3.4 覆盖默认的可执行文件名 322

11.4 多模块程序 322

11.4.4 重用反向函数 324

11.4.3 分别编译和连接模块 324

11.5 归档模块:ar 325

11.5.3 获得内容表 326

11.5.2 追加文件 326

11.5.1 创建或添加文件 326

11.5.6 从命令行维护归档 327

11.5.5 抽取文件 327

11.5.4 删除文件 327

11.6 管理依赖性:make 328

11.5.8 共享库 328

11.5.7 建立归档索引 328

11.6.1 makefile 329

11.6.3 运行make 330

11.6.2 make规则的次序 330

11.6.4 make规则 331

11.6.6 宏 332

11.6.5 强制编译 332

11.6.7 使用make维护归档 333

11.7 GNU分析器:gprof 334

11.6.8 make的其他功能 334

11.8 调试器:gdb 335

11.8.2 进入调试器 336

11.8.1 准备程序进行调试 336

11.8.3 运行程序 337

11.8.4 列出程序 338

11.8.5 设置断点 339

11.8.7 检查变量值 341

11.8.6 单步执行代码 341

11.8.8 问题所在 342

11.9 移除特殊代码:strip 343

12.1 引言 346

第12章 系统编程 346

12.2 错误处理:perror() 347

12.3.1 文件管理基础知识 349

12.3 普通文件的管理 349

12.3.2 第一个例子:reverse 350

12.3.3 reverse的工作原理 351

12.3.4 reverse.c:程序清单 352

12.3.5 打开文件:open() 356

12.3.6 读文件:read() 357

12.3.7 写文件:write() 358

12.3.8 在文件中移动:lseek() 359

12.3.10 删除文件:unlink() 360

12.3.9 关闭文件:close() 360

12.3.11 第二个例子:monitor 361

12.3.13 monitor.c:清单 362

12.3.12 monitor的工作方式 362

12.3.14 获得文件信息:stat() 369

12.3.15 读目录信息:opendir(),readdir()和closedir() 370

12.3.17 改变文件所有者/文件组:chown() 371

12.3.16 其他各种文件管理系统调用 371

12.3.19 复制文件描述符:dup() 372

12.3.18 修改文件权限:chmod() 372

12.3.20 文件描述符操作:fcntl() 373

12.3.21 控制设备:ioctl() 374

12.3.22 创建硬链接:link() 375

12.3.24 清空文件系统缓冲区:sync() 376

12.3.23 创建特殊文件:mknod(),mkdir()和mkfifo() 376

12.4 进程管理 377

12.3.25 截短文件:truncate() 377

12.4.1 创建新进程:fork() 378

12.4.2 孤儿进程 380

12.4.3 终止进程:exit() 381

12.4.5 等待子进程:wait() 382

12.4.4 僵尸进程 382

12.4.6 区分进程:exec 383

12.4.7 改变目录:chdir() 384

12.4.8 改变优先级:nice() 385

12.4.10 示例程序:后台处理 386

12.4.9 访问用户ID和组ID 386

12.4.11 重定向 387

12.5 信号 388

12.5.3 POSIX信号 389

12.5.2 定义的信号 389

12.5.1 信号类型 389

12.5.6 处理信号:signal() 390

12.5.5 请求闹钟信号:alarm() 390

12.5.4 终端信号 390

12.5.8 发送信号:kill() 392

12.5.7 保护关键代码,束缚中断处理程序 392

12.5.9 子进程的死亡 393

12.5.10 挂起和恢复进程 394

12.5.11 进程组和控制终端 395

12.6.1 管道 399

12.6 进程间通信 399

12.6.2 套接字 405

13.1 引言 425

第13章 Linux内核 425

13.2.1 核子系统 426

13.2 内核基本 426

13.2.4 系统调用 427

13.2.3 和内核交流 427

13.2.2 进程和文件 427

13.2.5 用户模式和内核模式 428

13.2.6 同步与非同步处理 429

13.3.1 磁盘架构 431

13.3 文件系统 431

13.2.7 对中断的中断 431

13.3.3 i节点 434

13.3.2 虚拟文件系统 434

13.3.4 文件系统的布局 436

13.3.5 坏块 437

13.3.7 把路径名转换为i节点号 438

13.3.6 目录 438

13.3.8 挂接文件系统 439

13.4.1 可执行文件 440

13.4 进程管理 440

13.4.5 进程状态 441

13.4.4 进程层次结构 441

13.4.2 第一批进程 441

13.4.3 内核进程和用户进程 441

13.4.6 处理内核数据 442

13.4.7 任务列表 443

13.5.1 页表 444

13.5 虚拟内存 444

13.4.8 调度程序 444

13.5.3 内存-映射文件 445

13.5.2 调页 445

13.5.5 分配和收回 446

13.5.4 交换 446

13.6 输入和输出 447

13.5.7 复制进程:fork() 447

13.5.6 加载可执行文件:execl()/execv() 447

13.6.3 I/O缓冲 448

13.6.2 I/O系统调用 448

13.6.1 I/O对象 448

13.6.4 普通文件I/O 449

13.6.5 目录文件I/O 451

13.6.7 文件名的转换 452

13.6.6 挂接文件系统 452

13.6.8 特殊文件I/O 453

13.7.1 信号 455

13.7 进程间通信 455

13.7.2 管道 457

13.7.3 套接字 458

14.2.2 使用sudo 462

14.2.1 使用su 462

第14章 系统管理 462

14.1 引言 462

14.2 成为超级用户 462

14.3.1 Linux内核 463

14.3 启动Linux 463

14.3.4 引导脚本 464

14.3.3 init 464

14.3.2 运行级别 464

14.5.1 文件系统的完整性 465

14.5 维护文件系统 465

14.4 停止Linux 465

14.5.2 磁盘空间 466

14.5.3 创建新的文件系统 467

14.6 维护用户账户 468

14.5.4 备份文件系统 468

14.6.1 密码文件 469

14.7 安装新软件 470

14.6.2 组文件 470

14.8 外部设备 471

14.10 自动执行任务 472

14.9 网络接口 472

14.11.1 /proc文件系统 473

14.11 可调优的内核参数 473

14.12 安全性问题 474

14.11.2 sysctl实用程序 474

A.1.1 文本 477

附录A 正则表达式与系统函数A.1 正则表达式 477

A.2 扩展的正则表达式 478

A.1.2 模式 478

A.3 修改的Backus-Naur符号 479

A.4 实用程序和内建的shell命令 480

A.5 系统调用和库函数 484