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

shell编程lesson01

命令行和脚本关系

命令行:单一shell命令,命令行中编写与执行;

脚本:众多shell命令组合成一个完成特定功能的程序,在脚本文件中进行编写维护。

脚本是一个文件,一个包含有一组命令的文件。

编写一个shell脚本简单分为三步

  1. 编写脚本
    编写我们的第一个脚本
    #!/bin/bash
    # 我们的第一个脚本
    echo "Hello Shell World!"

            脚本最开头以#!开始的描述叫做shebang,用来告诉操作系统,脚本中接下来的命令执行所用的脚本解释器的位置。
            第二行以#开头的描述是shell脚本语言中的注释符号,并不参与程序的实际执行,用于增强脚本命令的可读性,便于后续的阅读、理解、扩展和维护。
            第三行是一条简单的打印语句。
            以上构成了一个输出打印语句的最简单shell脚本。

  2. 赋予脚本可执行权限
            执行脚本需要赋予脚本文件可执行权限,通过命令chmod修改权限。通常有两种常用的权限设置,755和700
    chmod 755 xxx.sh # 任意用户都可执行
    chmod 700 xxx.sh # 脚本文件拥有者才可执行

    为了成功执行脚本,脚本文件必须是可读的

  3. 脚本放在合适的位置
    为了执行脚本,必须显式指明脚本文件所在的路径。除非把脚本文件放在环境变量PATH所列路径中。
    如何把一个特定路径放在环境变量PATH中?
    export PATH=~/bin:"$PATH"
    source .bashrc # 或者 . .bashrc;source内置命令,用于读取文件配置;.命令等效source

脚本格式约定 

  • 长选项名
     
  • 缩进和行连接符
    find ~ \\( \-type f \-not -perm 0600 \-exec chmod 0600 '{}' ';' \\) \-or \\( \-type d \-not -perm 0700 \-exec chmod 0700 '{}' ';' \\)

    利用长选项名和行连接符缩进的目的是提高可读性,以便于阅读理解,达到易于维护和扩展

相关文章:

shell编程lesson01

命令行和脚本关系 命令行:单一shell命令,命令行中编写与执行; 脚本:众多shell命令组合成一个完成特定功能的程序,在脚本文件中进行编写维护。 脚本是一个文件,一个包含有一组命令的文件。 编写一个shel…...

看看人家的MyBatis批量插入数据优化,从120s到2.5s,那叫一个优雅!

粗略的实验 最后 最近在压测一批接口的时候,我发现接口处理速度比我们预期的要慢。这让我感到有点奇怪,因为我们之前已经对这些接口进行了优化。但是,当我们进行排查时,发现问题出在数据库批量保存这块。 我们的项目使用了 myb…...

软件和信息服务业专题讲座

