Shell简介

Shell是什么?

  • Shell本身是一个用C语言编写的程序,提供了用户与内核进行交互操作的一种接口。它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。
  • Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
  • Shell也是一种应用程序,当用户登录Linux系统时,Shell就会被调入内存执行。
  • Shell独立于内核,它是连接内核和应用程序的桥梁,并由输入设备读取命令,再将其转为计算机可以理解的机械码,Linux内核才能执行该命令。

Shell在Linux系统中的位置,如下图:

备注:
从某种层度来说,shell使用的熟练程度反映了用户对Unix/Linux使用的熟练程度。

Shell两种执行命令的方式

(1)交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。
(2)批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。

Shell的两种打开方式

(1)直接打开系统终端,用户可以在命令提示符后输入命令。
(2)使用SSH Secure Shell软件 或 Putty软件,进行远程打开系统终端,然后进行系统操作。

Shell脚本编程的优点

(1)语法和结构比较简单。
(2)学习和使用比较简单。
(3)解释性语言,运行之前不需要“编译”。
(4)常用命令好记,不清楚可以通过man命令迅速查询。
(5)程序开发效率非常高。一句话“开发产能由于运行性能”。

Shell脚本编程的缺点

(1)弱类型语言,对变量定义的检查不是很严格。
(2)运行效率比开发效率低。
(3)I/O性能不高。
(4)一些细节方面还需要完善。