shell脚本简单命令

shell脚本

脚本就是可运行代码的集合,脚本语言(计算机语言)脚本的特点:从上到下,按行执行。

python 脚本语言 格式更严谨 严格的执行锁进。也是从上到下按行执行。

shell脚本就是在shell环境(/bin/bash)bash就是shell的解释器。linux环境下的编程语句。

自动化运维。可重复执行的,自动化的在系统中实现增删改查的操作。

shell的解释器,默认就是bash

sh:已经淘汰

bash:sh的扩展版

csh:类c语言

tcsh:整合了c语言的shell

nologin:用户无法登陆到系统的shell

shell的作用:

1、自动化运维

2、批量化的重复操作以及配合定时任务执行。

3、有了脚本就可以减轻管理员的工作量

4、避免配置出错。

5、提高处理批量文件的速度

shell脚本的构成:

[root@localhost ~]# cd /opt
[root@localhost opt]# vim test.sh
#!/bin/bash
#声明shell的解释器这一行可以不写,默认就是bash. /python expect,只要不是默认shell,其他的都是声明解释器
#被注释掉的部分是不会被执行的,步骤的含义。
#可执行语句:
#this is my first shell
cd /boot
echo "当前的目录位置:"
#echo的作用就是打印
pwd
echo"展示其中以vml开头的文件:"
ls -lh vml *

第一行:声明解释器(默认就是bash,可以不写)

注释:以#开头,就是注释的信息,注释的部分不会被执行。

可执行语句:linux的命令都可以作为可执行语句,一行一行的往下写。一行就是一个可执行的语句。

shell的运行方式:

3种:

第一种:不给脚本执行权限的执行方式:

sh:就是在当前的shell里生成一个子shell,运行的结果不改变父shell的环境。

source:点命令,他会改变当前shell的环境,也就是真正的执行代码。

bash:就是在当前的shell里生成一个子shell,运行的结果不改变父shell的环境。

第二种:赋权执行

脚本调试完毕,都是赋权执行。

chmod 777 test.sh

#执行语句
./test.sh 
​
/opt/test.sh 
​
source /opt/test.sh 

重定向操作:

标准输入

标准输出

[root@localhost opt]# ls
jenkins-2.396-1.1.noarch.rpm  test.sh

标准错误输出

[root@localhost opt]# llll
bash: llll: 未找到命令...

重定向输出:> >>

"> 标准输出的结果保存到指定的文件,而且还会覆盖文件原有的内容"

">> 标准输出的结果保存到文件原有的内容的尾部追加,不会覆盖原有的内容"

2> 2>> (标准错误输出的结果,保存到指定的文件)

&> &>> (混合输出,既可以保存标准输出,也可以保存错误输出)

重定向输入:< 从指定的文件获取数据。

变量的作用和类型,如何声明变量。

变量的作用:用来存放系统和用户需要使用的设定的参数(值),变量保存在内存中。调用的时候,直接到内存当中查找变量所在的内存地址。

变量的类型:

自定义变量:

自定义变量 名称由用户自己定义 值也可以自定义

变量名的规范:

1、不要使用系统的命令作为变量名

2、不要使用中文

3、不要使用特殊符号开头,可以用下划线开头,不要使用数字开头

4、变量名我们一般会使用对应的英文名称来使用

5、变量名要保持前后一致,要有注释。提高代码的可读性。

变量值:int(整数类型) string(字符串)浮点 布尔:(true false)

双引号,单引号,反撇号之间的作用和区别:

弱引用和强引用

双引号,就是弱引用,变量值就是变量值本身

单引号,强引用,变量值不再是本身定义的值,保持自身的字符串形式

反撇号,命令替换,把命令的执行结果传给变量,作为变量的值,先执行命令,再给变量赋值。

自定义输入变量的值

#自定义输入变量的值
read -p "请输入一个整数:" a
read -p "请输入一个整数:" b
c=$(($a+$b))
d=$(($a*$b))
echo $c
echo $d
​
#-p 指定提示符,提示符的内容包含在""中间,""可以为空,但是
必须要有

全局变量:

全局变量 对整个系统生效,所有用户都可以使用

全局生效,每个脚本的变量值,固定的。

持久性

共享性

全局变量适用于不需要经常更改的值。

排错的方法

bash -x 脚本名 (会把每一步都打印出来,这样方便定位每一步错误)

