Linux操做系统之Shell程序设计linux
Shell是种命令解释程序,也能够看做是一种命令语言的解释器。 用户在与Shell交互时所输入的命令行必须符合Shell命令的语法和语义规范,才可以被Shell理解并执行。Shell所使用的这种命令语言称为Shell 语言。Shell语言不只仅是一种交互式语言, 它仍是一种可编程的程序设计语言。将若干个Shell命令行写入个文件就构成了一个Shell程序,它能够被Shell逐条地解释执行。用Shell语言编写的Shell程序可使用各类变量、参数和控制结构来组织命令流程,自动化地完成各类复杂冗繁的处理工做。程序员
Linux系统中普遍使用了Shell程序来实现系统的初启、配置、管理和维护等工做。所以,熟练掌握Shell语言能够更加深刻地理解系统的运行机制,更加有效地使用和管理系统。shell
Shell 语言的特色:编程
与其余编程语言相比,Shell 语言具备以下特色:bash
(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)将脚本做为可执行文件执行:
用文本编辑器生成的脚本文件默认是没有x权限的,也就是说是不可直接执行的。赋予x权限后,脚本就能够像通常的 Shell命令那样执行了。若是脚本不在系统存放命令的标准目录下,须要在执行时指定脚本的路径。上例中脚本hllo放在当前目录下,因此要用.hello来运行。
(2)启动一一个Shell子进程来执行脚本文件:
执行此命令行时,Shell 进程先启动一个bash子进程,让它执行hello脚本的内容,执行完毕后bash子进程也终止。在这种方式中,脚本是做为命令参数传给子Shell 的。子Shell运行时读取该文件并执行其内容,所以脚本文件没必要有执行权限。这种方法经常使用于运行一个其余版本的Sbell脚本。假如当前Shell是bash,而chello是用C Shell语言写的脚本,则要执行这个脚本时能够用csh chello命令启动一个csh进程来执行它。
(3)让当前Shell进程执行脚本文件:
“.”是一个shell内部命令,hello是它的参数。命令的功能是读取参数指定的文件,执行其内容。这种执行方式与第2种方式相似,区别在于此方式是由当前Shell进程来执行脚本文件的。
前面大体简介了一下什么是Shell脚本,它有什么特色,作什么用的,想必如今你们对这个有了必定程度的了解,固然这只是学习Linux操做系统中所接触到的冰山一角,想要学好Linux操做系统,就必须学好Shell,那怎么样才能学好Shell呢?咱们先看一个简单的Shell程序:
这个hello程序的第二行是注释,后面3行是命令,在执行程序时,shell依次执行这3个命令,并输出显示信息。这就是一个简单的hello world代码,几乎全部的程序员学习如何编写代码都是从这里起家的。
学习linux运维,这是必经之路,不知道各位读者是自学呢,仍是在校老师教导,不过在我看来,学习技术仍是的有一个完整的体系,前几天逛网页,看到一个关于linux学习的网站,叫linuxprobe,配套有书籍叫《Linux就该这么学》,进去瞄了一眼,感受还不错,里面的知识架构很好,若是各位有兴趣能够一阅!无论你学不学,资料就在哪里不断增多;无论你学不学习,时间就那么多,逐渐流逝!
祝各位运维人前程似锦!加油!!!