《Linux就是这个范儿》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:赵鑫磊,(加)张洁(jiezhang)著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:7115359360
  • 页数:728 页
图书介绍:

第一部分 基础篇 2

第1章 第一次亲密接触 2

1.1让Linux入驻我们的电脑 2

1.1.1我们用Linux的理由 3

1.1.2选择哪个发行版 4

1.1.3安装系统 6

1.1.4登录系统 15

1.2不一样的图形操作 15

1.2.1没有图形的图形 15

1.2.2架构设计 17

1.3主流桌面环境 18

1.3.1KDE初学者的首选 18

1.3.2GNOME不可磨灭的经典 20

1.3.3XFCE——轻量、简单、高效 21

1.3.4LXDE——更轻,同样精悍 21

1.4返璞归真的命令行 22

1.4.1开始执行命令 22

1.4.2文本和图形的切换 23

1.4.3基础命令的操作 23

1.4.4快捷键 26

1.4.5错误信息 28

1.4.6联机帮助——man很靠谱 30

1.4.7致命的Linux命令 31

1.5结束语 32

第2章 融于心而表于行 33

2.1多用户多任务分时操作系统 33

2.2用户的身份 35

2.2.1澡堂子模型 35

2.2.2理解用户角色 36

2.2.3/etc/passwd文件查看用户 37

2.2.4/etc/group文件查看组 38

2.2.5管理用户和组 39

2.2.6夺面双雄——利用sudo假借身份 41

2.2.7我是谁? 44

2.3文件和它与权限的关系 45

2.3.1目录与文件 46

2.3.2文件属性和权限 47

2.3.3文件连接到底是什么 49

2.3.4修改文件的属性和权限 51

2.3.5深入文件权限 52

2.3.6文件的基本操作 54

2.3.7搜索文件 55

2.3.8对文件打包压缩 57

2.4程序的执行问题 58

2.4.1执行程序的方法,以及多任务协调机制 58

2.4.2计划任务 62

2.4.3守护进程及其作用 64

2.4.4全面了解程序信息 66

2.5软件的安装方式 71

2.5.1从源代码安装软件 71

2.5.2利用软件管理工具rpm和dpkg 72

2.5.3更酷的线上升级 73

2.6磁盘的管理方式 76

2.6.1Linux的文件系统——甩Windows几条街 76

2.6.2磁盘的基本操作 78

2.6.3/etc/fstab文件——决定分区的连接 83

2.6.4弹性调整容量——逻辑卷 85

2.7解决上网问题 90

2.7.1了解IP地址 90

2.7.2相关配置文件 91

2.7.3安装网卡 92

2.7.4手工设定IP地址 92

2.7.5自动获取IP地址 93

2.7.6固定IP上网方式 93

2.7.7ADSL拨号上网方式 94

2.8不能割舍的shell 96

2.8.1勤勤恳恳的bash 96

2.8.2环境变量 98

2.8.3bash的配置文件 98

2.9文本处理 101

2.9.1查看文本内容 101

2.9.2正则表达式 101

2.9.3搜索文本的grep 104

2.9.4排序和去重 105

2.9.5文件对比命令——diff 105

2.10结束语 107

第3章 一棵“树”的奥秘 108

3.1Linux的文件组织结构 109

3.2基本组织原则 110

3.3根文件系统 111

3.3.1原则与特性 111

3.3.2必备的内容 112

3.3.3可选的内容 113

3.4子目录 113

3.4.1/bin目录——shell命令 113

3.4.2/boot目录——启动过程所需内容 115

3.4.3/dev目录——设置文件 116

3.4.4/etc目录——配置文件 116

3.4.5/home目录——用户专有 118

3.4.6/lib目录——共享库和内核模块 119

3.4.7/media目录——可移动设备 119

3.4.8/mnt目录——临时挂接 120

3.4.9/opt目录——附加软件包 120

3.4.10/root目录——root专有 120

3.4.11/sbin目录——必备的系统软件 121

3.4.12/srv目录——服务进程所需数据 121

