Bash的基础特性
(1)命令历史
环境变量
$HISTSIZE:命令历史纪录的条数
$HISTFILE:~/.bash(用户的家目录)
$HISTFILESIZE:命令历史文件记录历史的条数
删除历史:
history
-d 要删除的第几条
-c 清空命令历史
history #:显示历史中最近的#条命令(#:代表数字)
-a: 手动追加当前会话缓冲区的命令历史纪录至文件中
调用历史中的命令
!#:重复执行第#条命令
!!:执行上一条
!string:最近一个以"string"开头的指令
调用上一条命令的最后一个参数
!$或ESC+.
控制命令历史的记录方式
环境变量:HISTCONROL
ignoredups:忽略重复的命令;连续且相同方式为"重复"
ignorespace:忽略所有以空白开头的命令
ignoreboth :上述两者同时生效
修改环境变量方式: 例:export HISTCONTROL=ignorespace
变量赋值:把赋值符号后面的数据存储于变量名指向内存空间;只对当前shell有效
(2)命令补全
直接补全:用户给定的字符串只对应唯一的一条命令
列表显示:以用户给定的字符串对应的命令不唯一,按两下"Tab"键就会列出,如下图所示
内部命令:当你键入一个命令并且执行的时候,系统会首先判断是否为内部命令,如果是就直接执行
外部命令:如果不是内部命令,就根据$PATH环境变量定义的路径,从左向右在每个路径,
下搜寻用户给定的命令名命名的文件,第一次找到的则是要执行的文件
(3)路径补全
把用户给出的字符串当做路径的开头,并在指定的上级目录下搜寻以指定字符串开头的文件名,如果唯一,直接补全,否则还是两
次"Tab"键给出列表
(4)命令行展开
~:展开为用户的家目录
~USERNAME:展开为指定用户的家目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a,/tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi,/tmp/jerry/hi
(5)命令执行结果状态
成功
失败
bash使用特殊变量"$?"保存最近一条命令的执行状态结果
0:成功
1-255:失败
echo $? 获取上一条指令的执行结果状态
程序执行有两类结果:
程序的返回值:结果
程序的运行状态结果:成功/失败