文件管理命令剩余部分及bash特性详解

·文本排序命令

    ->sort命令

        sort命令不会修改原文件

        sort命令文本排序原理:

            字符排序->根据字符在ASCII表中的排序从左至右进行升序排序

                文件管理命令剩余部分及bash特性

            -n选项表示数值升序排序

                文件管理命令剩余部分及bash特性

            -r选项表示降序排序

                数值和字母均满足

                

                    文件管理命令剩余部分及bash特性

                    文件管理命令剩余部分及bash特性

            -k选项表示以文本行中的某个字段为标准进行排序

                格式:sort -t(指定字段分隔符) -k#(指定字段) -n ...

                文件管理命令剩余部分及bash特性

            -u(unique)选项表示排序后的行重复的行只显示一次

                文件管理命令剩余部分及bash特性

            -f选项表示排序时忽略字符的大小写

                文件管理命令剩余部分及bash特性

    ->uniq命令

        uniq命令的功能是重复的行只显示一次,但是对uniq命令来说只有相邻的相同的行才被视为重复的行

            文件管理命令剩余部分及bash特性

        uniq命令不排序

        -d选项表示哪一行重复了就显示哪一行的内容

            文件管理命令剩余部分及bash特性

        -D选项表示将重复的几行内容完整的显示出来

            文件管理命令剩余部分及bash特性

        -c选项表示显示文件中内容的重复次数

            文件管理命令剩余部分及bash特性

·文本统计命令

    ->wc(word count)命令

        不加任何选项表示依次显示文件的行数,单词数,字节数

             文件管理命令剩余部分及bash特性

        -l选项表示只显示文件的行数

            文件管理命令剩余部分及bash特性

        -w选项表示只显示文件的单词数

            文件管理命令剩余部分及bash特性

        -c选项表示只显示文件的字节数

            文件管理命令剩余部分及bash特性

        -m选项表示只显示字符数

            文件管理命令剩余部分及bash特性

        -L选项表示显示出文件中最长的一行包含多少个字符

            文件管理命令剩余部分及bash特性

·字处理命令

    tr命令的功能是转换或删除字符

        tr命令可以进行字母的大小写转换,这种转换机制是一一对应的转换

          文件管理命令剩余部分及bash特性  

        <表示输入重定向

        -d选项表示删除指定的字符

            文件管理命令剩余部分及bash特性


bash及其特性详解

·shell(外壳)

    GUI形式的shell分为:

        ->Gnome

        ->KDE

        ->Xface

    CLI形式的shell分为:

        ->sh

        ->bash(Bourne-Again Shell)

        ->csh

        ->ksh

        ->tcsh

        ->zsh

·bash

    bash是一个程序,我们所说的进程是程序的副本,是程序执行的实例,在每个进程看来当前主机只存在内核、当前进程以及当前用户的工作环境,pstree命令可以查看当前进程:

    文件管理命令剩余部分及bash特性

    在shell中开启的shell叫做父子shell

    bash特性:

        ->支持命令历史、命令补全以及路径补全功能

        ->支持管道以及重定向功能

        ->支持命令行编辑功能

        ->支持命令行展开功能

        ->支持文件名通配功能

        ->支持使用变量

        ->支持文本编辑功能(shell脚本)

·命令行编辑

    ->光标跳转

        Ctrl+a表示跳到命令行行首

      Ctrl+e表示跳到命令行行尾

        Ctrl+d表示删除光标后的字符

        Ctrl+u表示删除光标至命令行首的内容

        Ctrl+k表示删除光标至命令行尾的内容

        Ctrl+方向键表示依次跳转一个单词

·history命令

    查看命令历史的命令

        文件管理命令剩余部分及bash特性

    -c选项,表示清空命令历史

        文件管理命令剩余部分及bash特性

    -d选项,表示删除指定位置处的命令历史

        使用格式:history -d OFFSET [n]

        ->history -d #表示删除指定命令历史编号为#的命令

            文件管理命令剩余部分及bash特性

    -w选项,表示保存命令历史到命令历史文件(家目录下的隐藏文件.bash_history)中

            文件管理命令剩余部分及bash特性

    history命令使用技巧

        ->!#,表示执行命令历史中的第#条命令

            文件管理命令剩余部分及bash特性

        ->!-#,表示执行命令历史中的倒数第#条命令

            文件管理命令剩余部分及bash特性

        ->!!表示执行上一条命令

            文件管理命令剩余部分及bash特性

        ->!string,表示执行命令历史中最近的一个以指定字符串开头的命令

            文件管理命令剩余部分及bash特性

        ->!$,表示引用上一个命令的最后一个参数

            文件管理命令剩余部分及bash特性

            也可以使用Esc.或者Alt.来实现