3.4.13/tmp目录——临时文件 122

3.5/usr目录组织结构 122

3.5.1/usr/bin目录 123

3.5.2/usr/include目录 123

3.5.3/usr/lib目录 123

3.5.4/usr/local目录 123

3.5.5/usr/sbin目录 124

3.5.6/usr/share目录 124

3.5.7/usr/share/man目录 125

3.5.8/usr/share/misc目录 126

3.6/var目录组织结构 127

3.6.1/var/account目录 128

3.6.2/var/cache目录 128

3.6.3/var/lib目录 128

3.6.4/var/lock目录 128

3.6.5/var/log目录 129

3.6.6/var/mail目录 129

3.6.7/var/opt目录 129

3.6.8/var/run目录 129

3.6.9/var/spool目录 130

3.6.10/var/tmp目录 130

3.7结束语 130

第4章 “笨”出来的文化和哲学 131

4.1Unix的文化和哲学 133

4.2“四大笨”之一:万般皆文本 134

4.2.1二进制的烦恼 135

4.2.2文本的快乐 135

4.2.3文本之于配置文件 136

4.2.4文本之于程序组合 137

4.2.5文本之于通信协议 138

4.2.6硬件也文本 138

4.3“四大笨”之二:四处用脚本 139

4.3.1富饶的脚本语言 139

4.3.2为什么不是C 140

4.3.3脚本的不足和混合编程 141

4.3.4强力胶水 141

4.3.5极端的例子 143

4.3.6软件的适度规模 143

4.4“四大笨”之三:规律无处寻 144

4.4.1机制与策略 145

4.4.2接口与引擎 145

4.4.3不用重新造轮子 146

4.4.4内在的支持 146

4.4.5沉默是金,吝啬是银 147

4.5“四大笨”之四:配置乱生根 148

4.5.1什么是不可配的 148

4.5.2配置三元素 149

4.5.3配置文件 150

4.5.4环境变量 151

4.5.5命令行选项 152

4.6什么样的文化 154

4.6.1“傻x”的精明 154

4.6.2“简单”不简单 155

4.7这一切的基础大师的阐释 156

第5章 shell脚本编程 159

5.1第一个shell脚本程序 159

5.2编程的基本要素 160

5.2.1变量 162

5.2.2运算 164

5.2.3流程控制 165

5.2.4自定义函数 169

5.3输入和输出 172

5.3.1基本的输出 172

5.3.2命令行参数 172

5.3.3使用read读取文本行 173

5.3.4文件描述符 174

5.3.5格式化输出 175

5.4调试跟踪 175

5.4.1空变量问题 175

5.4.2缺引号问题 176

5.4.3隔离问题 176

5.4.4echo普通中见“伟大” 177

5.4.5“-x”跟踪问题本领高 177

5.4.6assert函数 177

5.4.7Caller命令 178

5.4.8trap命令 178

5.5高级特性 180

5.5.1波浪号“~” 180

5.5.2通配符 180

5.5.3元字符 181

5.5.4转义符 182

5.5.5命令替换 183

5.5.6运算优先级 183

5.5.7文件包含 184

5.5.8eval语句 185

5.5.9内建命令 186

5.6shell脚本编程实战 187

5.6.1守护进程的启动脚本 187

5.6.2读取数据文件和平滑启动nginx 188

第6章 微型语言 194

6.1什么是微型语言 194

6.2软件管理的RPM 196

6.2.1构建你的第一个RPM包 197

6.2.2工作原理——分析Spec文件 199

6.2.3依赖关系 203

6.2.4个软件多个包 204

6.2.5小结 206

6.3制作联机帮助文档的Groff 206

6.3.1Groff简介 207

6.3.2Groff的工作方式 208

6.3.3如何制作一份联机帮助文档 213

6.3.4导出联机帮助文档 219

6.3.5小结 220

6.4把文本当数据库的awk 221

6.4.1使用方法 221

6.4.2基本概念 222

6.4.3注释与空白 223

6.4.4字符串 223

6.4.5数值 225

