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

[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

相关文章:

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

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f6e0;️Shell编程专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月12日10点23分 &#x1f004;️文章质量&#xff1a;93分 目录 ——前言—— &#x1f4a5;常用的几种shell Bash Sh …...

python数据处理分析库(一)

目录 一、NumPy 二、Pandas 三、Matplotlib and Seaborn 一、NumPy 场景&#xff1a;处理大规模数组和矩阵运算&#xff0c;可以用于科学计算、数据预处理简单示例&#xff1a; import numpy as npdata np.array([1, 2, 3, 4, 5]) mean np.mean(data) std_dev np.std(da…...

使用Transformer进行抄袭检测

动机 在许多行业中&#xff0c;尤其是在学术界&#xff0c;抄袭是一个重大问题。随着互联网和开放信息的兴起&#xff0c;这种现象甚至变得更加严重&#xff0c;任何人都可以通过点击访问特定主题的任何信息。 基于这一观察&#xff0c;研究人员一直在尝试使用不同的文本分析…...

基于深度学习的电池健康状态预测(Python)

电池的故障预测和健康管理PHM是为了保障设备或系统的稳定运行&#xff0c;提供参考的电池健康管理信息&#xff0c;从而提醒决策者及时更换电源设备。不难发现&#xff0c;PHM的核心问题就是确定电池的健康状态&#xff0c;并预测电池剩余使用寿命。但是锂电池的退化过程影响因…...

【吊打面试官系列-Mysql面试题】MySQL 如何优化 DISTINCT?

大家好&#xff0c;我是锋哥。今天分享关于 【MySQL 如何优化 DISTINCT&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MySQL 如何优化 DISTINCT&#xff1f; DISTINCT 在所有列上转换为 GROUP BY&#xff0c;并与 ORDER BY 子句结合使用。 SELECT DISTINCT t…...

企业IT运维管理体系-总体规划

企业IT运维管理体系-总体规划 企业IT运维管理体系的总体规划通过科学的调研、分析、设计和建设&#xff0c;提升管理成熟度、增强服务能力、实现技术创新和优化资源配置。重点在于建立组织保障体系、制定运维制度、构建运维平台和完善度量指标。通过明确运维治理模式和外包管理…...

RabbitMQ-Stream(高级详解)

文章目录 什么是流何时使用 RabbitMQ Stream&#xff1f;在 RabbitMQ 中使用流的其他方式基本使用Offset参数chunk Stream 插件服务端消息偏移量追踪示例 示例应用程序RabbitMQ 流 Java API概述环境创建具有所有默认值的环境使用 URI 创建环境创建具有多个 URI 的环境 启用 TLS…...

Web前端图片并排显示的艺术与技巧

Web前端图片并排显示的艺术与技巧 在Web前端开发中&#xff0c;图片并排显示是一种常见的布局需求。然而&#xff0c;实现这一目标并非易事&#xff0c;需要掌握一定的技巧和艺术。本文将从四个方面、五个方面、六个方面和七个方面深入探讨Web前端图片并排显示的奥秘。 四个方…...

豆瓣电影信息爬虫【2024年6月】教程

豆瓣电影信息爬虫【2024年6月】教程&#xff0c;赋完整代码 在本教程中&#xff0c;我们将使用以下技术栈来构建一个爬虫&#xff0c;用于爬取豆瓣电影列表页面的信息&#xff1a; 完整代码放到最后 &#xff1b; 完整代码放到最后 &#xff1b; 完整代码放到最后 &#xff1b;…...

Flutter- AutomaticKeepAliveClientMixin 实现Widget保持活跃状态

前言 在 Flutter 中&#xff0c;AutomaticKeepAliveClientMixin 是一个 mixin&#xff0c;用于给 State 类添加能力&#xff0c;使得当它的内容滚动出屏幕时仍能保持其状态&#xff0c;这对于 TabBarView 或者滚动列表中使用 PageView 时非常有用&#xff0c;因为这些情况下你…...

《计算机组成原理》期末复习题节选

第三章–存储系统 3.1 存储器性能指标 核心公式&#xff1a; 存储容量存储字数*字长 &#xff0c;存储字数表示存储器的地址空间的大小&#xff0c;字长表示一次存取操作的数据量.数据传输率数据宽度/存储周期 1、设机器字长为32位&#xff0c;一个容量为16MB的存储器&…...

NSSCTF中的popchains、level-up、 What is Web、 Interesting_http、 BabyUpload

目录 [NISACTF 2022]popchains [NISACTF 2022]level-up [HNCTF 2022 Week1]What is Web [HNCTF 2022 Week1]Interesting_http [GXYCTF 2019]BabyUpload 今日总结&#xff1a; [NISACTF 2022]popchains 审计可以构造pop链的代码 <php class Road_is_Long{public $…...

量产维护 | 芯片失效问题解决方案:从根源找到答案

芯片失效分析是指对电子设备中的故障芯片进行检测、诊断和修复的过程。芯片作为电子设备的核心部件,其性能和可靠性直接影响整个设备的性能和稳定性。 随着半导体技术的迅速发展,芯片在各个领域广泛应用,如通信、计算机、汽车电子和航空航天等。 因此,对芯片故障原因进行…...

Linux忘记密码的解决方法

1、进入GRUB页面&#xff0c;选择对应的内核按下‘e’键&#xff1b; 2、进入内核修改信息界面&#xff0c;找到Linux这一行&#xff0c;在这一行的末尾加上 init/bin/sh 按下ctrlx进入单用户模式 3、进入单用户后&#xff0c;重新挂载根目录&#xff0c;使其可写&#xff1…...

数据结构(DS)学习笔记(二):数据类型与抽象数据类型

参考教材&#xff1a;数据结构C语言版&#xff08;严蔚敏&#xff0c;杨伟民编著&#xff09; 工具&#xff1a;XMind、幕布、公式编译器 正在备考&#xff0c;结合自身空闲时间&#xff0c;不定时更新&#xff0c;会在里面加入一些真题帮助理解数据结构 目录 1.1数据…...

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

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

华安保险:核心系统分布式升级,提升保费规模处理能力2-3倍 | OceanBase企业案例

在3月20日的2024 OceanBase数据库城市行的活动中&#xff0c;安保险信息科技部总经理王在平发表了以“保险行业核心业务系统分布式架构实践”为主题的演讲。本文为该演讲的精彩回顾。 早在2019年&#xff0c;华安保险便开始与OceanBase接触&#xff0c;并着手进行数据库的升级…...

佐西卡在美国InfoComm 2024展会上亮相投影镜头系列

6月12日至14日&#xff0c;2024美国视听显示与系统集成展览会将在拉斯维加斯会议中心盛大开幕。这场北美最具影响力的视听技术盛会&#xff0c;将汇集全球顶尖的视听解决方案&#xff0c;展现专业视听电子系统集成、灯光音响等领域的最新技术动态。 在这场科技盛宴中&#xff0…...

【权威出版/投稿优惠】2024年智慧城市与信息化教育国际会议(SCIE 2024)

2024 International Conference on Smart Cities and Information Education 2024年智慧城市与信息化教育国际会议 【会议信息】 会议简称&#xff1a;SCIE 2024 大会时间&#xff1a;点击查看 大会地点&#xff1a;中国北京 会议官网&#xff1a;www.iacscie.com 会议邮箱&am…...

Android 应用程序 ANR 问题分析总结

ANR (Application Not Responding) 应用程序无响应。如果应用程序在UI线程被阻塞太长时间&#xff0c;就会出现ANR&#xff0c;通常出现ANR&#xff0c;系统会弹出一个提示提示框&#xff0c;让用户知道&#xff0c;该程序正在被阻塞&#xff0c;是否继续等待还是关闭。 1、AN…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...