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

Shell基础2

声明!
        学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)


目录

一、       Linux临时变量和永久变量... 1

(一)     临时变量... 1

(二)     永久变量... 1

二、       常见变量相关命令... 2

(一)     echo $HOME. 2

(二)     which -a ls. 2

(三)     echo $PATH.. 2

(四)     示例... 2

三、       临时变量... 3

(一)     方法一... 3

(二)     方法二... 3

四、       永久变量... 4

五、       字符串相关操作... 5


  • Linux临时变量和永久变量

  • 临时变量

       

定义:临时变量是在当前Shell会话中临时定义的变量,它们只在当前Shell或其子Shell中有效。

设置方法:使用export命令可以直接在Shell命令行下定义临时变量。例如,export TEMP_VAR=value会定义一个名为TEMP_VAR的临时变量,并将其值设置为value。

生效范围:临时变量只在当前Shell会话中有效。一旦Shell关闭,这些变量就会失效。因此,它们适合用于一次性或临时性的环境调整。

查看与删除:可以使用echo命令查看临时变量的值,例如echo $TEMP_VAR。要删除临时变量,可以使用unset命令,例如unset TEMP_VAR。

  • 永久变量

             定义:永久变量是通过修改配置文件来定义的变量,它们会在系统重启或用户重新登录后仍然有效。

             设置方法:

                    系统级别:要设置对所有用户都有效的永久变量,可以编辑/etc/profile文件。在这个文件中添加export命令来定义变量。修改后,需要运行source /etc/profile命令使设置立即生效,或者等待下次系统启动或用户登录时生效。

                    用户级别:要设置仅对当前用户有效的永久变量,可以编辑用户目录下的.bash_profile或.bashrc文件(取决于Shell的类型和配置)。在这些文件中添加export命令来定义变量。修改后,同样需要运行source ~/.bash_profile(或对应的.bashrc文件)来使设置立即生效。

             生效范围:永久变量在系统重启或用户重新登录后仍然有效。对于系统级别的永久变量,它们对所有用户都有效;对于用户级别的永久变量,它们仅对当前用户有效。

             查看与删除:与临时变量类似,可以使用echo命令查看永久变量的值。但是,要删除永久变量,需要编辑相应的配置文件并删除对应的export命令。然后,保存文件并重新加载Shell(或等待下次登录)以使更改生效。注意,直接运行unset命令只能删除当前Shell会话中的临时变量,而不能删除永久变量。


  • 常见变量相关命令

  • echo $HOME

echo 是一个命令,用于在终端输出文本或变量的值。

$HOME 是一个环境变量,它包含了当前用户的主目录(也称为家目录)的路径。

  • which -a ls

which 是一个命令,用于查找并显示指定命令的绝对路径。

-a 是一个选项,告诉 which 命令显示所有匹配指定命令的路径,而不仅仅是第一个找到的路径。

ls 是您想要查找路径的命令。

  • echo $PATH

$PATH 是一个环境变量,它定义了一个由冒号分隔的目录列表。这些目录是系统搜索可执行文件的路径。

当您在终端中输入一个命令时,系统会按照 PATH 变量中列出的目录顺序来搜索这个命令的可执行文件。一旦找到,系统就会执行该命令。

  • 示例


  • 临时变量

  • 方法一

创建好的1.sh脚本,添加执行权限,移动到usr/bin目录下

mv 1.sh /usr/bin

/usr/bin 是一个通常用于存放系统级可执行文件的目录。将文件移动到这里意味着您希望该文件能够像其他系统命令一样,从任何目录通过终端直接调用。

  • 方法二

把/root目录直接添加到环境变量中让整个目录的文件都可以执行

export PATH=/root:PATH

export 是一个 shell 内建命令,用于设置或导出环境变量,使其对当前 shell 会话及其启动的任何子进程都可见。

PATH=/root:$PATH 是一个赋值表达式,它将 PATH 变量的值设置为 /root 目录加上原来的 PATH 值(通过 $PATH 引用)。这里,: 是目录分隔符。


  • 永久变量

      打开文件vi /usr/bin/.bashrc

      添加变量export PATH=/root:PATH

      变量生效 source /usr/bin/.bashrc

.bashrc 的作用:.bashrc 是一个 shell 脚本,用于 Bash shell 的个人初始化设置。当用户登录到一个基于 Bash 的终端会话时,这个文件会被执行。它通常用于设置环境变量、别名、函数等个性化配置。

