Linux根文件系统和目录结构及bash特性3

时间:2022-03-02 15:10:06

bash的基础特性:

命令补全:
        shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令
        命令查找机制:
            查找内部命令
            根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名

给定的打头字符串如果能惟一标识某命令程序文件,则直接补全;不能惟一标识某命令程序文件,按Tab键一次,会给出列表

路径补全:
        在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每个文件
            tab:
                如果能惟一标识,则直接补全
                否则,再一次tab,给出列表

目录管理类的命令:
    mkdir,rmdir
    mkdir:mkdir [OPTION]... DIRECTORY...
        -p:自动按需创建父目录
        -v:verbose,显示详细过程
        -m:MODE,直接给定权限
        注意:路径基名方为作用对象,基名之前的路径必须存在才可以成功

rmdir:remove empty directories
        rmdir [OPTION]... DIRECTORY...
        -p:删除某目录后,如果其父目录为空,则一并删除之
        -v:显示过程

bash的基础特性之:命令行展开
    ~:自动展开为用户的家目录,或指定的用户的家目录
    {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
        例如:/tmp/{a,b} 相当于/tmp/a /tmp/b

问题1:mkdir -pv /tmp/x/{y1/{a,b},y2}
    问题2:mkdir -v {a,b}_{c,d}
    问题3:创建如下目录结构
        tmp
        ├── mysysroot
        │   ├── bin
        │   ├── etc
        │   │   └── sysconfig
        │   │       └── network-scripts
        │   ├── sbin
        │   ├── usr
        │   │   ├── bin
        │   │   ├── lib
        │   │   ├── lib64
        │   │   ├── local
        │   │   │   ├── bin
        │   │   │   ├── etc
        │   │   │   ├── lib
        │   │   │   └── sbin
        │   │   └── sbin
        │   └── var
        │       ├── cache
        │       ├── log
        │       └── run

~]# mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfig/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}

tree命令:
        tree - list contents of directories in a tree-like format
            -L level:指定要显示的目录的层级

bash的基础特性之:命令的执行状态结果
    命令执行的状态结果:
        bash通过状态返回值来输出此结果
            成功:0
            失败:1-255
        例如:
        [root@ecs-9253 ~]# ll /usr/src/
        total 0
        drwxr-xr-x. 2 root root 6 Apr 11  2018 debug
        drwxr-xr-x. 2 root root 6 Apr 11  2018 kernels
        [root@ecs-9253 ~]# echo $?
        0

命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;

命令正常执行时,有的还会有命令返回值;
        根据命令及其功能不同,结果各不相同

引用命令的执行结果;
        $(COMMAND)
        或`COMMAND`

bash的基础特性:引用
    强引用:''
    弱引用:""
     命令引用:``

bash的基础特性:快捷键
    Ctrl+a:跳转到命令行行首
    Ctrl+e:跳转到命令行行尾

Ctrl+u:删除行首到光标所在处之间的所有字符
    Ctrl+k:删除光标所在处至行尾的所有字符

Ctrl+l:清屏,相当于clear

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