bash及其特征:
shell:#外壳
GUI:#Gnome,KDE,Xfce
GLI:#sh,csh,ksh,bash,tcsh,ksh(克隆版),zsh
bash:
1、#命令历史、命令补全、路径补全
2、#管道、重定向
3、#命令别名
4、#命令行编辑
5、#命令行展开
6、#文件名通配
7、#支持变量
8、#支持编程(shell脚本)
命令行编辑:
  光标跳转:
    ctrl+a:#跳到命令行首
    ctrl+e:#跳到命令行尾
    ctrl+u:#删除光标至命令行首内容
    ctrl+k:#删除光标至命令行尾内容
    ctrl+l:#清屏(clear)
命令历史:
  history:#查看命令历史
    -c:#清空命令历史
    -d OFFSET [n]:#删除指定位置的命令
    -w:#保存命令历史至历史文件中
环境变量:
    PATH:#命令搜索路径
    HISTSIZE:#命令历史缓冲区大小
命令历史的使用技巧:
    !n:#执行命令历史中的第n条命令
    !-n:#执行命令历史中的倒数第n条命令
    !!: #执行上一条命令:
    !:  #执行命令历史中最近一个以指定字符串开头的命令
    !$: #引用前一个命令的最后一个参数
    esc,. :#引用前一个命令的最后一个参数
命令补全:
    #搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件,如果多于一个,两次table,可以给出列表:否则直接补全
路径补全:#搜索我们给出的起始路径下的每个文件名,并试图补全;
命令别名:
alias cls=clear
alias net='vi /etc/sysconfig/network-scripts/ifcfg-eth0'
#在shell中定义的别名仅在当期shell生命周期中有效;别名的有效范围仅为当前shell进程
unalias:#取消定义别名
命令替换:
   $(COMMAND),反引号 `COMMAND`
        #把命令中某个子命令替换为其执行结果的过程
Bash支持的引号:
    ``:#命令替换
    "":#弱引用,可以实现变量替换
    '':#强引用,不完成变量替换
    
    文件名通配(globbing):
        *:#任意长度的任意字符
        ?:#任意单个字符
        []:#匹配指定范围内的任意单个字符
        [abc],[a-m],[a-z],[0-9],[a-zA-Z],[0-9a-zA-Z]
        [[:space:]]:#空白字符
        [[:punct:]]:#标点字符
        [[:lower:]]:#小写字母
        [[:upper:]]:#大写字母
        [[:alpha:]]:#大小写字母
        [[:digit:]]:#数字
        [[:alnum:]]:#数字和大小写字母
        [^]:#匹配指定范围之外的任意单个字符