bash的基础特性
命令处理机制
命令补全:
shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令
查找内部命令:
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件
给定的打头字符串如果能唯一标识谋命令程序文件,按下TAB键将会则直接补全命令;
如不能唯一标识某命令程序文件,再次按下TAB键,将会给出由给定字符串开头的一系列命令列表。
路径补全:
根据给定的起始路径下,以给定的开头字符串来逐一匹配起始路径下的每个文件,TAB键操作同命令补全机制。
目录管理类的命令:
mkdir命令:make directory
~]# mkdir [OPTION]...DIRECTORY...
-p:按需创建父目录
-v:verbose,显示详细过程
-m:创建目录时设置权限,没有m选项则为默认选项
注意:路径基名方为命令的作用对象,基名之前的路径必须存在
rmdir命令:删除空目录
~]# rmdir [OPTION]... DIRECTORY...
-p:删除某空目录后,如果上一级目录也为空,则继续删除,直至非空目录
命令行展开
~:自动展开为用户或指定用户的家目录
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
如:
~]# mkdir -p /tmp/x/{y1{a,b},y2} 相当于创建了tmp/x/y1/a,tmp/x/y1/b,tmp/x/y2目录
~]# mkdir {a,b}_{c,d} 在当前目录下创建了a_c,a_d,b_c,b_d四个目录
比较复杂的:
~]# mkdir -p /tmp/mysysroot/{bin,sbin,etc/sysconfig/network-scrpits,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}
tree命令:
以树状结构显示目录的层级结构
~]# tree [OPTIONS][directory]
-l: level,指定要显示的层级
命令的执行状态结果:
bash通过状态返回值来输出此结果:
成功为0,失败为1-255
命令执行完成后,其状态返回值保存于bash的特殊变量“$?”中,通过命令~]# ehco $? 调用
有些命令正常执行时还会有命令返回值,但这不是状态返回值
根据命令及其功能不同,结果各不相同
引用命令的执行结果:
$(COMMAND)或反引号`(COMMAND)`
如:~]# mkdir $(date +%H-%M-%S)
~]# mkdir `date +%H-%M-%S`
bash的引用
强引用:''
弱引用:""
命令引用:``
bash的快捷键
ctrl + a:跳转至命令行首
ctrl + e:跳转至命令行尾
ctrl + u:删除行首至光标所在处之间的所有字符
ctrl + k:删除光标所在处至行尾的所有字符
ctrl + l:清屏,相当于clear
文本查看类命令:
- cat
- tac
-
more命令
分屏查看文本内容,不可向上翻页 -
less命令
可通过home键,end键,PgUP键,PgDn键,↑键,↓键实现翻屏或翻页 -
head命令
查看文件的前n行,默认为10行
~]# head [options] FILE
-n 20 可以直接写成-20 -
tail命令
查看文件末尾n行
~]# tail [options] FILE
-n 用法同head命令
-f 查看文件尾部内容结束后不退出,跟随显示新增的行,其它终端通过追加添加文本内容 -
stat命令
显示文件或文件系统状态(元数据)
stat FILE...
每个文件都有两类数据:元数据(metadata),数据(data)
时间戳- access time:
- modify time:
- change tme:
-
touch命令
修改时间戳
~]# touch [POSTION][PATH]
-c 不创建空文件
-a 仅修改access time
-m 仅修改modify time
-t STAMP [[CC]YY]MMDDhhmm[.ss]