7、cp,mv,rm,alias,通配符,快捷键,重定向,wc,cut,排序,去重

    文件管理
        cp
            cp SRC DEST:SRC是文件
                DEST不存在,复制并改名
                DEST存在是文件,覆盖,root不覆盖
                    cp -i:不覆盖,root默认cp为cp -i别名
                DEST存在是目录,复制到目录下
            cp SRC... DEST:SRC...为多个文件,DEST必须为目录
            cp -r 目录 DEST:递归复制目录
                DEST不存在,复制并改名
                DEST存在(必须为目录),复制到DEST下
            cp -a:归档,复制时保存软链接,保存所有属性信息
            cp -p:保存基本属性
            cp -f:强制覆盖
        mv
            mv SRC DEST:SRC是文件
                DEST不存在,移动并改名
                DEST存在是文件,覆盖,root不覆盖
                    mv -i:不覆盖,root默认mv为mv -i别名
                DEST存在是目录,移动到目录下
            mv SRC... DEST:SRC...为多个文件,DEST必须为目录
            mv SRC DEST:SRC是目录,DEST不能为文件
                DEST存在,移动到DEST下
                DEST不存在,移动并改名        
            mv -f:强制覆盖
        rm
            -i:交互式,root默认rm是rm -i别名
            -f:强制删除
            -r:递归删除
            
    文本编辑器:nano
    
    bash基本特性(2)
        alias:命令别名,显示系统中别名
            alias 别名='命令':设置别名
                命令行定义别名,仅对当前shell进程有效
                ~/bashrc:定义别名对当前用户有效
                /etc/bashrc:定义别名所有用户有效
                    source /config-file | . /config-file:重新读取配置文件
            unalias 别名:撤消别名
            unalias -a:撤消所有别名
            \命令:如果命令为一个别名,将不执行别名,直接执行命令
        glob(globbing):bash中实现文件名通配(现在已没这个命令)
            通配符
                *:任意长度的任意字符
                ?:任意一个字符
                []:匹配指定范围内的任意一个字符
                    [0-9]:任意一个数据
                    [a-z]:任意一个字母,不区分大小写
                    [A-Z]:任意一个大写字母
                [^]:匹配指定范围外的任意一个字符
                    [^0-9]:除数字外任意一个字符
                [[:digit:]]:任意数字
                [[:lower:]]:任意小写字母
                [[:upper:]]:任意大写字母
                [[:alpha:]]:任意大小写字母
                [[:alnum:]]:任意字母和数字
                [[:space:]]:任意空格
                [[:punct:]]:任意标点符号
                
    bash快捷键
        ctrl+l:清屏,clear
        ctrl+a:跳转到命令开头处
        ctrl+e:跳转到命令结尾处
        ctrl+c:取消命令执行
        ctrl+u:删除光标前所有内容
        ctrl+k:删除光标后所有内容
        
    bash的I/O重定向及管道
        每一个打开的文件都有一个fd:file descriptor(文件描述符),为数字,方便内核查找文件
        标准输入:keyboard键盘,描述符0
        标准输出:monitor显示器,描述符1
        标准错误输出:monitor,描述符2
            错误输出:命令执行错误输出显示
        
        I/O重定向:改变标准输入、输出
            command > 文件:重定向并覆盖
                set -C:禁止覆盖重定向
                set +C:允许覆盖重定向(默认允许)
            command >> 文件:重定向并追加到文件里面
            command >| 文件:强制覆盖重定向
            command 2> 文件:覆盖重定向错误输出
            command 2>> 文件:追加重定向错误输出
            command > 文件1 2> 文件2:如果执行正确输出到1,错误输出到2
            command &> 文件:执行正常和错误都输出到文件(可覆盖、可追加)
            command > 文件 2> &1:正常和错误都输出到文件(可覆盖、可追加)
        
            command < 文件:文件输入重定向给命令
            cat << EOF:键盘输入字符,当遇到EOF字符时把之前所有字符,重定向给cat命令(EOF默认使用,可变字符)
            cat >> 文件 <             
            tr命令:转换或删除字符
                tr abc ABC:键盘输入字符后所有单个字符为a,b,c的对应转换为A,B,C
                tr def DEF < /etc/fstab:把fstab中所有d转换D,e转换为E,f转换为F
                tr -d abc:删除键盘输入的所有a,b,c字符
                
            管道
                command | command ...:把前面命令的输出送给后面命令(最后一个命令在当前shell的子shell里运行)
                
            tee:输出数据输出到标准输出并输出到文件
                tee 文件:由键盘输入,显示到屏幕并保存覆盖到文件
                cat 文件1 | tee 文件2 | tr a A:保存文件并交给tr命令
                
    文件处理工具
        wc 文件:显示行数、以空白分隔的词数、字节数、文件名
            -l:只显示行数
            -w:只显示单词数
            -c:只显示字节数
        cut:以指定分隔符把文件内容切割成N列
            cut -d' ' -f 1 文件:以空格切割显示第一列
                -d'符号':以指明符号分割
                -f 1,3:第一和三列
                -f 1-3:第一到三列,可以1-3,5
                --output-delimiter=符号:输出时更换以前分隔符
        sort:排序
            -f:忽略字符大小写
            -r:以逆序排序
            -t符号 -k数字:以符号为分隔,取第几列来排序
            -n:以数字大小排序
            -u:排序并去除重复
        uniq:去除连续重复的行
            -c:去重并显示重复次数
            -d:去重并只显示重复的行
            -u:去重并只显示没有重复的行
               

你可能感兴趣的:(马哥视频学习)