Linux运维工程师如何学好Shell
一、Shell 语言的特点
与其他编程语言相比,Shell 语言具有如下特点:
(1) Shell是一种解释性语言。
这就是说,用Shell语言写的程序不需编译,可以直接由Shell进程解释执行。解释性语言的特点是快捷方便,可以即编即用,但与编译性语言的目标程序来比,解释性语言程序的运行速度要低一些。
(2) Shell 是基于字符串的语言。
Shell 只是做字符串处理,不支持复杂的数据结构和运算。Shell 的输出也全部是字符方式的。
(3) Shell是命令级语言。
Shell 程序全部由命令而不是语句组成,几乎所有的Shell命令和可执行程序都可用来编写Shell程序。Shell命令十分丰富,命令的组合功能也十分强大。所以,用简单的命令和命令组合形成的Shell程序即简洁又gao效,可以实现各种复杂的功能。另外需要说明的是,不同版本的Shell程序不完全兼容,差别可能是细微的,也可能是明显的。
二、Shell 程序
Shell程序也称Shell脚本(script),是由一系列 Shell命令为基本元素构成的文本文件。简单的Shell程序可以只是一个命令序列,*Shell程序中还可以包含复杂的命令组合,定义各种参数和变量、使用条件命令、控制结构以及其他*特性。
Shell程序的建立与执行
Shell脚本文是文本文件,因此可以用任何文本编辑器(如vi, emacs等)建立和编辑脚本。Shell脚本文件的名称没有限定的拓展名,通常不带拓展名或者带“.sh”拓展名。
Shell脚本的执行方式主要有3种。
1. $ chmod a+x hello
2. $ ./hello
(1)将脚本作为可执行文件执行:
用文本编辑器生成的脚本文件默认是没有x权限的,也就是说是不可直接执行的。赋予x权限后,脚本就可以像一般的 Shell命令那样执行了。如果脚本不在系统存放命令的标准目录下,需要在执行时指定脚本的路径。上例中脚本hllo放在当前目录下,所以要用.hello来运行。
(2)启动一一个Shell子进程来执行脚本文件:
1. $ bash hello #或bash < hello
执行此命令行时,Shell 进程先启动一个bash子进程,让它执行hello脚本的内容,执行完毕后bash子进程也终止。在这种方式中,脚本是作为命令参数传给子Shell 的。子Shell运行时读取该文件并执行其内容,因此脚本文件不必有执行权限。这种方法常用于运行一个其他版本的Sbell脚本。假如当前Shell是bash,而chello是用C Shell语言写的脚本,则要执行这个脚本时可以用csh chello命令启动一个csh进程来执行它。
(3)让当前Shell进程执行脚本文件:
1. $.hello
“.”是一个shell内部命令,hello是它的参数。命令的功能是读取参数指定的文件,执行其内容。这种执行方式与第2种方式类似,区别在于此方式是由当前Shell进程来执行脚本文件的。
三、如何学好 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运维,这是必经之路,不管是自学呢,还是参加培训,*在我看来,学习技术还是的有一个完整的体系,不管你学不学,资料就在哪里不断增多;不管你学不学习,时间就那么多,逐渐流逝!
更多培训课程,学习资讯,课程优惠等学校信息,请进入 上海嘉定区Web培训上海浦东新区Python培训上海金山区Linux云计算培训 网站详细了解,免费咨询电话:400-998-6158