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 开始的,这与许多编程语言一致。

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

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

相关文章

系统架构师考试18天极限备考复盘(2024年11月)

前言 写下这篇复盘笔记的时候还没有出成绩。泽崽目前是在读研究生,在经过 大概2周多个全日 的极限备考之后,于11月10日参加了软考的系统架构师考试(高级)。目前12月下旬才会出成绩,对于“基础知识-案例分析-论文”的估…

Tessy学习笔记—requirement(需求)的管理

1:什么是需求 Tessy中的requirement(需求)是,我们还是跟着Tessy官方的文档,继续学习,打开官方自带的工程Is Value In Range Requirement.project。 按照官方自带的操作手册,导入txt类型的需求…

web——sqliabs靶场——第六关——报错注入和布尔盲注

这一关还是使用报错注入和布尔盲注 一. 判断是否有sql注入 二. 判断注入的类型 是双引号的注入类型。 3.报错注入的检测 可以使用sql报错注入 4.查看库名 5. 查看表名 6.查看字段名 7. 查具体字段的内容 结束 布尔盲注 结束

Day44 | 动态规划 :状态机DP 买卖股票的最佳时机IV买卖股票的最佳时机III

Day44 | 动态规划 :状态机DP 买卖股票的最佳时机IV&&买卖股票的最佳时机III&&309.买卖股票的最佳时机含冷冻期 动态规划应该如何学习?-CSDN博客 本次题解参考自灵神的做法,大家也多多支持灵神的题解 买卖股票的最佳时机【…

FlinkSql读取kafka数据流的方法(scala)

我的scala版本为2.12 <scala.binary.version>2.12</scala.binary.version> 我的Flink版本为1.13.6 <flink.version>1.13.6</flink.version> FlinkSql读取kafka数据流需要如下依赖&#xff1a; <dependency><groupId>org.apache.flink&…

RabbitMQ实战启程:从原理到部署的全方位探索(上)

文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1 简单模式3.2 工作模式3.3 发布订阅3.4 路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1 单机部署5.1.1 安装erlang5.1.2 安装rabbitmq 5.2 集群部署&#xff08;镜…

动态内存管理(c语言)

我们通常开辟空间的方式 int val 20; //大小为4个字节 char arr[10] {0} //开辟出一块连续的空间且大小为10 但是上面开辟空间方式的特点 1.空间开辟大小是固定的 2.数组在声明得时候&#xff0c;必须指定数组得长度&#xff0c;它所需要得内存在编译时分配 但是以上的方式不能…

【从零开始的LeetCode-算法】3270. 求出数字答案

给你三个 正 整数 num1 &#xff0c;num2 和 num3 。 数字 num1 &#xff0c;num2 和 num3 的数字答案 key 是一个四位数&#xff0c;定义如下&#xff1a; 一开始&#xff0c;如果有数字 少于 四位数&#xff0c;给它补 前导 0 。答案 key 的第 i 个数位&#xff08;1 < …

STM32+AI语音识别智能家居系统

基于 STM32 和 AI 语音识别的智能家居系统的详细硬件和软件设计&#xff0c;包括各个模块的详细描述和代码示例。 一、硬件设计 1. 微控制器&#xff08;STM32&#xff09;&#xff1a; 选择 STM32F7 系列或更高性能的芯片&#xff0c;如 STM32F767ZIT6&#xff0c;以满足处理…

信息收集—JS框架识别泄露提取API接口泄露FUZZ爬虫插件项目

前言 免杀结束了&#xff0c;我们开个新的篇章——信息收集。为什么我一开始先写信息收集的文章呢&#xff0c;是因为现在我才发现我的信息收集能力其实有点弱的&#xff0c;所以呢开始知不足&#xff0c;而后进。 什么是JS JS就是JavaScript的简称&#xff0c;它和Java是没…

智能化护士排班系统的设计与实现(文末附源码)

自动排班-护士(分白班|夜班) 当服务器启动时检测需要自动排班,自动开始排班的算法执行 获得本周的所有日期,例如2023-01-29.....2023-02-04依次对每个科室&#xff0c;从第一天开始,逐天进行排班&#xff0c;分别设置两个二个数组&#xff0c;day[7];night[7]分别记忆一周内每…

【原创】java+ssm+mysql社区疫情防控管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Flink Source 详解

Flink Source 详解 原文 flip-27 FLIP-27 介绍了新版本Source 接口定义及架构 相比于SourceFunction&#xff0c;新版本的Source更具灵活性&#xff0c;原因是将“splits数据获取”与真“正数据获取”逻辑进行了分离 重要部件 Source 作为工厂类&#xff0c;会创建以下两…

CSS回顾-基础知识详解

一、引言 在前端开发领域&#xff0c;CSS 曾是构建网页视觉效果的关键&#xff0c;与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现&#xff0c;我们亲手书写 CSS 样式的情况越来越少&#xff0c;CSS 基础知识也逐渐被我们遗忘。 现在&#xff0c;这种遗…

11.08-10.14谷粒商城

谷粒商城--品牌管理 前端表单校验 品牌新增 品牌修改 校验规则 dataRule: {name: [{ required: true, message: "品牌名不能为空", trigger: "blur" }],logo: [{ required: true, message: "品牌logo地址不能为空", trigger: "blur"…

无插件H5播放器EasyPlayer.js网页web无插件播放器选择全屏时,视频区域并没有全屏问题的解决方案

EasyPlayer.js H5播放器&#xff0c;是一款能够同时支持HTTP、HTTP-FLV、HLS&#xff08;m3u8&#xff09;、WS、WEBRTC、FMP4视频直播与视频点播等多种协议&#xff0c;支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式&#xff0c;支持MSE、WASM、WebCodec等多种解码方…

基于Spring Boot的电子商务系统设计

5 系统实现 系统实现部分就是将系统分析&#xff0c;系统设计部分的内容通过编码进行功能实现&#xff0c;以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析&#xff0c;系统设计最主要还是进行功能&#xff0c;系统操作逻辑的设计&#xff0c;也包括…

CSP-X2024山东小学组T2:消灭怪兽

题目链接 题目名称 题目描述 怪兽入侵了地球&#xff01; 为了抵抗入侵&#xff0c;人类设计出了按顺序排列好的 n n n 件武器&#xff0c;其中第 i i i 件武器的攻击力为 a i a_i ai​&#xff0c;可以造成 a i a_i ai​ 的伤害。 武器已经排列好了&#xff0c;因此不…

游戏引擎学习第九天

视频参考:https://www.bilibili.com/video/BV1ouUPYAErK/ 修改之前的方波数据&#xff0c;改播放正弦波 下面主要讲关于浮点数 1. char&#xff08;字符类型&#xff09; 大小&#xff1a;1 字节&#xff08;8 位&#xff09;表示方式&#xff1a;char 存储的是一个字符的 A…

JWTUtil工具类

写一个Jwt工具类 导入如下pom.xml依赖 <!--fastjson依赖--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.33</version></dependency><!--jwt依赖--><dependenc…