所有的环境变量可以通过 ehco $# 查看 #为环境变量
bash的基础特性:
(1)命令历史
history
环境变量:
HISTSIZE:命令历史记录的条数
HISTFILE;~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
history -d offset 删除某条历史命令
history -c 清空历史命令
history #:显示历史中最近的#条命令
history -a:手动追加当前回话缓冲区的命令历史至历史文件中
调用历史中的命令:
!#:重复执行第#条指令
!#:重复最近以#开头的指令
调用上一条命的最后一个参数:
!$:
实例:
[[email protected]_IT ~]# cat /etc/fstab
/dev/vda1 / ext3 noatime,acl,user_xattr 1 1
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
[[email protected]_IT ~]# ls -l !$
ls -l /etc/fstab
-rw-r--r--. 1 root root 396 May 11 19:56 /etc/fstab
[[email protected]_IT ~]#
控制命令历史的记录方式:
环境变量:HISTCONTORL
ignoredups:忽略连续重复命令(默认)
ignorespece:忽略以空格开头的指令
ignoreboth:上述两个都生效
修改环境变量值得方式:export 变量名="值"
变量赋值:把赋值符号后面的数据存储于变量名指向内存空间
(2)命令补全
bash执行命令:
内部命令;
外部命令:bash根据PATH环境变量定义的路径,自左向右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令
直接补全:Tab,用户给定的字符串只有一条唯一对应的命令。
以用户给定的字符串开头对应的命令不唯一,则再次Tab可列出所有以该字符串开头的命令,方式如外部命令。
(3)路径补全
把用户给的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果唯一:则给出结果
不唯一:再次Tab,给出列表
(4)命令行展开
{}:可承载一个以都好分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a , /tmp/b
(5)命令执行结果状态
成功
失败
bash使用特殊变量$?保存最近一条命令的执行状态结果;
0:成功
1-255:失败
程序执行有两个结果:
程序的返回值
程序的执行状态结果