/usr/bin/ 的用途:/usr/bin/ 目录通常包含系统级的可执行文件,这些文件对所有用户都是可用的。这个目录不是用来存放用户个人配置文件的。

source 命令source 是一个 shell 内建命令,用于在当前 shell 会话中读取并执行指定文件中的命令。这意味着,执行 source 文件名 会将文件中的内容作为当前 shell 会话的输入并执行。

  • 字符串相关操作

      假设想知道一个字符串的长度,该如何实现

             str = "hello word"

             echo ${#str}


      

${#str} 是参数扩展的一种形式,其中 # 符号用于获取变量 str 的长度。

${} 是参数扩展的基本形式,用于获取变量的值。

在 ${} 内部加上 #,后面紧跟着变量名(在这个例子中是 str),就构成了获取变量长度的语法。

      显示前三个字符

             echo ${str:0:3}

在 ${} 内部,冒号 : 后面跟着两个数字,分别表示起始位置和长度。在这个例子中,0 表示起始位置(字符串的第一个字符),3 表示要提取的字符数量。

需要注意的是,Bash 中的字符串索引是从 0 开始的,这与许多编程语言一致。

相关文章:

Shell基础2

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…...

7z 解压器手机版与解压专家:安卓解压工具对决

7z 解压器手机版和解压专家都是在安卓设备上广受欢迎的解压软件。7z 解压器手机版由深圳乡里云网络科技有限公司开发,大小为 32.8M,支持多种常见的压缩文件格式,如.zip、.rar、.7z 等。 它对安卓操作系统的特性和用户习惯进行了优化&#xf…...

C++清除所有输出【DEV-C++】所有编辑器通用 | 算法基础NO.1

各位小伙伴们,上一期的保留小数位数教学够用一辈子,有不错的点赞量,可我连一个粉丝铁粉都没有,你愿意做我的第一个铁粉吗?OK废话不多说,开始! 温故与知心 可能你也学过,且是工作者…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页

Android 设置启动页 自定义 splash.xml 通过themes.xml配置启动页背景图 IOS 设置启动页 LaunchScreen.storyboard 设置为启动页 storyboard页面绘制 Assets.xcassets 目录下导入图片 AppLogo Flutter 设置启动页 Flutter Android 设置启动页 自定义 launch_background.xm…...

SpringBoot 2.2.10 无法执行Test单元测试

很早之前的项目今天clone现在,想执行一个业务订单的检查,该检查的代码放在test单元测试中,启动也是好好的,当点击对应的方法执行Test的时候就报错 tip:已添加spring-boot-test-starter 所以本身就引入了junit5的库 No…...

聊天服务器(8)用户登录业务

目录 登录状态业务层代码数据模型层代码记录用户的连接信息以及线程安全问题客户端异常退出业务 登录状态 登录且状态变为online 业务层代码 #include "chatservice.hpp" #include "public.hpp" #include <string> #include <muduo/base/Loggi…...

stm32在linux环境下的开发与调试

环境安装 注&#xff1a;文末提供一键脚本 下载安装stm32cubeclt 下载地址为&#xff1a;https://www.st.com/en/development-tools/stm32cubeclt.html 选择 linux版本下载安装 安装好后默认在家目录st下 > $ ls ~/st/stm32cubeclt_1.16.0 …...

flinkOnYarn并配置prometheus+grafana监控告警

flinkOnYarn并配置prometheusgrafana监控告警 一、相关服务版本&#xff1a; flink版本&#xff1a;1.17.2 pushgateway版本&#xff1a;1.10.0 prometheus版本&#xff1a;3.0.0 grafana-v11.3.0参考了网上的多个文档以及学习某硅谷的视频&#xff0c;总结了一下文档&#x…...

麒麟系统下docker搭建jenkins

首先我们需要创建宿主机挂载路径&#xff0c;我这里放在本地的/data/henkins/home,然后赋予权限&#xff0c;命令如下&#xff1a; mkdir -p /data/jenkins/home chown -R 1000:1000 /data/jenkins/home chmod -R 777 /data/jenkins/homedocker run -d --restart …...

论文阅读 - Causally Regularized Learning with Agnostic Data Selection

代码链接&#xff1a; GitHub - HMTTT/CRLR: CRLR尝试实现 https://arxiv.org/pdf/1708.06656v2 目录 摘要 INTRODUCTION 2 RELATED WORK 3 CAUSALLY REGULARIZED LOGISTIC REGRESSION 3.1 Problem Formulation 3.2 Confounder Balancing 3.3 Causally Regularized Lo…...

计算机网络之会话层

一、会话层的核心功能 会话层作为OSI模型的第五层&#xff0c;不仅承担着建立、管理和终止通信会话的基本任务&#xff0c;还隐含着许多复杂且关键的功能&#xff0c;这些功能共同确保了网络通信的高效、有序和安全。 1. 会话建立与连接管理&#xff1a; 身份验证与授权&…...

blind-watermark - 水印绑定

文章目录 一、关于 blind-watermark安装 二、bash 中使用三、Python 调用1、基本使用2、attacks on Watermarked Image3、embed images4、embed array of bits 四、并发五、相关 Project 一、关于 blind-watermark Blind watermark 基于 DWT-DCT-SVD. github : https://githu…...

reduce-scatter:适合分布式计算;Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响

目录 Gather Scatter Reduce reduce-scatter:适合分布式计算 Reduce、LayerNorm和Broadcast算子的执行顺序对计算结果的影响,以及它们对资源消耗的影响 计算结果理论正确性 资源消耗方面 Gather 这个也很好理解,就是把多个进程的数据拼凑在一起。 Scatter 不同于Br…...

DAY64||dijkstra(堆优化版)精讲 ||Bellman_ford 算法精讲

dijkstra&#xff08;堆优化版&#xff09;精讲 题目如上题47. 参加科学大会&#xff08;第六期模拟笔试&#xff09; 邻接表 本题使用邻接表解决问题。 邻接表的优点&#xff1a; 对于稀疏图的存储&#xff0c;只需要存储边&#xff0c;空间利用率高遍历节点链接情况相对容…...

使用Git工具在GitHub的仓库中上传文件夹(超详细)

如何使用Git工具在GitHub的仓库中上传文件夹&#xff1f; 如果觉得博主写的还可以&#xff0c;点赞收藏关注噢~ 第一步&#xff1a;拥有一个本地的仓库 可以fork别人的仓库或者自己新创建 fork别人的仓库 或者自己创建一个仓库 按照要求填写完成后&#xff0c;点击按钮创建…...

Python酷库之旅-第三方库Pandas(218)

目录 一、用法精讲 1021、pandas.DatetimeIndex.inferred_freq属性 1021-1、语法 1021-2、参数 1021-3、功能 1021-4、返回值 1021-5、说明 1021-6、用法 1021-6-1、数据准备 1021-6-2、代码示例 1021-6-3、结果输出 1022、pandas.DatetimeIndex.indexer_at_time方…...

斗鱼大数据面试题及参考答案

MySQL 索引及引擎区别 一、MySQL 索引 索引是一种数据结构,用于快速查找数据库中的数据。它就像是一本书的目录,通过索引可以快速定位到需要的数据行,而不用全表扫描。 普通索引 普通索引是最基本的索引类型,它没有任何限制,可以在一个或多个列上创建。例如,在一个用户表…...

后仿真中的GLS测试用例的选取规则

一 仿真目的 门级仿真的主要目的,从根本上来说,是确保在物理实现阶段所应用的SDC(Standard Delay Constraint,标准延迟约束文件)中的各项约束条件准确无误地反映了设计的初衷和要求。这一环节在芯片设计的整体流程中占据着至关重要的地位,因为它直接关系到最终芯片的物理…...

对接阿里云实人认证

对接阿里云实人认证-身份二要素核验接口整理 目录 应用场景 接口文档 接口信息 请求参数 响应参数 调试 阿里云openApi平台调试 查看调用结果 查看SDK示例 下载SDK 遇到问题 本地调试 总结 应用场景 项目有一个提现的场景&#xff0c;需要用户真实的身份信息。 …...

UI库架构设计

UI库架构设计 分层 rc-xxx&#xff0c;提供基础组件&#xff0c;unstyled component (headless) &#xff0c;只具备功能交互&#xff0c;不具备UI表现样式体系基础组件复合组件&#xff0c;Search&#xff1a;Input Select &#xff0c;IconButton&#xff1a;Icon Button业…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...

Docker、Wsl 打包迁移环境

电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 内核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…...

【JavaEE】万字详解HTTP协议

HTTP是什么&#xff1f;-----互联网的“快递小哥” 想象我们正在网上购物&#xff1a;打开淘宝APP&#xff0c;搜索“蓝牙耳机”&#xff0c;点击商品图片&#xff0c;然后下单付款。这一系列操作背后&#xff0c;其实有一个看不见的“快递小哥”在帮我们传递信息&#xff0c;…...