展开全部

主编推荐语

本书讲解了Linux操作系统的工作机制以及运行Linux系统所需的常用工具和命令。

内容简介

根据系统启动的大体顺序,本书更深入地介绍从设备管理到网络配置的各个部分,最后演示了系统各部分的运行方式,并介绍了一些基本技巧和开发人员常用的工具。Linux不像其他操作,会对用户隐藏很多重要的东西。相反,Linux会让用户掌控一切。而要掌控一切,就必须理解这个操作系统的工作机制,包括如何启动、如何连网,以及Linux内核如何工作。本书是畅销书的新版本,作者拥有多年的实践经验,内容通俗易懂。通过这本书,读者可以迅速从Linux新手变成老鸟,把作者丰富的经验装进自己的知识库。

目录

  • 版权信息
  • 前言
  • 读者对象
  • 阅读要求
  • 阅读方法
  • 动手操作
  • 本书结构
  • 第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 常见错误
  • 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.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 结束语
  • 看完了
展开全部

评分及书评

4.4
15个评分
  • 用户头像
    给这本书评了
    5.0

    本书分为三个部分。第一部分整体介绍 Linux 系统以及运行 Linux 系统所需的常用工具和命令。随后我们会根据系统启动的大体顺序,更深入地介绍从设备管理到网络配置的各个部分。最后我们会演示系统各部分的运行方式,并介绍一些基本技巧和开发人员常用的工具。

      转发
      评论

    出版方

    人民邮电出版社·图灵出品

    图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。