bash shell的特性有哪些
命令历史:shell进程会在会话中保存此前用户提交执行过的命令;
查看历史命令:
~]# history
定制history的功能,可通过环境变量来实现
HISISIZE:shell进程可保留的命令历史条数
HISIFILE:持久保存命令历史的文件 (.bash_history)
HISIFILESIZE:命令历史文件的大小
用法:
- -c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中;-d:删除指定命令历史条目;
显示最近#条历史命令 (history #)
调用历史列表中的命令 ( ! number)
再次执行上一条命令 (!!)
再一次执行历史列表中最近一个以STRING开头的命令 (!STRING)
调用上一条命令的最后一个参数 (ESC+.、file !$、file alt+.
控制命令历史的方法
环境变量:HISICONTROL
参数:
ignorespace:忽略以空白字符开头的命令
ignoredups:忽略以空白字符开头的命令
ignoreboth:以上两者同时生效
echo $HISTCONTROL修改变量值
HISICONTROL=Ignorespace命令补全:
shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当作命令;
命令查找机制:
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名\
给定的打头字符串如果能唯一标识某命令程序文件,则直接补全\
不能惟一标识某命令程序文件,再击打一次tab键,会给出列表;
路径补全:
在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每个文件 (tab) 《Linux就该这么学》 一起学习linux
如果能惟一标识,则直接补全。否则,再一次tab给出列表;
~:自动展开为用户的家目录,或指定的用户家目录;
{}:可承载一个以逗号分割的路径列表;
例如:
[options] [directory] 列出树形目录中目录的内容; -l:level 指定显示的层级
tree命令:
mkdir /tmp/{a,b},相当于 mkdir /tmp/a,mkdir /tmp/b;
创建/tmp/sysroot目录下包含以下文件
|--bin
|--etc
|--sysconfig
|--network-scripts
|--sbin
|--usr
|--local
|--bin
|--sbin
|--var
|--cache
命令执行的状态结果
bash通过状态返回值来输出此结果 (成功:0,失败:1-255);
命令执行完成后,其状态返回值保存于bash的特殊变量中 " $? ";
命令正常执行时,有的还会有命令返回值,其根据命令及其功能不同,结果各不相同;
两种引用命令的执行结果
$(COMMAND)
`COMMAND`
示例:mkdir $(date +%H-%M-%S)
强引用:' '
弱引用:" "
命令引用: ` `
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+u:删除行首至光标所在处之间的所有字符
Ctrl+k:删除光标所在处至行尾的所有字符
Ctrl+l:清屏(等同clear)
星号 :匹配任意长度的任意字符 (pa,pa,pa,pa);
问号?:匹配任意单个字符(pa?,??pa,p?a,p?a?);
中括号[]:匹配指定范围内的任意单个字符 ([a-z] [A-Z] [0-9] [a-z0-9]);
[^]:匹配指定范围外的任意单个字符([^[:upper:]],[^0-9],[^[:alnum:]]);
hash命令:
-d COMMAND,删除
-r 情况hash缓存
执行命令的查找顺序: hash、alias、path;
解释:
把命令的查找结果,缓存在缓存中就叫hash;
什么时候需要清空hash表,hash缓存不正确时;
bash 基础特性之:命令补全
bash 基础特性之:命令行展开
bash 基础特性之:命令的执行状态结果
bash 基础特性之:引用
bash 基础特性之:快捷键
bash 基础特性之:globbing
globbing:文件名通配
bash 基础特性之:命令hash
bash 基础特性之:变量
转载于:https://blog.51cto.com/51eat/2409637