标题：Linux命令编辑器Shell编程实例大全
基本信息
书 名: Linux命令编辑器Shell编程实例  大全 
作　者：杨明华 于重重
出版社： 人民邮电出版社
出版时间： 2009
ISBN: 9787115194688
开本： 16
定价: 89.00 元
内容简介
《Linux命令编辑器Shell编程实例大全》全面、系统地介绍了Linux命令、编辑器及Shell编程的相关内容。既便于读者深入了解Linux命令强大的功能，又可以帮助Linux用户在较短的时间内学习和掌握Shell编程，开发出自己需要的实用程序。全书分上、中、下3篇，共20章，内容涵盖了Linux简介、RedHatLinux基础知识、系统管理与设置、用户和用户组管理、磁盘管理、文件和目录管理、备份与压缩、网络管理、正则表达式、vim编辑器、emacs、grep命令、awk与sed、常用的文本编辑命令、Shell编程基础、Shell变量、条件测试表达式、Shell的控制结构、函数以及Shell编辑实例。
《Linux命令编辑器Shell编程实例大全》内容丰富，语言通俗易懂，叙述深入浅出，适合于各层次Linux用户。既可以作为各类院校相关专业的教材，也可作为Linux培训的教程及广大Linux爱好者的专业参考书。
编辑推荐
344个命令，覆盖Linux系统常用命令，每个命令均配以实例进行详解。
实例讲解Vina、Emacs等编译器及其相关命令的使用
25个典型Shell程序，完全掌握Shell编程的精髓
图书目录
[1]　上篇 Linux命令
第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与FSF8
1.3.2 GPL与Copyright8
第2章 初识Linux10
2.1 RedHatLinux的发展历史11
2.2 RedHatLinux的安装11
2.2.1 硬件需求11
2.2.2 安装方式11
2.2.3 安装过程12
2.3 登录Linux20
2.3.1 Linux的启动过程20
2.3.2 以图形方式登录Linux20
2.3.3 设置文本登录模式21
2.3.4 以文本方式登录Linux23
2.3.5 login命令：登录系统23
2.3.6 startx命令：启动图形界面23
2.3.7 xset命令：设置X-windows24
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 退出Linux29
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 联机帮助命令man32
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.1 0cat/proc/filesystems命令：显示文件系统信息47
3.2.1 1date命令：显示或设置系统时间47
3.1.1 2dmesg：显示启动信息50
3.1.1 3echo命令：显示文本行51
3.1.1 4free命令：显示内存信息52
3.1.1 5fgconsole命令：显示活动的虚拟终端数目53
3.1.1 6fuser命令：用文件或套接口识别进程54
3.1.1 7gdialog命令：从Shell创建对话框55
3.1.1 8history命令：显示历史指令62
3.1.1 9hostname命令：显示或设置当前系统的主机名63
3.1.2 0hash命令：显示、添加或清除哈希表64
3.1.2 1hwclock命令：显示和设置硬件时钟65
3.1.2 2ipcs命令：显示IPC设备信息66
3.1.2 3isosize命令：显示iso9660文件系统大小67
3.1.2 4jobs命令：显示工作清单67
3.1.2 5lsmod命令：显示所有已加载的模块68
3.1.2 6locale命令：显示当前系统的语言设置69
3.1.2 7mesg命令：显示信息70
3.1.2 8minfo命令：显示ms-dos文件系统的各项参数70
3.1.2 9modinfo命令：显示内核模块信息71
3.1.3 0mev命令：监视鼠标情况71
3.1.3 1pstree命令：以树状图显示程序72
3.1.3 2pwd命令：显示当前目录73
3.1.3 3proc文件系统：查看系统内核信息73
3.1.3 4ps命令：报告程序状况74
3.1.3 5pmap命令：显示程序的内存信息77
3.1.3 6procinfo命令：显示系统状态信息77
3.1.3 7pwd命令：显示当前目录79
3.1.3 8rulevel命令：显示系统运行级别80
3.1.3 9sysctl命令：设置系统核心参数80
3.1.4 0stat命令：显示文件/文件系统的详细信息81
3.1.4 1top命令：显示进程信息82
3.1.4 2time命令：显示进程执行时间83
3.1.4 3tload命令：显示系统负载84
3.1.4 4uptime命令：显示系统的运行信息84
3.1.4 5uname命令：显示操作系统信息85
3.1.4 6vmstat命令：显示虚拟内存的统计信息85
3.1.4 7yes命令：连续输出给定的字符串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命令：改变登录系统时的Shell90
3.2.6 clear命令：清除终端屏幕91
3.2.7 depmod命令：检查模块依赖关系91
3.2.8 exec命令：执行完命令后，交出控制权92
3.2.9 fc命令：修改并执行命令92
3.2.1 0fg命令：将后台任务放到前台93
3.2.1 1gcov命令：coverage测试工具94
3.2.1 2init命令：所有进程的父进程95
3.2.1 3ipcrm命令：删除消息队列、信号量或共享内存的ID96
3.2.1 4kill命令：杀死进程97
3.2.1 5killall命令：杀死同名的所有进程98
3.2.1 6logrotate命令：处理log文件100
3.2.1 7mtools：软盘操作命令集101
3.2.1 8nice命令：设定进程优先级102
3.2.1 9nohup命令：退出系统继续执行命令103
3.2.2 0ntsysv命令：设置系统的各种服务103
3.2.2 1open命令：开启虚拟终端104
3.2.2 2pgrep命令：查找符合条件的进程105
3.2.2 3pidof命令：显示当前正在运行程序的进程ID106
3.2.2 4pkill命令：杀死进程107
3.2.2 5pwck命令：检查密码文件108
3.2.2 6rlogin命令：远端登录108
3.2.2 7renice命令：对进程优先级进行调整109
3.2.2 8rmmod命令：删除模块110
3.2.2 9rsh命令：远端登录的Shell111
3.2.3 0screen命令：多重视窗管理程序111
3.2.3 1sleep命令：休眠113
3.2.3 2sudo命令：以其他身份来执行命令114
3.2.3 3suspend命令：暂停执行Shell115
3.2.3 4symlinks命令：管理和维护符号链接115
3.2.3 5vlock命令：锁定终端116
3.2.3 6wait命令：等待程序返回状态116
3.2.3 7watch命令：重复执行命令并将结果输出116
3.2.3 8&命令：将任务放到后台执行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.1 0export命令：设置或显示环境变量134
3.3.1 1false命令：返回值为失败137
3.3.1 2fbset命令：显示或设置帧缓存137
3.3.1 3hostid命令：显示出当前主机的数字标识139
3.3.1 4insmod命令：载入模块139
3.3.1 5ldconfig命令：配置动态链接绑定141
3.3.1 6ldd命令：显示共享库文件的相互依赖关系143
3.3.1 7lilo命令：安装启动装载程序144
3.3.1 8losetup命令：设置和控制循环设备145
3.3.1 9mkraid命令：初始化或升级raid145
3.3.2 0modprobe命令：自动处理可载入模块146
3.3.2 1mouseconfig命令：设置鼠标相关参数147
3.3.2 2resize命令：设置终端视窗的大小149
3.3.2 3rpm命令：管理RPM包149
3.3.2 4setserial命令：设置或显示串口的信息153
3.3.2 5setup命令：设置公用程序154
3.3.2 6swapoff命令：卸载交换区(swaparea)157
3.3.2 7swapon命令：加载交换区(swaparea)158
3.3.2 8set命令：设置Shell执行方式158
3.3.2 9telinit命令：设置系统的运行等级160
3.3.3 0true命令：返回值为成功160
3.3.3 1ulimit命令：控制Shell及进程的资源161
3.3.3 2unalias命令：取消指定的别名162
3.3.3 3unset命令：删除变量或函数163
3.3.3 4up2date命令：升级RedHatLinux系统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.conf177
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.1 0chpasswd命令：批量创建用户密码192
4.1.1 1chage命令：查看账户密码的有效期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 用户组的管理199
4.3.1 解析/etc/group与/etc/gshadow文件199
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、GID214
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命令：设置交换分区(swaparea)241
5.2.7 mkisofs命令：建立ISO9660/JOLIET/HFS文件系统242
5.2.8 mkinitrd命令：创建ramdisk的镜像文件242
5.2.9 mt命令：磁带驱动操作243
5.2.1 0mzip命令：弹出zip/jaz设备中的磁盘244
5.2.1 1sync命令：将缓冲区内的数据写入磁盘244
5.2.1 2rsync命令：远程同步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命令：设置访问控制列表ACL272
6.9 修复受损的文件系统274
6.9.1 fsck命令：检测文件系统并尝试修复错误274
6.9.2 e2fsck命令：检查ex2文件系统275
6.1 0mount与umount命令277
6.1 0.1 mount命令格式277
6.1 0.2 umount命令格式278
6.1 0.3 软盘的挂载与卸载278
6.1 0.4 CDROM的挂载与卸载278
6.1 0.5 USB存储设备的挂载与卸载279
6.1 1其他文件和目录管理常用命令280
6.1 1.1 文件和目录操作中常用的通配符280
6.1 1.2 attr命令：XFS文件系统对象的扩展属性281
6.1 1.3 basename命令：显示文件或目录的基本名称281
6.1 1.4 cd命令：改变目录282
6.1 1.5 cp命令：复制文件283
6.1 1.6 chattr命令：改变文件的属性285
6.1 1.7 cksum命令：文件的CRC校验287
6.1 1.8 chown命令：改变所有者287
6.1 1.9 chgrp命令：更换用户组289
6.1 1.1 0dirname命令：显示文件的除名字外的路径290
6.1 1.1 1fold命令：自动换行以适应指定列宽291
6.1 1.1 2find命令：查找目录或文件292
6.1 1.1 3file命令：显示文件类型293
6.1 1.1 4filterdiff命令：从diff文件中提取或去除差异294
6.1 1.1 5findfs命令：通过卷标或UUID查找文件系统295
6.1 1.1 6locate命令：定位文件或目录295
6.1 1.1 7ls或dir命令：列目录296
6.1 1.1 8ln命令：链接文件或目录300
6.1 1.1 9lndir命令：建立到目录的符号链接302
6.1 1.2 0lsattr命令：显示文件属性303
6.1 1.2 1mkfontdir命令：创建x字体文件目录303
6.1 1.2 2msgcat命令：合并消息304
6.1 1.2 3msgcomm命令：匹配消息305
6.1 1.2 4msgen命令：创建英语消息目录306
6.1 1.2 5msginit命令：初始化消息目录307
6.1 1.2 6mkdir命令：创建目录307
6.1 1.2 7mv命令：移动或更名现有的文件或目录308
6.1 1.2 8mattrib命令：修改或显示MS-DOS文件的属性310
6.1 1.2 9mc命令：可视化文件管理程序310
6.1 1.3 0mcopy命令：复制MS-DOS文件到UNIX或从UNIX复制MS-DOS文件312
6.1 1.3 1md5sum命令：计算和检测MD5信息摘要312
6.1 1.3 2mdel命令：MS-DOS文件删除313
6.1 1.3 3mdir命令：显示MS-DOS目录314
6.1 1.3 4mktemp命令：建立暂存文件314
6.1 1.3 5mmove命令：移动MS-DOS文件314
6.1 1.3 6mren命令：更改MS-DOS文件名称315
6.1 1.3 7mshowfat命令：显示分配给文件的FAT簇信息315
6.1 1.3 8mtools命令：显示mtools支持的命令316
6.1 1.3 9mtoolstest命令：测试并显示mtools的相关设置316
6.1 1.4 0paste命令：对文件进行纵向合并316
6.1 1.4 1rcp命令：远端复制文件或目录317
6.1 1.4 2rm命令：删除文件或目录318
6.1 1.4 3rmdir命令：删除目录319
6.1 1.4 4slocate命令：安全查找文件或目录320
6.1 1.4 5split命令：切割文件321
6.1 1.4 6stat命令：显示inode内容323
6.1 1.4 7scp命令：远程复制文件324
6.1 1.4 8sum命令：计算文件的校验码327
6.1 1.4 9tmpwatch命令：删除临时文件327
6.1 1.5 0touch命令：更新文件或目录时间328
6.1 1.5 1tree命令：以树状图显示目录内容329
6.1 1.5 2which命令：查找文件333
6.1 2文件和目录管理命令的综合应用333
6.1 2.1 无法卸载已挂载的文件系统334
6.1 2.2 查询设备上采用的未知文件系统334
6.1 2.3 恢复已删除的文件334
6.1 2.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 子网与子网掩码(subnetmask)385
8.4.4 广播地址(broadcastaddress)385
8.4.5 网关地址(gateway)385
8.4.6 域名服务器地址(DNS)385
8.4.7 DHCP服务器386
8.5 网络管理常用命令386
8.5.1 apachectl命令：apacheHTTP服务器控制接口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命令：apachehttp服务器程序395
8.5.1 0ifup命令396
8.5.1 1ifdown命令396
8.5.1 2ifconfig命令：显示或配置网络设备397
8.5.1 3iptables命令：ipv4的包过滤和nat的管理400
8.5.1 4iptables-save命令：保存ip表403
8.5.1 5iwconfig命令：配置无线网络设备405
8.5.1 6mesg命令：控制终端的写入操作406
8.5.1 7mingetty命令：精简版的agetty407
8.5.1 8minicom命令：串口通信程序407
8.5.1 9mkfifo命令：创建管道408
8.5.2 0mtr命令：网络诊断工具409
8.5.2 1nc命令：TCP/UDP连接与侦听409
8.5.2 2netconfig命令：设置各项网络功能412
8.5.2 3netstat命令：显示网络状态413
8.5.2 4nslookup命令：查询DNS417
8.5.2 5route命令：显示并设置路由418
8.5.2 6ping命令：检测主机(ipv4)420
8.5.2 7ping6命令：检测主机(ipv6)422
8.5.2 8pppd命令：点对点连接的守护进程423
8.5.2 9pppstats命令：显示PPP统计信息424
8.5.3 0rdate命令：通过网络获取时间424
8.5.3 1smbd命令：Samba服务端425
8.5.3 2ssh命令：远程登录程序(ssh客户端)426
8.5.3 3statserial命令：显示串口连接状态427
8.5.3 4slrn命令：新闻阅读程序428
8.5.3 5talk命令：与其他用户交谈428
8.5.3 6tcpdump命令：显示网络中的TCP数据包429
8.5.3 7telnet命令：使用telnet进行远程登录431
8.5.3 8testparm命令：测试samba配置文件432
8.5.3 9tracepath命令：追踪路径434
8.5.4 0traceroute命令：显示到达目标网络主机的路由包435
8.5.4 1tty命令：显示标准输入设备名称437
8.5.4 2wall命令：发送信息437
8.5.4 3wget命令：从互联网上下载资源437
8.5.4 4ytalk命令：多用户聊天程序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
中篇编辑器
第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.1 0句点命令505
10.4.1 1撤销命令505
10.4.1 2查找字符命令506
10.4.1 3读入文件命令506
10.4.1 4写入文件命令506
10.4.1 5定位到指定行命令507
10.4.1 6复制命令507
10.4.1 7粘贴命令507
10.4.1 8重复命令507
10.4.1 9显示状态信息命令508
10.4.2 0保存和退出命令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 启动一个新Shell513
10.7.2 在vi(vim)中执行Shell513
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 使用管道的grep542
12.5 grep的退出状态542
12.6 egrep与fgrep543
12.6.1 egrep543
12.6.2 fgrep545
第13章 gawk与sed546
13.1 过滤器gawk547
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.1 0重定向输出556
13.1.1 1函数557
13.1.1 2关联数组557
13.1.1 3printf命令：格式化输出559
13.1.1 4关系运算符560
13.1.1 5算术运算符561
13.1.1 6gawk的流程控制563
13.1.1 7getline：控制输入565
13.1.1 8协进程566
13.1.1 9从网络获取数据567
13.1.2 0gawk的应用示例568
13.2 流编辑器sed569
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.1 0退出：q指令576
13.2.1 1替换：s指令576
13.2.1 2下一条：n指令578
13.2.1 3从文件读入：r指令579
13.2.1 4写入文件：w指令579
13.2.1 5sed的控制结构580
13.2.1 6Pattern区和Hold区580
13.2.1 7sed的应用示例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.1 0diffstat命令：diff结果的统计信息599
14.1 1ed命令：行文本编辑器600
14.1 2fmt命令：编排文本文件601
14.1 3gedit命令：gnome的文本编辑器602
14.1 4head命令：从开始显示指定行604
14.1 5indent命令：调整c原始代码文件的格式605
14.1 6jed命令：编辑文本文件609
14.1 7joe命令：编辑文本文件611
14.1 8join命令：基于相同字段连接两个文件615
14.1 9less命令：前后翻阅文本内容616
14.2 0more命令：分屏显示文本内容617
14.2 1od命令：输出文件内容618
14.2 2pr命令：编排文件格式620
14.2 3patch命令：修补文件622
14.2 4pico命令：编辑文字文件624
14.2 5sort命令：文件排序626
14.2 6spell命令：简单的拼写检查程序629
14.2 7tail命令：显示文件的末尾部分629
14.2 8tac命令：反序输出文件631
14.2 9tee命令：读取标准输入到标准输出或文件632
14.3 0tr命令：转换文件中的字符633
14.3 1uniq命令：检查文件中重复出现的行634
14.3 2view命令：查看文件内容635
14.3 3wc命令：计算文件的字数、字节数、行数636
下篇Shell编程
第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 BourneShell644
15.2.2 BourneAgainShell644
15.2.3 CShell645
15.2.4 KornShell645
15.2.5 PerlShell645
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 指定使用的Shell654
15.3.1 0运行脚本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.1 0通过操作文件创建多个用户761
20.1 0.1 系统设计761
20.1 0.2 代码实现762
20.1 1连续创建多个目录764
20.1 1.1 系统设计764
20.1 1.2 代码实现764
20.1 2检查系统资源使用情况765
20.1 2.1 系统设计766
20.1 2.2 代码实现766
20.1 3账户的一致性检查769
20.1 3.1 系统设计769
20.1 3.2 代码实现770
20.1 4文件类型转换773
20.1 4.1 系统设计774
20.1 4.2 代码实现774
20.1 5对输入的3个数字进行排序775
20.1 5.1 系统设计775
20.1 5.2 代码实现775
20.1 6计算奇数之和778
20.1 6.1 系统设计778
20.1 6.2 代码实现778
20.1 7使用select命令生成菜单779
20.1 7.1 系统设计779
20.1 7.2 代码实现780
20.1 8打印图形781
20.1 8.1 系统设计781
20.1 8.2 代码实现781
20.1 9处理压缩文件782
20.1 9.1 系统设计782
20.1 9.2 代码实现782
20.2 0数值进制转换784
20.2 0.1 系统设计784
20.2 0.2 代码实现784
20.2 1使用sed打印指定行785
20.2 1.1 系统设计785
20.2 1.2 代码实现785
20.2 2使用sed筛选普通文件786
20.2 2.1 系统设计786
20.2 2.2 代码实现786
20.2 3使用gawk反序输出各列786
20.2 3.1 系统设计787
20.2 3.2 代码实现787
20.2 4对文件进行大小写转换787
20.2 4.1 系统设计788
20.2 4.2 代码实现788
20.2 5统计文件中的文本信息789
20.2 5.1 系统设计789
20.2 5.2 代码实现789
……