bash 基本特性:
1. 命令展开
{}
~:家目录
~USERNAME
2. 路径补全
3. 命令补全
1.1 内部命令,bash内置
2.2 外部命令,通过$PATH来搜索命令程序
4. glob,shell通配符
*,?,[],[^]
[:digit:]、[:alpha:]、[:lower:]、[:upper:]、[:alnum:]、[:space:]、[:punct:]
5. 命令执行结果状态
0:成功
1-255:失败
用特殊变量$?保存
6. 命令历史
history
history -c 全清
history -d n 清除某条
环境变量
HISTCONTROL=ignoredups:忽略连续重复的命令
$HISTFILE
$HISTFILESIZE
$HISTSIZE
调用历史中命令
!n
!str:执行包含str最近的那条命令
调用上一个命令参数
Alt+.
7. 命令别名(alias)
alias name='val',仅对当前shell有效,要想长久有效,修改配置文件
仅对当前用户:~/.bashrc
对所有用户:/etc/bashrc
配置完配置后不会立即生效,需要重新读取配置文件
source /etc/conf
或者. /etc/conf
8. 快捷键
ctrl+c:取消命令执行
ctrl+d:退出当前shell
ctrl+u,k:删除光标前,后内容
ctrl+a,e:跳转到命令行首部、尾部
9. I/O重定向及管道
打开文件就会有一个文件描述符fd(file description)
标准输入:0
标准输出:1
错误输出:2
输出重定向
>:覆盖原文件内容,如果没有则创建
>>:追加内容
输入重定向 <
合并输出 &>
管道 |
10. 提供了可编程环境
bash中变量种类,根据变量生效范围等标准:
本地变量:只对当前shell进程有效,子进程及其他进程失效,命令set查看所有变量
环境变量:对当前shell进程跟子进程有效,命令env、export查看
局部变量:函数内的变量
位置变量:运行脚本时后面传的参数$1、$2...
特殊变量:$0、$?、$#、$*、$@等