《Linux命令、编辑器、Shell编程实例大全》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:杨明华,谭励,于重重编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115194688
  • 页数:790 页
图书介绍:本书从实用角度出发,以Red Hat Linux 9为平台,全面、系统地介绍了Linux命令、编辑器及Shell编程的相关内容。既便于读者深入了解Linux 命令强大的功能,又有利于帮助Linux用户在较短的时间内学习和掌握Shell编程,开发出自己需要的实用程序。全书分上、中、下三篇,共20章,内容涵盖了Linux简介、Red Hat Linux 基础知识、系统管理与设置、用户和用户组管理、磁盘管理、文件和目录管理、备份与压缩、网络管理、正则表达式、vim编辑器、emacs、grep命令、awk与sed、常用的文本编辑命令、Shell编程基础、Shell变量、条件测试表达式、Shell的控制结构、函数、以及Shell编辑实例。本书内容丰富,语言通俗易懂、叙述深入浅出,适合于各层次Linux用户,既可以作为各类院校相关专业的教材,也可作为Linux初、中、高级培训的教程及广大Linux爱好者的专业参考书。

上篇 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 RedHatLinux的安装 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 clsh命令:改变登录系统时的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 HatLinux系统 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.1l 其他文件和目录管理常用命令 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 slm命令:新闻阅读程序 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 BourneAgain 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