1、什么是shell

  Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)。它接收用户输入的命令并把它送入内核去执行。起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。

  Shell在Linux系统上具有极其重要的地位

  

 2、命令解释过程

  Shell可以执行:内部命令、应用程序、shell脚本

  

3、Shell的种类

  常见的各种版本的shell:

 Bash(Bourne Again Shell)

 bash是大多数Linux系统的默认Shell。bash与bsh完全向后兼容,并且在bsh的基础上增加和增强了很多特性。bash也包含了很多C Shell和Korn Shell中的有点。bash有很多灵活和强大的变成接口,同时又有很友好的用户界面。

Ksh(Korn Shell) 

Korn Shell(ksh)由Dave Korn所写。它是UNIX系统上的标准Shell。在Linux环境下有一个专门为Linux系统写的Korn Shell的扩展版本,即Public Domain Korn(pdksh) 

tcsh(csh 的扩展)   tcsh是C Shell的扩展。tcsh与csh完全向后兼容,但它包含了更多的使用户感觉方便的新特性。其最大的提高是在命令行编辑和历史浏览方面。

4、Linux的元字符

  在Shell中有一些具有特殊意义的字符,称为Shell 元字符(shell metacharacters)。

  若不以特殊方式(使用转义字符)指明,Shell 并不会把它们当作普通文字符使用。

字符 含义 字符 含义
' 强引用 *、?、! 通配符
" 弱引用 <、>、>> 重定向
\ 转义字符 - 选项标志
$ 变量引用 # 注释符
; 命令分隔符 空格、换行符 命令分隔符

5、Bash的基本功能

  历史命令(history)

  命  令:history 命令可以用来显示曾执行过的命令,也可以根据显示的治疗来重新执行需要的命令

  语  法:history(选项)(参数)

  选  项:n 显示n个最近的记录

  参  数:-a 添加记录

       -r 读取记录,但不会添加内容记录

       -w 覆盖原有的history 文件

       -c 清除记录

       -d<编号>[n] 删除指定n条记录

       -n<文件> 读取指定文件

       -r<文件> 读取文件但不记录

       -w<文件> 覆盖原有文件

  使用上下箭头---调用以前的历史命令

  使用 "!n" 的方式---重复执行第n条历史命令

  使用 "!!" 的方式---重复执行上一条命令

  使用 "!字符串" 的方式---重复执行最后一条以该字符串开头的命令

  使用 "!$" 的方式---重复执行上一条命令的最后一个参数

  

   历史命令存放在当前用户家目录下的 .bash_history 隐藏文件中。