Shell变成规范与变量

目录

1. Shell脚本

1.1 Shell脚本概述

1.2 Shell的作用 

1.3 Shell脚本的构成

2. 重定向与管道操作 

 2.1 交互式硬件设备

​ 2.2 重定向操作

3. shell变量

3.1 自定义变量

 3.2 变量的作用范围​编辑

3.3 整数变量的运算

4. 环境变量

4.1 特殊的Shell变量

4.2 只读变量 


1. Shell脚本

1.1 Shell脚本概述

(1)Shell脚本概念

(2)shell脚本应用场景

 

1.2 Shell的作用 

Shell的作用——命令解释器,“翻译官”

 介于系统内核与用户之间,负责解释命令行

 Shell(壳程序)是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

查看系统中shell类型 

最常用的就是bash、tcsh、csh、sh、nologin这些shell

 

 /bin/bash和/bin/sh都是bash的软连接,都指向bash 

  • sh:已经被bash所替换,是bash的前身;

  • nologin:奇怪的shell,这个shell可以让用户无法登录主机;

  • bash(/bin/bash)是目前大多数Linux版本采用的默认Shell.

为什么系统上合法的Shell要写入/etc/shells这个文件呢? 

 这是因为系统某些服务运行过程中,会去检查用户能够使用的Shell,而这些shell的查询就是借由/etc/shells这个文件。

用户什么时候可以取得shell来工作?用户默认会取得哪一个shell? 

 当用户登录的时候,系统就会给我一个shell让我来用,而这个登录取得的Shell就记录在/etc/passwd这个文件内。

1.3 Shell脚本的构成

(1)脚本申明(解释器):若第一行为" #!/bin/bash",表示此行以下的代码语句是通过/bin/bash程序来解释执行,#!/bin/bash为默认解释器。还有其它类型的解释器,比如#!/usr/bin/python、#!/usr/bin/expect。

(2)注释信息:以“#”开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行。
 

1.4 编写Shell脚本 

(1)编写脚本代码 

 使用vim编辑器

(2)执行shell脚本 

 方法一:指定路径的命令,要求文件必须有x权限。

  • 指定绝对路径:/root/first.sh

  • 指定相对路径:./first.sh 

 方法二:指定shell来解释脚本,不要求文件必须有x权限。

sh 脚本路径: sh first.sh

source 脚本路径: . first.sh 或者 source first.sh

bash和sh命令执行脚本文件;

注意:指定路径以及sh、bash执行脚本的方式,会在子shell环境中运行,不会影响当前所在目录、变量的值等因素;而"."和source命令执行脚本的方式,是在当前shell环境中运行,会影响当前所在目录、变量的值 等因素。

2. 重定向与管道操作 

 2.1 交互式硬件设备

 2.2 重定向操作

 重定向输入:<,从指定文件读取数据

重定向输出:>,将输出结果保存到指定文件,会覆盖文件中原有内容

 

重定向追加:>>,将输出结果追加到指定文件的尾部,可以实现合并两个文件的效果 

 标准错误输出:2>,将错误信息保存到指定的文件中,会覆盖文件中原有的内容

混合输出:&>将代码正确执行的内容标准输出到指定文件中,或者将错误信息保存到指定文件 

混合输出的补充知识:(2>&1:将标准错误输出重定向到标准输出) 面试考试题

ls -lh > test.txt 2>&1    ls -ln 标准输出 到屏幕
ls -ln > test.txt 重定向输出到 text.txt  1 -->  test.txt
2>&1   错误输出 重定向到 标准输出

 3. shell变量

3.1 自定义变量

定义变量

 

下划线开头定义变量 

 

 题目:要求将$a和$b名字交换

解:准备一个临时变量$c,

 read -p "提示内容"  变量名           #从键盘输入中获取变量值

 

 `...`  $(...)    提取里面的命令执行后的结果

 3.2 变量的作用范围

 

 让自定义的变量在所有shell环境中有效的方法:

 1)在 /etc/profile 文件中定义 export 变量名=变量值
   source /etc/profile 立即生效 或 重新登录系统自动生效
 

 

2)在 /etc/bashrc 文件中定义 变量名=变量值
   切换 shell 环境自动生效

 

3.3 整数变量的运算

进行整数变量的运算 