软件和信息服务业专题讲座 单选题(共 10 题,每题 3 分) 1、根据本讲,我国要加强物联网应用领域()开发和应用。 A、大数据 2、根据本讲,要充分发挥软件对城市管理和惠民服务的(&am…...

由 ChatGPT 团队开发,堪称辅助神器!IntelliJ IDEA 神级插件

什么是Bito? 为什么要使用Bito? 如何安装Bito插件 如何使用Bito插件 什么是Bito? Bito是一款由ChatGPT团队开发的IntelliJ IDEA编辑器插件,旨在提高开发人员的工作效率。此插件强大之处在于它不仅可以帮助开发人员更快地提交…...

spass modeler

课时1:SPSS Modeler 简介 本课时一共分为五个模块,分别是Modeler概述、工具安装、窗口说明以及功能介绍和应用案例。相信通过本课时内容的学习,大家将会对SPSS Modeler有个基础的了解. 在学习本节课内容之前,先来看看本节课我们究…...

kafka的push、pull分别有什么优缺点

文章目录 kafka的push、pull分别有什么优缺点Push 模式优点缺点 Pull 模式优点缺点 实践操作 kafka的push、pull分别有什么优缺点 Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,广泛应用于各大互联网公司的消息系统中。在 Kafka 中,生产者使用…...

【Canvas入门】从零开始在Canvas上绘制简单的动画

这篇文章是观看HTML5 Canvas Tutorials for Beginners教程做的记录,所以代码和最后的效果比较相似,教程的内容主要关于这四个部分: 创建并设置尺寸添加元素让元素动起来与元素交互 设置Canvas的大小 获取到canvas并设置尺寸为当前窗口的大…...

【技术整合】各技术解决方案与对应解决的问题

文章目录 基本实现性能安全 本文将框架分为三大类: 基本实现:包括某个供能或者提供web、移动端、桌面端、或者上述端上的某种功能性能:提升高可用、高并发的框架安全:包括网络安全、权限与容灾等 基本实现 .NET CORE、.NET web基…...

公网远程访问公司内网象过河ERP系统「内网穿透」

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻,不管是财务、生产、销售还是采购,都需要用到ERP系统来协助。…...

Win11的两个实用技巧系列之修改c盘大小方法、功能快捷键大全

Win11 c盘无法更改大小什么原因?Win11修改c盘大小方法 有不少朋友反应Win11 c盘无法更改大小是怎么回事?本文就为大家带来了详细的更改方法,需要的朋友一起看看吧 Win11 c卷无法更改大小什么原因?有用户电脑的系统盘空间太小了,…...

离散数学下--- 代数系统

代数系统 定义: 代数系统是用代数运算构造数学模型的方法。 • 通过构造手段生成,所以也称代数结构 • 代数运算:在集合上建立满足一定规则的运算系统 (一)二元运算 二元运算的定义 二元运算需要满足的两个条件&a…...

java基础入门-04

Java基础入门-04 11、集合&学生管理系统11.1.ArrayList集合和数组的优势对比:11.1.1 ArrayList类概述11.1.2 ArrayList类常用方法11.1.2.1 构造方法11.1.2.2 成员方法11.1.2.3 示例代码 11.1.3 ArrayList存储字符串并遍历11.1.3.1 案例需求11.1.3.2 代码实现 11…...

《面试1v1》java反射

我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。 面试官: 你好,请问你对 Java 反射有了解吗? 候选人: 是的,我了解一些。 面试官: 那你能简单…...

【C语言】struct结构体

文章目录 一. 结构体简述二. 结构体的声明和定义1、简单地声明一个结构体和定义结构体变量2、声明结构体的同时也定义结构体变量3、匿名结构体4、配合typedef,声明结构体的同时为结构体取别名5、在声明匿名结构体时,使用typedef给这个匿名结构体取别名 三…...

Docker代码环境打包

1. 介绍 Docker是一种开源的容器化平台,它可以在操作系统级别运行应用程序。通过将应用程序及其依赖项封装成一个可移植的容器,Docker使得应用程序可以在任何环境中轻松部署、运行和管理。使用Docker,开发人员可以避免在不同环境中出现的配置…...

现代CMake高级教程 - 第 6 章:输出与变量

双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 第 6 章:输出与变量 在运行 cmake -B build 时,打印字符串(用于调试) message("Hello world!")❯ cmake --build buildHello world! -- Configuring done -- G…...

windows/linux文件传输

windows系统下文件传输-FTP python安装pyftpdlib模块 pip install pyftpdlib 这里可能会出现报错,自己看着更换源解决 然后运行python,在2121端口监听 python -m pyftpdlib 然后我们可以使用windows命令行进行操作,自己可以去看下相关文…...

Anoconda安装笔记+win10 更改中文用户名为英文

win10 更改中文用户名为英文 ① WinR打开命令窗口,输入regedit 打开注册表, 手动找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList 在这个目录下面有几个S-1-5-的项,挨个检查每一项, 找到“…...

Java Web应用开发 ——作业七

一.单项选择题(共7题,28.7分) 1 Servlet程序的入口点是( )。 A、 init() B、 main() C、 service() D、 doGet() 正确答案&#…...

echo,date,bc命令详解

文章目录 echo,date,bc命令详解echo(输出文本)date(显示日期的命令)date命令的--date选项date命令 bc(高精度计算器) echo,date,bc命令详解 echo(输出文本) echo命令是一个常用的Shell命令,用于在终端上输出文本。它…...

开发AI智能体时利用Taotoken实现多模型灵活调用的策略

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 开发AI智能体时利用Taotoken实现多模型灵活调用的策略 在构建复杂的AI智能体工作流时,一个常见的挑战是如何为不同的子…...

别再忍受龟速下载了!实测国内15个Anaconda镜像站,教你一键换源(附测速工具)

告别卡顿!国内Anaconda镜像站深度评测与智能换源实战指南 每次conda install等上半小时?看着进度条像蜗牛爬?作为Python开发者,包管理工具的下载速度直接决定了工作效率。上周帮团队调试一个数据分析项目时,有位同事的…...

PCL2启动器完整使用指南:从零开始打造个性化Minecraft体验

PCL2启动器完整使用指南:从零开始打造个性化Minecraft体验 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL PCL2启动器是一款功能强大的Minecraft游戏启动工具&…...

ImageGlass:Windows平台终极开源图像浏览解决方案

ImageGlass:Windows平台终极开源图像浏览解决方案 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 在数字图像日益丰富的今天,Windows用户迫切需要一…...

重新定义浏览器书签管理:探索Neat Bookmarks树状结构的神奇体验

重新定义浏览器书签管理:探索Neat Bookmarks树状结构的神奇体验 【免费下载链接】neat-bookmarks A neat bookmarks tree popup extension for Chrome [DISCONTINUED] 项目地址: https://gitcode.com/gh_mirrors/ne/neat-bookmarks 还在为浏览器书签杂乱无章…...

观察Taotoken用量看板如何帮助个人开发者精打细算

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken用量看板如何帮助个人开发者精打细算 对于独立开发者和小型项目团队而言,在探索和应用大模型时&#xff0…...

北航毕业论文LaTeX模板终极指南:三步快速搞定格式规范

北航毕业论文LaTeX模板终极指南:三步快速搞定格式规范 【免费下载链接】BUAAthesis 北航毕设论文LaTeX模板 项目地址: https://gitcode.com/gh_mirrors/bu/BUAAthesis 还在为北航毕业论文格式要求头疼吗?手动调整页眉页脚、参考文献编号、目录格式…...

AI Agent赋能非车险产品开发:开源知识库与自动化流程实践

1. 项目概述:一个面向AI Agent的非车险产品开发知识库在保险行业,尤其是财产险领域,产品开发一直是一项高度专业化且流程复杂的工作。传统的非车险产品开发,从市场调研、风险识别、条款撰写、费率厘定到监管报备,往往需…...

Windows Cleaner:5个简单步骤解决C盘爆满问题的免费工具

Windows Cleaner:5个简单步骤解决C盘爆满问题的免费工具 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否曾因电脑C盘变红而焦虑?Win…...

从零到一:TMS320F28335开发环境避坑与首个工程实战

1. 开发板选购与开箱准备 第一次接触TMS320F28335时,我和大多数初学者一样面临"从哪开始"的困惑。经过对比多家产品,最终选择了普中科技的开发套件。这个选择主要基于三个实际考量:首先是性价比,199元的价格包含了XDS10…...