万本电子书0元读

万本电子书0元读

顶部广告

精通Linux(第2版)电子书

  Linux是了解操作系统工作机制的**平台。我们大多数人都用了多年电脑,但对电脑背后的工作机制却一无所知,而本书就是解除这一困惑的绝好途径。本书能让你对使用的计算机有所了解,熟悉软件的基本工作原理,以及理解系统作为一个整体是如何工作的。根据系统启动的大体顺序,本书深介绍了从设备管理到网络配置的各个部分,演示了系统各部分的运行方式,并介绍了一些基本技巧和发人员常用的工具。

售       价:¥

纸质售价:¥40.70购买纸书

445人正在读 | 0人评论 6.2

作       者:沃德(Brian Ward)

出  版  社:人民邮电出版社

出版时间:2015-07-01

字       数:26.7万

所属分类: 科技 > 计算机/网络 > 计算机教材

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
  本书讲解了Linux操作系统的工作机制以及运行Linux系统所需的常用工具和命令。根据系统启动的大体顺序,本书更深地介绍从设备管理到网络配置的各个部分,最后演示了系统各部分的运行方式,并介绍了一些基本技巧和发人员常用的工具。   Linux不像其他操作,会对用户隐藏很多重要的东西。相反,Linux会让用户掌控一切。而要掌控一切,就必须理解这个操作系统的工作机制,包括如何启动、如何连网,以及Linux内核如何工作。本书是畅销书的新版本,作者拥有多年的实践经验,内容通俗易懂。通过这本书,读者可以迅速从Linux新手变成老鸟,把作者丰富的经验装自己的知识库。 本书讲解了Linux操作系统的工作机制以及运行Linux系统所需的常用工具和命令。根据系统启动的大体顺序,本书更深地介绍从设备管理到网络配置的各个部分,最后演示了系统各部分的运行方式,并介绍了一些基本技巧和发人员常用的工具。 Linux不像其他操作,会对用户隐藏很多重要的东西。相反,Linux会让用户掌控一切。而要掌控一切,就必须理解这个操作系统的工作机制,包括如何启动、如何连网,以及Linux内核如何工作。本书是畅销书的新版本,作者拥有多年的实践经验,内容通俗易懂。通过这本书,读者可以迅速从Linux新手变成老鸟,把作者丰富的经验装自己的知识库。
【推荐语】
Linux是了解操作系统工作机制的**平台。我们大多数人都用了多年电脑,但对电脑背后的工作机制却一无所知,而本书就是解除这一困惑的绝好途径。本书能让你对使用的计算机有所了解,熟悉软件的基本工作原理,以及理解系统作为一个整体是如何工作的。根据系统启动的大体顺序,本书深介绍了从设备管理到网络配置的各个部分,演示了系统各部分的运行方式,并介绍了一些基本技巧和发人员常用的工具。 我们学习Linux的原因可能各不相同。对于IT从业者(如系统运维人员)来说,他们需要了解本书中的几乎所有内容。对于Linux软件架构和发人员来说,他们同样需要了解这些内容,以便发挥操作系统的**功效。对于研究人员和学生来说,本书能够让他们理解为什么我们要这样设置系统。本书菜鸟与老鸟通吃,既可作为菜鸟的门教程,也可以作为老鸟的阶指南。
【作者】
Brian Ward毕业于芝加哥大学,获计算机科学博士学位。1993年始触Linux,研究并教授Linux二十余年。除了这本深受读者喜爱的书,Brian还著有Linux Kernel-HOWTO(No Starch Press)、The Linux Problem Solver(No Starch Press)等畅销著作。现居旧金山,身兼计算机高级顾问与高级讲师等数职。
目录展开

前言

读者对象

阅读要求

阅读方法

动手操作

本书结构

第2版的新内容

关于术语

致谢

第一版书评

第1章 概述

1.1 Linux 操作系统中的抽象级别和层次

1.2 硬件系统:理解主内存

1.3 内核

1.3.1 进程管理

1.3.2 内存管理

1.3.3 设备驱动程序和设备管理

1.3.4 系统调用和系统支持

1.4 用户空间

1.5 用户

1.6 前瞻

第2章 基础命令和目录结构

2.1 Bourne shell: /bin/sh

2.2 shell的使用

2.2.1 shell窗口

2.2.2 cat命令

2.2.3 标准输入输出

2.3 基础命令

2.3.1 ls命令

2.3.2 cp命令

2.3.3 mv命令

2.3.4 touch命令

2.3.5 rm命令

2.3.6 echo命令

2.4 浏览目录

2.4.1 cd命令

2.4.2 mkdir命令

2.4.3 rmdir命令

2.4.4 shell通配符

