一、命令历史
bash会记录此前用户在shell会话中执行的命令于缓冲区中;正常退出时,会被记录于当前用户家目录下隐藏文件.bash_history中;
环境变量:
HISTSIZE:命令历史记录的条数;
HISTFILE:命令历史文件路径;
HISTFILESIZE:
history命令:
-c:清空命令历史;
-d #: 删除历史中指定的命令;
-a: 当缓冲区中的历史手动追加文件;
history #: 显示最近的多少条命令;
调用过去执行过的命令:
!#:调用历史中的第#条命令;
!!: 重复执行上一条命令
!string:调用历史中最近一个以string开头的命令;
调用过去执行过的命令的最后一个参数:
!$:
ESC, .
Alt+.
二、命令补全
命令搜索机制:
PATH环境变量:由冒号分隔的路径
hash:把此前搜索到路径缓存到内存中;
kv: key-value
ls --> /bin/ls
命令补全:TAB
三、路径补全
把用户给出的路径字符串当前路径起始,并在其指定的上级目录下搜索以指定的字符串开头的文件名;
如果惟一:直接补全;
否则:两次Tab,可列出;
四、 命令行展开的功能
~: 展开为当前用户的主目录;
~USERNAME:展开为指定用户的家目录;
{}:可承载一个以逗号分隔的列表,并其展开为多个路径;
/var/{log,cache,run} = /var/log /var/cache /var/run
五、命令的执行结果状态,由bash追踪和保存
成功:0
失败:1-255
bash使用特殊变量$?保存最近一条命令的状态结果;
程序的执行结果有两种:
程序的返回值;
程序的状态结果;
六、命令别名
命令的另一个引用符号,由bash程序维护;
alias/unalias
alias: 查看所有已经定义别名;
alias NAME=COMMAND:定义别名;
如果别名同原命令名,想直接执行原命令,则需使用\COMMAND
unalias NAME: 撤消别名;