命令别名
定义别名 alias name='value' 只对当前shell有效
对当前用户有效 修改~/.bashrc
对所有用户有效 修改/etc/bashrc
取消别名 unalias name
-a:取消所有别名
bash进程重读配置文件
source /path/to/config_file
. /path/to/config_file
当命令别名与原名同名时,执行原命令
\command,/path/to/cmmand,'aliasname',"aliasname",command aliasname
当别名与内部命令,外部命令同名时会先执行别名
优先级 别名>内部命令>外部命令
命令历史
保存输入的命令历史,登录shell时,会读取命令历史文件~/.bash_history中记录下的命令到内存中,登录进shell后新执行命令会记录在缓存中,当用户正常退出时这些命令会追加到命令历史文件中。
history [-c] [-d offset] [n]
-c:清空命令历史
-d offset:删除历史中指定的第offset个命令
-n:显示最近的n条历史
相关环境变量
HISTSIZE 命令历史大小
HISTFILE 指定命令历史文件
HISTFILESIZE 命令历史文件大小
调用前一个命令最后一个参数
Esc,. !$ Alt+.
重复执行前一个命令 !! 方向上键
执行history中对应数字的命令 !n
命令行展开
命令行展开$()和` `
花括号{ }展开
echo "VAR_NAME" 双引号变量会替换 弱引用
echo 'VAR_NAME' 单绰号变量不会替换 强引用
Tab补全
命令补全
路径补全
如果唯一,则直接补全;不唯一,再次Tab给出列表
$2Tab 显示所有变量
命令Hash
外部命令Hash缓存表
系统初始Hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将此条命令的路径记录到Hash表中,当再次使用该命令时,Shell解释器会首先查看Hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用Hash缓存表来大大提高命令的调用速率。
hash 显示全部缓存
-r:清除缓存
-t name:显示name缓存路径
-r name:清除name缓存
Bash快捷键
常用快捷键
ctrl+c 取消命令
ctrl+d 中止命令
ctrl+u 删除光标之前内容
ctrl+k 删除光标之后内容
ctrl+a 光标跳到行首
ctrl+e 光标跳到行尾
ctrl+l 清屏
文件通配符glob
*:匹配任意字符
?:匹配任意单个字符
-~:前一个工作目录
[0-9]:数字范围
[a-z]:字母
[A-Z]:字母
[string]:匹配列表中的任意一个字符
[^string]:匹配列表中所有字符以外的字符
预定义的字符类:man 7 glob
[:digit:]:数字
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:任意大小写字母
[:alnum:]:任意数字或字母
[:punct:]:标点符号
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符