15 标准I/O 重定向和管道
16 过滤器:简介和基本操作
17 过滤器:比较和抽取
18 过滤器:统计和格式化
19 过滤器:选取、排序、组合及变换
20 正则表达式
21 显示文件
22 vi文本编辑器
23 Unix文件系统
24 目录操作
25 文件操作
26 进程和作业控制
=====================================
第15章 标准I/O:重定向和管道
15.1 Unix设计准则---310
15.2 Unix新设计准则---311
15.3 标准输入、标准输出和标准错误---313
15.4 重定向标准输出---314
15.5 防止文件被重定向替换或创建---315
15.6 重定向标准输入---317
15.7 文件描述符、Bourne shell家族重定向标准错误---318
15.8 子shell---320
15.9 在C-Shell家族中重定向标准错误---322
15.10 组合标准输出和标准错误---323
15.11 抛弃输出---324
15.12 重定向:小结和体验---325
15.13 管道线---329
15.14 管道线分流:tee---331
15.15 管道线的重要性---322
15.16 条件执行---333
15.17 练习---334
第16章 过滤器:简介和基本操作
16.1 命令和选项变体---336
16.2 过滤器---337
16.3 是否应该创建自己的过滤器---338
16.4 问题解决过程---338
16.5 可能最简单的过滤器:cat---340
16.6 增强过滤器的功能---342
16.7 最有用的过滤器列表---344
16.8 组合文件:cat---346
16.9 划分文件:split---348
16.10 组合文件时反转文本行的顺序:tac---350
16.11 反转字符的顺序:rev---351
16.12 从数据开头或末尾选择数据行:head、tail---352
16.13 删除数据列:colrm---354
16.14 练习---355
第17章 过滤器:比较和抽取
17.1 比较文件---356
17.2 比较任意两个文件:cmp---357
17.3 比较有序文本文件:comm---358
17.4 比较无序文本文件:diff---360
17.5 diff使用的选项---364
17.6 比较文件时的输出格式:diff、sdiff---365
17.7 差分和补丁---368
17.8 抽取数据列:cut---370
17.9 记录、字段和定界符;抽取数据字段:cut---372
17.10 组合数据列:paste---374
17.11 练习---377
第18章 过滤器:统计和格式化
18.1 创建行号:nl---379
18.2 统计行、单词和字符数量:wc---381
18.3 Unix使用制表符的方式---384
18.4 可视化制表符和空格---386
18.5 将制表符转换成空格:expand---387
18.6 将空格转换成制表符:unexpand---389
18.7 格式化行:fold---390
18.8 80字符行---393
18.9 格式化段落:fmt---394
18.10 打印的旧时代---396
18.11 按页格式化文本:pr---397
18.12 按列格式化文本:pr---400
18.13 练习---401
第19章 过滤器:选取、排序、组合及变换
19.1 选取包含特定模式的行:grep---403
19.2 最重要的grep选项---406
19.3 grep的变体:fgrep、egrep---410
19.4 选取以特定模式开头的行:look---411
19.5 使用look和grep的时机---412
19.6 查找以特定模式开头的所有单词:look---413
19.7 排序数据:sort---415
19.8 控制数据排序的顺序:sort -dfn---416
19.9 检查数据是否有序:sort -c---418
19.10 ASCII码;排序序列---419
19.11 区域设置和排序序列---422
19.12 查找重复行:uniq---426
19.13 合并两个文件中的有序数据:join---428
19.14 由偏序创建全序:tsort---432
19.15 在二进制文件中搜索字符串:strings---434
19.16 转换字符:tr---436
19.17 转换不可显示字符---439
19.18 转换字符:高级话题---440
19.19 非交互式文本编辑:sed---442
19.20 使用sed进行替换---444
19.21 告诉sed只对指定行进行操作---446
19.22 使用非常长的sed命令---447
19.23 练习---448
第20章 正则表达式
20.1 正则表达式简介---450
20.2 正则表达式的起源---452
20.3 基本和扩展正则表达式---453
20.4 匹配行和单词---455
20.5 匹配字符;字符类---458
20.6 预定义字符类;范围---458
20.7 区域设置和排序序列:locale;ASCII码---459
20.8 使用范围和预定义字符类---462
20.9 重复运算符---463
20.10 理解复杂正则表达式的方式---466
20.11 解决3个有趣的难题;字典文件---466
20.12 练习---469
第21章 显示文件
21.1 文件显示程序综述---472
21.2 less简介:启动、停止、帮助---474
21.3 less和more的故事---476
21.4 使用less---477
21.5 使用less在文件中搜索---478
21.6 原始模式和成熟模式---480
21.7 less使用的选项---481
21.8 使用less和cat的时机---483
21.9 使用环境变量定制分页程序---484
21.10 使用less显示多个文件---485
21.11 使用more显示文件---488
21.12 显示文件的开头:head---490
21.13 显示文件的末尾:tail---490
21.14 观察不断增长的文件的末尾:tail -f---491
21.15 二进制、八进制和十六进制---493
21.16 二进制、八进制和十六进制的读取和写入---498
21.17 选择使用十六进制而不是八进制的原因---499
21.18 显示二进制文件:hexdump、od---501
21.19 众多计算机术语来自数学的原因---505
21.20 练习---505
第22章 vi文本编辑器
22.1 vi重要的原因---508
22.2 vi历史简介---509
22.3 Vim:vi的备用编辑器---512
22.4 启动vi---513
22.5 启动Vim:vim---514
22.6 命令模式和输入模式---516
22.7 了解所处模式的方式---518
22.8 以只读方式启动vi:view、vi -R---518
22.9 系统失败后数据的恢复---519
22.10 停止vi---520
22.11 vi使用屏幕的方式---521
22.12 使用vi和ex命令---522
22.13 学习vi命令的策略---523
22.14 创建一个练习文件---524
22.15 移动光标---524
22.16 在编辑缓冲区中移动---528
22.17 跳转到前一位置---529
22.18 搜索模式---531
22.19 使用行号---533
22.20 插入文本---534
22.21 修改文本---536
22.22 替换文本---539
22.23 删除文本---541
22.24 撤销或重复改变---544
22.25 恢复删除---545
22.26 移动文本---546
22.27 复制文本---548
22.28 改变字母的大小---549
22.29 设置选项---550
22.30 显示选项---552
22.31 在键入过程中自动换行---553
22.32 分隔与连接行---553
22.33 复制与移动行---554
22.34 输入shell命令---555
22.35 将文件中的数据插入到编辑缓冲区中---556
22.36 将shell命令的输出插入到编辑缓冲区中---557
22.37 使用程序处理数据:fmt---558
22.38 将数据写入文件---560
22.39 切换到一个新文件---561
22.40 使用缩写---562
22.41 宏---563
22.42 初始化文件:.exrc、.vimrc---565
22.43 使用两个初始化文件---567
22.44 学习使用Vim---568
22.45 事实背后的故事---569
22.46 练习---570
第23章 Unix文件系统
23.1 什么是文件---572
23.2 文件类型---573
23.3 目录和子目录---574
23.4 特殊文件---575
23.5 硬件特殊文件---576
23.6 终端特殊文件:tty---577
23.7 伪设备特殊文件---578
23.8 命名管道:mkfifo---579
23.9 proc文件---581
23.10 树型结构文件系统;文件系统层次结构标准---583
23.11 根目录;子目录---585
23.12 挂载文件系统:mount、umount---585
23.13 漫游根目录---587
23.14 漫游/usr目录---590
23.15 使用多个目录存放程序的原因---592
23.16 home目录---593
23.17 虚拟文件系统---595
23.18 练习---597
第24章 目录操作
24.1 路径名与工作目录---599
24.2 绝对路径名与相对路径名---600
24.3 3种便利的路径名缩写:.. . ~---602
24.4 在目录树中移动:cd、pwd---605
24.5 创建新目录:mkdir---608
24.6 移除目录:rmdir---611
24.7 移动或重命名目录:mv---613
24.8 使用目录栈:pushd、popd、dirs---614
24.9 最重要的程序:ls---620
24.10 列举目录内容:ls -CrRl---621
24.11 排序序列、区域设置和ls---624
24.12 检查文件类型:ls -F---625
24.13 检查文件类型:ls --color---625
24.14 检查文件类型:file---627
24.15 掌握磁盘空间使用情况:ls -hs、du、df、quota---629
24.16 文件有多大?块和分配单元:dumpe2fs---632
24.17 使用通配符进行通配---634
24.18 点文件(隐藏文件):ls -a---638
24.19 长目录列表:ls -dhltu---640
24.20 ls使用过程中的有用别名---643
24.21 显示目录树:tree---644
24.22 文件管理器---646
24.23 练习---648
第25章 文件操作
25.1 创建文件:touch---650
25.2 命名文件---652
25.3 复制文件:cp---655
25.4 将文件复制到不同的目录中:cp---658
25.5 将目录复制到另一个目录中:cp -r---657
25.6 移动文件:mv---657
25.7 重命名文件或目录:mv---658
25.8 删除文件---659
25.9 如何防止误删文件:rm -if---660
25.10 删除整个目录树:rm -r---662
25.11 被删除文件恢复的可能性---663
25.12 文件权限---663
25.13 setuid---665
25.14 Unix维护文件权限的方式:id、groups---666
25.15 显示文件权限:ls -l---668
25.16 文件模式---669
25.17 改变文件权限---670
25.18 Unix为新文件指定权限的方式:umask---671
25.19 清空文件内容:shred---672
25.20 链接的概念:stat、ls -i---673
25.21 多重链接---674
25.22 创建新链接:ln---675
25.23 基本文件命令的工作方式---676
25.24 符号链接:ln -s---677
25.25 目录使用符号链接---678
25.26 查找与Unix命令相关的文件:whereis---679
25.27 通过搜索数据库查看文件:locate---681
25.28 通过搜搜目录树查找文件:find---682
25.29 find命令:路径---684
25.30 find命令:测试---684
25.31 find命令:使用!运算符对测试求反---688
25.32 find命令:处理文件权限错误消息---688
25.33 find命令:动作---689
25.34 处理查找到的文件:xargs---692
25.35 练习---695
第26章 进程和作业控制
26.1 内核管理进程的方式---698
26.2 进程分叉到死亡---699
26.3 孤儿进程与废弃进程---701
26.4 区分父进程与子进程---702
26.5 第一个进程:init---702
26.6 前台进程和后台进程---703
26.7 创建延迟:sleep---704
26.8 作业控制---706
26.9 在后台运行作业---708
26.10 挂起作业:fg---709
26.11 挂起shell:suspend---711
26.12 作业控制与多窗口---712
26.13 显示作业列表:jobs---713
26.14 将作业移至前台:fg---714
26.15 将作业移至后台:bg---716
26.16 学习使用ps程序---717
26.17 ps程序:基本技能---718
26.18 ps程序:选择选项---723
26.19 ps程序:状态---725
26.20 监视系统进程:top、prstat---727
26.21 显示进程树:pstree、ptree---730
26.22 思考Unix如何组织进程和文件:fuser---732
26.23 杀死进程:kill---734
26.24 向进程发送信号:kill---736
26.25 设置进程的优先级:nice---737
26.26 改变现有进程的优先级:renice---739
26.27 守护进程---740
26.28 结束语---742
26.19 练习---743