echo $(expr 整数1 运算符 整数2)    $(expr $变量1 运算符 $变量2)                      +  -  \*  /  

 echo $[整数1 运算符 整数2]         $[变量1 运算符 变量2]           +  -  *  /  %   

 echo $((整数1 运算符 整数2))       $((变量1 运算符 变量2))         +  -  *  /  %   

 使用let关键字进行整数变量的运算(必须要赋予给变量值)

 浮点数运算

 方法一

方法二

4. 环境变量

4.1 特殊的Shell变量

 

 env 查看当前shell环境中所有可用的环境变量​​​​​​​

 echo $HOME:查看当前用户的家目录

4.2 只读变量 

readonly 变量名=变量值

 

4.3 位置变量 

 

 4.4 预定义变量 

 $?  代表的是上一条Linux命令执行的返回状态码(0~255)0表示上一条命令执行正确,非0值则表示上一条命令执行异常

$*  默认代表脚本后面跟的所有参数,加上双引号后 "$*" 会把所有参数看做一个整体
$@  默认代表脚本后面跟的所有参数,加上双引号后 "$@" 还是会把每个参数看做一个个体 

 

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

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

相关文章

【Flask 系统教程 5】视图进阶

类视图 在 Flask 中&#xff0c;除了使用函数视图外&#xff0c;你还可以使用类视图来处理请求。类视图提供了一种更为结构化和面向对象的方式来编写视图函数&#xff0c;使得代码组织更清晰&#xff0c;并且提供了更多的灵活性和可扩展性。 创建类视图 要创建一个类视图&am…

家用洗地机应该怎么选?哪个牌子好?市场上主流洗地机品牌推荐

洗地机的出现&#xff0c;让越来越多的家庭享受清洁的过程&#xff0c;给人们腾出来更多的时间陪伴家人和休息。但是在选购一台洗地机前&#xff0c;大家多多少少肯定有些疑问&#xff0c;洗地机到底实不实用&#xff1f;好不好用&#xff1f;能扫干净吗&#xff1f;还有哪些好…

什么样的行业适合做私域?

私域营销适用于各种行业&#xff0c;但以下几个行业尤其适合进行私域营销&#xff1a; 1、零售行业&#xff1a;私域营销可以帮助零售企业建立与顾客的直接联系&#xff0c;提高顾客忠诚度和复购率。通过私域营销&#xff0c;零售企业可以进行个性化推荐、定制化服务&#xff…

Konga域名配置多个路由

