shell的作用:一般用户通过Shell来跟内核通信(内核:管理整个计算机硬件的是操作系统的内核,内核是需要被保护的,如果被用户随意操作,将会使系统崩溃),为用户提供操作系统的一个接口。

Shell只是为用户提供操作系统的一个接口,因此Shell包含可以调用的其他软件,如: man, chmod, chown, vi, fdisk,mkfs 等命令,这些命令都是独立的应用程序,我们可以通过Shell来操作这些应用程序,让这些应用程序调用内核来运行所需要的工作。反过来说:只要能够操作各种应用程序的接口都能够称为Shell。

Shell 有很多种(Unix 年代,发展者众多,所以Shell依据发展者的不同就有许多的版本),至于Linux使用的这一种版本就称为Bourne again Shell (简称 bash)。可以通过/etc/shells 来查看可以使用的Shell种类。

终端登录界面Linux时取得的Shell就记录在/etc/passwd 这个文件中。

bash shell 功能:1. 命令记忆功能 (他能记忆使用过的命令,只要在命令行中按上下键就可以找到前后输入的命令)。

2. 命令与文件补全功能(按Tab键)。

 3. 命令别名设置(如:alias lm = 'ls -al' ,ls -al 查看目录下面所用文件并且包含隐含文件,以及文件的属性)。

 4. 程序脚本(Shell script, 将连续的命令写成一个.sh文件)。

5. 通配符。

bash shell 的内置命令:可以通过 type 【-tpa】 name 来查看命令是外部命令还是内置在bash 当中,在线帮助文件可以通过( man 命令 )来查看,内置命令有 cd 、umask等。

Shell 的变量功能:变量,可以用一个简单的字眼来替代另一个比较复杂或者是容易变动的数据。

 PASH变量:例如执行某个命令时,系统就是通过PASH这个变量里面的内容所记录的路径顺序来查找命令。

 环境变量:在进入Shell之前,系统需要一些变量来提供它数据的访问。环境变量有PASH,HOME,MAIL,SHELL等。

变量的显示:echo , 变量的取消:unset. 环境变量的功能:用env, export 查看环境变量与常见环境变量的说明,用set 查看所有变量(包含环境变量与自定义变量)。 export :自定义变量转成环境变量(两者差异:该变量是否会被子进程所继续使用,子进程仅会继承父进程的环境变量,不会继承父进程的自定义变量)。 环境变量 = 全局变量 自定义变量 = 局部变量 语系变量 locate ,语系不同容易产生乱码。