10.7sl一以其他用户身份和组ID运行一个shell..... 111 10.8sudo-以另一个用户身份执行命令 113 10.9 chown一更改文件所有者和用户组 114 10.10chgp一更改用户组所有权,. 115 10.11练习使用权限 115 10.12更改用户密码 118 10.13拓展阅读 119 11进程 120 11.1进程是怎样工作的 120 11.2查看进程 121 11.3用top命令动态查看进程 123 11.4控制进程 125 11.5中断一个进程······ 125 11.6把一个进程放置到后台(执行) 125 11.7进程返回到前台 126 11.8停止一个进程......·· 127 11.9 Signals...··.······· 128 11.10通过kil命令给进程发送信号 128 11.11通过killal1命令给多个进程发送信号 131 11.12更多和进程相关的命令..... 131 12 shell环境 133 12.1什么存储在环境变量中? 133 12.2检查环境变量 133 12.3一些有趣的变量.···· 135 12.4如何建立shell环境? 136 12.5一个启动文件的内容 137 12.6修改shell环境 139 12.7我们应该修改哪个文件? 139 12.8文本编辑器·· 139 12.9使用文本编辑器.. 140 12.10激活我们的修改.... 143 12.11总结 143 5
10.7 su -以其他用户身份和组 ID 运行一个 shell . . . . . . . . . . . . . . . . . . . . . 111 10.8 sudo -以另一个用户身份执行命令 . . . . . . . . . . . . . . . . . . . . . . . . . . 113 10.9 chown -更改文件所有者和用户组 . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.10chgrp -更改用户组所有权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.11练习使用权限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.12更改用户密码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.13拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 11 进程 120 11.1 进程是怎样工作的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 11.2 查看进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 11.3 用 top 命令动态查看进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 11.4 控制进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.5 中断一个进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.6 把一个进程放置到后台 (执行) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 11.7 进程返回到前台 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 11.8 停止一个进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.9 Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.10通过 kill 命令给进程发送信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.11通过 killall 命令给多个进程发送信号 . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.12更多和进程相关的命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 12 shell 环境 133 12.1 什么存储在环境变量中? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 12.2 检查环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 12.3 一些有趣的变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 12.4 如何建立 shell 环境? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 12.5 一个启动文件的内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 12.6 修改 shell 环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.7 我们应该修改哪个文件? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.8 文本编辑器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.9 使用文本编辑器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.10激活我们的修改 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 12.11总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5
12.12拓展阅读 ...143 13vi简介 144 13.1为什么我们应该学习i. 144 13.2一点儿背景介绍.·. 145 13.3启动和停止i.... 145 13.4编辑模式 146 13.4.1插入模式 147 13.4.2保存我们的工作 147 13.5移动光标 148 13.6基本编辑 149 13.6.1追加文本 149 13.6.2打开一行 150 13.6.3删除文本 151 13.6.4剪切,复制和粘贴文本 152 13.6.5连接行 153 13.7查找和替换 154 13.7.1查找一行 154 13.7.2查找整个文件 154 13.7.3全局查找和替代.. 155 13.8编辑多个文件 156 13.8.1文件之间转换..。...·. 157 13.8.2从一个文件复制内容到另一个文件 158 13.8.3插入整个文件到另一个文件 159 13.9保存工作 160 13.10拓展阅读 160 14自定制shell提示符 162 14.1解剖一个提示符.. 162 14.2试试一些可替代的提示符设计 164 14.3添加颜色 165 14.4移动光标 167 14.5保存提示符 169 14.6总结归纳 169 6
12.12拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 13 vi 简介 144 13.1 为什么我们应该学习 vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 13.2 一点儿背景介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 13.3 启动和停止 vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 13.4 编辑模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 13.4.1 插入模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 13.4.2 保存我们的工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 13.5 移动光标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 13.6 基本编辑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 13.6.1 追加文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 13.6.2 打开一行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 13.6.3 删除文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 13.6.4 剪切,复制和粘贴文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 13.6.5 连接行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 13.7 查找和替换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 13.7.1 查找一行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 13.7.2 查找整个文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 13.7.3 全局查找和替代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 13.8 编辑多个文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 13.8.1 文件之间转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 13.8.2 从一个文件复制内容到另一个文件 . . . . . . . . . . . . . . . . . . . . . . 158 13.8.3 插入整个文件到另一个文件 . . . . . . . . . . . . . . . . . . . . . . . . . . 159 13.9 保存工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 13.10拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 14 自定制 shell 提示符 162 14.1 解剖一个提示符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 14.2 试试一些可替代的提示符设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 14.3 添加颜色 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 14.4 移动光标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 14.5 保存提示符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 14.6 总结归纳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 6
14.7拓展阅读 ...170 15软件包管理 171 15.1打包系统 171 15.2软件包管理系统是怎样工作的 172 15.3包文件 172 15.4资源库.·.··.···· 172 15.5依赖性。·.··.···· 173 15.6上层和底层软件包工具 173 15.7常见软件包管理任务.. 173 15.8查找资源库中的软件包.. 174 15.9从资源库中安装一个软件包 174 15.10通过软件包文件来安装软件 174 15.11卸载软件 175 15.12经过资源库来更新软件包 176 15.13经过软件包文件来升级软件 176 15.13.1注意:pm程序安装一个软件包和升级一个软件包所用的选项是不同的, 而dpkg程序所用的选项是相同的。 177 15.14列出所安装的软件包.····· 177 15.15确定是否安装了一个软件包 177 15.16显示所安装软件包的信息 177 15.17查找安装了某个文件的软件包 178 15.18总结归纳 178 15.19拓展阅读 179 16存储媒介 181 16.1挂载和卸载存储设备 182 16.2查看挂载的文件系统列表 183 16.3确定设备名称 187 16.4创建新的文件系统 190 16.5用fdisk命令操作分区 190 16.6用mkfs命令创建一个新的文件系统 193 16.7测试和修复文件系统....... 194 16.8格式化软盘 194 7
14.7 拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 15 软件包管理 171 15.1 打包系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 15.2 软件包管理系统是怎样工作的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 15.3 包文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 15.4 资源库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 15.5 依赖性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 15.6 上层和底层软件包工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 15.7 常见软件包管理任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 15.8 查找资源库中的软件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 15.9 从资源库中安装一个软件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 15.10通过软件包文件来安装软件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 15.11卸载软件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 15.12经过资源库来更新软件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 15.13经过软件包文件来升级软件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 15.13.1注意:rpm 程序安装一个软件包和升级一个软件包所用的选项是不同的, 而 dpkg 程序所用的选项是相同的。 . . . . . . . . . . . . . . . . . . . . . 177 15.14列出所安装的软件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 15.15确定是否安装了一个软件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 15.16显示所安装软件包的信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 15.17查找安装了某个文件的软件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 15.18总结归纳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 15.19拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 16 存储媒介 181 16.1 挂载和卸载存储设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 16.2 查看挂载的文件系统列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 16.3 确定设备名称 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 16.4 创建新的文件系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 16.5 用 fdisk 命令操作分区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 16.6 用 mkfs 命令创建一个新的文件系统 . . . . . . . . . . . . . . . . . . . . . . . . . 193 16.7 测试和修复文件系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 16.8 格式化软盘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 7
16.9直接把数据移入/出设备 195 16.10创建CD-ROM映像··········. 196 16.10.1创建一个CD-ROM的映像拷贝 196 16.10.2从文件集合中创建一个映像 196 16.11写入CD-ROM镜像 197 16.11.1直接挂载一个IS0镜像... 197 16.11.2清除一张可重写入的CD-ROM 198 16.11.3写入镜像.... 198 16.12拓展阅读 198 16.13友情提示 198 17网络系统 200 17.1检查和监测网络.. 201 17.1.1ping 201 17.1.2 traceroute. 202 17.1.3 netstat.. 203 17.2网络中传输文件.... 204 17.2.1ftp.·...··. 204 17.2.21ftp-更好的ftp 206 17.2.3wget.·..·· 206 17.3与远程主机安全通信 207 17.3.1ssh....... 207 17.3.2scp和sftp 211 17.4拓展阅读 213 18查找文件 214 18.1 locate-查找文件的简单方法 214 18.2fnd-查找文件的复杂方式. 216 18.2.1 Tests... 216 18.2.2操作符 219 18.3预定义的操作 222 18.4用户定义的行为. 224 18.5提高效率 224 18.5.1 xargs...·· 225 8
16.9 直接把数据移入/出设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 16.10创建 CD-ROM 映像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 16.10.1创建一个 CD-ROM 的映像拷贝 . . . . . . . . . . . . . . . . . . . . . . . . 196 16.10.2从文件集合中创建一个映像 . . . . . . . . . . . . . . . . . . . . . . . . . . 196 16.11写入 CD-ROM 镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 16.11.1直接挂载一个 ISO 镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 16.11.2清除一张可重写入的 CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . 198 16.11.3写入镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 16.12拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 16.13友情提示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 17 网络系统 200 17.1 检查和监测网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 17.1.1 ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 17.1.2 traceroute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 17.1.3 netstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 17.2 网络中传输文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 17.2.1 ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 17.2.2 lftp - 更好的 ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 17.2.3 wget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 17.3 与远程主机安全通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 17.3.1 ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 17.3.2 scp 和 sftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 17.4 拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 18 查找文件 214 18.1 locate - 查找文件的简单方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 18.2 find - 查找文件的复杂方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 18.2.1 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 18.2.2 操作符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 18.3 预定义的操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 18.4 用户定义的行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 18.5 提高效率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 18.5.1 xargs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 8
18.6返回操练场 226 18.6.1选项...· 229 18.7拓展阅读······· 230 19归档和备份 231 19.1压缩文件 231 19.1.1gzip 232 19.1.2bzip2.... 234 19.2归档文件 235 19.2.1tar. 235 19.2.2zip··· 241 19.3同步文件和目录.... 243 19.3.1在网络间使用symc命令 245 19.4拓展阅读·.·.······· 246 20正则表达式 247 20.1 grep 247 20.2元字符和文本 249 20.3任何字符 250 20.4锚点·····..· 251 20.5中括号表达式和字符类 252 20.6否定·········· 253 20.7传统的字符区域....... 253 20.8P0SIX字符集 254 20.9 POSIX基本的Vs.扩展的正则表达式 259 20.10 Alternation·..········ 260 20.11限定符··········· 261 20.11.1?-匹配零个或一个元素 261 20.12*-匹配零个或多个元素..·. 262 20.12.1+-匹配一个或多个元素.. 263 20.12.2{}-匹配特定个数的元素 263 20.13让正则表达式工作起来.····· 264 20.13.1通过grep命令来验证一个电话簿 264 20.13.2用f6nd查找丑陋的文件名 266 9
18.6 返回操练场 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 18.6.1 选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 18.7 拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 19 归档和备份 231 19.1 压缩文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 19.1.1 gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 19.1.2 bzip2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 19.2 归档文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 19.2.1 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 19.2.2 zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 19.3 同步文件和目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 19.3.1 在网络间使用 rsync 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 19.4 拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 20 正则表达式 247 20.1 grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 20.2 元字符和文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 20.3 任何字符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 20.4 锚点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 20.5 中括号表达式和字符类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 20.6 否定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 20.7 传统的字符区域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 20.8 POSIX 字符集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 20.9 POSIX 基本的 Vs. 扩展的正则表达式 . . . . . . . . . . . . . . . . . . . . . . . . 259 20.10Alternation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 20.11限定符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 20.11.1 ? - 匹配零个或一个元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 20.12* - 匹配零个或多个元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 20.12.1 + - 匹配一个或多个元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 20.12.2 { } - 匹配特定个数的元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 20.13让正则表达式工作起来 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 20.13.1通过 grep 命令来验证一个电话簿 . . . . . . . . . . . . . . . . . . . . . . . 264 20.13.2用 find 查找丑陋的文件名 . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9