[Shell编程学习路线]——编制第一个shell脚本入门篇

🏡作者主页:点击! 

🛠️Shell编程专栏:点击!

⏰️创作时间:2024年6月12日10点23分

🀄️文章质量:93分


目录

——前言——

💥常用的几种shell

Bash

Sh

nologin

💗默认的Shell

💯趣站💯

What是Shell脚本呢❓️❓️❓️

🌐Shell脚本注释规范

单行注释

多行注释

®️注意事项


——前言——

欢迎进入Shell编程的世界!无论你是初学者还是经验丰富的开发者,掌握Shell脚本编写技巧都能极大地提高你的工作效率和系统管理能力。Shell脚本不仅是操作系统交互的重要工具,也是自动化任务、批处理操作和系统维护的强大助手。在本篇入门指南中,我们将带你一步步编制第一个Shell脚本,从基础语法到实际应用,帮助你打下坚实的编程基础。让我们一起开启这段充满探索与学习的旅程吧!

Linux中的shell脚本是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个‘命令解释器的角色’ ,负责接收用户输入的操作指令(命令),并且进行解释,讲需要执行的操作传递给内核执行,并输出执行结果,

常见的sheel解释器有很多种

💥常用的几种shell

Bash
  • 最常用的 Shell 解释器之一,尤其是在 Linux 系统中。

  • 兼容 Bourne Shell (sh) 的同时,增加了许多功能,如命令行编辑、命令历史记录等。

  • 支持丰富的脚本编写功能。

Sh
  • 最早的 Unix Shell 之一,由 Stephen Bourne 开发。

  • 简单且高效,适用于基本的脚本编写和系统管理任务。

nologin

是一种特殊的 shell,它用于禁止某个用户登录系统。当某个用户的 shell 被设置为 nologin 时,用户将无法通过常规方法登录到系统。这通常用于系统用户账户,这些账户不需要交互式登录权限。

等等~

/etc /shells

通过上述路径可以看到当前系统所支持的shell脚本种类

💗默认的Shell

Linux中默认的shell是Bash(Bourne Again Shell),由GNU开发,是目前大多数Linux系统默认使用的shell。路径在/bin/bash

💯趣站💯

前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,忍不住粉香一下给大家,人工智能, 机器算法等......  点击跳转网页!

What是Shell脚本呢❓️❓️❓️

简单的来说就是将你想要执行的命令,放进文本文档中,添加可执行权限,这个文件就成了shell脚本

例如:执行以下操作可以创建第一个脚本 first.sh

vim first.sh
写入以下内容
#/bin/bash
#第一个shell脚本
cd /mnt
pwd
ls
touch test.txt
echo "我的第一个shell脚本" > test.txt
ls
cat test.txt

给脚本添加可执行权限

chmod +x first.sh

 

运行脚本

在脚本当前路径下执行以下命令

./first.sh 

输出结果

[root@localhost /] ./first.sh 
/mnt
1.txt  2.txt  2.txt.10904.2024-04-23@17:17:22~	3.txt  hgfs
1.txt  2.txt  2.txt.10904.2024-04-23@17:17:22~	3.txt  hgfs  test.txt
我的第一个shell脚本

可以看出创建一个test.txt的文件然后cat查看文件内容

🌐Shell脚本注释规范

一个合格的Shell脚本程序应该遵守标准的脚本结构,而且能够更好输入友好的提示信息,更加容易读懂,对于比较多的代码,结果复杂的脚本,应添加必要的注释文字

注释是用于解释或说明代码的文本,可以提高代码的可读性和维护性。shell脚本中常用的注释方法有两种:

单行注释
  • 单行注释:以#开头,注释内容紧跟在#之后。

#!/bin/bash#第一个shell脚本
多行注释
  • 多行注释:使用<<EOF#!开头,注释内容写在两个标记之间。
<<EOF
!/bin/bash
这是我的第一个shell
EOF

®️注意事项

