上篇 Linux命令 2
第1章 Linux简介 2
1.1 Linux起源及特点 3
1.1.1 Linux起源 3
1.1.2 Linux特点及主要优势 3
1.2 Linux版本发展 5
1.2.1 Linux内核版本 5
1.2.2 Linux发行版本 6
1.3 Linux与自由软件 8
1.3.1 GNU与FSF 8
1.3.2 GPL与Copyright 8
第2章 初识Linux 10
2.1 Red Hat Linux的发展历史 11
2.2 Red Hat Linux的安装 11
2.2.1 硬件需求& 11
2.2.2 安装方式 11
2.2.3 安装过程 12
2.3 登录Linux 20
2.3.1 Linux的启动过程 20
2.3.2 以图形方式登录Linux 20
2.3.3 设置文本登录模式 21
2.3.4 以文本方式登录Linux 23
2.3.5 login命令:登录系统 23
2.3.6 startx命令:启动图形界面 23
2.3.7 xset命令:设置X-windows 24
2.4 Linux的终端命令窗口 25
2.4.1 在桌面系统中使用虚拟终端 25
2.4.2 终端窗口的常规操作 26
2.5 命令行自动补全 28
2.5.1 环境变量名补全 28
2.5.2 用户名补全 28
2.5.3 命令、别名或函数的名字补全 29
2.5.4 主机名补全 29
2.6 退出Linux 29
2.6.1 shutdown命令:关机或重新启动 29
2.6.2 halt命令:关闭系统 31
2.6.3 reboot命令:重新启动系统 31
2.6.4 exit命令:重新登录 32
2.6.5 logout命令:注销用户 32
2.7 联机帮助命令man 32
2.7.1 命令格式 32
2.7.2 常规操作 33
2.7.3 按章节查询 34
2.7.4 man文件的输出 36
2.8 其他联机帮助命令 36
2.8.1 apropos命令:基于字符串查找whatis数据库 36
2.8.2 help命令:显示内建命令的帮助信息 36
2.8.3 info命令:查看info格式帮助信息 38
2.8.4 whereis命令:查询文件存储位置 40
2.8.5 whatis命令:查找简洁的帮助信息 40
第3章 系统管理与设置 41
3.1 常用的信息显示命令 42
3.1.1 arch命令:显示主机的体系结构 42
3.1.2 cal命令:显示日历 42
3.1.3 cat/proc/meminfo:查看内存使用情况 43
3.1.4 cat/proc/modules:查看当前系统模块 44
3.1.5 cat/proc/version:查看当前系统版本 45
3.1.6 cat/proc/partitions:查看当前系统分区 46
3.1.7 cat/etc/issue命令:显示当前系统的发行版本 46
3.1.8 cat/proc/cpuinfo命令:显示CPU信息 46
3.1.9 cat/proc/interrupts命令:显示中断信息 47
3.1.10 cat/proc/filesystems命令:显示文件系统信息 47
3.2.11 date命令:显示或设置系统时间 47
3.1.12 dmesg:显示启动信息 50
3.1.13 echo命令:显示文本行 51
3.1.14 free命令:显示内存信息 52
3.1.15 fgconsole命令:显示活动的虚拟终端数目 53
3.1.16 fuser命令:用文件或套接口识别进程 54
3.1.17 gdialog命令:从Shell创建对话框 55
3.1.18 history命令:显示历史指令 62
3.1.19 hostname命令:显示或设置当前系统的主机名 63
3.1.20 hash命令:显示、添加或清除哈希表 64
3.1.21 hwclock命令:显示和设置硬件时钟 65
3.1.22 ipcs命令:显示IPC设备信息 66
3.1.23 isosize命令:显示iso9660文件系统大小 67
3.1.24 jobs命令:显示工作清单 67
3.1.25 lsmod命令:显示所有已加载的模块 68
3.1.26 locale命令:显示当前系统的语言设置 69
3.1.27 mesg命令:显示信息 70
3.1.28 minfo命令:显示ms-dos文件系统的各项参数 70
3.1.29 modinfo命令:显示内核模块信息 71
3.1.30 mev命令:监视鼠标情况 71
3.1.31 pstree命令:以树状图显示程序 72
3.1.32 pwd命令:显示当前目录 73
3.1.33 proc文件系统:查看系统内核信息 73
3.1.34 ps命令:报告程序状况 74
3.1.35 pmap命令:显示程序的内存信息 77
3.1.36 procinfo命令:显示系统状态信息 77
3.1.37 pwd命令:显示当前目录 79
3.1.38 rulevel命令:显示系统运行级别 80
3.1.39 sysctl命令:设置系统核心参数 80
3.1.40 stat命令:显示文件/文件系统的详细信息 81
3.1.41 top命令:显示进程信息 82
3.1.42 time命令:显示进程执行时间 83
3.1.43 tload命令:显示系统负载 84
3.1.44 uptime命令:显示系统的运行信息 84
3.1.45 uname命令:显示操作系统信息 85
3.1.46 vmstat命令:显示虚拟内存的统计信息 85
3.1.47 yes命令:连续输出给定的字符串 86
3.2 常用的系统管理命令 87
3.2.1 apm命令:高级电源管理 87
3.2.2 apmd命令:高级电源管理守护进程 88
3.2.3 apmsleep命令:设置挂起、待机及唤醒 89
3.2.4 bg命令:将程序放在后台执行 89
3.2.5 chsh命令:改变登录系统时的Shell 90
3.2.6 clear命令:清除终端屏幕 91
3.2.7 depmod命令:检查模块依赖关系 91
3.2.8 exec命令:执行完命令后,交出控制权 92
3.2.9 fc命令:修改并执行命令 92
3.2.10 fg命令:将后台任务放到前台 93
3.2.11 gcov命令:coverage测试工具 94
3.2.12 init命令:所有进程的父进程 95
3.2.13 ipcrm命令:删除消息队列、信号量或共享内存的ID 96
3.2.14 kill命令:杀死进程 97
3.2.15 killall命令:杀死同名的所有进程 98
3.2.16 logrotate命令:处理log文件 100
3.2.17 mtools:软盘操作命令集 101
3.2.18 nice命令:设定进程优先级 102
3.2.19 nohup命令:退出系统继续执行命令 103
3.2.20 ntsysv命令:设置系统的各种服务 103
3.2.21 open命令:开启虚拟终端 104
3.2.22 pgrep命令:查找符合条件的进程 105
3.2.23 pidof命令:显示当前正在运行程序的进程ID 106
3.2.24 pkill命令:杀死进程 107
3.2.25 pwck命令:检查密码文件 108
3.2.26 rlogin命令:远端登录 108
3.2.27 renice命令:对进程优先级进行调整 109
3.2.28 rmmod命令:删除模块 110
3.2.29 rsh命令:远端登录的Shell 111
3.2.30 screen命令:多重视窗管理程序 111
3.2.31 sleep命令:休眠 113
3.2.32 sudo命令:以其他身份来执行命令 114
3.2.33 suspend命令:暂停执行Shell 115
3.2.34 symlinks命令:管理和维护符号链接 115
3.2.35 vlock命令:锁定终端 116
3.2.36 wait命令:等待程序返回状态 116
3.2.37 watch命令:重复执行命令并将结果输出 116
3.2.38 &命令:将任务放到后台执行 118
3.3 常用的系统维护命令 118
3.3.1 alias命令:设置命令的别名 118
3.3.2 aumix命令:设置音效装置 119
3.3.3 authconfig命令:配置系统的认证资源 121
3.3.4 bind命令:显示或设置按键组合 124
3.3.5 chkconfig命令:设置和检查系统的服务设置 124
3.3.6 declare命令:显示或设置Shell变量 126
3.3.7 dircolors命令:设置ls命令显示的颜色 128
3.3.8 enable命令:开动或关闭Shell内置命令 131
3.3.9 eval命令:连续执行多个命令 134
3.3.10 export命令:设置或显示环境变量 134
3.3.11 false命令:返回值为失败 137
3.3.12 fbset命令:显示或设置帧缓存 137
3.3.13 hostid命令:显示出当前主机的数字标识 139
3.3.14 insmod命令:载入模块 139
3.3.15 ldconfig命令:配置动态链接绑定 141
3.3.16 ldd命令:显示共享库文件的相互依赖关系 143
3.3.17 lilo命令:安装启动装载程序 144
3.3.18 losetup命令:设置和控制循环设备 145
3.3.19 mkraid命令:初始化或升级raid 145
3.3.20 modprobe命令:自动处理可载入模块 146
3.3.21 mouseconfig命令:设置鼠标相关参数 147
3.3.22 resize命令:设置终端视窗的大小 149
3.3.23 rpm命令:管理RPM包 149
3.3.24 setserial命令:设置或显示串口的信息 153
3.3.25 setup命令:设置公用程序 154
3.3.26 swapoff命令:卸载交换区(swap area) 157
3.3.27 swapon命令:加载交换区(swap area) 158
3.3.28 set命令:设置Shell执行方式 158
3.3.29 telinit命令:设置系统的运行等级 160
3.3.30 true命令:返回值为成功 160
3.3.31 ulimit命令:控制Shell及进程的资源 161
3.3.32 unalias命令:取消指定的别名 162
3.3.33 unset命令:删除变量或函数 163
3.3.34 up2date命令:升级Red Hat Linux系统 163
3.4 自动作业处理 166
3.4.1 crontab命令:设置定时执行 166
3.4.2 anacron命令:任务调度守护进程 169
3.4.3 at命令:系统将执行的任务排队 170
3.4.4 atd命令:执行已经排队的任务 172
3.4.5 atq命令:检查排队的任务 172
3.4.6 atrm命令:删除已经排队的任务 172
3.4.7 atrun命令:执行已排队的任务 173
3.4.8 batch命令:批处理 173
3.5 系统日志 174
3.5.1 syslogd命令:启动syslog日志进程 174
3.5.2 syslog.conf:系统日志配置文件 175
3.5.3 logger命令:测试syslog.conf 177
3.5.4 使用echo命令清空日志 177
第4章 用户和用户组管理 178
4.1 普通用户的管理 179
4.1.1 解析/etc/passwd文件 179
4.1.2 解析/etc/shadow文件 181
4.1.3 pwconv命令:创建影子文件 183
4.1.4 pwunconv命令:从影子文件恢复密文 184
4.1.5 useradd命令:添加新用户 185
4.1.6 usermod命令:修改用户的账号 188
4.1.7 userdel命令:删除用户 189
4.1.8 passwd命令:修改用户密码 189
4.1.9 newusers命令:批量创建用户 191
4.1.10 chpasswd命令:批量创建用户密码 192
4.1.11 chage命令:查看账户密码的有效期 192
4.2 根用户的管理 193
4.2.1 su命令:变更用户身份 193
4.2.2 以单用户模式解决root密码丢失问题 194
4.2.3 以救援模式解决root密码丢失问题 196
4.2.4 chroot命令:改变根目录 198
4.3 用户组的管理 198
4.3.1 解析/etc/group与/etc/gshadow文件 198
4.3.2 groupadd命令:添加新用户组 202
4.3.3 groupmod命令:修改用户组属性 204
4.3.4 groupdel命令:删除用户组 204
4.3.5 newgrp命令:切换所属用户组 205
4.4 用户和用户组管理的安全防范措施 205
4.4.1 ac命令:统计用户连接时间 205
4.4.2 last命令:查询最近的使用者登录时间 206
4.4.3 lastb命令:显示最近登录系统失败的用户信息 208
4.4.4 who命令:查询当前系统中登录的用户 209
4.4.5 w命令:查看登录用户及其进行的操作 210
4.4.6 使用userdel和groupdel命令删除不需要的用户和用户组 212
4.5 其他用户和用户组管理的常用命令 213
4.5.1 finger命令:查找并显示用户信息 213
4.5.2 groups命令:显示指定用户所属的用户组 214
4.5.3 id命令:显示用户的UID、GID 214
4.5.4 logname命令:显示登录用户的用户名 215
4.5.5 newgrp命令:修改用户的用户组 215
4.5.6 rwho命令:查看登录本地的用户信息 216
4.5.7 users命令:显示当前登录的用户 216
4.5.8 write命令:将信息实时传递给登录的用户或终端 216
4.5.9 whoami命令:显示当前用户的信息 217
4.6 用户及用户组管理命令的综合应用 217
4.6.1 解决/etc/nologin文件引起的普通用户无法登录问题 217
4.6.2 创建用户共享目录 218
4.6.3 对/etc/shadow文件的编辑导致用户密码丢失 219
第5章 磁盘管理 220
5.1 Linux磁盘分区工具 221
5.1.1 Linux磁盘分区简介 221
5.1.2 fdisk命令:磁盘分区工具 223
5.1.3 fdisk命令交互模式 224
5.1.4 使用fdisk划分磁盘分区实例 228
5.1.5 parted命令:磁盘分区工具 231
5.1.6 parted命令交互模式 231
5.1.7 sfdisk命令:Linux分区工具 234
5.2 常用的磁盘管理命令 235
5.2.1 badblocks命令:检查设备坏块 235
5.2.2 du命令:统计文件和目录占用的磁盘空间 236
5.2.3 df命令:显示文件系统磁盘空间使用情况 237
5.2.4 fdformat命令:格式化磁盘 239
5.2.5 hdparm命令:显示和设定硬盘参数 239
5.2.6 mkswap命令:设置交换分区(swap area) 241
5.2.7 mkisofs命令:建立ISO9660/JOLIET/HFS文件系统 242
5.2.8 mkinitrd命令:创建ramdisk的镜像文件 242
5.2.9 mt命令:磁带驱动操作 243
5.2.10 mzip命令:弹出zip/jaz设备中的磁盘 244
5.2.11 sync命令:将缓冲区内的数据写入磁盘 244
5.2.12 rsync命令:远程同步 245
5.3 磁盘配额管理 246
5.3.1 磁盘配额的系统配置 247
5.3.2 edquota命令:对用户或用户组设置磁盘配额 247
5.3.3 quota命令:显示磁盘已使用的空间与配额限制 249
5.3.4 quotacheck命令:检查磁盘的使用空间与限制 249
5.3.5 quotaoff命令:关闭磁盘空间限制 251
5.3.6 quotaon命令:启动磁盘空间配额限制 252
5.3.7 quotastats命令:显示磁盘空间的限制 252
5.3.8 repquota命令:对文件系统的磁盘配额情况进行统计 253
5.4 逻辑卷管理(LVM) 253
5.4.1 pvdisplay命令:查看组成LVM卷的物理卷 254
5.4.2 pvcreate命令:创建物理卷 254
5.4.3 vgcreate命令:创建卷组 254
5.4.4 vgextend命令:在卷组里添加一个新的物理卷 254
5.4.5 lvcreate命令:创建一个逻辑卷 254
5.5 磁盘管理命令的综合应用 255
5.5.1 添加新磁盘 255
5.5.2 无法使用全部硬盘空间 256
第6章 文件和目录管理 257
6.1 文件系统的概念 258
6.2 文件系统的组织方式 258
6.3 系统的默认安装目录 258
6.4 文件系统的类型 260
6.5 文件系统的组成 262
6.6 文件的类型 263
6.7 创建Linux文件系统 264
6.7.1 mkfs命令:创建文件系统 264
6.7.2 mkbootdisk命令:建立目前系统的启动盘 265
6.8 文件和目录的权限 266
6.8.1 权限的常规表示 266
6.8.2 chmod命令:权限设置与修改 268
6.8.3 使用chomd命令设置特殊权限 270
6.8.4 umask命令:设置文件或目录的默认权限 271
6.8.5 setfacl命令:设置访问控制列表ACL 272
6.9 修复受损的文件系统 274
6.9.1 fsck命令:检测文件系统并尝试修复错误 274
6.9.2 e2fsck命令:检查ex2文件系统 275
6.10 mount与umount命令 277
6.10.1 mount命令格式 277
6.10.2 umount命令格式 278
6.10.3 软盘的挂载与卸载 278
6.10.4 CDROM的挂载与卸载 278
6.10.5 USB存储设备的挂载与卸载 279
6.11 其他文件和目录管理常用命令 280
6.11.1 文件和目录操作中常用的通配符 280
6.11.2 attr命令:XFS文件系统对象的扩展属性 281
6.11.3 basename命令:显示文件或目录的基本名称 281
6.11.4 cd命令:改变目录 282
6.11.5 cp命令:复制文件 283
6.11.6 chattr命令:改变文件的属性 285
6.11.7 cksum命令:文件的CRC校验 287
6.11.8 chown命令:改变所有者 287
6.11.9 chgrp命令:更换用户组 289
6.11.10 dirname命令:显示文件的除名字外的路径 290
6.11.11 fold命令:自动换行以适应指定列宽 291
6.11.12 find命令:查找目录或文件 292
6.11.13 file命令:显示文件类型 293
6.11.14 filterdiff命令:从diff文件中提取或去除差异 294
6.11.15 findfs命令:通过卷标或UUID查找文件系统 295
6.11.16 locate命令:定位文件或目录 295
6.11.17 ls或dir命令:列目录 296
6.11.18 ln命令:链接文件或目录 300
6.11.19 lndir命令:建立到目录的符号链接 302
6.11.20 lsattr命令:显示文件属性 303
6.11.21 mkfontdir命令:创建x字体文件目录 303
6.11.22 msgcat命令:合并消息 304
6.11.23 msgcomm命令:匹配消息 305
6.11.24 msgen命令:创建英语消息目录 306
6.11.25 msginit命令:初始化消息目录 307
6.11.26 mkdir命令:创建目录 307
6.11.27 mv命令:移动或更名现有的文件或目录 308
6.11.28 mattrib命令:修改或显示MS-DOS文件的属性 310
6.11.29 mc命令:可视化文件管理程序 310
6.11.30 mcopy命令:复制MS-DOS文件到UNIX或从UNIX复制MS-DOS文件 312
6.11.31 md5sum命令:计算和检测MD5信息摘要 312
6.11.32 mdel命令:MS-DOS文件删除 313
6.11.33 mdir命令:显示MS-DOS目录 314
6.11.34 mktemp命令:建立暂存文件 314
6.11.35 mmove命令:移动MS-DOS文件 314
6.11.36 mren命令:更改MS-DOS文件名称 315
6.11.37 mshowfat命令:显示分配给文件的FAT簇信息 315
6.11.38 mtools命令:显示mtools支持的命令 316
6.11.39 mtoolstest命令:测试并显示mtools的相关设置 316
6.11.40 paste命令:对文件进行纵向合并 316
6.11.41 rcp命令:远端复制文件或目录 317
6.11.42 rm命令:删除文件或目录 318
6.11.43 rmdir命令:删除目录 319
6.11.44 slocate命令:安全查找文件或目录 320
6.11.45 split命令:切割文件 321
6.11.46 stat命令:显示inode内容 323
6.11.47 scp命令:远程复制文件 324
6.11.48 sum命令:计算文件的校验码 327
6.11.49 tmpwatch命令:删除临时文件 327
6.11.50 touch命令:更新文件或目录时间 328
6.11.51 tree命令:以树状图显示目录内容 329
6.11.52 which命令:查找文件 333
6.12 文件和目录管理命令的综合应用 333
6.12.1 无法卸载已挂载的文件系统 334
6.12.2 查询设备上采用的未知文件系统 334
6.12.3 恢复已删除的文件 334
6.12.4 无法引导文件系统 335
第7章 备份与压缩 339
7.1 Linux备份与压缩的策略 340
7.2 tar命令 341
7.2.1 打包和解包的常规操作 342
7.2.2 查看tar包中的内容 343
7.2.3 打包链接文件 343
7.2.4 向包中添加新文件 344
7.2.5 生成.tar.gz压缩包 344
7.3 gzip与gunzip命令 345
7.3.1 常规压缩与解压缩操作 346
7.3.2 查看.gz压缩包中的内容 346
7.3.3 自定义压缩包后缀 346
7.3.4 zcat命令:显示压缩文件内容 347
7.4 zip与unzip命令 347
7.4.1 使用zip生成压缩包 348
7.4.2 使用unzip进行解压缩 352
7.4.3 zipinfo命令:显示压缩文件信息 353
7.5 bzip2与bunzip2命令 356
7.5.1 使用bzip2生成压缩包 356
7.5.2 使用bunzip2进行解压缩 357
7.5.3 bzip2recover命令:恢复损坏的bzip2文件 359
7.6 dump与restore命令 359
7.6.1 使用dump制作备份 360
7.6.2 使用restore恢复备份 361
7.7 compress与uncompress命令 363
7.7.1 使用compress生成压缩文件 363
7.7.2 使用uncompress进行解压缩 364
7.8 其他常用备份与压缩命令 365
7.8.1 ar命令:从归档文件中建立、修改或提取文件 365
7.8.2 cpio命令:备份文件 366
7.8.3 dd命令:磁盘复制命令 367
7.8.4 使用cp命令制作软盘镜像 367
7.8.5 使用cp命令制作光盘镜像 368
7.8.6 lha命令:压缩或解压缩.lhz文件 368
7.8.7 unarj命令:解压文件 370
第8章 网络管理与相关应用 371
8.1 计算机网络的发展 372
8.2 网络基本类型 373
8.2.1 按地理覆盖范围 373
8.2.2 按拓扑结构 375
8.3 网络体系结构 377
8.3.1 OSI/RM参考模型 377
8.3.2 TCP/IP参考模型 379
8.4 网络配置基本内容 382
8.4.1 主机名 382
8.4.2 IP地址 382
8.4.3 子网与子网掩码(subnet mask) 385
8.4.4 广播地址(broadcast address) 385
8.4.5 网关地址(gateway) 385
8.4.6 域名服务器地址(DNS) 385
8.4.7 DHCP服务器 386
8.5 网络管理常用命令 386
8.5.1 apachectl命令:apache HTTP服务器控制接口 386
8.5.2 arp命令:控制系统ARP缓存 387
8.5.3 arpwatch命令:监听ARP记录 388
8.5.4 arping命令:向邻居主机发送ARP请求 388
8.5.5 cu命令:调用其他主机系统 390
8.5.6 gaim命令:即时信息传输客户端 391
8.5.7 hostname命令 391
8.5.8 host命令:dns查询 393
8.5.9 httpd命令:apache http服务器程序 395
8.5.10 ifup命令 396
8.5.11 ifdown命令 396
8.5.12 ifconfig命令:显示或配置网络设备 397
8.5.13 iptables命令:ipv4的包过滤和nat的管理 400
8.5.14 iptables-save命令:保存ip表 403
8.5.15 iwconfig命令:配置无线网络设备 405
8.5.16 mesg命令:控制终端的写入操作 406
8.5.17 mingetty命令:精简版的agetty 407
8.5.18 minicom命令:串口通信程序 407
8.5.19 mkfifo命令:创建管道 408
8.5.20 mtr命令:网络诊断工具 409
8.5.21 nc命令:TCP/UDP连接与侦听 409
8.5.22 netconfig命令:设置各项网络功能 412
8.5.23 netstat命令:显示网络状态 413
8.5.24 nslookup命令:查询DNS 417
8.5.25 route命令:显示并设置路由 418
8.5.26 ping命令:检测主机(ipv4) 420
8.5.27 ping6命令:检测主机(ipv6) 422
8.5.28 pppd命令:点对点连接的守护进程 423
8.5.29 pppstats命令:显示PPP统计信息 424
8.5.30 rdate命令:通过网络获取时间 424
8.5.31 smbd命令:Samba服务端 425
8.5.32 ssh命令:远程登录程序(ssh客户端) 426
8.5.33 statserial命令:显示串口连接状态 427
8.5.34 slrn命令:新闻阅读程序 428
8.5.35 talk命令:与其他用户交谈 428
8.5.36 tcpdump命令:显示网络中的TCP数据包 429
8.5.37 telnet命令:使用telnet进行远程登录 431
8.5.38 testparm命令:测试samba配置文件 432
8.5.39 tracepath命令:追踪路径 434
8.5.40 traceroute命令:显示到达目标网络主机的路由包 435
8.5.41 tty命令:显示标准输入设备名称 437
8.5.42 wall命令:发送信息 437
8.5.43 wget命令:从互联网上下载资源 437
8.5.44 ytalk命令:多用户聊天程序 438
8.6 FTP常用命令 441
8.6.1 ftp命令:文件传输协议 441
8.6.2 ncftp命令:传输文件 449
8.6.3 ncftpget命令:下载文件 454
8.6.4 ncftpls命令:显示文件目录 456
8.6.5 ncftpput命令:上传文件 457
8.6.6 tftp命令:传输文件 458
8.7 UUCP常用命令 460
8.7.1 uucico命令:UUCP文件传输守护进程 460
8.7.2 uucp命令:在UNIX系统间传送文件 461
8.7.3 uupick命令:处理UUCP文件 462
8.7.4 uuto命令:文件传送到远端主机 462
8.7.5 uulog命令:显示uucp日志信息 463
8.7.6 uuname命令:显示uucp远端主机 464
8.7.7 uustat命令:显示UUCP状态 464
8.7.8 uux命令:通过UUCP在远端主机上执行命令 465
8.8 电子邮件 466
8.8.1 fetchmail命令:收取邮件 467
8.8.2 mail命令:收发邮件 470
8.8.3 mailq命令:显示发件箱的邮件 474
8.8.4 mutt命令:Mutt用户邮件代理 474
8.8.5 pine命令:收发邮件 477
8.9 利用常用命令分析局域网连通故障 480
中篇 编辑器 482
第9章 正则表达式 482
9.1 正则表达式介绍 483
9.2 元字符 483
9.2.1 元字符的定义 483
9.2.2 元字符的应用示例 484
9.3 字符集和类 486
9.3.1 字符集和类的定义 486
9.3.2 元字集和类的应用示例 487
9.4 重复 487
9.4.1 重复的定义 488
9.4.2 重复的应用示例 488
9.5 子表达式 489
9.5.1 子表达式的定义 489
9.5.2 子表达式的应用示例 489
9.6 定位字符串的开始和末尾 490
9.6.1 开始和末尾的定义 490
9.6.2 开始和末尾的应用示例 491
9.7 分支 491
9.7.1 分支的定义 491
9.7.2 分支的应用示例 492
9.8 匹配特殊字符 492
第10章 vi(vim)编辑器 494
10.1 vi(vim)编辑器的历史 495
10.2 启动与退出vi(vim) 496
10.2.1 启动vi(vim) 496
10.2.2 退出vi(vim) 498
10.3 vi(vim)的运行模式 498
10.3.1 命令模式 499
10.3.2 插入模式 500
10.3.3 末行模式 500
10.4 vi(vim)中的常用命令 500
10.4.1 插入文本命令 501
10.4.2 附加文本命令 501
10.4.3 添加新行命令 501
10.4.4 光标移动命令 501
10.4.5 删除命令 502
10.4.6 修改命令 503
10.4.7 更改大小写命令 504
10.4.8 替换命令 504
10.4.9 合并命令 505
10.4.10 句点命令 505
10.4.11 撤销命令 505
10.4.12 查找字符命令 506
10.4.13 读入文件命令 506
10.4.14 写入文件命令 506
10.4.15 定位到指定行命令 507
10.4.16 复制命令 507
10.4.17 粘贴命令 507
10.4.18 重复命令 507
10.4.19 显示状态信息命令 508
10.4.20 保存和退出命令 508
10.5 查找与替换字符串 509
10.5.1 普通查找与增量查找 509
10.5.2 替换字符串 509
10.6 窗口操作 510
10.6.1 窗口操作的快捷方式 510
10.6.2 窗口水平拆分 511
10.6.3 窗口垂直拆分 512
10.6.4 关闭窗口 513
10.7 使用Shell命令 513
10.7.1 启动一个新Shell 513
10.7.2 在vi(vim)中执行Shell 513
10.8 其他常用操作 514
10.8.1 屏幕重绘 514
10.8.2 滚动屏幕 514
10.8.3 建立和使用标记 515
10.9 获得帮助 515
第11章 emacs编辑器 517
11.1 emacs概述 518
11.1.1 emacs简介 518
11.1.2 启动和退出 519
11.1.3 新建一个文件 521
11.1.4 保存文件 522
11.2 文件编辑 522
11.2.1 按键的表示与使用 522
11.2.2 光标的移动 523
11.2.3 输入文本 524
11.2.4 文本的删除 524
11.2.5 查找和替换 525
11.3 缓冲区和窗口 525
11.3.1 拆分窗口 526
11.3.2 同时使用多个缓冲区进行工作 527
11.3.3 在缓冲区中滚动 528
11.4 emacs的扩展工具 528
11.4.1 显示日历 529
11.4.2 执行Shell命令 529
11.4.3 调用游戏 530
第12章 grep命令 532
12.1 grep介绍 533
12.1.1 grep的含义 533
12.1.2 grep的工作原理 533
12.2 grep与正则表达式 534
12.2.1 grep的正则表达式元字符 534
12.2.2 grep正则实例 537
12.3 grep的选项 539
12.4 使用管道的grep 542
12.5 grep的退出状态 542
12.6 egrep与fgrep 543
12.6.1 egrep 543
12.6.2 fgrep 545
第13章 gawk与sed 546
13.1 过滤器gawk 547
13.1.1 gawk概述 547
13.1.2 gawk的语法 549
13.1.3 awk的语言基础 550
13.1.4 模式 551
13.1.5 动作 553
13.1.6 注释 554
13.1.7 变量 554
13.1.8 记录和字段 555
13.1.9 输出字段分隔符 556
13.1.10 重定向输出 556
13.1.11 函数 557
13.1.12 关联数组 557
13.1.13 printf命令:格式化输出 559
13.1.14 关系运算符 560
13.1.15 算术运算符 561
13.1.16 gawk的流程控制 563
13.1.17 getline:控制输入 565
13.1.18 协进程 566
13.1.19 从网络获取数据 567
13.1.20 gawk的应用示例 568
13.2 流编辑器sed 569
13.2.1 sed的基本语法 570
13.2.2 sed编辑器基础 571
13.2.3 地址 572
13.2.4 指令 572
13.2.5 打印:P指令 573
13.2.6 删除:d指令 574
13.2.7 追加:a指令 574
13.2.8 插入:i指令 575
13.2.9 修改:c指令 575
13.2.10 退出:q指令 576
13.2.11 替换:s指令 576
13.2.12 下一条:n指令 578
13.2.13 从文件读入:r指令 579
13.2.14 写入文件:w指令 579
13.2.15 sed的控制结构 580
13.2.16 Pattern区和Hold区 580
13.2.17 sed的应用示例 583
第14章 其他常用的文本编辑命令 585
14.1 aspell命令:检查文件的拼写错误 586
14.2 cat命令:显示文本内容 588
14.3 cmp命令:比较文件差异 590
14.4 csplit命令:按指定行数分割文件 591
14.5 cut命令:文件剪切 592
14.6 col命令:过滤控制字符 594
14.7 colrm命令:删除指定的列 594
14.8 comm命令:对已排序文件逐行进行比较 595
14.9 diff命令:文件比较 596
14.10 diffstat命令:diff结果的统计信息 599
14.11 ed命令:行文本编辑器 600
14.12 fmt命令:编排文本文件 601
14.13 gedit命令:gnome的文本编辑器 602
14.14 head命令:从开始显示指定行 604
14.15 indent命令:调整c原始代码文件的格式 605
14.16 jed命令:编辑文本文件 609
14.17 joe命令:编辑文本文件 611
14.18 join命令:基于相同字段连接两个文件 615
14.19 less命令:前后翻阅文本内容 616
14.20 more命令:分屏显示文本内容 617
14.21 od命令:输出文件内容 618
14.22 pr命令:编排文件格式 620
14.23 patch命令:修补文件 622
14.24 pico命令:编辑文字文件 624
14.25 sort命令:文件排序 626
14.26 spell命令:简单的拼写检查程序 629
14.27 tail命令:显示文件的末尾部分 629
14.28 tac命令:反序输出文件 631
14.29 tee命令:读取标准输入到标准输出或文件 632
14.30 tr命令:转换文件中的字符 633
14.31 uniq命令:检查文件中重复出现的行 634
14.32 view命令:查看文件内容 635
14.33 wc命令:计算文件的字数、字节数、行数 636
下篇 Shell编程 640
第15章 Shell编程基础 640
15.1 Shell概述 641
15.1.1 Shell的功能与定义 641
15.1.2 Shell的启动和退出 641
15.1.3 Shell脚本介绍 641
15.2 Shell分类 644
15.2.1 Bourne Shell 644
15.2.2 Bourne Again Shell 644
15.2.3 C Shell 645
15.2.4 Korn Shell 645
15.2.5 Perl Shell 645
15.3 Shell基础知识 645
15.3.1 区分大小写 645
15.3.2 Shell脚本中的注释 646
15.3.3 I/O重定向 646
15.3.4 管道(Pipe) 649
15.3.5 前台与后台 650
15.3.6 命令执行顺序 651
15.3.7 Shell通配符 652
15.3.8 单引号、双引号及反引号 653
15.3.9 指定使用的Shell 654
15.3.10 运行脚本 655
第16章 Shell变量及相关操作 658
16.1 Shell变量类型 659
16.1.1 环境变量 659
16.1.2 位置变量 660
16.1.3 预定义的特殊变量 662
16.1.4 用户自定义的变量 663
16.2 变量的操作 663
16.2.1 创建变量 663
16.2.2 区分变量名 664
16.2.3 删除变量 664
16.3 变量的赋值 665
16.3.1 使用read命令赋值 665
16.3.2 直接给变量赋值 667
16.3.3 使用命令行参数赋值 667
16.3.4 利用命令的输出结果赋值 668
16.3.5 从文件读入数据实现赋值 668
16.4 变量的输出 669
16.4.1 echo命令:直接输出变量的值 669
16.4.2 printf命令:格式化输出变量 669
16.5 数组变量 671
16.5.1 数组的定义 671
16.5.2 数组的复制 672
16.5.3 数组元素的个数 673
16.5.4 数组元素的长度 674
16.6 算术运算 675
16.6.1 expr命令 675
16.6.2 let命令 675
16.6.3 浮点算术运算 676
第17章 条件测试 677
17.1 Shell的测试命令 678
17.2 测试文件属性 678
17.2.1 测试文件存在并且是块设备 678
17.2.2 测试文件存在并且是字符设备 679
17.2.3 测试文件存在并且是目录 679
17.2.4 测试文件存在 680
17.2.5 测试文件存在并且可执行 681
17.3 测试数值 681
17.3.1 相等测试 682
17.3.2 不相等测试 682
17.3.3 大于测试 683
17.3.4 大于等于测试 684
17.3.5 小于测试 684
17.3.6 小于等于测试 685
17.4 测试字符串 686
17.4.1 相等测试 686
17.4.2 不相等测试 687
17.4.3 长度为零测试 688
17.4.4 长度不为零测试 688
17.4.5 非空测试 689
17.5 测试逻辑运算符 690
17.5.1 逻辑与测试 690
17.5.2 逻辑或测试 691
17.5.3 逻辑非测试 692
第18章 Shell的控制结构 693
18.1 if结构 694
18.1.1 if结构的语法格式 694
18.1.2 if...then...fi示例 695
18.1.3 if...then...else...fi示例 696
18.1.4 if...then...elif...示例 697
18.1.5 if嵌套 699
18.2 case结构 701
18.2.1 case结构的语法格式 701
18.2.2 case结构示例 702
18.2.3 case嵌套 707
18.3 select结构 709
18.3.1 select结构的语法格式 709
18.3.2 select结构示例 709
18.4 while循环 711
18.4.1 while语句的语法格式 711
18.4.2 while循环示例 712
18.4.3 while的嵌套 713
18.4.4 避免死循环 714
18.5 for循环 716
18.5.1 for循环语法结构 716
18.5.2 for循环示例 717
18.6 until循环 719
18.6.1 until循环的语法结构 719
18.6.2 until循环示例 720
18.7 break和continue语句 721
18.7.1 break语句 721
18.7.2 continue语句 723
第19章 函数 728
19.1 函数的定义 729
19.2 函数的调用 729
19.2.1 执行函数 729
19.2.2 函数参数传递 731
19.2.3 函数的返回值 734
19.2.4 载入函数 735
19.2.5 删除函数 736
19.3 函数的作用域 737
19.3.1 全局作用域 737
19.3.2 局部作用域 738
19.3.3 应用示例 739
19.4 函数的嵌套 740
19.5 函数的递归 741
第20章 Shell编程实例 745
20.1 判断文件类型 746
20.1.1 系统设计 746
20.1.2 代码实现 746
20.2 使用if语句编写选择菜单 746
20.2.1 系统设计 747
20.2.2 代码实现 747
20.3 使用while循环编写选择菜单 748
20.3.1 系统设计 748
20.3.2 代码实现 748
20.4 使用until循环编写选择菜单 750
20.4.1 系统设计 750
20.4.2 代码实现 751
20.5 对指定目录定时备份 754
20.5.1 系统设计 754
20.5.2 代码实现 754
20.6 连续对多个目录逐个备份 755
20.6.1 系统设计 755
20.6.2 代码实现 755
20.7 自动下载指定文档 756
20.7.1 系统设计 757
20.7.2 代码实现 757
20.8 自动上传指定文档 757
20.8.1 系统设计 758
20.8.2 代码实现 758
20.9 通过命令连续创建50个用户账号 760
20.9.1 系统设计 760
20.9.2 代码实现 760
20.10 通过操作文件创建多个用户 761
20.10.1 系统设计 761
20.10.2 代码实现 762
20.11 连续创建多个目录 764
20.11.1 系统设计 764
20.11.2 代码实现 764
20.12 检查系统资源使用情况 765
20.12.1 系统设计 766
20.12.2 代码实现 766
20.13 账户的一致性检查 769
20.13.1 系统设计 769
20.13.2 代码实现 770
20.14 文件类型转换 773
20.14.1 系统设计 774
20.14.2 代码实现 774
20.15 对输入的3个数字进行排序 775
20.15.1 系统设计 775
20.15.2 代码实现 775
20.16 计算奇数之和 778
20.16.1 系统设计 778
20.16.2 代码实现 778
20.17 使用select命令生成菜单 779
20.17.1 系统设计 779
20.17.2 代码实现 780
20.18 打印图形 781
20.18.1 系统设计 781
20.18.2 代码实现 781
20.19 处理压缩文件 782
20.19.1 系统设计 782
20.19.2 代码实现 782
20.20 数值进制转换 784
20.20.1 系统设计 784
20.20.2 代码实现 784
20.21 使用sed打印指定行 785
20.21.1 系统设计 785
20.21.2 代码实现 785
20.22 使用sed筛选普通文件 786
20.22.1 系统设计 786
20.22.2 代码实现 786
20.23 使用gawk反序输出各列 786
20.23.1 系统设计 787
20.23.2 代码实现 787
20.24 对文件进行大小写转换 787
20.24.1 系统设计 788
20.24.2 代码实现 788
20.25 统计文件中的文本信息 789
20.25.1 系统设计 789
20.25.2 代码实现 789