LINUX下的shell脚本-shell简介篇

本文详细介绍了Linux Shell的基本概念,包括Shell的定义、Shell脚本的作用及创建方法。探讨了Shell脚本在操作系统底层业务处理和纯文本文件管理中的优势,提供了实际案例,如清空日志文件和自动化HTTPD服务的安装与启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.shell定义

什么是shell?

1.Shell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口
2.当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作
3.系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上

什么是shell脚本?

1.简单的说,当命令或者程序不在命令行执行,而是通过一个程序文件来执行,这个程序就被称为shell脚本
2.也就是在shell脚本里内置了多条命令,语句,循环控制,然后将这些命令一次性执行完毕,这种通过文件执行命令的方式称为 非交互式
3.shell是解释性语言,需要指定解释器:bash python也是解释性语言,解释器:python C++编译型语言。

二.为什么使用shell脚本?

  1. 适合处理操作系统底层的业务,有众多系统命令为其做支撑(还有文本处三兄弟grep,sed,awk)
  2. 适合处理纯文本文件,linux中许多服务配置文件,启动脚本,都是纯文本(httpd,nfs,mysql,nginx,lvs)
  3. linux系统脚本用shell开发更简单

如何查看系统默认shell(企业面试题)

方法1:echo $SHELL
方法2:grep root /etc/passwd

在这里插入图片描述

三.shell脚本的建立

第一行:#!/bin/bash
指定解释器:由哪个程序来执行脚本内容
#!:幻数
注意:#!/bin/bash必须写在第一行,否则会被认为是注释
在这里插入图片描述
练习题:
1.清空/var/log/messages文件

vim log.sh
#!/bin/bash
cd /var/log
cat /dev/null > messages
echo "Logs cleaned up..."

在这里插入图片描述
2.写一个安装,启动并开机自启动httpd的脚本

vim yum_httpd.sh
#!/bin/bash
yum install httpd -y
systemctl start httpd
systemctl enable httpd

在这里插入图片描述
思考:这个脚本有什么缺陷?

1.没有用户判断,任何用户都可以执行这个脚本
2.没有流程控制,只是把简单的命令进行顺序操作,没有成功与否的判断

四.脚本的执行过程

1.先加载系统环境变量
怎么查看系统环境变量:env
2.一条一条命令执行,遇到子脚本,先执行子脚本,然后返回父脚本继续执行

五.脚本的执行方法

1 bash script.sh或者 sh script.sh ##当脚本没有执行权限时
在这里插入图片描述
2. path/script.sh或者 ./script.sh ##绝对路径,或当前目录下
在这里插入图片描述
3. source script.sh 或者 . script.sh ##需要传递变量或函数时使用,这种方式会使用source或.号来读如指定shell文件,并会把其他shell中的变量值或函数返回给父shell继续使用
在这里插入图片描述
三种执行方式的区别:
1.脚本没有执行权限时,使用bash script.sh或者 sh script.sh
2.sh source区别:
sh新打开的shell,执行完后释放。然后返回当前shell。
source会把其他shell返回的值传回父shell

企业面试题:

cat test.sh
username=whoami
sh test.sh
echo $username
问题1:echo $username命令的输出结果是什么? 正确答案c
a)当前用户
b)root
c)空(无输出)
source test.sh
echo $username
问题2:echo $username命令的输出结果是什么? 正确答案b
a)当前用户
b)root
c)空(无输出)

【如何执行shell脚本】
1).手动在环境中开启指定解释器

sh script.sh

2).直接在当前环境中运行shell中的指令不开启新的shell

source script.sh
. script.sh

3).开启脚本中指定的shell并使用此shell环境运行脚本中的指令

chmod +x script.sh
/xxx/xxx/script.sh
./script.sh

六.脚本开发规范

1.注释:可以命令后,也可以自成一行
2.脚本信息:

#!/bin/bash
#Date:2018-12-14
#Author:westos-wsp
#Connect:wsp439@sina.com
#Desc:This script is for...
#Version:1.0

3.脚本名:最好以.sh结尾

清空/var/log/messages文件
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值