6.4.6变量 228

6.4.7模式与行为 229

6.4.8行为语句 231

6.4.9小结 237

6.5神奇的计算器dc和bc 238

6.5.1历史渊源——最古老的Unix语言dc 238

6.5.2dc简介 239

6.5.3更为常用的bc 244

6.5.4小结 250

6.6不为人知的m4 250

6.6.1m4的历史 251

6.6.2m4的特性 252

6.6.3从Hello World开始 253

6.6.4工作方式 255

6.6.5小结 257

6.7结束语 258

第7章 编辑器的纷争 259

7.1独步青云的vi 260

7.1.1我为vi狂 260

7.1.2vi的使用 261

7.1.3vi的高级功能 264

7.1.4跟我一起打造一个IDE 266

7.2横刀立马的Emacs 274

7.2.1 Emacs的来历 274

7.2.2 Emacs的基本使用 275

7.2.3使用Emacs必知必会 278

7.2.4 Lisp语言 279

7.2.5处理中文问题 283

7.2.6跟我一起打造一个IDE 283

7.3结束语 285

第8章 我是Makefile 286

8.1 GNU make及其基本用法 288

8.2基本概念 289

8.2.1第一个Makefile例子 290

8.2.2目标、条件和命令 291

8.2.3依赖 292

8.2.4工作方式 292

8.2.5基本语法 293

8.3认识规则 294

8.3.1标准规则 294

8.3.2隐式规则 294

8.3.3变量 295

8.3.4自动变量 297

8.3.5模式规则 299

8.3.6假目标 300

8.3.7路径搜索 302

8.4高级特性 303

8.4.1文件包含 303

8.4.2命令 305

8.4.3深入变量 307

8.4.4宏与函数 310

8.4.5条件指令 311

8.5Makefile实战 312

8.5.1自动产生依赖 312

8.5.2递归式的Makefile 315

8.5.3自动产生Makefile 317

8.6结束语 323

第二部分 进阶篇 326

第9章 特种文件系统 326

9.1日志和ReiserFS 326

9.1.1理解日志 327

9.1.2 ReiserFS——卓越的小文件性能与渺茫的未来 328

9.1.3应用实战 331

9.1.4小结 331

9.2进程文件系统procfs 331

9.2.1神秘的9号计划 332

9.2.2/proc目录 333

9.2.3procfs实战 335

9.2.4小结 339

9.3tmpfs——满足你对“时空”的双重渴望 339

9.3.1背景 340

9.3.2 tmpfs文件系统 341

9.3.3 tmpfs实战 341

9.4 devfs和sysfs 345

9.4.1 devfs的由来 345

9.4.2进入devfs 346

9.4.3 sysfs的由来 347

9.4.4小结 348

9.5其他特种文件系统 348

9.5.1 RelayFS 348

9.5.2 debugfs 349

9.6结束语 349

第10章 生死与共的“兄弟” 351

10.1死心眼儿的BIOS 352

10.2小肚鸡肠的MBR(主引导记录) 353

10.2.1 MBR的结构 353

10.2.2磁盘分区表 353

10.2.3 MBR的功能 355

10.3和事佬GRUB(牛B的统一引导加载器) 355

10.3.1Bootloader 355

10.3.2GRUB的功能 356

10.3.3GRUB的工作流程 357

10.4唇齿相依的内核启动参数 358

10.4.1什么是内核启动参数 358

10.4.2内核启动参数的格式 359

10.4.3常用的内核启动参数 359

10.5自力更生的Linux内核 360

10.5.1内核引导协议 360

10.5.2内核为什么要压缩 360

10.5.3 startup_32 361

10.5.4 start_kernel 362

10.5.5 kernel_init 362

10.6及时雨initramfs 363

10.6.1寻找init的问题 363

10.6.2较早的initrd 363

10.6.3为什么选择initramfs 364

10.7“生”、“死”永相伴的init进程 364

10.7.1名不副实 364

10.7.2运行级别 365

10.7.3进入运行级别之前 368

10.7.4进入运行级别 369

