Linux系统中的shell的简介

Shell : 什么是 shell???

 

@  shell是linux的外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口;

@  当用户下达指令给操作系统的时候,实际上的是把指令告诉给shell,经过shell的解释,处理之后让内核做出相应的动作;

@  系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上;

用一张示意图来感受一下:

 

接下来我们谈谈什么是shell脚本?

 

@简单来说,当命令或者程序不在命令行执行,而是通过一个程序文件来执行,这个程序就被称为shell脚本;

@也就是在shell脚本里内置了多条命令,语句,循环控制,然后将这些命令一次性执行完毕,这种通过文件执行命令的方式成为非交互式

 

那我们为什么要使用shell脚本呢?

1. 适合处理操作系统底层的业务,有众多系统命令为其作支撑(还有文本处理三兄弟: grep,sed,awk);

2. 适合处理纯文本文件,linux中许多服务配置文件,启动脚本,都是纯文本(例如: httpd,nfs,mysql,nginx,lvs...);

3.  linux系统脚本用shell开发更简单,方便;

 

那我们来开始实验认识shell吧!

如何查看系统默认的shell???

echo  $SHELL   #查看系统默认shell

可以看到当前系统默认shell 为 /bin/bash

grep  root  /etc/passwd   

 

或者  通过 cat /etc/passwd| head -n 1 :

 

shell脚本的建立

1.第一行 : 输入     #!/bin/bash

/bin/bash   :  指定解释器:由那个程序来执行脚本内容;

#!              :  幻数 ;

注: #! /bin/bash必须写在第一行,否则会被认为是注释!(因为 #  这个符号;)

示例:

写一个sh类型的文件:

内容的话 就写 输出 Hello westos :

其中想要脚本执行的话:

第一种方法:(sh 跟 文件路径 )

第二种方法:

给文件加可执行权限(x):

然后直接输入文件路径就会执行脚本:

第三种方法:

其中. 表示当前路径,所以第三种方法其实和第二种一样。

@@@@@@@

就像我们前面提到的:

#! /bin/bash不在第一行的话因为# 的关系会注释掉:

@@@@@@@@@

我们写个清空日志的脚本文件:

内容为 第一步 进入/var/log目录, 第二步清空 messages ,第三步需要输出logs cleaned up(任意写看你喜好来告诉我们日志清空了;

没执行脚本文件之前:(查看日志)

执行脚本文件:(可以看到清空了日志信息):

现在我们来一个练习:

写一个安装,启动并开机自启动httpd的脚本:

vim  httpd.sh

#!/bin/bash
yum install httpd -y
systemctl start  httpd 
systemctl enable httpd
echo "httpd服务已经安装,启动并且支持开机自启咯"

给执行权限,并执行脚本文件:

查看是否成功:

但是我们这个脚本的功能不完美!

仅供参考我们可以看看更全面的脚本:

下图脚本考虑了  只能root用户才能执行脚本文件!

所以脚本文件真的很强大,而且写法不唯一! 当然我们 写文件要尽量简洁!

为了安全方便我们尽量还是在虚拟机里进行实验操作!

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值