·环境变量

    ->PATH

        命令搜索路径

        文件管理命令剩余部分及bash特性

    ->HISTSIZE

        命令历史缓冲区大小(即为history命令可以最多输出至标准输出的命令数量),默认为1000条命令

    我们的命令补全机制,是在环境变量PATH中查找我们需要补全的命令,路径补全机制则是在我们需要补全的路径的开头路径中寻找我们需要补全的路径

    如果我们在进行命令补全的时候出现了下图中所出现的提示的话,说明可补全的命令太多,系统询问我们是否要将所有命令全部输出至标准输出:

    文件管理命令剩余部分及bash特性

·命令别名

    alias(别名)

        使用格式:alias 命令别名='COMMAND [options] [arguments]'->等号右边存在空格的话,等号右边的内容得用引号引起来

        文件管理命令剩余部分及bash特性

        在shell中使用alias命令定义的命令别名只在当前shell进程的生命周期中有效,同一个用户也是如此,别名的有效范围仅是当前shell进程,执行alias命令可以显示当前系统中的所有命令别名:

        文件管理命令剩余部分及bash特性

        使用alias COMMAND可以查看命令的命令别名

            文件管理命令剩余部分及bash特性

        \COMMAND表示使用命令本身的功能,而不是用命令别名

            文件管理命令剩余部分及bash特性

·命令替换

    所谓命令替换,就是将命令替换为命令的执行结果

    替换格式:

        ->$(COMMAND)

            文件管理命令剩余部分及bash特性

        ->`COMMAND`

            文件管理命令剩余部分及bash特性

·bash中支持的引号

    ->``:反引号表示命令替换

    ->"":双引号表示弱引用可以实现变量替换

    ->'':单引号表示强引用不能实现变量替换

·文件名通配(globbing)

    ->*:用来实现匹配任意长度的任意字符

        文件管理命令剩余部分及bash特性

    ->?:用来实现匹配单个字符

        文件管理命令剩余部分及bash特性

    ->[]:用来实现匹配指定范围内的任意单个字符

        [abc]表示匹配abc中的任意一个字母

            文件管理命令剩余部分及bash特性

        [a-m]表示匹配a-m中的任意一个字母

            文件管理命令剩余部分及bash特性

        [a-z]表示匹配任意一个小写字母

            文件管理命令剩余部分及bash特性

        [A-Z]表示匹配任意一个大写字母

       文件管理命令剩余部分及bash特性

        [0-9]表示匹配任意数字

            文件管理命令剩余部分及bash特性

        [a-zA-Z]表示匹配字母

            文件管理命令剩余部分及bash特性

        [0-9a-zA-Z]表示匹配字母或数字

            文件管理命令剩余部分及bash特性

        匹配一个以字母开头,以数字结尾的文件名

            文件管理命令剩余部分及bash特性

        [:space:]表示匹配空白字符

            

        [:punct:]表示匹配标点符号

            文件管理命令剩余部分及bash特性

        [:lower:]表示匹配小写字母

            文件管理命令剩余部分及bash特性

        [:upper:]表示匹配大写字母

            文件管理命令剩余部分及bash特性

        [:digit:]表示匹配数字

            文件管理命令剩余部分及bash特性

        [:alpha:]表示匹配字母

       文件管理命令剩余部分及bash特性

        [:alnum:]表示匹配数字和字母

            文件管理命令剩余部分及bash特性

        man 7 glob可以查看文件名通配符的使用手册:

            文件管理命令剩余部分及bash特性

        [^.....]表示用来匹配范围之外的任意单个字符

            文件管理命令剩余部分及bash特性

            上图表示匹配以非数字开头的文件

        匹配以字母开头中间是空白字符以字母结尾的文件名:

            [[:alpha:]]*[[:space:]]*[[:alpha:]]

    [^[:alpha:]]表示匹配的是非字母:

            文件管理命令剩余部分及bash特性