目录
一、命令历史history
1.环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:~/.bash_history定义了路径
HISTFILESIZE:命令历史文件记录历史的条数
history -d OFFSET
-c
-a:手动追加当前会话缓冲区的命令历史至历史文件中
history #:显示历史中最近的#条命令
2.调用历史中的命令
!#:重复执行第#条指令;
!!:重复执行上一条命令
!string:执行最近以string开头的命令
3.调用上一条命令的最后一个参数
!$:
ESC, .
Alt+.
4.控制命令历史的记录方式
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups, ignorespace
export HISTCONTROL='ignorespace'
修改环境变量值的方式:export 变量名="值"
变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间
问题:使用 export 赋值与直接使用 = 赋值
使用 export 赋值的变量能够被子进程继承,而直接使用 = 的不能;但是在子进程中,无论使用 export 还是 = 都无法改变父进程的值
二、命令补全
在内部命令和外部命令可能路径下查找已经输入字符串开头的命令
bash执行命令:
内部命令:
外部命令:①bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令,因此能够自动补全命令
②还可以hash中找
直接补全:[Tab] 用户给定的字符串只有一条惟一对应的命令
以用户给定的字符串为开头对应的命令不惟一,则再次Tab会给出列表
三、路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab,给出列表
四、命令行展开
~:展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
五、命令的执行结果状态
程序的执行状态结果(成功或失败)
bash使用特殊变量$?保存最近一条命令的执行状态结果:
0:成功
1-255:失败
用echo $?显示执行状态结果
程序执行有两类结果:
①程序的返回值
②程序的执行状态结果(成功或失败)
回顾
bash的基础特性:
命令补全
路径补全
命令历史
命令行展开:
~, {}
命令的状态结果
成功:0
失败:1-255
参考资料:
马哥随堂笔记
注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。