10.7.5转换运行级别 371

10.8幕后英雄们 371

10.8.1终端 372

10.8.2 getty系列命令 372

10.8.3 Display Manager 373

10.8.4伪终端 374

10.8.5配置文件 374

10.9结束语 375

第11章 独霸网络的“蜘蛛神功” 376

11.1功夫理论:网络知识 376

11.2“蜘蛛神功”第一层:网络工具 378

11.2.1马步:ifconfig 378

11.2.2掌法:route 380

11.2.3腿功:netstat 381

11.2.4眼力:DNS二把刀 383

11.2.5身法:tcpdump 385

11.3“蜘蛛神功”第二层:套接字 387

11.4内功心法:TC/IP协议栈初探 388

11.4.1枯树盘根:系统调用 388

11.4.2凝神静态:sockfs文件系统 390

11.4.3气沉丹田:sk_buff 392

11.5临战杂谈 397

11.5.1对UDP的错误的认识 398

11.5.2事半功倍,调节内核参数 399

第12章 一个网络一个世界 402

12.1You’ve Got a Mail 402

12.1.1 Email服务模式 402

12.1.2架设Postfix服务器 405

12.1.3 Email故事的结局 409

12.2联接世界的Web应用 409

12.2.1 Web服务器 410

12.2.2数据库 412

12.2.3解释型语言 413

12.2.4架设Web服务器 414

12.3铜墙铁壁真功夫——Linux内核集成的IP信息包过滤系统 419

12.3.1 iptables 420

12.3.2 netfilter 423

12.3.3实践出真知 426

12.3.4小盒子的秘密 427

12.4分享文件的乐趣 434

12.4.1 NFS 438

12.4.2 Samba 442

12.5在虚拟与现实之间穿梭——实现安全的连接 446

12.5.1 VPN实现方式 447

12.5.2 IPSec VPN 448

12.5.3 SSL VPN 452

第13章 打通任督二脉 455

13.1了解网络驱动 455

13.1.1网络设备闲谈 455

13.1.2 ioctl这把刷子 456

13.1.3设备驱动的秘密 459

13.2无线风光在险峰 461

13.2.1 WLAN 461

13.2.2 Bluetooth 466

13.2.3 NFC——近距无线通信 469

13.2.4谜底 474

13.3奇迹是执着创造出来的 474

13.3.1从2.4到2.6 474

13.3.2从2.6到3.0 477

第14章 身在江湖 479

14.1C2级安全认证 479

14.2Linux的安全问题 480

14.2.1黑客入侵 480

14.2.2“病毒泛滥” 482

14.2.3拒绝服务攻击 483

14.2.4小结 484

14.3 PAM用户认证机制 485

14.3.1什么是PAM(可拔插认证模块) 485

14.3.2PAM的体系结构 485

14.3.3配置PAM 487

14.3.4密码映射 494

14.4应用PAM API 495

14.4.1开发概述 495

14.4.2PAM事务 496

14.4.3事务属性 498

14.4.4用户认证 499

14.4.5认证凭证 500

14.4.6PAM会话 501

14.4.7用户认证流程 502

14.4.8模块开发 507

14.4.9密码的保存 508

14.5安全增强系统 509

14.5.1主动访问控制DAC 509

14.5.2强制访问控制MAC 510

14.5.3 SELinux——Linux的MAC实现 511

14.6结束语 515

第15章 七种武器 516

15.1长生剑:fork 516

15.1.1从线程说起 516

15.1.2古老而充满活力的进程 520

15.1.3多进程程序开发 523

15.1.4进程间通信的实现 531

15.2离别钩:VFS 537

15.2.1一切都是文件 538

15.2.2一棵有生命的“树” 538

15.2.3VFS简介 539

15.2.4基本数据结构 540

15.2.5sockfs 541

15.3孔雀翎:mmap(内存映射) 543

15.3.1理解mmap 543

15.3.2虚拟内存技术 544

15.3.3应用mmap 548

15.4碧玉刀:epoll(增强I/O复用) 553

