什么是Shell?
 
     shell是用户和Linux内核之间的接口程序。在提示符下输入的每个命令都由shell先解释然后传给Linux内核。
     shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。此外,shell也能被系统中其他有效的Linux 实用程序和应用程序所调用。
    不论何时你键入一个命令,它都被Linux shell所解释。
     Shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell 程序设计语言支持在高级语言里所能见到的绝大多数程序控制结构,比如循环,函数,变量和数组。
Shell的启动   
     shell在你成功地登录进入系统后启动,并始终作为你与系统内核的交互手段直至你退出系统。你系统上的每位用户都有一个缺省的shell。每个用户的默认shell在系统里的passwd文件里被指定。
常用Shell的功能
 1)命令行补齐(按Tab键)
 2)通配符
 3)命令历史记录
 4)输入重定向
 5)输出重定向
 6)管道
 7)作业控制
通配符:
bash 支持三种通配符:
 *      匹配任何字符和任何数目的字符
 ?      匹配任何单字符
 [...]  匹配任何包含在括号里的单字符
命令历史:
 bash 把你先前输入的命令文本保存在一个历史列表中。当你用你的帐号登录后历史列表将根据一个历史文件被初始化。历史文件的文件名被一个叫 HISTFILE 的 bash变量指定。历史文件的缺省名字是 .bash_history。
输入输出重定向:
 输入重定向用于改变一个命令的输入源。
 输出重定向使你能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上。
 标准输入:keyboard   --标示符0
    标准输出:monitor    --      1
    标准错误输出:monitor --     2  
使用方法:
标准输入输出重定向:
>  输出重定向   eg:ls /etc > /tmp/test.txt
>> 追加输出重定向
<  输入重定向
<< 追加输入重定向
错误输出重定向:2> (2>> --追加)
整合正确和错误的输出流:&> (&>> --追加)
将错误输出转为标准输出:2>&1
管道:“|”
 把前一个命令的输出当作后一个命令的输入;