如何理解Linux Shell和基本Shell脚本语言?

社区广播:运维派(Yunweipai.com)是国内最早成立的IT运维社区,欢迎大家投稿,让运维人不再孤寂的成长!

 理解Linux Shell:

shell:一个命令行解释器,通过执行命令或脚本,帮助用户与操作系统打交道。

process:进程,用户执行的任务是进程,但进程不只是任务。

file:文件放在硬盘上,包含用户所有的数据。

x-windows(又称windows):Linux的一种模式,使屏幕包含多个视窗,让用户同时监视多个任务,方便地穿梭于任务之间,它是图形化的。

text terminal:一种只能显示文字或简单图形的视窗。

session:登入,建立会话;登出,注销会话。

标准Linux发行版里的shell种类:

Bourne Shell:它是早期版本中的一种主要的shell,并且后来成为了标准。由贝尔实验室的 Stephen Bourne 所写。每个“类Unix”的系统里都至少有一种shell与之兼容。Bourne Shell 的程序命名为“sh”,一般放在 /bin/sh 。

C shell:由 Bill Joy 为 BSD 版本所写。它的语法是模仿C语言的。它主要用于交互式操作,有很多交互式命令,而不太常用于写脚本。

开始玩了!

命令有成千上万条,都把它们记住,好吗?额,很明显那是不行的。计算机的真正用途是简化你的工作,你需要过程自动化,所以,你需要脚本。

脚本是命令的集合,保存在文件里。shell能读取这些文件并且执行里面的命令,就像执行键盘发来的命令。shell还提供各种各样的编程特性,使得脚本真心强大。

shell编程基础:

开启终端,以获取shell

看下你用着什么shell,运行:echo $SHELL

在Linux shell中,美元符号$代表一个变量

“echo”命令就是回复你键入任何东西

当需要串联几个命令时,管线指令 “|” 就有用了

Linux命令有自己的语法,你的任何错误都不会被容忍和接受。如果你写了条不规范的命令,当然不会如愿执行。

#!/bin/sh —— 这个叫环境。这句写在shell脚本的首行,使得命令被发送到 /bin/sh 程序

关于shell 脚本:

shell脚本就是一个普通的文本文件,扩展名是  .sh ,且能够被执行。

编写和执行脚本:

打开终端

“cd”命令,去到你想存放该脚本的地方

cd,回车,使你的提示符变成home目录

touch hello.sh(这里我们的脚本命名为hello,而 .sh 是规定的)

vi hello.sh(nano hello.sh)用你最喜欢的编辑器,我用nano

chmod 744 hello.sh(使脚本可被执行)

sh hello.sh 或者 ./hello.sh (执行脚本)

编写你第一个脚本:
#!/bin/bash
# My first script

echo “Hello World!”

如上所述,将这几行东西,保存在文本文件里,使之可执行,并执行之。

输出的样子:

Hello World!

上面的代码解释如下。
#!/bin/bash ( 运行环境 )
# My first script ( 注释,任何位于#后的东西都被注释 )
echo “Hello World!” ( 脚本的主要部分 )

编写你第二个脚本:

是时候写下一个了。这个脚本会说出你的username和列出运行中的process
#! /bin/bash
echo “Hello $USER”
echo “Hey i am” $USER “and will be telling you about the current processes”
echo “Running processes List”
ps

如上所述,将这几行东西,保存在文本文件里,文件叫啥名字都行,但记住扩展名为 .sh ,使之可执行,并执行之。

Hello tecmint
Hey i am tecmint and will be telling you about the current processes
Running processes List
  PID TTY          TIME CMD
 1111 pts/0    00:00:00 bash
 1287 pts/0    00:00:00 sh
 1288 pts/0    00:00:00 ps

觉得酷吗?编写脚本就像将想法转变为流程式命令一样简单。通过内置的过滤器和管道功能,shell 脚本擅长做简单的文件系统操作。

当你的需求更复杂,例如是功能、健壮、性能、效率等方面时,你就需要一个全能的语言了。

当你已经熟悉 C、PERL、PYTHON之类时,学习脚本语言就不觉得难了。

编写你第三个脚本:

接着,来写第三个也是本文最后一个脚本。这个脚本表现为一个互动式的脚本,何不亲自执行它,说下感觉怎样?

[code language=”shel”]#! /bin/bash
echo "Hey what’s Your First Name?";
read a;
echo "welcome Mr./Mrs. $a, would you like to tell us, Your Last Name";
read b;
echo "Thanks Mr./Mrs. $a $b for telling us your name";
echo "*******************"
echo "Mr./Mrs. $b, it’s time to say you good bye"[/code]

输出的样子:

Hey what's Your First Name?
Avishek
welcome Mr./Mrs. Avishek, would you like to tell us, Your Last Name
Kumar
Thanks Mr./Mrs. Avishek Kumar for telling us your name
******************************************************
Mr./Mrs. Kumar, it's time to say you good bye

其实,这事还没完。我们只不过让你浅尝了一下。在未来,我们会全面开展“脚本”这个话题,它会一直下去,没有最详尽,只有更详尽。各位在评论中的宝贵意见都是可赞的!请支持我们,并帮忙宣传,保持联系,敬请关注!

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2012-2017 YUNWEIPAI.COM - 运维派 - 粤ICP备14090526号-3
扫二维码
扫二维码
返回顶部