Shell编程-什么是shell

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:

Shell编程-什么是shell(本章节)

Shell编程-变量

Shell编程-数据类型

Shell编程-逻辑判断

Shell编程-if判断

Shell编程-if和else

Shell编程-while循环

Shell编程-for循环

Shell编程-case

Shell编程-break

Shell编程-continue

Shell编程--函数

Shell编程-案例(一)

Shell编程-案例(二)

Shell编程-小结

Shell 是一种命令行解释器,也是一种具有特殊用途的程序,它为用户提供了与操作系统内核进行交互的界面。以下是关于 Shell 的详细介绍:

一、基本概念与作用

  1. 定义与功能:

    • Shell 作为用户与操作系统之间的桥梁,主要负责接收用户输入的命令,并将这些命令解释为操作系统能够理解的指令,然后传递给操作系统内核执行。执行完成后,Shell 会将操作系统返回的结果展示给用户。

    • 例如,当用户在终端中输入 ls 命令来查看当前目录下的文件列表时,Shell 会将 ls 这个命令解析并传递给操作系统,操作系统执行相应的操作后,将文件列表信息返回给 Shell,Shell 再将这些信息显示在终端上。

  2. 在操作系统中的地位:

    • Shell 位于操作系统的外层,是用户直接接触和操作的部分,它隐藏了操作系统内核的复杂性,使用户能够以简单的命令方式来操作计算机系统。

    • 类似于一个翻译器,将用户的自然语言式的命令转换为计算机能够理解的机器语言指令,从而实现对计算机资源的管理和控制。

二、常见Shell

1. Bash (Bourne Again Shell)

  • 默认 Shell:Bash 是 CentOS 中的默认 Shell,广泛使用并提供了强大的功能。

  • 特性:命令行编辑、历史记录、任务控制、自动补全等。

  • 位置:通常位于 /bin/bash

2. Sh (Bourne Shell)

  • 传统 Shell:Bourne Shell 是早期的 Unix Shell,Bash 旨在兼容 Bourne Shell。

  • 特性:功能相对简单,但在现代系统中通常由 Bash 兼容。

  • 位置:通常位于 /bin/sh,在现代系统中,/bin/sh 可能指向 /bin/bash 的兼容模式。

当然还有其他Shell,比如Ksh,Zsh等使用较少,这里就不介绍了。

三.脚本格式

1.bash解释器

#!/bin/bash
echo "This is bash

2.sh解释器​​​​​​​

#!/bin/sh
echo "this is sh"

3.默认的Shell解释器

echo "this  is xxx"

以上3种书写格式都可以达到同样的目的,但是建议使用第一种,最为大家常用的规范。

四.命令规范

保存为文件格式:xxx.sh。同脚本格式一样,也是没有要求的,只是大家都采用相同的规范,方便传播和其他人识别。

五.执行方式

1.给文件添加权限

chmod 755 xxx.sh
chmod u+x xxx.sh

2.执行方式一​​​​​​​

./xxx.sh     //相对路径
/root/xxx.sh //绝对路径

相对路径是指当前命令行所在的路径,登录以后,一般都是家目录,可以使用pwd命令查看当前路径。

绝对路径是从根分区开始计算,比如/root/目录/xxx.sh 有多少层级需要计算多少层级。

3.执行方式二​​​​​​​

bash xxx.sh
sh xxx.sh

可以使用 sh -x xxx.sh 或者bash -x xxx.sh 可以看到执行过程,如果执行出错,可以看到比较详细的信息。但是有些脚本会输出很多内容。

这种方式执行不需要添加执行权限也可以执行。但是里面的解释器就等于失效了,使用的是前面的指定的解释器。

图片

总结

1.在Linux系统里面,文件名或者说后缀并不起任何作用。使用.sh标注shell脚本,只是为了方便区分和识别,其他类型的文件也是一样的。

2.解析器也只是为了指定执行的shell,建议也按照规范书写。

3.shell脚本内部的命令,可以是linux下的任何命令,但是需要注意,有些命令会涉及到交互,比如yum 不使用-y 参数,执行脚本的时候他就会在控制台等待你确认,会阻塞在这里,具体看需求。

4.真实环境编写脚本多测试,然后才拿到生产环境使用。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值