上述执行shell中直接通过 "./first.sh"的方式执行脚本,要求文件本身具有X权限在某些安全系统中可能无法满足条件。鉴于此,Linux内部还有很多调用Shell的方式,指定某个Shell来解释脚本语句,或者通过内部命令 source(或者点号 '.') 来价值文件中可以用来参考但,使用sh,"."也可以执行shell脚本如下:

chmod +x first.sh
./first.sh
​
. first.sh 
sh first.sh 
bash first.sh 
source first.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/701330.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ip地址的表示方式有哪几种

在当今数字化、网络化的时代&#xff0c;IP地址已成为我们生活中不可或缺的一部分。无论是浏览网页、在线购物&#xff0c;还是远程办公、视频会议&#xff0c;IP地址都在背后默默发挥着作用。IP地址是互联网协议地址的简称&#xff0c;它为每一个连接到互联网的设备提供了一个…

antdv 下拉框增加全选功能

由于select下拉框中内容过多&#xff0c;使用下拉框多选需要一个一个选取太过于麻烦&#xff0c;所以在下拉中增加全选和取消全选操作。 看官方文档发现&#xff0c;dropdownRender 可以自定义下拉框内容&#xff0c;可以满足我们的需要。 代码实现 <a-select mode"…

5款非常好用的小众软件,你值得拥有

​ 今天为大家推荐五款不常见但好用的win10软件&#xff0c;它们都有着各自的特色和优势&#xff0c;相信你会喜欢的。 1. 文件夹查看——Folder Size View ​ Folder Size View是一款高效的文件夹大小查看工具&#xff0c;它能够快速扫描并展示文件夹及其子文件夹的占用空间…

力扣42 接雨水

听说字节每人都会接雨水&#xff0c;我也要会哈哈哈 数据结构&#xff1a;数组 算法&#xff1a;核心是计算这一列接到多少雨水&#xff0c;它取决于它左边的最大值和右边的最大值&#xff0c;如下图第三根柱子能接到的雨水应该是第一根柱子高度和第五根柱子高度的最小值减去第…

光学知识 | 什么是超透镜,其工作原理是什么?

在复杂的成像和照明设备中&#xff0c;超透镜&#xff08;以及更普遍的超表面&#xff09;被越来越多地视为一种切实可行的解决方案&#xff0c;以用于提高系统性能&#xff0c;同时缩小系统尺寸并减轻重量。这是因为通常单个超透镜即可达到原本需要在设备中使用多个“传统”光…

带你走进信息安全软件架构

汽车行业网联化以及网络安全风险日益突出&#xff0c;汽车网络攻击&#xff0c;漏洞日益增加&#xff0c;危害防不胜防。汽车信息安全逐步受到重视&#xff0c;网络安全相关法律法规陆续颁布。在这样的背景下&#xff0c;AUTOSAR 组织也发布了有关信息安全模块和 Crypto Stack(…

对象和引用类型的赋值都是通过引用传递的方式进行的,这意味着变量实际上存储的是对象的引用,而不是对象本身的副本

这篇博客我主要想解释一下这句话&#xff1a;对象和引用类型的赋值都是通过引用传递的方式进行的&#xff0c;这意味着变量实际上存储的是对象的引用&#xff0c;而不是对象本身的副本。 其实这段话早在学习JS的时候就接触过&#xff0c;只是被我丢进了“记忆垃圾桶”&#xf…

【C++进阶】模板与仿函数:C++编程中的泛型与函数式编程思想

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;栈和队列相关知识 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀模板进阶 &#x1f9e9;<&…

Javascript学习之路:js中关于遍历总结

循环/遍历 循环&#xff0c;就是一遍又一遍的重复执行相同或者相似的代码循环结构的两个要素 循环体–要执行的相同或相似的语句循环条件–重复执行的次数&#xff0c;或者继续执行循环的条件 &#x1f449;while循环 while循环语法格式 while(boolean表达式){循环体语句}//…

数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践

随着企业业务的不断发展&#xff0c;数据量往往呈现出快速的增长趋势。使用MySQL的用户面对这种增长&#xff0c;普遍选择采用分库分表技术作为应对方案。然而&#xff0c;这一方案常在后期会遇到很多痛点。 分库分表的痛点 痛点 1&#xff1a;难以保证数据一致性。由于分库分…

