当前位置: 首页 > news >正文

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.真实环境编写脚本多测试,然后才拿到生产环境使用。

运维小路

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

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


http://www.mrgr.cn/news/47383.html

相关文章:

  • Python之装饰器
  • Trie树算法
  • Web前端基础知识(七)
  • 完整化安装kubesphere,ks-jenkins的状态一直为init
  • 时序数据库InfluxDB—介绍与性能测试
  • 中学综合素质笔记3
  • 【含文档】基于Springboot+Android的校园论坛系统(含源码+数据库+lw)
  • 10.10 QT服务器与客户端
  • jfif怎么转换成jpg格式?值得推荐的几种图片格式转换方法
  • 7-基于国产化FT-M6678+JFM7K325T的6U CPCI信号处理卡
  • Buffer模块
  • 在Vue3中如何实现四种全局状态数据的统一管理?
  • 终于爆单了!做跨境亏久了才知道的选品经验!
  • 从 Reno TCP 到 Scalable TCP,HighSpeed TCP
  • 大数据新视界 --大数据大厂之大数据如何重塑金融风险管理:精准预测与防控
  • pdf合并成一个文件,揭秘四款好用软件!
  • 写一个代码:打印100~200之间的素数
  • SWAP分区
  • Hyper-V管理器连接到服务器出错。请检查虚拟机管理服务是否正在运行以及是否授权你连接到此服务器。
  • 【洛谷】P10499 开关问题 的题解
  • 简简单单的质数(复习)
  • 多功能点击器(文末附Gitee源码)——光遇自动弹奏
  • 【项目实战】g-sensor输出的gyro数据值没有变化
  • PyCharm 项目解释器切换指南:如何在项目中更换 Python Interpreter
  • C语言小测复习
  • Android -- [SelfView] 多动画效果图片播放器