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

Linux学习笔记之shell快速入门及相关变量

Shell是什么

Shell是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以通过Shell来启动、挂起甚至编写一些程序。

Shell脚本执行方式

脚本格式要求

  1. 脚本以#!/bin/bash开头
  2. 脚本需要有可执行权限
    在这里插入图片描述

脚本的常用执行方式

方式1:输入脚本的绝对路径或相对路径(首先要赋予脚本x权限,再执行脚本)
方式2:sh+脚本 (不用赋予脚本x权限,直接执行即可)比如:sh+
在这里插入图片描述

Shell变量

Shell变量介绍

1、Linux Shell中的变量分为 系统变量和用户自定义变量
2、系统变量: $HOME 、$PWD 、$SHELL 、$USER等
3.显示当前shell中所有变量:set
在这里插入图片描述

shell的变量

基本语法
1、定义变量:变量名=值
2、撤销变量:unset 变量
3、声明静态变量:readonly变量,注意:不能unset

在这里插入图片描述
在这里插入图片描述

shell变量的定义

定义变量的规则

1、变量名称可以由字母、数字和下划线组成,但是不能以数字开头
2、等号两侧不能有空格
3、变量名称一般习惯为大写

将命令的返回值赋给变量
1、A=‘date’ 反引号,运行里面的命令,并把结果返回给变量A
2、A=$(date)等价于反引号
在这里插入图片描述
在这里插入图片描述

设置环境变量

linux shell中的环境变量,可以理解成全局变量
基本语法
1、export 变量名=变量值 (将shell变量输出为环境变量/全局变量)
2、source 配置文件 (让修改后的配置信息立即生效)
3、echo $变量名 (查询环境变量的值)

单行注释:#
多行注释::<<! ! 两组符号共同组成多行注释,两组符号单起一行
在这里插入图片描述

位置参数变量

介绍
当执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用位置参数变量
如:./myshell.sh 100 200,这就是一个执行shell的命令行,可以在myshell脚本中获取到变量信息

基本语法
$n : n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号括起来,如:${10}
∗ : 这个变量代表命令中所有的参数, * : 这个变量代表命令中所有的参数, :这个变量代表命令中所有的参数,*把所有的参数看成一个整体
@ :这个变量也代表命令行中所有的参数,不过 @ :这个变量也代表命令行中所有的参数,不过 @:这个变量也代表命令行中所有的参数,不过@把每个参数区分对待
$# :这个变量代表命令行中所有参数的个数
在这里插入图片描述
在这里插入图片描述

预定义变量

基本介绍
即shell设计者事先已经定义好的变量,可以直接在shell 脚本中使用

基本语法

$$ :当前进程的进程号(PID)
$! :后台运行的最后一个进程的进程号
$? :最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己决定),则证明上一个命令执行不正确
在这里插入图片描述


http://www.mrgr.cn/news/71941.html

相关文章:

  • 前端Vue项目启动报错,出现spawn cmd ENOENT的原因以及解决方案
  • SQL Server 查询设置 - LIKE/DISTINCT/HAVING/排序
  • 谁会从新技术中受益?
  • AlphaFold3中文安装教程
  • SwiftUI开发教程系列 - 第十二章:本地化与多语言支持
  • test 是 JavaScript 中正则表达式对象 (RegExp) 的一种方法,用于测试一个字符串是否匹配某个正则表达式
  • PYNQ 框架 - 中断(INTR)驱动
  • 阿里巴巴通义灵码推出Lingma SWE-GPT:开源模型的性能新标杆
  • 音视频入门基础:MPEG2-TS专题(4)——使用工具分析MPEG2-TS传输流
  • JavaScript案例-轮播图
  • LeetCode【0019】删除链表的倒数第N个结点
  • 论文3—《基于YOLOv5s的农田垃圾轻量化检测方法》文献阅读分析报告
  • 我是如何一步步学习深度学习模型PyThorch
  • 信息收集系列(二):ASN分析及域名收集
  • LLM - 使用 LLaMA-Factory 微调大模型 Qwen2-VL SFT(LoRA) 图像数据集 教程 (2)
  • Python 正则表达式使用指南
  • WSL与Ubuntu系统--使用Linux
  • 渗透测试---网络基础之HTTP协议与内外网划分
  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理
  • Ngxin隐藏服务名称和版本号(源码部署和Docker部署)
  • 【最少刷题数——二分】
  • Java Review - 线程池原理源码解析
  • Ubuntu linux 命令总结
  • 如何理解DDoS安全防护在企业安全防护中的作用
  • 聊聊Flink:Flink的运行时架构
  • 几何合理的分片段感知的3D分子生成 FragGen - 评测