O## 1.记录命令历史
环境变量:HISTCONTROL 控制命令历史的记录方式
[root@senlong local]# echo $HISTCONTROL # 查看当前命令历史的记录方式
ignoredups
[root@senlong local]# export HISTCONTROL="ignorespace" # 修改环境变量
[root@senlong local]# echo $HISTCONTROL
ignorespace
命令历史的三种记录方式:
- ignoredups:忽略重复的命令;连续且相同方为“重复”;
- ignorespace:忽略所有以空白开头的命令;
- ignoreboth:ignoredups, ignorespace;
2.命令补全
用户键入一部分命令后,按下Tab键,bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令。分为两种情况:
- 用户给定的字符串只有一条惟一对应的命令,直接补全
- 用户给定的字符串有多条对应的命令,再次按Tab, 将对应的命令列表显示
3.路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名, 使用方式与命令补全一致:路径惟一时,按Tab自动补全,不惟一时,再次按Tab,显示路径列表
4.命令行展开
~: 展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
[root@senlong ~]# cd /
[root@senlong /]# cd ~
[root@senlong ~]# pwd
/root
[root@senlong ~]# ls /tmp/{a,b}
/tmp/a:
a.txt
/tmp/b:
b.txt
5.命令的执行结果状态
bash使用特殊变量$?保存最近一条命令的执行状态结果:
- 0:成功
- 1-255:失败
[root@senlong ~]# ls /
bin dev lib media proc selinux tmp
boot etc lib64 mnt root srv usr
data home lost+found opt sbin sys var
[root@senlong ~]# echo $? # 显示上一条指令的执行结果
0
[root@senlong ~]# ls test
ls: cannot access test: No such file or directory
[root@senlong ~]# echo $? # 显示上一条指令的执行结果
2
bash的快捷键
- Ctrl+l: 清屏,相当于clear命令;
- Ctrl+a:跳转至命令开始处;
- Ctrl+e:跳转至命令结尾处;
- Ctrl+c:取消命令的执行;
- Ctrl+u: 删除命令行首至光标所在处的所有内容;
- Ctrl+k: 删除光标所在处至命令行尾部的所有内容;