第1章 Unix简介 1
1.1 计算机与操作系统 1
1.2 Unix计算机系统 2
1.2.1 中央处理器 2
1.2.2 终端与外设 2
1.3 用户与系统 3
1.3.1 授权用户 3
1.3.2 主目录 4
1.3.3 文件 4
1.3.4 目录 4
1.3.5 路径 6
1.4 终端 6
1.4.1 读屏幕 6
1.4.2 使用键盘 6
1.5 登录 8
1.5.1 提示符 8
1.6 探索目录 8
1.6.1 ls展示目录内容 9
1.6.2 pwd查出你在系统中的位置 9
1.6.3 cd改变目录 9
1.7 了解环境 10
1.7.1 who:谁在系统上 10
1.7.2 date:显示时间和日期 11
1.8 Passwd——更改口令 11
1.9 求助 12
1.9.1 如何摆脱问题 12
1.9.2 原由 14
1.9.3 不正确的大小写 14
1.9.4 死屏 14
1.9.5 终端问题 15
1.9.6 程序混淆 15
1.9.7 命令不响应 16
1.9.8 死机 16
1.10 小结 17
第2章 文本编辑 18
2.1 可视编辑器 18
2.1.1 写模式和编辑模式 18
2.1.2 摆脱困境 19
2.2 创建新文件 20
2.3 编辑已有文件 22
2.4 打印及打印控制 23
2.4.1 打印 23
2.4.2 lp 23
2.4.3 打印队列 24
2.4.4 取消打印 24
2.5 文件名 25
2.6 小结 25
第3章 目录与文件 27
3.1 目录树 27
3.2 ls——列目录内容 30
3.2.1 ls-l:长列表 30
3.2.2 ls-C:Column(列)方式列表 32
3.2.3 ls-F:以Filetype(文件类型)方式列表 32
3.2.4 ls-a:全列表 32
3.2.5 ls-t: 以时间方式列表 32
3.2.6 选项合用 33
3.2.7 选择性列表 33
3.3 创建目录 34
3.3.1 mkdir——创建目录 34
3.3.2 rmdir——删除目录 34
3.4 路径、文件及目录 35
3.5 文件拷贝 36
3.5.1 cp——拷贝文件 36
3.6 通配符和文件名 37
3.7 rm——删除文件 39
3.8 mv——移动文件或重新命名文件 40
3.9 其他命令 41
3.9.1 cat——显示文本文件 41
3.9.2 pg——文本文件以页为单位显示 41
3.9.3 file——文件类型 41
3.9.4 du——磁盘使用情况 42
3.10 做一个“好管家” 43
3.10.1 小的就是美的 43
3.10.2 各就其位 43
3.10.3 组织也不能过于庞大 43
3.10.4 以文件名进行分组 43
3.10.5 保持清洁 43
3.10.6 犹豫不决时宜谨慎 43
3.11 小结 44
第4章 使用系统 45
4.1 手册与联机手册 45
4.1.1 man——联机手册 45
4.2 输入与输出 46
4.2.1 输出重定向 46
4.2.2 输入重定向 48
4.3 管道 49
4.4 多任务 50
4.4.1 命令串 50
4.4.2 后台运行命令 50
4.5 电子邮件 51
4.5.1 mail 52
4.5.2 发电子邮件 53
4.6 write——双向通信 53
4.7 文件共享 54
4.7.1 用mail发文本文件 54
4.7.2 共享非文本文件 55
4.7.3 hmod——改变权限许可模式 55
4.7.4 ln——共享对文件的访问 56
4.7.5 可能的问题 57
4.8 dc——桌面计算器 57
4.9 时间和日期 59
4.9.1 cal——日历生成器 59
4.9.2 calendar——提醒服务 59
4.9.3 sleep——设置延迟动作 60
4.9.4 time——查询处理时间 60
4.10 小结 61
第5章 Shell 62
5.1 何种Shell 62
5.2 Bourne Shell 63
5.3 变量 65
5.3.1 导出变量 66
5.4 环境变量 67
5.4.1 HOME 67
5.4.2 PATH 68
5.4.3 PS1和PS2 69
5.4.4 MAIL 69
5.5 迂回选择——使用退出状态 70
5.6 C shell 71
5.6.1 别名 71
5.6.2 文件指定与别名 72
5.7 历史 72
5.7.1 调用历史命令行的补充 73
5.8 编辑命令行 75
5.8.1 替换 75
5.8.2 切取 76
5.9 C shell变量 77
5.10 小结 78
第6章 文件操作 79
6.1 目录管理 79
6.1.1 是废品吗 79
6.2 find——文件定位 81
6.3 复合表达式 84
6.4 grep——搜索文本文件 85
6.4.1 文件内查找 85
6.4.2 文件查找 86
6.4.3 grep选项 87
6.5 grep搜索模式 89
6.5.1 位置 89
6.5.2 重定向 90
6.5.3 在管道中使用grep 90
6.6 egrep与fgrep 90
6.7 节约空间 91
6.7.1 pack——压缩文件 91
6.7.2 pack选项 92
6.7.3 unpack——恢复压缩文件 92
6.7.4 pcat——压缩文件的cat版本 93
6.8 cpio——拷入拷出 93
6.8.1 cpio选项 93
6.9 小结 95
第7章 文本文件处理 96
7.1 显示文本文件 96
7.1.1 cat——串接并显示文件 96
7.1.2 cat选项 97
7.2 head 97
7.3 tail 98
7.4 pg——文件浏览器 99
7.4.1 命令行选项 100
7.4.2 内部控制 101
7.5 split 102
7.5.1 csplit——按内容分割文件 103
7.5.2 csplit选项 104
7.5.3 csplit参量 105
7.5.4 在管道中使用csplit 105
7.6 wc——字计数器 106
7.7 spell——拼写检查程序 107
7.8 小结 108
第8章 数据文件处理 109
8.1 数据库 109
8.2 sort——排序 111
8.2.1 sort选项 112
8.3 cut——文件的垂直剪取 114
8.3.1 按域剪取 115
8.3.2 按位置剪取 115
8.4 paste——按列合并文件 117
8.4.1 paste选项 118
8.4.2 多文件与多列 119
8.5 join——合并数据文件 120
8.5.1 join选项 121
8.5.2 管道中的join 122
8.6 小结 123
第9章 Shell程序设计 124
9.1 Shell脚本 124
9.1.1 sh——shell中的shell 125
9.1.2 点() 125
9.1.3 可执行脚本 126
9.2 脚本中的变量 127
9.2.1 变量导出 128
9.3 命令行参数 129
9.3.1 shift 130
9.3.2 参数的数量 130
9.3.3 脚本中的注释 130
9.4 命令置换 131
9.5 test 132
9.5.1 测试文件 132
9.5.2 测试字符串 132
9.5.3 测试数值 133
9.5.4 复合表达式 133
9.6 if 133
9.6.1 elif和else 134
9.6.2 嵌套if 136
9.7 while和until 136
9.8 case...esac 139
9.9 for循环 140
9.10 break与continue 141
9.11 exit[n] 142
9.12 数值 143
9.12.1 expr 143
9.13 对shell程序员的几点提示 145
9.13.1 尽量简单 145
9.13.2 可读性 145
9.13.3 不要重复劳动 145
9.13.4 使用之前要测试 145
9.13.5 观察脚本的运行 146
第10章 附录 147
10.1 vi命令小结 147
10.1.1 编辑模式下的命令键 147
10.1.2 ed型命令 148
10.1.3 写模式下的命令键 148
10.2 Unix命令小结 148
10.2.1 banner[string..] 149
10.2.2 cal[month][year] 149
10.2.3 calendar 149
10.2.4 cancel[print-id] 149
10.2.5 cat[-s][-t][-v][file..] 149
10.2.6 cd[directory] 150
10.2.7 chmod 150
10.2.8 cmp[-option..]filel file2 150
10.2.9 cp filespec[directory/][newfile] 151
10.2.10 cpio 151
10.2.11 crypt password[<input_file][>output_file] 151
10.2.12 csh[-options][script] 152
10.2.13 csplit[-option..]filename[argument..] 152
10.2.14 cut 152
10.2.15 date 153
10.2.16 dc[file] 153
10.2.17 diff filel file2 153
10.2.18 echo[argument..] 153
10.2.19 egrep[option..]expression file 153
10.2.20 expr argument 153
10.2.21 fgrep[option..]pattern..file 154
10.2.22 file(-f listfile)filespec 154
10.2.23 find startpoint expression[action] 154
10.2.24 grep[options]pattern[files] 155
10.2.25 join[options]file1 file2 155
10.2.26 kill[-9]PID 156
10.2.27 ln-s path/filename path/linkname 156
10.2.28 lp[option..]files 156
10.2.29 lpstat[option..] 157
10.2.30 ls[-options][path/][filespecification] 157
10.2.31 mail[options] 157
10.2.32 mail users[<message_file] 158
10.2.33 man command 158
10.2.34 mkdir directory_name(s) 158
10.2.35 mesg[y,n] 158
10.2.36 mv filespec directory[newfile] 158
10.2.37 mv oldfile[path/]newfile 158
10.2.38 pack[-f]filespecification 158
10.2.39 passwd 159
10.2.40 paste[-s][-dlist]file1 file2 159
10.2.41 pcat file.. 159
10.2.42 pg[option..][file] 159
10.2.43 ps[-f] 160
10.2.44 pwd 160
10.2.45 rm[-options]filespecification 160
10.2.46 rmdir directory 160
10.2.47 sh[-options][script] 160
10.2.48 sleep seconds 161
10.2.49 sort[-option..][field..][file..] 161
10.2.50 spell[-option..]file 162
10.2.51 split[-num]file[basename] 162
10.2.52 stty 162
10.2.53 tail[option..]file 162
10.2.54 tee[-a]filename 162
10.2.55 test-option file 163
10.2.56 test expression 163
10.2.57 test num1 -operator num2 163
10.2.58 time command 163
10.2.59 umask nnn 164
10.2.60 unpack file 164
10.2.61 wc[-options]file 164
10.2.62 who[-options] 164
10.2.63 write user 164