云计算(第二阶段):mysql后的shell

  • 第一章:变量

    • 前言

      • 什么是shell

        • Shell 是一种提供用户与操作系统内核交互的工具,它接受用户输入的命令,解释后交给操作系统去执行。它不仅可以作为命令解释器,还可以通过脚本完成一系列自动化任务。
      • shell的特点

        • 跨平台:大多数 Shell 都可以在不同的类 UNIX 系统上运行,包括 Linux 和 macOS。
        • 易于编写脚本:用户可以通过编写脚本来实现自动化操作,大大简化了复杂任务的执行。
        • 灵活性:Shell 支持多种内置命令,并允许通过管道、重定向等机制,将多个命令组合起来使用。
        • 用户友好:Shell 允许用户自定义环境变量、快捷命令和别名,增强了用户体验。
        • 强大的命令处理:支持控制流、条件判断、循环等逻辑操作,具备一定的编程功能。
      • shell可以做什么

        • 文件管理:通过命令创建、删除、复制、移动文件或目录。
        • 系统管理:执行系统管理任务,如查看和终止进程、监控系统状态、管理用户和权限。
        • 自动化任务:通过编写 Shell 脚本,自动执行批量任务,比如备份、日志管理等。
        • 程序执行:可以调用和运行各种程序、脚本或应用,并能处理它们的输出结果。
        • 网络操作:通过命令控制网络接口,进行 FTP、SSH 等网络操作。
      • shell的执行方式

        • 交互式执行:用户在命令行提示符下输入一条命令,Shell 立即解释并执行该命令。执行结束后,返回命令行等待下一条输入。

        • 脚本式执行:用户将多个命令写入一个文件(脚本文件),然后让 Shell 执行该文件中的命令。通过这种方式,用户可以将重复性任务自动化。

          • 先写一个简单的脚本

            • #简单的不标准test使用
              echo 'nihao'
              #shell没有结束符,换行结束,有些用;结束但是很少,还常用

              用下面的方式执行

          • sh 文件名.sh

          • bash 文件名.sh

          • . 文件名(.+空格).sh

          • soucre 文件名.sh

          • ./文件名.sh

          • 区别

            • sh,bash是告诉计算机无论脚本的 Shebang 行是什么是什么都用sh,bash执行,当然其实/usr/bin/sh是/usr/bin/bash的软连接(脚本在新的子 Shell 中执行,不会影响当前 Shell 的环境变量和设置)

            • .表示source:直接在当前 Shell 环境中执行脚本文件。. 是一个 Shell 内置命令,等同于 source

            • ./:在一个新的子 Shell 中执行脚本,并且会根据脚本中的 Shebang 行指定的解释器来运行,要执行权限

      • shell的解释器在哪

        • 查看当前使用的 Shell:在命令行输入 echo $SHELL 可以查看当前使用的 Shell 解释器路径。
        • 常见 Shell 解释器路径
          • /bin/bash:Bash 的路径。
          • /bin/sh:Bourne Shell 的路径。
      • shell脚本的建议格式

        • #!/bin/bash
          #Shebang行:使用 #!/bin/bash 指定脚本应由 Bash 解释器运行。
          #-----------------------------------
          # 脚本名称: backup_script.sh
          # 描述: 该脚本用于将指定的源目录备份到目标目录,
          #       并记录操作日志,处理潜在的错误。
          # 作者: Your Name
          # 日期: 2024-10-13
          # 版本: 1.0
          #-----------------------------------# 调试模式设置:
          # 开启严格模式,确保脚本执行时遇到错误会立即退出:
          # -e: 当命令执行失败时退出脚本。
          # -u: 使用未定义的变量时退出。
          # -o pipefail: 如果管道中的任一命令失败,整个管道失败。
          set -euo pipefail#-----------自己的代码写在下面-------------
          

          这只是建议,可以不管,但是建议这么写

    • 变量

      • 简介

        • 如果你用过其它语言你就了解,如果你没有用过。那么变量就是酒店门牌号,具体的操作如下:有一家酒店住人(就是内存放数据),你定了一间房(告诉内存准备空间),觉得444门牌不吉利但不愿意换房,换了门牌号666(告诉系统变量名),你住了(向变量内放了内容),第二天退房(变量死亡)。
      • 自定义变量

        • 用户自定义变量是用户在脚本中定义的变量,用于存储数据、路径、配置等信息。与系统预定义的变量不同,用户自定义变量通常以用户的需求为基础。
        • 定义变量
          • 变量名=值(文本引号内,数字没引号){变量名的要求:可以用字母大小写,数字,下划线组成,但是数字不开头也不能是全数字,不要用bash中的关键字,最好见名知意}
        • 使用变量
          • echo $变量名(echo表示打印,$表示调出变量内容,加起来就是调出变量内容然后打印出来)
        • 重复定义变量
          • 已有变量名=新值(会覆盖旧值)
        • 变量查看set
          • set可以查看当前系统所有变量
        • 变量删除
          • unset 变量名(一般来说变量没用了就不用管了,除非对内存要求严格,比如嵌入式)
        • 交互式定义变量
          • read 变量名(read函数从控制台读数据,意思是将读到的数据给变量)
          • read -p "在-p的条件下,你可以向终端输出一些语句" 变量名
        • 注意:三种引号
          • 单引号('):将其中的文本视为字面量,不进行任何变量替换或命令替换。
          • 双引号("):允许变量替换和命令替换。在引号内使用 $ 或反引号(`)会被解释。
          • 反引号(`):用于命令替换。反引号内的命令会被执行,其输出结果会替换原位置。现代 Shell 还支持使用 $(...) 语法来实现命令替换反引号,这种方式更清晰且更易于嵌套。
      • 整数运算(只能用整数,都支持变量$变量)

        • $(())方法
          • 用途:用于进行算术运算,是现代 Shell 中最常用的方式。
          • 格式:表达式写在 $((...)) 内部,不需要空格。
          • 优点:支持多种运算,包括加法+、减法-、乘法*、除法/和取余%。
        • $[]方法
          • 用途:也是进行算术运算的一种方式,但不推荐使用,因为在某些 Shell 中可能会被弃用。
          • 格式:表达式写在 $[...] 内部,不需要空格。
        • let方法(在声明变量的同时完成计算)
          • 注意:不支持浮点数运算。
          • 格式:可以省略 $ 符号,直接使用变量名。比如let 变量c=变量1+变量2
          • 用途:用于计算算术表达式,支持多种运算,常用于循环和条件语句中。
        • expr方法
          • 用途:用于计算表达式,支持整数运算。
          • 格式:需要在 expr 和运算数之间使用空格,要放在$()内。+-/%,\*(乘有点特殊)
          • 注意:通常用于较旧的 Shell 脚本,现代脚本中更常用 $(())
      • 小数运算(了解){需要用到bc(计算器)命令,没有就yum -y install bc}
        • echo “表达式”|bc:因为bc是命令,所以通过echo将表达式输出到终端,使用管道符传递给bc处理
      • 环境变量(了解)

      • 位置变量与预定义变量(了解)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能长期记忆的新突破:HippoRAG的创新框架

人工智能咨询培训老师叶梓 转载标明出处 大模型(LLMs)在预训练后,如何有效地整合大量新经验,同时避免灾难性遗忘,一直是人工智能领域的难题。尽管已有的检索增强生成(RAG)方法为LLMs提供了长期…

Qt事件——鼠标事件

通过label来显示各种事件 鼠标按下事件 //按下显示坐标 void MyLabel::mousePressEvent(QMouseEvent * ev) {int i ev->x();int j ev->y();//判断按下的鼠标键位if (ev->button() Qt::LeftButton) {qDebug() << "LeftButton";}else if (ev->bu…

SpringCloud-服务治理-Eureka

本篇是从基础方便讲解一些springcloud-服务治理-Eureka中的一些理论性的故事&#xff1b;具体的代码不详细展示&#xff1b;后面的文章会将源码进行整理&#xff0c;并且将源码的github地址上传。 1.什么是服务治理 专治分布式系统 (一)高可用性&#xff1a;服务治理框架保证…

【环境搭建】远程服务器搭建ElasticSearch

参考&#xff1a; 非常详细的阿里云服务器安装ElasticSearch过程..._阿里云服务器使用elasticsearch-CSDN博客 服务器平台&#xff1a;AutoDL 注意&#xff1a; 1、切换为非root用户&#xff0c;su 新用户名&#xff0c;否则ES无法启动 2、安装过程中没有出现设置账号密码…

【微服务】springboot远程docker进行debug调试使用详解

目录 一、前言 二、线上问题常用解决方案 2.1 微服务线上运行中常见的问题 2.2 微服务线上问题解决方案 2.3 远程debug概述 2.3.1 远程debug原理 2.3.2 远程debug优势 三、实验环境准备 3.1 搭建springboot工程 3.1.1 工程结构 3.1.2 引入基础依赖 3.1.3 添加配置文…

Linux之如何找回 root 密码?

1、启动系统&#xff0c;进入开界面&#xff0c;在界面中按“e"进入编辑界面 2、进入编辑界面&#xff0c;使用键盘上的上下键把光标往下移动&#xff0c;找到以”Linux16“开通内容所在的行数&#xff0c;在行的最后面输入&#xff1a;init/bin/sh 3、输入完成后&…

麒麟信安CentOS安全加固案例获评中国信通院第三届“鼎新杯”数字化转型应用奖

“鼎新杯”数字化转型应用大赛&#xff0c;由中国通信标准化协会主办、中国信息通信研究院承办&#xff0c;以落实国家“十四五”规划关于“加快数字化发展&#xff0c;建设数字中国”的总体要求为目标&#xff0c;意在打造一批具有产业引领与推广应用效应的企业数字化转型应用…

JavaEE-进程与线程

1.进程 1.1什么是进程 每个应⽤程序运⾏于现代操作系统之上时&#xff0c;操作系统会提供⼀种抽象&#xff0c;好像系统上只有这个程序在运 ⾏&#xff0c;所有的硬件资源都被这个程序在使⽤。这种假象是通过抽象了⼀个进程的概念来完成的&#xff0c;进程可 以说是计算机科学…

C#源码安装ZedGraph曲线显示组件

在软件开发里,数据的显示,已经是软件开发的大头。 如果让数据更加漂亮地、智能地显示,就是软件的核心价值了。 因为不管数据千万条,关键在于用户看到图。因为一个图表,就可以表示整个数据的趋势, 或者整个数据的走向,数据频度和密码。所以图表显示是软件的核心功能,比如…

STM32 -- USB CDC 虚拟串口通信

本篇操作: 通过CubeMX Keil&#xff0c;配置STM32作为USB设备端&#xff0c;与电脑上位机进行通信&#xff08;CDC&#xff09;&#xff1b;通用带USB功能的 STM32 芯片 &#xff08;如F1、F4等&#xff0c;系统时钟配置不同&#xff0c;代码通用&#xff09;。 目录 一、 S…

python中双引号和单引号的区别是什么

python3中的单引号‘’和双引号“”的作用一样。 3个单引号的作用&#xff1a; 1、表示注释 #3个单引号表示注释多行gf_of_archerzon "Wang" print("archerzon的女盆友是",gf_of_archerzon) print("archerzon的女盆友是%s"%gf_of_archerzon)2…

Vue基础(三)

生命周期 又名生命周期回调函数&#xff0c;生命周期函数&#xff0c;生命周期钩子 是什么&#xff1a;Vue在关键时刻帮我们调用的一些特殊名称的函数 生命周期函数的名字不可更改&#xff0c;但函数的具体内容是程序员根据需求编写的 生命周期函数中的this指向是vm或者组件实…

Leetcode - 周赛418

目录 一&#xff0c;3309. 连接二进制表示可形成的最大数值 二&#xff0c;3310. 移除可疑的方法 三&#xff0c;3311. 构造符合图结构的二维矩阵 四&#xff0c;3312. 查询排序后的最大公约数 一&#xff0c;3309. 连接二进制表示可形成的最大数值 本题数据范围较小&#…

鼓组编写:SsdSample鼓映射 GM Map 自动保存 互换midi位置 风格模板 逻辑编辑器

SsdSample音源的键位映射 方便编写鼓的技巧 可以这样去设置键位关系的面板和钢琴卷帘窗的面板&#xff0c;方便去写鼓。 可以先按GM的midi标准去写鼓&#xff0c;然后比对下鼓的键位映射的关系&#xff0c;去调整鼓。 可以边看自己发b站等处的图文笔记&#xff0c;然后边用电…

网络初识基本概念总结

网络发展背景 经历了 单机阶段 -> 局域网阶段 -> 广域网阶段 -> 移动互联网阶段 (简单介绍一下) 其他一些小概念 局域网LAN: 是把一些设备通过交换机 / 路由器连接, 形成的私有网络广域网WAN: 是把更多的局域网相互连接起来,当规模足够大时形成广域网交换机和路由器…

STM32F103ZET6 FREERTOS 双UART 多任务多串口输出(配置教程)

基本的stm32cubemx使用就不细说了&#xff0c;要想配置freertos&#xff0c;用这个工具配置那是相当方便和简单 1、系统晶振配置 使用外部时钟晶振&#xff0c;配置如图 2、系统定时器设置 serial wire 保证下次可以程序下载 SysTick 是 Cortex-M 内核中的一个系统定时器&a…

用C++编写信息管理系统(歌单信息管理)

C语言是面向过程的编程语言&#xff0c;而C是面向对象的编程语言&#xff0c;在书写代码时风格有所不同&#xff08;也存在很多共性&#xff09;。 程序说明 本次系统程序使用的是C语言进行编写&#xff0c;主要考虑怎么实现面向对象的问题。 因为本次程序属于小型系统程序&…

C语言 | 第十六章 | 共用体 家庭收支软件-1

P 151 结构体定义三种形式 2023/3/15 一、创建结构体和结构体变量 方式1-先定义结构体&#xff0c;然后再创建结构体变量。 struct Stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 }; struct Stu stu1, stu2; //…

从二维到三维,电商行业有哪些变化?

从二维到三维&#xff0c;电商行业经历了一系列显著的变化&#xff0c;这些变化不仅体现在商品展示的方式上&#xff0c;还深刻影响了消费者的购物体验、电商平台的运营策略以及整个电商行业的竞争格局。 一、商品展示方式的变革 二维展示阶段&#xff1a; 在电商行业的早期&…

【黑苹果】记录MacOS升级Sonoma的过程

【黑苹果】记录MacOS升级Sonoma的过程 一、硬件二、提前说明三、准备OC四、选择驱动五、选择ACPI六、下载内核扩展七、其他问题 一、硬件 设备是神舟zx6-ct5da 具体参照下图 二、提前说明 本机器已经安装过 macOS Monterey 12.6&#xff0c;这次是升级到 macOS Sonoma 14。 …