环境变量

环境变量 环境变量是系统创建的,用来设置用户的工作环境。

环境变量可以理解为特殊的全局变量,/etc/profile配置文件。

env查看所有的环境变量

[root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

可执行的命令,或者可执行的程序的默认路径。

位置变量

位置变量,又叫做命令行参数,是在脚本的外面给脚本内部传值。

$1 $2 $3 $4......$9

从第一个到第九个

10以后要用()把数字括起来

$(10)

预定义变量:

预定义变量:编程语言和解释器提供的,用户无法更改。只能由系统自行更新和设备。

$*和$@:表示命令或者脚本需要处理的参数。二者的区别在于区别处理方式的不同。

$*和$@不加引号的表现一致,都是把参数一个一个处理。

$*加了引号,会把参数当成一个整体来进行处理。

$#:也是一个全局变量,统计传递给脚本或者函数的参数个数

$?:true false 命令执行之后返回的状态码,

只有0,表示成功 true

所有非0,都表示失败 false

返回上一次执行命令的状态

小数运算:bc是一个简易的系统自带的计算机程序,可以执行整数,也可以计算小数。

i++:先赋值再加1

++i:先加1再赋值

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

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

相关文章

在Kubernetes中部署Elasticsearch高可用集群详细教程

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

2024下半年教师资格证报名全流程来啦!!

2024下半年教师资格证报名全流程来啦&#xff01;&#xff01; 一、重要时间节点 ✅2024下半年教师资格证考试 ⏰笔试报名&#xff1a;7月5日-8日 ⏰笔试时间&#xff1a;9月15日 ⏰笔试成绩查询&#xff1a;11月8日 ⏰面试报名&#xff1a;11月8日起 ⏰面试时间&#xff1a;12…

开源医疗大模型Llama3-Aloe-8B-Alpha,性能超越 MedAlpaca 和 PMC-LLaMA

前言 近年来&#xff0c;大型语言模型 (LLM) 在医疗领域展现出巨大潜力&#xff0c;能够帮助医生和研究人员更快地获取信息、分析数据&#xff0c;并提高医疗服务效率。然而&#xff0c;目前市场上大多数医疗 LLM 都是闭源模型&#xff0c;限制了其在学术研究和应用领域的推广…

移动端消息中心,你未必会设计,发一些示例出来看看。

APP消息中心是一个用于管理和展示用户收到的各种消息和通知的功能模块。它在APP中的作用是提供一个集中管理和查看消息的界面&#xff0c;让用户能够方便地查看和处理各种消息。 以下是设计APP消息中心的一些建议&#xff1a; 1. 消息分类&#xff1a; 将消息按照不同的类型进…

【Numpy】一文向您详细介绍 np.floor()

【Numpy】一文向您详细介绍 np.floor() 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff0c;…

基于Python+Django+MySQL+HTML的创新创业平台

DjangoMySQLHTML 基于PythonDjangoMySQLHTML的创新创业平台 用户管理 系统监控 角色管理 资源管理 参数设置 角色管理 简介 学生创新创业平台是一个功能丰富的在线教育或协作系统&#xff0c;支持中文语言环境。它提供用户管理、系统监控、多角色权限控制、资源管理、参…

mac下Xcode在iphone真机上测试运行iOS软件

最近一个需求需要在iPhone真机上测试一个视频直播的项目。 需要解决如何将项目 app 安装到真机上 在进行真机调试。 安装Xcode 直接在App Store上搜索Xcode安装即可。 关键是要安装Simulator。项目需要安装iOS17.5但是由于安装包太大&#xff0c;并且网络不稳定的原因。在Xco…

Databricks超10亿美元收购Tabular;Zilliz 推出 Milvus Lite ; 腾讯云支持Redis 7.0

重要更新 1. Databricks超10亿美元收购Tabular&#xff0c;Databricks将增强 Delta Lake 和 Iceberg 社区合作&#xff0c;以实现 Lakehouse 底层格式的开放与兼容([1] [2])。 2. Zilliz 推出 Milvus Lite 轻量级向量数据库&#xff0c;支持本地运行&#xff1b;Milvus Lite 复…

C++入门 vector介绍及使用

目录 vector的介绍及使用 vector常用接口的介绍及使用 vector的定义 vector iterator 的使用 vector 空间增长问题 vector 增删查改 push_back/pop_back insert & erase & find operator[ ]的遍历 vector的介绍及使用 vector的文档介绍 vector是表示可变大…

Vue使用vue-esign实现在线签名

Vue在线签名 一、目的二、样式三、代码1、依赖2、代码2.1 在线签名组件2.2父组件 一、目的 又来了一个问题&#xff0c;直接让我在线签名&#xff08;还不能存储base64&#xff09;&#xff0c;并且还得上传&#xff0c;我直接***违禁词。 二、样式 初始样式 点击前往组件&am…

金蝶云星空程序员开发快速入门

文章目录 一 前言1.1 学习步骤1.2 学习需知 二、学习金蝶*云星空的步骤2.1 下载金蝶*云星空安装到本地2.2 查看官网的学习资料2.3 如何使用C#进行插件开发2.4 sqlserver的表设计以及存储过程2.5 如何使用python进行插件的开发2.6 第三方程序如何调用金蝶*云星空的数据 三 后记 …

1089 狼人杀-简单版

solution 有两个狼人&#xff0c;其中一个狼人说谎&#xff0c;找到符合该条件的方案。若有多种则输出序号最小的方案&#xff0c;若无方案则输出No Solution。 枚举所以狼人的可能性&#xff0c;找到符合的方案输出并结束。 #include<iostream> using namespace std; …

CSRF攻击

改账号和密码 里面有改的账号和密码 我改这个代码的123为456&#xff0c;然后在新的浏览器去执行&#xff0c;然后密码就又被改了 假如黑客知道修改密码的url&#xff0c;那么就危险了 但是也不是随便改 是有前提的&#xff0c;前提是&#xff1a; 1、已经登录了要改密码的…

计算机网络:网络层 - IPv6

计算机网络&#xff1a;网络层 - IPv6 IPv6 数据报IPv6 地址冒号十六进制记法地址分类 IPv4 到 IPv6 过渡双栈协议隧道技术 IPv6 是互联网协议的最新版本&#xff0c;它被设计用来取代现有的 IPv4 协议。这是因为 IPv4 存在一些根本性的限制&#xff0c;而 IPv6 则可以解决这些…

【three.js案例一】智慧星球

直接附上源码: import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js;//场景 const scene = new THREE.Scene();const geometry = new THREE.SphereGeometry(50,32,16);console.log(.postion,geometry.attributes.position)…

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

大家好&#xff0c;我是锋哥。今天分享关于 【实践中如何优化 MySQL&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 实践中如何优化 MySQL&#xff1f; 最好是按照以下顺序优化&#xff1a; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 1、SQL 语…

【Linux】基础IO——理解文件系统

1.理解文件系统 1.1.ls与stat 磁盘文件由两部分构成&#xff0c;分别是文件内容和文件属性。 文件内容就是文件当中存储的数据&#xff0c;文件属性就是文件的一些基本信息&#xff0c; 例如文件名、文件大小以及文件创建时间等信息都是文件属性&#xff0c;文件属性又被称…

探索高效存储与快速查找: 深入了解B树数据结构

探索高效存储与快速查找: 深入了解B树数据结构 一、什么是B树二、B树的实现2.1 节点的定义2.2 插入关键字2.3 删除关键字2.4 查找关键字2.5 遍历B树 一、什么是B树 B树&#xff0c;也称为B-tree&#xff0c;是一种多路平衡查找树。它被广泛用于文件系统和数据库之中&#xff0c…

CentOS7服务器中安装openCV4.8的教程

参考链接&#xff1a;Centos7环境下cmake3.25的编译与安装 参考链接&#xff1a;Linux安装或者升级cmake&#xff0c;例子为v3.10.2升级到v3.25.0(自己指定版本) 参考链接&#xff1a;Linux安装Opencv&#xff08;C&#xff09; 一、下载资源 1.下载cmake3.25.0的压缩包&am…

使用 yocto 搭建 qemuarm64 环境

文章目录 前言一、ubuntu 环境准备1. 编译主机基础的环境准备2. 编译主机相关依赖软件的安装二、yocto5.0 代码的获取与编译1. 获取代码2. yocto5.0 代码的编译2.1 source 环境变量2.2 修改相关配置文件2.3 编译3. 启动 qemu总结参考资料前言 本文主要介绍如何在 ubuntu 下使用…