云原生API网关-Kong部署与konga基本使用 Nginx server{listen 443 ssl;location / {proxy_pass http://127.0.0.1:8100;}location /openApi {proxy_pass http://172.31.233.35:7100/openApi;} } Kong {"id": "f880b21c-f7e0-43d7-a2a9-221fe86d9231&q…

vue视图不刷新强制更新数据this.$forceUpdate()

在vue中&#xff0c;更新视图数据&#xff0c;不刷新页面&#xff0c;需要强制更新数据才可以 前言 在对数据就行添加和删除时&#xff0c;发现页面视图不更新&#xff0c;排除发现需要强制更新才可以 点击添加或删除&#xff0c;新增数据和删除就行&#xff0c;但在不使用fo…

指定地区|CSC高级研究学者赴澳大利亚访学交流

CSC高级研究学者均是正高或博导级的&#xff0c;学术背景较强&#xff0c;多数能DIY联系到国外合作机构。但也有些申请者因指定地域或学校&#xff0c;或须在短期内获取邀请函故而求助于我们。本案例D教授就指定澳大利亚的墨尔本地区&#xff0c;我们最终用维多利亚大学的邀请函…

智能化采购管理系统助力光伏行业提高效率

光伏行业是指太阳能电池板的制造、安装和维护等相关产业&#xff0c;是新能源领域的重要组成部分。近年来&#xff0c;随着全球对于环保和可持续发展的重视&#xff0c;光伏行业进入全球化和智能化的新阶段。光伏企业开始加强国际合作&#xff0c;推广智能化技术&#xff0c;提…

vue3+ts+vant选择器选中文字效果

所需要的样式: 选中某个选项后文字有放大和改变颜色的效果 主要就是在van-picker上加class, 给对应的style样式即可 <van-pickerclass"custom-picker":title"pickerData.titleText"v-if"pickerData.ispicker"show-toolbar:columns"col…

数据结构——排序算法分析与总结

一、插入排序 1、直接插入排序 核心思想&#xff1a;把后一个数插入到前面的有序区间&#xff0c;使得整体有序 思路&#xff1a;先取出数组中第一个值&#xff0c;然后再用tmp逐渐取出数组后面的值&#xff0c;与前面的值进行比较&#xff0c;假如我们进行的是升序排序&…

代谢组数据分析七:从质谱样本制备到MaxQuant搜库

前言 LC-MS/MS Liquid Chromatography-Mass Spectrometry&#xff08;LC-MS/MS &#xff0c;液相色谱-质谱串联&#xff09;可用于残留化合物检测、有机小分子检测、鉴定和定量污染物以及在医药和食品领域添加剂检测和生物小分子等检测。 LC-MS/MS一般包含五个步骤&#xff…

熟悉Redis吗,那Redis的过期键删除策略是什么

对于Redis&#xff0c;我们业务开发一般都只关心Redis键值对的查询、修改操作&#xff0c;可能因为懒或者只想能用就行&#xff0c;呵呵。很少关心键值对存储在什么地方、键值对过期了会怎么样、Redis有没什么策略处理过期的键、Redis处理过期键又有什么作用&#xff1f;但这些…

LabVIEW智能变电站监控系统设计与实现

LabVIEW智能变电站监控系统设计与实现 随着电力系统和智能化技术的快速发展&#xff0c;建立一个高效、可靠的变电站监控系统显得尤为重要。通过分析变电站监控系统的需求&#xff0c;设计了一个基于LabVIEW软件的监控平台。该平台利用虚拟仪器技术、传感器技术和无线传输技术…

5W 1.5KVDC 隔离 宽电压输入 DC/DC 电源模块——TP05DB 系列

TP05DB系列电源模块额定输出功率为5W&#xff0c;应用于2:1及4:1电压输入范围 4.5V-9V、9V-18V、18V-36V、36V-72V、9V-36V和18V-72V&#xff0c;40-160VDC的输入电压环境&#xff0c;输出电压精度可达1%&#xff0c;具有输出过流保护等功能。可广泛应用于通信、铁路、自动化以…

机器学习 | 时间序列预测中的AR模型及应用

自回归模型&#xff0c;通常缩写为AR模型&#xff0c;是时间序列分析和预测中的一个基本概念。它们在金融、经济、气候科学等各个领域都有广泛的应用。在本文中&#xff0c;我们将探索自回归模型&#xff0c;它们如何工作&#xff0c;它们的类型和实际例子。 自回归模型 自回…

【小迪安全2023】第61天:服务攻防-中间件安全CVE复现K8sDockeruettyWebsphere

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

IaC实战指南:DevOps的自动化基石

基础设施即代码&#xff08;Infrastructure as Code&#xff0c;IaC&#xff09;是指利用脚本、配置或编程语言创建和维护基础设施的一组实践和流程。通过IaC&#xff0c;我们可以轻松测试各个组件、实现所需的功能并在最小化停机时间的前提下进行扩展。更值得一提的是&#xf…

STM32单片机实战开发笔记-独立看门狗IWDG

嵌入式单片机开发实战例程合集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/11av8rV45dtHO0EHf8e_Q0Q?pwd28ab 提取码&#xff1a;28ab IWDG模块测试 1、功能描述 STM32F10X内置两个看门狗&#xff0c;提供了更高的安全性&#xff0c;时间的精确下性和使用的灵活性…

聊聊BitLocker

最近有消息称微软决定在Windows 11 24H2中默认开启BitLocker&#xff0c;这个消息在网上引起了不小的波澜。有人说&#xff0c;对于我们这些普通用户来说&#xff0c;BitLocker真的有必要吗&#xff1f; 什么是BitLocker BitLocker 是一项 Windows 安全功能&#xff0c;可为整…

Qt与MySQL连接

QT连接Mysql数据库&#xff08;详细成功版&#xff09;-CSD N博客 我的MySQL是64位的&#xff0c;所以我的Qt的套件也需要是64位的 遇到的问题&#xff1a; &#xff08;available drivers中已经有QMYSQL QMYSQL3&#xff0c;还是not loaded&#xff09; QSqlDatabase: QMYS…

Splashtop 荣获 TrustRadius 颁发的“2024年度最受欢迎奖”

2024年5月8日 加利福尼亚州库比蒂诺 Splashtop 在全球远程访问和支持解决方案领域处于领先地位&#xff0c;该公司正式宣布将连续第三年荣获远程桌面和远程支持类别的“TrustRadius 最受欢迎奖”。Splashtop 的 trScore 评分高达8.6分&#xff08;满分10分&#xff09;&#x…