APP下载

Linux操作系统之Shell程式设计

消息来源:baojiabao.com 作者: 发布时间:2024-05-15

报价宝综合消息Linux操作系统之Shell程式设计

Shell是种命令解释程式,也可以看作是一种命令语言的直译器。 使用者在与Shell互动时所输入的命令列必须符合Shell命令的语法和语义规范,才能够被Shell理解并执行。Shell所使用的这种命令语言称为Shell 语言。Shell语言不仅仅是一种互动式语言, 它还是一种可程式设计的程式设计语言。将若干个Shell命令列写入个档案就构成了一个Shell程式,它可以被Shell逐条地解释执行。用Shell语言编写的Shell程式可以使用各种变数、引数和控制结构来组织命令流程,自动化地完成各种复杂冗繁的处理工作。

Linux系统中广泛使用了Shell程式来实现系统的初启、配置、管理和维护等工作。因此,熟练掌握Shell语言可以更加深入地理解系统的执行机制,更加有效地使用和管理系统。

Shell 语言的特点:

与其他程式语言相比,Shell 语言具有如下特点:

(1) Shell是一种解释性语言。这就是说,用Shell语言写的程式不需编译,可以直接由Shell程序解释执行。解释性语言的特点是快捷方便,可以即编即用,但与编译性语言的目标程式来比,解释性语言程式的执行速度要低一些。

(2) Shell 是基于字串的语言。Shell 只是做字串处理,不支援复杂的资料结构和运算。Shell 的输出也全部是字元方式的。

(3) Shell是命令级语言。Shell 程式全部由命令而不是语句组成,几乎所有的Shell命令和可执行程式都可用来编写Shell程式。Shell命令十分丰富,命令的组合功能也十分强大。所以,用简单的命令和命令组合形成的Shell程式即简洁又高效,可以实现各种复杂的功能。另外需要说明的是,不同版本的Shell程式不完全相容,差别可能是细微的,也可能是明显的。

Shell程式也称Shell指令码(script),是由一系列 Shell命令为基本元素构成的文字档案。简单的Shell程式可以只是一个命令序列,高阶Shell程式中还可以包含复杂的命令组合,定义各种引数和变数、使用条件命令、控制结构以及其他高阶特性。

Shell程式的建立与执行

Shell指令码文是文字档案,因此可以用任何文字编辑器(如vi, emacs等)建立和编辑指令码。Shell指令码档案的名称没有限定的拓展名,通常不带拓展名或者带“.sh”拓展名。

Shell指令码的执行方式主要有3种。

(1)将指令码作为可执行档案执行:

1. $ chmod a+x hello

2. $ ./hello

用文字编辑器生成的指令码档案预设是没有x许可权的,也就是说是不可直接执行的。赋予x许可权后,指令码就可以像一般的 Shell命令那样执行了。如果指令码不在系统存放命令的标准目录下,需要在执行时指定指令码的路径。上例中指令码hllo放在当前目录下,所以要用.hello来执行。

(2)启动一一个Shell子程序来执行指令码档案:

1. $ bash hello #或bash

执行此命令列时,Shell 程序先启动一个bash子程序,让它执行hello指令码的内容,执行完毕后bash子程序也终止。在这种方式中,指令码是作为命令引数传给子Shell 的。子Shell执行时读取该档案并执行其内容,因此指令码档案不必有执行许可权。这种方法常用于执行一个其他版本的Sbell指令码。假如当前Shell是bash,而chello是用C Shell语言写的指令码,则要执行这个指令码时可以用csh chello命令启动一个csh程序来执行它。

(3)让当前Shell程序执行指令码档案:

1. $.hello

“.”是一个shell内部命令,hello是它的引数。命令的功能是读取引数指定的档案,执行其内容。这种执行方式与第2种方式类似,区别在于此方式是由当前Shell程序来执行指令码档案的。

前面大致简介了一下什么是Shell指令码,它有什么特点,做什么用的,想必现在大家对这个有了一定程度的了解,当然这只是学习Linux操作系统中所接触到的冰山一角,想要学好Linux操作系统,就必须学好Shell,那怎么样才能学好Shell呢?我们先看一个简单的Shell程式:

1. $ cat hello # hello program

2. # this is a shell script to say hello

3. echo Hello World!

4. echo -n “Today is”

5. date “+%A,%B %d,%Y.”

6. $.hello # run

7. Hello World!

8. Today is Sunday, July 15, 2018.

9. $_

这个hello程式的第二行是注释,后面3行是命令,在执行程式时,shell依次执行这3个命令,并输出显示资讯。这就是一个简单的hello world程式码,几乎所有的程序员学习如何编写程式码都是从这里起家的。

学习linux运维,这是必经之路,不知道各位读者是自学呢,还是在校老师教导,不过在我看来,学习技术还是的有一个完整的体系,前几天逛网页,看到一个关于linux学习的网站,叫linuxprobe,配套有书籍叫《Linux就该这么学》,进去瞄了一眼,感觉还不错,里面的知识架构很好,如果各位有兴趣可以一阅!不管你学不学,资料就在哪里不断增多;不管你学不学习,时间就那么多,逐渐流逝!

祝各位运维人前程似锦!加油!!!

2019-11-11 01:51:00

相关文章