2.5 中间命令

2.5.1 grep命令

2.5.2 less命令

2.5.3 pwd命令

2.5.4 diff命令

2.5.5 file命令

2.5.6 find和locate命令

2.5.7 head和tail命令

2.5.8 sort命令

2.6 更改密码和shell

2.7 dot文件

2.8 环境变量和shell变量

2.9 命令路径

2.10 特殊字符

2.11 命令行编辑

2.12 文本编辑器

2.13 获取在线帮助

2.14 shell输入输出

2.14.1 标准错误输出

2.14.2 标准输入重定向

2.15 理解错误信息

2.15.1 解析Unix的错误信息

2.15.2 常见错误

Not a directory, Is a directory

2.16 查看和操纵进程

2.16.1 命令选项

2.16.2 终止进程

2.16.3 任务控制

2.16.4 后台进程

2.17 文件模式和权限

2.17.1 更改文件权限

2.17.2 符号链接

2.17.3 创建符号链接

2.18 归档和压缩文件

2.18.1 gzip命令

2.18.2 tar命令

2.18.3 压缩归档文件(.tar.gz)

2.18.4 zcat命令

2.18.5 其他的压缩命令

2.19 Linux目录结构基础

2.19.1 root目录下的其他目录

2.19.2 /usr目录

2.19.3 内核位置

2.20 以超级用户的身份运行命令

2.20.1 sudo命令

2.20.2 /etc/sudoers

2.21 前瞻

第3章 设备管理

3.1 设备文件

3.2 sysfs设备路径

3.3 dd命令和设备

3.4 设备名总结

3.4.1 硬盘:/dev/sd*

3.4.2 CD和DVD:/dev/sr*

3.4.3 PATA硬盘:/dev/hd*

