Shell学习---概念与理解

什么是Shell?

Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令,并把它送入内核去执行。内核是Linux系统的心脏,从开机自检时就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存。Shell是一种应用程序,当用户登录到Linux系统时,Shell就会被调入内存执行。Shell独立于内核,它是连接内核与应该程序的桥梁,并由输入设备读取命令,再将其转为计算机可以理解的机械码,Linux内核才能执行该命令。

Shell脚本编程的优势

脚本语言(Script Language)是相对于编译型语言而言的,它是为了缩短编译型语言编写-编译-链接-运行过程而创建的计算机编程语言。由于脚本语言常常运行于底层,所处理的是字节、整数、浮点数或其他机器层的对象,因而,脚本语言是低级程序设计语言。而C/C++、java、C#等都属于编译型语言,也就算高级语言,这类语言所编写的程序都需要经过编译,将源代码转化为目标代码才能运行。而脚本语言往往是解释运行而非编译,即由解释器读入脚本程序代码,将其转换成内部的形式执行,而解释器本身则是编译型程序。

脚本语言的灵活性是以执行效率为代价的,脚本语言的执行效率通常不如编译型语言。脚本语言一般不适合用于大型的项目、计算复杂的工程或有高级需求的应用软件,它适合用于系统管理、文本处理等方面完成特定功能的常用的小工具或小程序。

Shell脚本语言是Linux/UNIX系统上一种重要的脚本语言,在Linux/UNIX领域应用极为广泛,熟练掌握Shell脚本语言是一个优秀的Linux/UNIX开发者和系统管理员的必经之路。


Linux系统中的Shell种类众多,常见的有bash、csh,以及ksh等。不同的Shell语法有所不同,不能互换使用,但每种Shell都有其特色之处。

1.创建Shell脚本

Shell脚本是将一系列的Linux命令放在一个文件中执行的实用程序。Shell脚本可以利用vi等文本编辑器来编写。Shell脚本的格式是固定的,如下:

#!/bin/bash
#注释
命令
...

 第一行中的符号“#!”用来指定解释执行该脚本文件的Shell程序。如果脚本文件中缺少该行,在执行过程中会报出错误信息。除了第一行外,所有以“#”字符开头的行都是注释行,如果一行未完成,可以在尾行加上"\"字符,表示与下一行合并为一行。
脚本文件编辑完成后,将其保存为test.sh。在执行脚本之前,需要将其属性改为可执行的,如下:

chmod +x test.sh
执行脚本的方法为:
./test.sh


一个简单的脚本示例代码:
#!/bin/bash
#输出Hello World
str="Hello World"
echo $str

注意:echo命令的功能是在屏幕上显示一段文字,后面的字符串可以加上引号,也可以不加引号。如果加引号,将字符串原样输出;如果不加引号,将字符串中的单个单词用一个空格来分割。

你可能感兴趣的:(shell,脚本语言,linux内核)