1.mkdir:make directories
mkdir [OPTION]... DIRECTORY...(默认,基名(basename)可以不存在,基名的路径必须存在)
-p: 自动按需创建父目录;
-v: verbose,显示详细过程;
-m MODE:直接给定权限;
2.rmdir:remove empty directories
rmdir [OPTION]... DIRECTORY...
-p:删除某目录后,如果其父目录为空,则一并删除之;
-v: 显示过程;
3.bash的基础特性之:命令行展开
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b
~]#mkdir -pv /tmp/x/{y1/{a,b},y2}
mkdir: 已创建目录 "/tmp/x"
mkdir: 已创建目录 "/tmp/x/y1"
mkdir: 已创建目录 "/tmp/x/y1/a"
mkdir: 已创建目录 "/tmp/x/y1/b"
mkdir: 已创建目录 "/tmp/x/y2"
~]#mkdir -pv /tmp/{a,b}_{c,d}
mkdir: 已创建目录 "/tmp/a_c"
mkdir: 已创建目录 "/tmp/a_d"
mkdir: 已创建目录 "/tmp/b_c"
mkdir: 已创建目录 "/tmp/b_d"
4.命令补全:
命令查找机制:
查找内部命令;
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
给定的打头字符串如果能惟一标识某命令程序文件,则直接补全;
不能惟一标识某命令程序文件,再击tab键一次,会给出列表;
5.路径补全:
在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件:
tab:
如果能惟一标识,则直接补全;
否则,再一次tab,给出列表;
6.tree:
tree [options] [directory]
-L level:指定要显示的层级;
-P pattern:List only those files that match the wild-card pattern:基于glob通配机制,仅显示模式匹配的路径;
-d:仅显示目录;
-I patteren:取反机制,不显示模式匹配到的路径;
-o filename:保存在文件中;、
7.命令的执行状态结果:
命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
~]#ls -l anaconda-ks.cfg
-rw-------. 1 root root 2314 7月 2 07:29 anaconda-ks.cfg
~]#$?
bash: 0: 未找到命令...
8.引用命令的执行结果:
$(COMMAND) 或`COMMAND`
~]#which cat
/usr/bin/cat
~]#ls -l `which cat`
-rwxr-xr-x. 1 root root 54080 4月 11 2018 /usr/bin/cat
~]#date +%F-%H-%M-%S
2018-12-04-14-01-29
~]#mkdir -pv $(date +%F-%H-%M-%S)
mkdir: 已创建目录 "2018-12-04-14-01-48"
9.引用
' ':强引用;不做变量替换;
" ":弱引用;可实现变量替换;
` `:命令引用,引用命令的执行结果;(实例可以参考第8点)。
~]#echo '$PATH'
$PATH
~]#echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
10.快捷键(适用于bash shell命令输入行内)
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符;
Ctrl+l:清屏,相当于clear