内容简介
本书讲解了Linux操作系统的工作机制以及运行Linux系统所需的常用工具和命令。根据系统启动的大体顺序,本书更深入地介绍从设备管理到网络配置的各个部分,最后演示了系统各部分的运行方式,并介绍了一些基本技巧和开发人员常用的工具。
Linux不像其他操作,会对用户隐藏很多重要的东西。相反,Linux会让用户掌控一切。而要掌控一切,就必须理解这个操作系统的工作机制,包括如何启动、如何连网,以及Linux内核如何工作。本书是畅销书的新版本,作者拥有多年的实践经验,内容通俗易懂。通过这本书,读者可以迅速从Linux新手变成老鸟,把作者丰富的经验装进自己的知识库。
作者简介
Brian Ward毕业于芝加哥大学,获计算机科学博士学位。1993年开始接触Linux,研究并教授Linux二十余年。除了这本深受读者喜爱的书,Brian还著有Linux Kernel-HOWTO(No Starch Press)、The Linux Problem Solver(No Starch Press)等畅销著作。现居旧金山,身兼计算机高级顾问与高级讲师等数职。
内页插图
目录
第1 章 概述 1
1.1 Linux 操作系统中的抽象级别和层次 2
1.2 硬件系统:理解主内存 3
1.3 内核 3
1.3.1 进程管理 4
1.3.2 内存管理 5
1.3.3 设备驱动程序和设备管理 5
1.3.4 系统调用和系统支持 5
1.4 用户空间 6
1.5 用户 7
1.6 前瞻 8
第2 章 基础命令和目录结构 9
2.1 Bourne shell: /bin/sh 9
2.2 shell 的使用 10
2.2.1 shell 窗口 10
2.2.2 cat 命令 11
2.2.3 标准输入输出 11
2.3 基础命令 11
2.3.1 ls 命令 12
2.3.2 cp 命令 12
2.3.3 mv 命令 12
2.3.4 touch 命令 13
2.3.5 rm 命令 13
2.3.6 echo 命令 13
2.4 浏览目录 13
2.4.1 cd 命令 14
2.4.2 mkdir 命令 14
2.4.3 rmdir 命令 14
2.4.4 shell 通配符 14
2.5 中间命令 15
2.5.1 grep 命令 15
2.5.2 less 命令 16
2.5.3 pwd 命令 16
2.5.4 diff 命令 16
2.5.5 file 命令 17
2.5.6 find 和locate 命令 17
2.5.7 head 和tail 命令 17
2.5.8 sort 命令 17
2.6 更改密码和shell 18
2.7 dot 文件 18
2.8 环境变量和shell 变量 18
2.9 命令路径 19
2.10 特殊字符 19
2.11 命令行编辑 20
2.12 文本编辑器 21
2.13 获取在线帮助 21
2.14 shell 输入输出 23
2.14.1 标准错误输出 23
2.14.2 标准输入重定向 24
2.15 理解错误信息 24
2.15.1 解析Unix 的错误信息 24
2.15.2 常见错误 25
2.16 查看和操纵进程 26
2.16.1 命令选项 26
2.16.2 终止进程 27
2.16.3 任务控制 27
2.16.4 后台进程 28
2.17 文件模式和权限 28
2.17.1 更改文件权限 29
2.17.2 符号链接 30
2.17.3 创建符号链接 30
2.18 归档和压缩文件 31
2.18.1 gzip 命令 31
2.18.2 tar 命令 31
2.18.3 压缩归档文件(.tar.gz) 32
2.18.4 zcat 命令 32
2.18.5 其他的压缩命令 33
2.19 Linux 目录结构基础 33
2.19.1 root 目录下的其他目录 34
2.19.2 /usr 目录 35
2.19.3 内核位置 35
2.20 以超级用户的身份运行命令 35
2.20.1 sudo 命令 35
2.20.2 /etc/sudoers 35
2.21 前瞻 36
第3 章 设备管理 37
3.1 设备文件 37
3.2 sysfs 设备路径 38
3.3 dd 命令和设备 39
3.4 设备名总结 40
3.4.1 硬盘:/dev/sd* 40
3.4.2 CD 和DVD:/dev/sr* 41
3.4.3 PATA 硬盘:/dev/hd* 41
3.4.4 终端设备/dev/tty/*、/dev/pts/*和/dev/tty 41
3.4.5 串行端口:/dev/ttyS* 42
3.4.6 并行端口:/dev/lp0 和/dev/lp1 42
3.4.7 音频设备:/dev/snd/*、/dev/dsp、/dev/audio 和其他 43
3.4.8 创建设备文件 43
3.5 udev 44
3.5.1 devtmpfs 44
3.5.2 udevd 的操作和配置 44
3.5.3 udevadm 46
3.5.4 设备监控 47
3.6 详解SCSI 和Linux 内核 47
3.6.1 USB 存储设备和SCSI 50
3.6.2 SCSI 和ATA 50
3.6.3 通用SCSI 设备 51
3.6.4 访问设备的多种方法 51
第4 章 硬盘和文件系统 53
4.1 为磁盘设备分区 55
4.1.1查看分区表 55
4.1.2 更改分区表 56
4.1.3 磁盘和分区的构造 57
4.1.4 固态硬盘 58
4.2 文件系统 59
4.2.1 文件系统类型 59
4.2.2 创建文件系统 60
4.2.3 挂载文件系统 60
4.2.4 文件系统UUID 62
4.2.5 磁盘缓冲、缓存和文件系统 62
4.2.6 文件系统挂载选项 63
4.2.7 重新挂载文件系统 64
4.2.8 /etc/fstab 文件系统表 64
4.2.9 /etc/fstab 的替代者 65
4.2.10 文件系统容量 65
4.2.11 检查和修复文件系统 66
4.2.12 特殊用途的文件系统 68
4.3 交换空间 68
4.3.1 使用磁盘分区作为交换空间 69
4.3.2 使用文件作为交换空间 69
4.3.3 你需要多大的交换空间 69
4.4 前瞻:磁盘和用户空间 70
4.5 深入传统文件系统 70
4.5.1 查看inode 细节 72
4.5.2 在用户空间中使用文件系统 73
4.5.3 文件系统的演进 73
第5 章 Linux 内核的启动 75
5.1 启动消息 75
5.2 内核初始化和启动选项 76
5.3 内核参数 77
5.4 引导装载程序 78
5.4.1 引导装载程序任务 78
5.4.2 引导装载程序概述 79
5.5 GRUB 简介 79
5.5.1 使用GRUB 命令行浏览设备和分区 81
5.5.2 GRUB 配置信息 83
5.5.3 安装GRUB 84
5.6 UEFI 安全启动的问题 86
5.7 链式加载其他操作系统 86
5.8 引导装载程序细节 86
5.8.1 MBR 启动 87
5.8.2 UEFI 启动 87
5.8.3 GRUB 工作原理 87
第6 章 用户空间的启动 89
6.1 init 介绍 89
6.2 System V 运行级别 90
6.3 识别你的init 91
6.4 systemd 91
6.4.1 单元和单元类型 91
6.4.2 systemd 中的依赖关系 92
6.4.3 systemd 配置 94
6.4.4 systemd 操作 96
6.4.5 在systemd 中添加单元 98
6.4.6 systemd 进程跟踪和同步 99
6.4.7 systemd 的按需和资源并行启动 99
6.4.8 systemd 的System V 兼容性 103
6.4.9 systemd 辅助程序 103
6.5 Upstart 104
6.5.1 Upstart 初始化过程 104
6.5.2 Upstart 任务 105
6.5.3 Upstart 配置 107
6.5.4 Upstart 操作 110
6.5.5 Upstart 日志 111
6.5.6 Upstart 运行级别和System V兼容性 111
6.6 System V init 112
6.6.1 System V init 启动命令顺序 113
6.6.2 System V init 链接池 114
6.6.3 run-parts 115
6.6.4 System V init 控制 115
6.7 关闭系统 116
6.8 initramfs 117
6.9 紧急启动和单用户模式 118
第7 章 系统配置:日志、系统时间、批处理任务和用户 119
7.1 /etc 目录结构 119
7.2 系统日志 120
7.2.1 系统日志 120
7.2.2 配置文件 120
7.3 用户管理文件 122
7.3.1 /etc/passwd 文件 122
7.3.2 特殊用户 123
7.3.3 /etc/shadow 文件 124
7.3.4 用户和密码管理 124
7.3.5 用户组 124
7.4 getty 和login 125
7.5 设置时间 125
7.5.1 内核时间和时区 126
7.5.2 网络时间 127
7.6 使用cron 来调度日常任务 127
7.6.1 安装crontab 文件 128
7.6.2 系统crontab 文件 128
7.6.3 cron 的未来 129
7.7 使用at 进行一次性任务调度 129
精彩书摘
2.5.2 less命令
当要查看的文件过大或者内容多得需要滚动屏幕的时候,可以使用less命令。如要查看像/usr/share/dict/words这样的大文件,可以使用less /usr/share/dict/words命令。less命令可以将内容分屏显示,按空格键可查看下一屏,B键查看上一屏,Q键退出。
你可以在less命令的输出结果中进行搜索。例如:使用/word从当前位置向前搜索word这个词,使用?word从当前位置向后搜索。当找到一个匹配的时候,按N键可以跳到下一个匹配。
你可以将几乎所有进程的输出作为另一个进程的输入,我们将在2.14节详细介绍。当你执行的命令涉及很多输出,或者你想使用less来查看输出结果的时候,这个方法非常管用,比如下例所示:
你可以自己亲身实践一下这个命令。类似这样的less代码你会常用到。
2.5.3 pwd命令
pwd命令仅输出当前的工作目录名。这个命令看上去不是那么有用,其实不然,它有以下两个用处。
首先,并不是所有的提示符都显示当前目录名,甚至有时候你需要摆脱它,因为它占用很大空间,这时候就需要使用pwd来解决。
其次,使用符号链接(我们将在2.17.2节介绍)的时候通常很难获知当前目录信息,这时我们可以使用pwd—P来查看。
……
前言/序言
精通Linux(第2版) 电子书 下载 mobi epub pdf txt