3.4.4 终端设备/dev/tty/*、/dev/pts/*和/dev/tty

3.4.5 串行端口:/dev/ttyS*

3.4.6 并行端口:/dev/lp0和/dev/lp1

3.4.7 音频设备:/dev/snd/*、/dev/dsp、/dev/audio和其他

3.4.8 创建设备文件

3.5 udev

3.5.1 devtmpfs

3.5.2 udevd的操作和配置

3.5.3 udevadm

3.5.4 设备监控

3.6 详解SCSI和Linux内核

3.6.1 USB存储设备和SCSI

3.6.2 SCSI和ATA

3.6.3 通用SCSI设备

3.6.4 访问设备的多种方法

第4章 硬盘和文件系统

4.1 为磁盘设备分区

4.1.1 查看分区表

4.1.2 更改分区表

4.1.3 磁盘和分区的构造

4.1.4 固态硬盘

4.2 文件系统

4.2.1 文件系统类型

4.2.2 创建文件系统

4.2.3 挂载文件系统

4.2.4 文件系统UUID

4.2.5 磁盘缓冲、缓存和文件系统

4.2.6 文件系统挂载选项

4.2.7 重新挂载文件系统

4.2.8 /etc/fstab文件系统表

4.2.9 /etc/fstab的替代者

4.2.10 文件系统容量

4.2.11 检查和修复文件系统

4.2.12 特殊用途的文件系统

4.3 交换空间

4.3.1 使用磁盘分区作为交换空间

4.3.2 使用文件作为交换空间

4.3.3 你需要多大的交换空间

4.4 前瞻:磁盘和用户空间

4.5 深入传统文件系统

4.5.1 查看inode细节

4.5.2 在用户空间中使用文件系统

4.5.3 文件系统的演进

第5章 Linux内核的启动

5.1 启动消息

5.2 内核初始化和启动选项

5.3 内核参数

5.4 引导装载程序

5.4.1 引导装载程序任务

5.4.2 引导装载程序概述

5.5 GRUB简介

5.5.1 使用GRUB命令行浏览设备和分区

5.5.2 GRUB配置信息

5.5.3 安装GRUB

5.6 UEFI安全启动的问题

5.7 链式加载其他操作系统

5.8 引导装载程序细节

5.8.1 MBR启动

5.8.2 UEFI启动

5.8.3 GRUB工作原理

第6章 用户空间的启动

6.1 init介绍

6.2 System V 运行级别

6.3 识别你的init

6.4 systemd

6.4.1 单元和单元类型

6.4.2 systemd中的依赖关系

6.4.3 systemd配置

6.4.4 systemd操作

6.4.5 在systemd中添加单元

6.4.6 systemd进程跟踪和同步

6.4.7 systemd的按需和资源并行启动

6.4.8 systemd的System V兼容性

6.4.9 systemd辅助程序

6.5 Upstart

6.5.1 Upstart初始化过程

6.5.2 Upstart任务

6.5.3 Upstart配置

6.5.4 Upstart操作

6.5.5 Upstart日志

6.5.6 Upstart运行级别和System V兼容性

6.6 System V init

6.6.1 System V init启动命令顺序

6.6.2 System V init链接池

6.6.3 run-parts

6.6.4 System V init控制

6.7 关闭系统

6.8 initramfs

6.9 紧急启动和单用户模式

第7章 系统配置:日志、系统时间、批处理任务和用户

7.1 /etc目录结构

7.2 系统日志

7.2.1 系统日志

7.2.2 配置文件

7.3 用户管理文件

7.3.1 /etc/passwd文件

7.3.2 特殊用户

7.3.3 /etc/shadow文件

7.3.4 用户和密码管理

7.3.5 用户组

7.4 getty和login

7.5 设置时间

7.5.1 内核时间和时区

7.5.2 网络时间

7.6 使用cron来调度日常任务

7.6.1 安装crontab文件

7.6.2 系统crontab文件

7.6.3 cron的未来

7.7 使用at进行一次性任务调度

7.8 了解用户ID和用户切换

进程归属、有效UID、实际UID和已保存UID

7.9 用户标识和认证

为用户信息使用库

7.10 PAM

7.10.1 PAM配置

7.10.2 关于PAM的一些注解

7.10.3 PAM和密码

7.11 前瞻

第8章 进程与资源利用详解

8.1 进程跟踪

8.2 使用lsof查看打开的文件

8.2.1 lsof输出

8.2.2 lsof的使用

8.3 跟踪程序执行和系统调用

8.3.1 strace命令

8.3.2 ltrace命令

8.4 线程

8.4.1 单线程进程和多线程进程

8.4.2 查看线程

8.5 资源监控简介

8.6 测量CPU时间

8.7 调整进程优先级

8.8 平均负载

8.8.1 uptime的使用

8.8.2 高负载

8.9 内存

8.9.1 内存工作原理

8.9.2 内存页面错误

8.10 使用vmstat监控CPU和内存性能

8.11 I/O监控

8.11.1 使用iostat

8.11.2 使用iotop查看进程的I/O使用和监控

8.12 使用pidstat监控进程

8.13 更深入的主题

第9章 网络与配置

9.1 网络基础

数据包

9.2 网络层次

9.3 网际层

9.3.1 查看自己计算机的IP地址

9.3.2 子网

9.3.3 共用子网掩码与无类域内路由选择

9.4 路由和内核路由表

默认网关

9.5 基本ICMP和DNS工具

9.5.1 ping

9.5.2 traceroute

9.5.3 DNS与host

9.6 物理层与以太网

9.7 理解内核网络接口

9.8 配置网络接口

手动添加和删除路由

9.9 开机启动的网络配置

9.10 手动和开机启动的网络配置带来的问题

9.11 一些网络配置管理器

9.11.1 NetworkManager的操作

9.11.2 与NetworkManager交互

9.11.3 NetworkManager的配置

9.12 解析主机名

9.12.1 /etc/hosts

9.12.2 resolv.conf文件

9.12.3 缓存和零配置DNS

9.12.4 /etc/nsswitch.conf文件

9.13 Localhost

9.14 传输层:TCP、UDP和Service

9.14.1 TCP端口与连接

9.14.2 建立TCP连接

9.14.3 端口的数字和/etc/services

9.14.4 TCP的特点

9.14.5 UDP

9.15 普通本地网络

9.16 理解DHCP

9.16.1 Linux的DHCP客户端

9.16.2 Linux的DHCP服务器

9.17 将Linux配置成路由器

互联网的上行线

9.18 私有网络

9.19 网络地址转换(IP伪装)

9.20 路由器与Linux

9.21 防火墙

9.21.1 Linux防火墙基础

9.21.2 设置防火墙规则

9.21.3 防火墙策略

9.22 以太网、IP和ARP

9.23 无线以太网

9.23.1 iw

9.23.2 无线网络安全

9.24 小结

第10章 网络应用与服务

10.1 服务的基本概念

深入剖析

10.2 网络服务器

10.3 SSH

10.3.1 SSHD服务器

10.3.2 SSH客户端

10.4 守护进程inetd和xinetd

TCP封装器:tcpd、/etc/hosts.allow和/etc/hosts.deny

10.5 诊断工具

10.5.1 lsof

10.5.2 tcpdump

10.5.3 netcat

10.5.4 扫描端口

10.6 远程程序调用

10.7 网络安全

10.7.1 典型漏洞

10.7.2 安全资源

10.8 前瞻

10.9 套接字:进程与网络的通信方式

10.10 Unix域套接字

10.10.1 对开发者的好处

10.10.2 列出Unix域套接字

第11章 shell脚本

11.1 shell脚本基础

shell脚本的局限性

11.2 引号与字面量

11.2.1 字面量

11.2.2 单引号

11.2.3 双引号

11.2.4 单引号的字面义

11.3 特殊变量

11.3.1 单个参数:$1,$2,……

11.3.2 参数的数量:$#

11.3.3 所有参数:$@

11.3.4 脚本名:$0

11.3.5 进程号:$$

11.3.6 退出码:$?

11.4 退出码

11.5 条件判断

11.5.1 防范空参数

11.5.2 使用其他命令来测试

11.5.3 elif

11.5.4 逻辑结构&&和||

11.5.5 测试条件

11.5.6 用case进行字符串匹配

11.6 循环

11.6.1 for循环

11.6.2 while循环

11.7 命令替换

11.8 管理临时文件

11.9 here文档

11.10 重要的shell脚本工具

11.10.1 basename

11.10.2 awk

11.10.3 sed

11.10.4 xargs

11.10.5 expr

11.10.6 exec

11.11 子shell

11.12 在脚本中包含其他文件

11.13 读取用户输入

11.14 什么时候(不)应该使用shell脚本

第12章 在网络上传输文件

12.1 快速复制

12.2 rsync

12.2.1 rsync基础

12.2.2 准确复制目录结构

12.2.3 以斜杠结尾

12.2.4 排除文件与目录

12.2.5 合并、检查及冗长模式

12.2.6 压缩

12.2.7 限制带宽

12.2.8 传文件到你的计算机

12.2.9 更多有关rsync的话题

12.3 文件共享

12.4 用Samba分享文件

12.4.1 配置服务器

12.4.2 服务器访问控制

12.4.3 密码

12.4.4 启动服务器

12.4.5 诊断和日志文件

12.4.6 配置文件共享

12.4.7 home目录

12.4.8 共享打印机

12.4.9 使用Samba客户端

12.4.10 作为客户去访问文件

12.5 NFS客户端

12.6 有关网络文件服务的选择与局限的更多内容

第13章 用户环境

13.1 创建启动文件的规则

13.2 何时需要修改启动文件

13.3 shell启动文件的元素

13.3.1 命令路径

13.3.2 帮助手册的路径

13.3.3 提示符

13.3.4 别名

13.3.5 权限掩码

13.4 启动文件的顺序及例子

13.4.1 bash shell

13.4.2 tcsh shell

13.5 用户默认设置

13.5.1 shell默认设置

13.5.2 编辑器

13.5.3 翻页器

13.6 启动文件的一些陷阱

13.7 前瞻

第14章 Linux桌面概览

14.1 桌面组件

14.1.1 窗口管理器

14.1.2 工具包

14.1.3 桌面环境

14.1.4 应用

14.2 近观X Window系统

14.2.1 显示管理器

14.2.2 网络透明性

14.3 探索X客户端

14.3.1 X事件

14.3.2 理解X输入以及偏好设定

14.4 X的未来

14.5 D-Bus

14.5.1 系统和会话实例

14.5.2 监视D-Bus消息

14.6 打印

14.6.1 CUPS

14.6.2 格式转换与打印过滤器

14.7 其他有关桌面的话题

第15章 开发工具

15.1 C编译器

15.1.1 多个源码文件

15.1.2 头(include)文件和目录

15.1.3 连接库

15.1.4 共享库

15.2 make

15.2.1 一个Makefile实例

15.2.2 内置规则

15.2.3 最终的程序构建

15.2.4 保持更新

15.2.5 命令行参数与选项

15.2.6 标准宏和变量

15.2.7 常规的目标

15.2.8 组织一个Makefile

15.3 调试器

15.4 Lex和Yacc

15.5 脚本语言

15.5.1 Python

15.5.2 Perl

15.5.3 其他脚本语言

15.6 Java

15.7 展望:编译包

第16章 从C代码编译出软件

16.1 软件的构建系统

16.2 解开C源码包

从哪里开始

16.3 GNU autoconf

16.3.1 一个autoconf的例子

16.3.2 使用打包工具来安装

16.3.3 configure脚本的选项

16.3.4 环境变量

16.3.5 autoconf的目标

16.3.6 autoconf的日志文件

16.3.7pkg-config

16.4 实践安装

在哪里安装

16.5 打补丁

16.6 编译和安装的问题排查

具体错误

16.7 前瞻

第17章 在基础上搭建

17.1 Web服务器与应用

17.2 数据库

数据库的种类

17.3 虚拟化

17.4 分布式计算与实时计算

17.5 嵌入式系统

17.6 结束语

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部