算法之分治

分而治之 分治法所能解决的问题一般具有以下几个特征&#xff1a; 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的子问题&#xff0c;即该问题具有最优子结构性质 3) 利用该问题分解出的子问题的解可以合并为该问题的解 4) 该问题所分…

Redis在互联网大厂中的应用案例分析

携程金融的Redis架构 携程金融在经过多年的演进后,形成了多层次的系统架构,其中基础数据(如用户信息、产品信息、订单信息等)由底层系统产生,并服务于所有的金融系统。这些基础数据通过统一的缓存服务(系统名utag)进行缓存。缓存数据具有全量、准实时、永久有效的特点,…

【SpringBoot + Vue 尚庭公寓实战】标签和配套管理接口实现接口实现(六)

【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现&#xff08;六&#xff09; 文章目录 【SpringBoot Vue 尚庭公寓实战】标签和配套管理接口实现接口实现&#xff08;六&#xff09;1、保存或更新标签信息2、根据id删除标签信息3、根据类型查询配套列表4、新…

【机器学习】基于CNN-RNN模型的验证码图片识别

1. 引言 1.1. OCR技术研究的背景 1.1.1. OCR技术能够提升互联网体验 随着互联网应用的广泛普及&#xff0c;用户在日常操作中频繁遇到需要输入验证码的场景&#xff0c;无论是在登录、注册、支付还是其他敏感操作中&#xff0c;验证码都扮演着重要角色来确保安全性。然而&am…

OCC+VS+QT项目配置

1、安装好VS2022、QT、OCC安装包后&#xff0c;在VS2022中创建一个项目&#xff0c;具体如下&#xff1a; 2、配置步骤1中创建的项目的属性&#xff0c;具体如下&#xff1a; VC目录>>>包含目录&#xff1a; 添加文件目录如上三个。 VC目录>>>库目录&#xf…

【权威发布】2024年人工智能与机械设计国际会议(ICAIMD 2024)

2024年人工智能与机械设计国际会议 2024 International Conference on Artificial Intelligence and Mechanical Design 会议简介 2024年人工智能与机械设计国际会议是一个专注于探讨人工智能与机械设计交叉领域最新发展的国际盛会。本次会议汇集了全球顶尖的专家学者、研究人员…

【Apollo配置中心】集成springboot自动监听属性变更和动态发布配置

1. 背景 在实际项目中&#xff0c;Spring Boot项目结合使用Apollo配置中心时&#xff0c;经常会遇到需要更新Apollo上的项目的一些配置&#xff0c;比如测试环境或生产环境中&#xff0c;需要修改某个类的属性值&#xff0c;如果我们在Apollo上更新了配置&#xff0c;已经在运…

Swift 序列(Sequence)排序面面俱到 - 从过去到现在(三)

概述 在上一篇 Swift 序列(Sequence)排序面面俱到 - 从过去到现在(二) 博文中,我们介绍了如何构建一个自定义类型中“多属性”排序的通用实现。 而在本课中我们将再接再厉介绍 iOS 15+ 中新的排序机制,并简要剖析就地排序(In-place sorting)对运行性能有着怎样的显著影…

Stable Diffusion 如何写出更优雅的 Prompt

在看了前面的课程后&#xff0c; 相信很多人都会有一个困惑&#xff0c;这个 prompt 咋写… 为什么我写的时候只能憋出来了一个 a girl, a boy, beautify … 再也想不到其他的了&#xff0c; 总感觉是吃了没文化的亏&#xff1f; 这一节课我们就来讲一讲 如何写好 prompt …

docker 部署kafka,zokeeper,快速开发模式

docker-compse 启动文件 version: 3name: kafka1services:zookeeper:image: bitnami/zookeeper:latestports:- "2181:2181"environment:- ALLOW_ANONYMOUS_LOGINyes # volumes: # - zookeeper_vol:/data # - zookeeper_vol:/datalog # - zookeepe…