当前位置: 首页 > 工具软件 > linux-command > 使用案例 >

linux命令行入门(五) 《The Linux Command Line》

子车勇锐
2023-12-01

第二十一章21-文本处理
    学习用来‘切割’文本的程序
    cat:连接文件并打印到标准输出
    sort:给文件行排序
    uniq:报告或者忽略重复行
    cut:从每行中删除文本区域
    paste:合并文件文本行
    join:基于某个字段来连接两个文件的文本行
    comm:逐行比较两个文件的文本行
    diff:逐行比较文件
    patch:给原始文件打补丁
    tr:翻译或删除字符
    sed:用于筛选和转换文本的流编辑器
    aspell:交互式拼写检查器

21.1    文本应用程序
            大文档先用文本格式编辑再用标记语言来描述已完成的文档格式
            sort -k:指定按某一列排序
                [seven@localhost ~]$ sort -k 3.1nbr abc.txt
               

            cut -f:抽取一列字段
                [seven@localhost ~]$ cut -f 3 abc.txt
 

            paste filename1 filename2:添加一个或多个文本列到文件中
                [seven@localhost ~]$ paste name.txt school.txt > student.txt

            join: 类似于paste,通常与关系型数据库关联,往文件中添加列
                    文件中的行得按关键字排序

21.2    比较文本
            comm file1 file2: 第一列是第一个文件独有的,第二列是第二个文件独有的,第三列是共有的
                [seven@localhost ~]$ comm oldfile.txt newfile.txt 
            diff file1 file2: 对两文件差异的描述,描述了更改的位置和类型
                [seven@localhost ~]$ diff oldfile.txt newfile.txt
            diff -u file1 file2: 上下文模式,会显示重复的上下文
                [seven@localhost ~]$ diff -u oldfile.txt newfile.txt
            patch用法,先生成diff文件,diff文件已经在标题行中包含了文件名,所以不必指定修补的目标。
            一旦应用了补丁,file1与file2将相匹配。

21.3    运行时编辑
            tr:用来更改字符基于字符的查找和替换操作,使用时需要两个字符集参数
                [seven@localhost ~]$ echo "lowercase letter" | tr a-z A-Z
                LOWERCASE LETTER
            sed:流编辑器,给出单个编辑命令或包含多个命令的脚本文件名,sed 中的大多数命令之前
                都会带有一个地址,其指定了输入流中要被编辑的文本行。如果省略了地址,然后会对输入流的每一行执行编辑命令。
                [seven@localhost ~]$ echo "front" | sed '2s/front/back/'
                front
            aspell:交互式的拼写检查器,检测拼错的单词。  aspell check filename.txt
                [seven@localhost ~]$ aspell check abc.txt

第二十二章22-格式化输出                  
    格式化输出让文本准备就绪打印
    nl-添加行号
    fold-限制文件列宽
    fmt-一个简单的文本格式转换器
    pr-让文本为打印做好准备
    printf-格式化数据并打印出来
    groff-一个文件格式系统

22.0    简单的格式工具
        1.显示行号
        [seven@localhost 桌面]$ nl foo.txt 
             1    The quick brown fox jumped over hte lazy dog. was cool.
             2    Line 2
             3    Line 3
             4    Line 4
             5    Line 5
        2.限制文件列宽
        [seven@localhost 桌面]$ cat foo.txt | fold -w 12
            The quick br
            own fox jump
        3.填充并且将文本黏贴在一起并且保留了空白符和缩进      
        [seven@localhost 桌面]$ fmt -w 50 foo.txt | head
        The quick brown fox jumped over hte lazy
        dog. was cool.  Line 2 Line 3 Line 4 Line 5


第二十三章23-打印
    学习用于打印文件和控制打印选项的命令行工具
    pr-转换需要打印的文本文件
    lpr-打印文件
    lp-打印文件(System V)
    a2ps-为PostScript打印机格式化文件
    lpstat-显示打印机状态信息
    lpq-显示打印机状态信息
    lprm-取消打印任务
    cancel-取消打印任务(System V)

23.1    打印简史
            1.早期菊轮打印
            2.图形化打印机催生了postScript

23.2    在Linux下打印            
            当前Linux系统采用两套软件配合显示和管理打印
            1.CUPS
            2.Ghostscript

23.3    为打印准备文件
            pr-转换需要打印的文本文件  (文本适应页宽)  

23.4    将打印任务发送到打印机
            CUPS打印体系支持两种曾用于类Unix系统的打印方式
            1.Berkeley或LPD,使用lpr程序
            2.System V版本的Unix,使用lp程序

23.5    监视和控制打印任务
            lpstat-显示打印系统状态
            lpq-显示打印机队列状态
            lprm和cancel-取消打印任务


第二十四章24-编译程序
    为什么要编译软件
    1.可用性
    2.及时性

    make:维护程序的工具

24.1    什么是编译?
            编译是把源代码翻译成计算机处理器的母语过程
            链接的过程经常与编译结合在一起
            脚本语言不需要编译,加快了大程序开发

24.2    编译一个C语言
            下载.tar.gz,解压成文件夹
            解压前先 tar tzvf filename | head

24.3    检查源码树
            ls命令列出所有文件,
            第一步./configure ,检测是否安装了必要的外部工具和组件,得到Makefile
            第二步 make  结果得到 目标文件
            最后一步 usr/local/bin    make install 安装


第二十五章25-编写第一个Shell脚本            
    通过我们的工具一起放置到我们自己设计的程序中
    shell就会自己来执行这些复杂的任务序列

25.1    什么是Shell脚本
            包含一系列命令的文件,shell读取这个文件并执行

25.2    怎样编写一个Shell脚本
            编写一个脚本,
            chomod使得脚本可执行
            把脚本放置到shell能找到的地方

25.3    脚本文件格式
            文本格式,设置权限为755,每个人都能执行

25.4    脚本文件
            PATH 环境变量
            ~/bin 目录是存放个人所用脚本的好地方

25.5    更多的格式技巧
            长选项名称便于阅读
            缩进和行继续符便于阅读 
            提供可读性就是提高可维护性                       

                                    
 

 类似资料: