bash 基础特性之:命令历史
命令历史: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
bash 基础特性之:命令补全
- 命令补全:
- shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当作命令;
- 命令查找机制:
- 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名\
- 给定的打头字符串如果能唯一标识某命令程序文件,则直接补全\
- 不能惟一标识某命令程序文件,再击打一次tab键,会给出列表;
- 路径补全:
- 在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每个文件 (tab)
- 如果能惟一标识,则直接补全。否则,再一次tab给出列表;
bash 基础特性之:命令行展开
- ~:自动展开为用户的家目录,或指定的用户家目录;
- {}:可承载一个以逗号分割的路径列表;
-
例如:
- mkdir /tmp/{a,b},相当于 mkdir /tmp/a,mkdir /tmp/b;
- 创建/tmp/sysroot目录下包含以下文件
|--bin |--etc |--sysconfig |--network-scripts |--sbin |--usr |--local |--bin |--sbin |--var |--cache
- tree命令:
[options] [directory] 列出树形目录中目录的内容; -l:level 指定显示的层级
bash 基础特性之:命令的执行状态结果
- 命令执行的状态结果
- bash通过状态返回值来输出此结果 (成功:0,失败:1-255);
- 命令执行完成后,其状态返回值保存于bash的特殊变量中 " $? ";
- 命令正常执行时,有的还会有命令返回值,其根据命令及其功能不同,结果各不相同;
- 两种引用命令的执行结果
- $(COMMAND)
- `COMMAND`
- 示例:mkdir $(date +%H-%M-%S)
bash 基础特性之:引用
- 强引用:' '
- 弱引用:" "
- 命令引用: ` `
bash 基础特性之:快捷键
- Ctrl+a:跳转至命令行行首
- Ctrl+e:跳转至命令行行尾
- Ctrl+u:删除行首至光标所在处之间的所有字符
- Ctrl+k:删除光标所在处至行尾的所有字符
- Ctrl+l:清屏(等同clear)
bash 基础特性之:globbing
globbing:文件名通配
- 星号 :匹配任意长度的任意字符 (pa,pa,pa,pa);
- 问号?:匹配任意单个字符(pa?,??pa,p?a,p?a?);
- 中括号[]:匹配指定范围内的任意单个字符 ([a-z] [A-Z] [0-9] [a-z0-9]);
- [^]:匹配指定范围外的任意单个字符([^[:upper:]],[^0-9],[^[:alnum:]]);
bash 基础特性之:命令hash
- hash命令:
- -d COMMAND,删除
- -r 情况hash缓存
- 执行命令的查找顺序: hash、alias、path;
- 解释:
- 把命令的查找结果,缓存在缓存中就叫hash;
- 什么时候需要清空hash表,hash缓存不正确时;
bash 基础特性之:变量
转载于:https://blog.51cto.com/51eat/2409637