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