15.4.1C10K问题 553

15.4.2epoll的优点 554

15.4.3epoll的工作模式 555

15.4.4正确使用epoll 556

15.4.5用epoll解决C100K问题 561

15.5多情环:udev 564

15.5.1设计理念 564

15.5.2基本构成 565

15.5.3配置文件 566

15.5.4规则 566

15.6霸王枪:LVS 567

15.6.1负载均衡 567

15.6.2一个中国人的勇气 569

15.6.3 LVS的特点 570

15.6.4 LVS的工作模式 571

15.6.5 LVS的负载均衡调度算法 576

15.7拳头:module 578

15.7.1内核中的Web服务 578

15.7.2编写你的第一个module 579

15.7.3 module与普通程序的不同 582

15.7.4 module与用户通信 584

15.7.5内核加载module的原理 590

15.8结束语 592

第16章 谁都可以从头再来——从头开始编译一套Linux系统 593

16.1初识工具链——准备环境的必备工具 594

16.1.1编译器 594

16.1.2连接器 594

16.1.3程序库 595

16.1.4工具链——破解奇特的四角恋 595

16.2准备环境 596

16.2.1宿主系统环境 597

16.2.2生成工具链的binutils 598

16.2.3生成工具链的gcc 599

16.2.4生成工具链的glibc 600

16.2.5解决工具链的一些问题 603

16.2.6第二次生成工具链的binutils 604

16.2.7第二次生成工具链的gcc 605

16.2.8丰富工具链的功能 608

16.2.9整理工具链 610

16.2.10小结 610

16.3生成目标系统的运行环境 611

16.3.1准备工作 611

16.3.2安装glibc 614

16.3.3调整工具链 617

16.3.4安装binutils 617

16.3.5安装gcc 618

16.3.6安装其他基础设施 620

16.3.7系统启动脚本 622

16.3.8结束语 623

16.4定制Linux内核 623

16.4.1内核的make参数 624

16.4.2定制界面 625

16.4.3编译与安装 626

16.5独立运行 627

16.5.1/etc/fstab文件 627

16.5.2使用GRUB配置启动过程 627

16.6结束语 628

第三部分 扩展篇 630

第17章 窈窕淑女君子好逑 630

17.1女人心事难捉摸——Linux图形环境 630

17.1.1X Window 630

17.1.2桌面系统 638

17.1.3XOrg 639

17.2云想衣裳花想容——Qt与GTK 644

17.2.1发展历史 644

17.2.2GTK与Qt的比较 646

17.2.3大家闺秀Qt 648

17.2.4小鸟依人GTK 657

第18章 这里也是鼓乐笙箫 667

18.1与多媒体的第一次握手 667

18.1.1听声 668

18.1.2看影 669

18.1.3多媒体工作室 674

18.2鼓——ffmpeg 676

18.2.1羞辱柱与软件许可 676

18.2.2多媒体的来龙去脉 678

18.2.3家庭成员 684

18.3乐——MPlayer与VLC 685

18.3.1绿色的MPlayer 685

18.3.2浪漫的VLC 687

18.4笙——FrameBuffer 690

18.4.1原理 691

18.4.2设置FrameBuffer 691

18.4.3文字倒置滚动 692

18.5箫——V4L2与ALSA 697

18.5.1V4L2 698

18.5.2ALSA 703

18.6结束语 707

第19章 团结就是力量 708

19.1标准的前世今生 708

19.1.1一场拆分引发的标准 708

19.1.2站在POSIX肩膀上的LSB 709

19.1.3工作组 711

19.1.4标准化流程 712

19.2认证 713

19.3工具 714

19.3.1LSB SDK 715

19.3.2App Checker 716

19.3.3Distribution Checker 718

19.3.4LSB Navigator 720

19.3.5lsb release的规范定义和实现 720

19.4LSB的前世今生 721

19.4.1吃一堑,长一智 722

19.4.2“哥只是个传说” 723

19.4.3意气风发的LSB5.0 724

19.5结束语 724

附录 我的Linux,我做主 725