bash的基础特性

Posted 农夫运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash的基础特性相关的知识,希望对你有一定的参考价值。


bash的基础特性(1):
    
    (1) 命令历史
        history
            环境变量:
                HISTSIZE:命令历史记录的条数;
                HISTFILE:~/.bash_history;
                HISTFILESIZE:命令历史文件记录历史的条数;

            history -d OFFSET
            -c
            history #: 显示历史中最近的#条命令;
            -a: 手动追加当前会话缓冲区的命令历史至历史文件中;

        调用历史中的命令:
            !#: 重复执行第#条指令;
            !!:
            !string

        调用上一条命令的最后一个参数:
            !$:
            ESC, .
            Alt+.

        控制命令历史的记录方式:
            环境变量:HISTCONTROL
                ignoredups:忽略重复的命令;连续且相同方为“重复”;
                ignorespace:忽略所有以空白开头的命令;
                ignoreboth:ignoredups, ignorespace;

            修改环境变量值的方式:export 变量名="值"
                变量赋值:把赋值符号后面的数据存储于变量名指向内存空间;

    (2) 命令补全
        bash执行命令:
            内部命令:
            外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令;

                直接补全:Tab,用户给定的字符串只有一条惟一对应的命令;
                以用户给定的字符串为开头对应的命令不惟一,则再次Tab会给出列表;

    (3) 路径补全
        把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名;
            如果惟一:则直接补全;
            否则:再次Tab,给出列表;

    (4) 命令行展开
        ~: 展开为用户的主目录
        ~USERNAME:展开为指定用户的主目录
        {}:可承载一个以逗号分隔的列表,并将其展开为多个路径
            /tmp/{a,b} = /tmp/a, /tmp/b
            /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

    (5) 命令的执行结果状态
        成功
        失败

        bash使用特殊变量$?保存最近一条命令的执行状态结果:
            0:成功
            1-255:失败

        程序执行有两类结果:
            程序的返回值;
            程序的执行状态结果;


目录管理类命令:
    cd, pwd, ls

    mkdir, rmdir, tree

    mkdir [options] /path/to/somewhere
        -p: 存在于不报错,且可自动创建所需的各目录;
        -v: 显示详细信息
        -m MODE: 创建目录时直接指定权限;

    tree:
        -d: 只显示目录
        -L level:指定显示的层级数目
        -P pattern: 只显示由指定pattern匹配到的路径;

    rmdir:删除空目录
        rmdir [OPTION]... DIRECTORY...
            -v: 显示过程;

    练习:
        (1) 如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
            mkdir /tmp/x/{y1,y2}/{a,b}        

        (2) 如何创建x_m, y_m, x_n, y_n
            mkdir {x,y}_{m,n}

        (3) 如何创建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin
            mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}

文本文件查看类命令:
    cat, tac
    more, less, tail, head

    more
        more [OPTIONS...] FILE...
            -d: 显示翻页及退出提示

    less
        less [OPTIONS...] FILE...

    head
        head [OPTION]... [FILE]...
            -c #: 指定获取前#字节
            -n #: 指定获取前#行
                -#:

    tail
        tail [OPTION]... [FILE]...
            -c #: 指定获取后#字节
            -n #: 指定获取后#行
                -#:
            -f: 跟踪显示文件新追加的内容;

文件的时间戳管理工具:
    touch

    文件:metadata, data
        查看文件状态:stat

        三个时间戳:
            access time:访问时间,简写为atime,读取文件内容
            modify time: 修改时间, mtime,改变文件内容(数据)
            change time: 改变时间, ctime,元数据发生改变

    touch命令:
        touch [OPTION]... FILE...
            -a: only atime
            -m: only mtime
            -t STAMP:
                 [[CC]YY]MMDDhhmm[.ss]
            -c: 如果文件不存,则不予创建

回顾:
    文件系统、bash的基础特性、目录管理及文件查看

        文件系统:
            boot, bin, sbin, lib, lib64, dev, home, root, mnt, media, etc, proc, sys
            usr
            var

        bash的基础特性:
            命令补全
            路径补全
            命令历史
            命令行展开:
                ~, {}
            命令的状态结果
                成功:0
                失败:1-255

        目录管理:mkdir, rmdir

        文件查看:more, less, tail, head

        时间戳管理:touch
            -a, -m, -t
            -c

文件管理:
    cp, mv, rm

    复制命令:cp
        cp [OPTION]... [-T] SOURCE DEST
        cp [OPTION]... SOURCE... DIRECTORY
        cp [OPTION]... -t DIRECTORY SOURCE...

        cp SRC DEST
            SRC是文件:
                如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;
                如果目录存在:
                    如果DEST是文件:将SRC中的内容覆盖至DEST中;
                        此时建议为cp命令使用-i选项;
                    如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中;

        cp SRC... DEST
            SRC...:多个文件
                DEST必须存在,且为目录,其它情形均会出错;

        cp SRC DEST
            SRC是目录:
                此时使用选项:-r

                如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
                如果DEST存在:
                    如果DEST是文件:报错
                    如果DEST是目录:

        常用选项:
            -i:交互式
            -r, -R: 递归复制目录及内部的所有内容;
            -a: 归档,相当于-dR --preserv=all
                -d:--no-dereference --preserv=links
                --preserv[=ATTR_LIST]
                    mode: 权限
                    ownership: 属主属组
                    timestamp:
                    links
                    xattr
                    context
                    all
            -p: --preserv=mode,ownership,timestamp
            -v: --verbose
            -f: --force

    mv: move,移动文件
       mv [OPTION]... [-T] SOURCE DEST
       mv [OPTION]... SOURCE... DIRECTORY
       mv [OPTION]... -t DIRECTORY SOURCE...
       
       常用选项:
               -i: 交互式
               -f: 强制

    rm: remove,删除
        rm [OPTION]... FILE...

        常用选项:
            -i: 交互式
            -f: 强制删除
            -r: 递归

            rm -rf

    文本编辑器:nano
        全屏编辑器

bash的基础特性(1)

bash的基础特性(1)


关注“农夫运维” 一起成长!

“我们进步,因为我们分享!”

“分享是一种精神,感恩是一种品德。” 


bash的基础特性(1)
bash的基础特性(1)


以上是关于bash的基础特性的主要内容,如果未能解决你的问题,请参考以下文章

Lunix基础入门--bash的基础特性

bash基础特性

bash的基础特性

Linux自学笔记:bash基础特性及基础命令

2017-11-5Linux基础知识(10)bash基础特性

Bash基础特性