4.4 用户推荐指数
科技
类型
8.0
豆瓣评分
可以朗读
语音朗读
266千字
字数
2015-07-01
发行日期
展开全部
主编推荐语
本书讲解了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 结束语
- 看完了
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。